Loading...
Searching...
No Matches
juce::PathFlatteningIterator Class Referencefinal

## Detailed Description

Flattens a Path object into a series of straight-line sections.

Use one of these to iterate through a Path object, and it will convert all the curves into line sections so it's easy to render or perform geometric operations on.

See also
  Path

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

- juce_graphics/geometry/juce_PathIterator.h

## Public Member Functions

| PathFlatteningIterator (const Path &path, const AffineTransform &transform=AffineTransform(), float tolerance=Path::defaultToleranceForMeasurement)
| Creates a PathFlatteningIterator.
| ~PathFlatteningIterator ()
| Destructor.
bool | next ()
| Fetches the next line segment from the path.
bool | isLastInSubpath () const noexcept
| Returns true if the current segment is the last in the current sub-path.

## Public Attributes

float | x1
| The x position of the start of the current line segment.
float | y1
| The y position of the start of the current line segment.
float | x2
| The x position of the end of the current line segment.
float | y2
| The y position of the end of the current line segment.
bool | closesSubPath
| Indicates whether the current line segment is closing a sub-path.
int | subPathIndex
| The index of the current line within the current sub-path.

## Constructors and Destructors

## PathFlatteningIterator()

juce::PathFlatteningIterator::PathFlatteningIterator | ( | const Path & | path,
|  | const AffineTransform & | transform = AffineTransform(),
|  | float | tolerance = Path::defaultToleranceForMeasurement )

Creates a PathFlatteningIterator.

After creation, use the next() method to initialise the fields in the object with the first line's position.

Parameters

  path | the path to iterate along
  transform | a transform to apply to each point in the path being iterated
  tolerance | the amount by which the curves are allowed to deviate from the lines into which they are being broken down - a higher tolerance contains less lines, so can be generated faster, but will be less smooth.

References juce::Path::defaultToleranceForMeasurement.

## ~PathFlatteningIterator()

juce::PathFlatteningIterator::~PathFlatteningIterator | ( |  | ) |

Destructor.

## Member Functions

## next()

bool juce::PathFlatteningIterator::next | ( |  | ) |

Fetches the next line segment from the path.

This will update the member variables x1, y1, x2, y2, subPathIndex and closesSubPath so that they describe the new line segment.

Returns
  false when there are no more lines to fetch.

## isLastInSubpath()

bool juce::PathFlatteningIterator::isLastInSubpath | ( |  | ) | const

noexcept

Returns true if the current segment is the last in the current sub-path.

## Member Data Documentation

## x1

float juce::PathFlatteningIterator::x1

The x position of the start of the current line segment.

## y1

float juce::PathFlatteningIterator::y1

The y position of the start of the current line segment.

## x2

float juce::PathFlatteningIterator::x2

The x position of the end of the current line segment.

## y2

float juce::PathFlatteningIterator::y2

The y position of the end of the current line segment.

## closesSubPath

bool juce::PathFlatteningIterator::closesSubPath

Indicates whether the current line segment is closing a sub-path.

If the current line is the one that connects the end of a sub-path back to the start again, this will be true.

## subPathIndex

int juce::PathFlatteningIterator::subPathIndex

The index of the current line within the current sub-path.

E.g. you can use this to see whether the line is the first one in the subpath by seeing if it's 0.

### Purchase

Get JUCE

### Discover

What's New in JUCE Features

### Learn

Documentaion Tutorials Made with JUCE Resources

### Support

JUCE Forum Newsletter Archive

### About

Contact Us JUCE Legal JUCE Licensing FAQ

### Events

Audio Developer Conference
© Raw Material Software Limited