JUCE-7.0.12-0-g4f43011b96 JUCE-7.0.12-0-g4f43011b96
JUCE — C++ application framework with suport for VST, VST3, LV2 audio plug-ins

« « « Anklang Documentation
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
juce::PathStrokeType Class Reference

Describes a type of stroke used to render a solid outline along a path. More...

#include "juce_PathStrokeType.h"

Public Types

enum  JointStyle { mitered , curved , beveled }
 The type of shape to use for the corners between two adjacent line segments. More...
 
enum  EndCapStyle { butt , square , rounded }
 The type shape to use for the ends of lines. More...
 

Public Member Functions

 PathStrokeType (float strokeThickness) noexcept
 Creates a stroke type with a given line-width, and default joint/end styles.
 
 PathStrokeType (float strokeThickness, JointStyle jointStyle, EndCapStyle endStyle=butt) noexcept
 Creates a stroke type.
 
 PathStrokeType (const PathStrokeType &) noexcept
 Creates a copy of another stroke type.
 
PathStrokeTypeoperator= (const PathStrokeType &) noexcept
 Copies another stroke onto this one.
 
 ~PathStrokeType () noexcept
 Destructor.
 
void createStrokedPath (Path &destPath, const Path &sourcePath, const AffineTransform &transform=AffineTransform(), float extraAccuracy=1.0f) const
 Applies this stroke type to a path and returns the resultant stroke as another Path.
 
void createDashedStroke (Path &destPath, const Path &sourcePath, const float *dashLengths, int numDashLengths, const AffineTransform &transform=AffineTransform(), float extraAccuracy=1.0f) const
 Applies this stroke type to a path, creating a dashed line.
 
void createStrokeWithArrowheads (Path &destPath, const Path &sourcePath, float arrowheadStartWidth, float arrowheadStartLength, float arrowheadEndWidth, float arrowheadEndLength, const AffineTransform &transform=AffineTransform(), float extraAccuracy=1.0f) const
 Applies this stroke type to a path and returns the resultant stroke as another Path.
 
float getStrokeThickness () const noexcept
 Returns the stroke thickness.
 
void setStrokeThickness (float newThickness) noexcept
 Sets the stroke thickness.
 
JointStyle getJointStyle () const noexcept
 Returns the joint style.
 
void setJointStyle (JointStyle newStyle) noexcept
 Sets the joint style.
 
EndCapStyle getEndStyle () const noexcept
 Returns the end-cap style.
 
void setEndStyle (EndCapStyle newStyle) noexcept
 Sets the end-cap style.
 
bool operator== (const PathStrokeType &) const noexcept
 Compares the stroke thickness, joint and end styles of two stroke types.
 
bool operator!= (const PathStrokeType &) const noexcept
 Compares the stroke thickness, joint and end styles of two stroke types.
 

Detailed Description

Describes a type of stroke used to render a solid outline along a path.

A PathStrokeType object can be used directly to create the shape of an outline around a path, and is used by Graphics::strokePath to specify the type of stroke to draw.

See also
Path, Graphics::strokePath

@tags{Graphics}

Definition at line 41 of file juce_PathStrokeType.h.

Member Enumeration Documentation

◆ EndCapStyle

The type shape to use for the ends of lines.

Enumerator
butt 

Ends of lines are flat and don't extend beyond the end point.

square 

Ends of lines are flat, but stick out beyond the end point for half the thickness of the stroke.

rounded 

Ends of lines are rounded-off with a circular shape.

Definition at line 59 of file juce_PathStrokeType.h.

◆ JointStyle

The type of shape to use for the corners between two adjacent line segments.

Enumerator
mitered 

Indicates that corners should be drawn with sharp joints.

Note that for angles that curve back on themselves, drawing a mitre could require extending the point too far away from the path, so a mitre limit is imposed and any corners that exceed it are drawn as bevelled instead.

curved 

Indicates that corners should be drawn as rounded-off.

beveled 

Indicates that corners should be drawn with a line flattening their outside edge.

Definition at line 46 of file juce_PathStrokeType.h.

Constructor & Destructor Documentation

◆ PathStrokeType() [1/3]

juce::PathStrokeType::PathStrokeType ( float  strokeThickness)
explicitnoexcept

Creates a stroke type with a given line-width, and default joint/end styles.

Definition at line 29 of file juce_PathStrokeType.cpp.

◆ PathStrokeType() [2/3]

juce::PathStrokeType::PathStrokeType ( float  strokeThickness,
JointStyle  jointStyle,
EndCapStyle  endStyle = butt 
)
noexcept

Creates a stroke type.

Parameters
strokeThicknessthe width of the line to use
jointStylethe type of joints to use for corners
endStylethe type of end-caps to use for the ends of open paths.

Definition at line 34 of file juce_PathStrokeType.cpp.

◆ PathStrokeType() [3/3]

juce::PathStrokeType::PathStrokeType ( const PathStrokeType other)
noexcept

Creates a copy of another stroke type.

Definition at line 39 of file juce_PathStrokeType.cpp.

◆ ~PathStrokeType()

juce::PathStrokeType::~PathStrokeType ( )
noexcept

Destructor.

Definition at line 54 of file juce_PathStrokeType.cpp.

Member Function Documentation

◆ createDashedStroke()

void juce::PathStrokeType::createDashedStroke ( Path destPath,
const Path sourcePath,
const float dashLengths,
int  numDashLengths,
const AffineTransform transform = AffineTransform(),
float  extraAccuracy = 1.0f 
) const

Applies this stroke type to a path, creating a dashed line.

This is similar to createStrokedPath, but uses the array passed in to break the stroke up into a series of dashes.

Parameters
destPaththe resultant stroked outline shape will be copied into this path. Note that it's ok for the source and destination Paths to be the same object, so you can easily turn a path into a stroked version of itself.
sourcePaththe path to use as the source
dashLengthsAn array of alternating on/off lengths. E.g. { 2, 3, 4, 5 } will create a line of length 2, then skip a length of 3, then add a line of length 4, skip 5, and keep repeating this pattern.
numDashLengthsThe number of lengths in the dashLengths array. This should really be an even number, otherwise the pattern will get out of step as it repeats.
transforman optional transform to apply to the points from the source path as they are being used
extraAccuracyif this is greater than 1.0, it will subdivide the path to a higher resolution, which improves the quality if you'll later want to enlarge the stroked path. So for example, if you're planning on drawing the stroke at 3x the size that you're creating it, you should set this to 3.

Definition at line 665 of file juce_PathStrokeType.cpp.

◆ createStrokedPath()

void juce::PathStrokeType::createStrokedPath ( Path destPath,
const Path sourcePath,
const AffineTransform transform = AffineTransform(),
float  extraAccuracy = 1.0f 
) const

Applies this stroke type to a path and returns the resultant stroke as another Path.

Parameters
destPaththe resultant stroked outline shape will be copied into this path. Note that it's ok for the source and destination Paths to be the same object, so you can easily turn a path into a stroked version of itself.
sourcePaththe path to use as the source
transforman optional transform to apply to the points from the source path as they are being used
extraAccuracyif this is greater than 1.0, it will subdivide the path to a higher resolution, which improves the quality if you'll later want to enlarge the stroked path. So for example, if you're planning on drawing the stroke at 3x the size that you're creating it, you should set this to 3.
See also
createDashedStroke

Definition at line 658 of file juce_PathStrokeType.cpp.

◆ createStrokeWithArrowheads()

void juce::PathStrokeType::createStrokeWithArrowheads ( Path destPath,
const Path sourcePath,
float  arrowheadStartWidth,
float  arrowheadStartLength,
float  arrowheadEndWidth,
float  arrowheadEndLength,
const AffineTransform transform = AffineTransform(),
float  extraAccuracy = 1.0f 
) const

Applies this stroke type to a path and returns the resultant stroke as another Path.

Parameters
destPaththe resultant stroked outline shape will be copied into this path. Note that it's ok for the source and destination Paths to be the same object, so you can easily turn a path into a stroked version of itself.
sourcePaththe path to use as the source
arrowheadStartWidththe width of the arrowhead at the start of the path
arrowheadStartLengththe length of the arrowhead at the start of the path
arrowheadEndWidththe width of the arrowhead at the end of the path
arrowheadEndLengththe length of the arrowhead at the end of the path
transforman optional transform to apply to the points from the source path as they are being used
extraAccuracyif this is greater than 1.0, it will subdivide the path to a higher resolution, which improves the quality if you'll later want to enlarge the stroked path. So for example, if you're planning on drawing the stroke at 3x the size that you're creating it, you should set this to 3.
See also
createDashedStroke

Definition at line 730 of file juce_PathStrokeType.cpp.

◆ getEndStyle()

EndCapStyle juce::PathStrokeType::getEndStyle ( ) const
noexcept

Returns the end-cap style.

Definition at line 185 of file juce_PathStrokeType.h.

◆ getJointStyle()

JointStyle juce::PathStrokeType::getJointStyle ( ) const
noexcept

Returns the joint style.

Definition at line 179 of file juce_PathStrokeType.h.

◆ getStrokeThickness()

float juce::PathStrokeType::getStrokeThickness ( ) const
noexcept

Returns the stroke thickness.

Definition at line 173 of file juce_PathStrokeType.h.

◆ operator!=()

bool juce::PathStrokeType::operator!= ( const PathStrokeType other) const
noexcept

Compares the stroke thickness, joint and end styles of two stroke types.

Definition at line 64 of file juce_PathStrokeType.cpp.

◆ operator=()

PathStrokeType & juce::PathStrokeType::operator= ( const PathStrokeType other)
noexcept

Copies another stroke onto this one.

Definition at line 46 of file juce_PathStrokeType.cpp.

◆ operator==()

bool juce::PathStrokeType::operator== ( const PathStrokeType other) const
noexcept

Compares the stroke thickness, joint and end styles of two stroke types.

Definition at line 58 of file juce_PathStrokeType.cpp.

◆ setEndStyle()

void juce::PathStrokeType::setEndStyle ( EndCapStyle  newStyle)
noexcept

Sets the end-cap style.

Definition at line 188 of file juce_PathStrokeType.h.

◆ setJointStyle()

void juce::PathStrokeType::setJointStyle ( JointStyle  newStyle)
noexcept

Sets the joint style.

Definition at line 182 of file juce_PathStrokeType.h.

◆ setStrokeThickness()

void juce::PathStrokeType::setStrokeThickness ( float  newThickness)
noexcept

Sets the stroke thickness.

Definition at line 176 of file juce_PathStrokeType.h.


The documentation for this class was generated from the following files: