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
juce_PathIterator.h
Go to the documentation of this file.
1 /*
2 ==============================================================================
3
4 This file is part of the JUCE library.
5 Copyright (c) 2022 - Raw Material Software Limited
6
7 JUCE is an open source library subject to commercial or open-source
8 licensing.
9
10 By using JUCE, you agree to the terms of both the JUCE 7 End-User License
11 Agreement and JUCE Privacy Policy.
12
13 End User License Agreement: www.juce.com/juce-7-licence
14 Privacy Policy: www.juce.com/juce-privacy-policy
15
16 Or: You may also use this code under the terms of the GPL v3 (see
17 www.gnu.org/licenses).
18
19 JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
20 EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
21 DISCLAIMED.
22
23 ==============================================================================
24*/
25
26namespace juce
27{
28
29//==============================================================================
42{
43public:
44 //==============================================================================
56 PathFlatteningIterator (const Path& path,
57 const AffineTransform& transform = AffineTransform(),
58 float tolerance = Path::defaultToleranceForMeasurement);
59
62
63 //==============================================================================
71 bool next();
72
73 float x1;
74 float y1;
75 float x2;
76 float y2;
84
91
93 bool isLastInSubpath() const noexcept;
94
95private:
96 //==============================================================================
97 const Path& path;
98 const AffineTransform transform;
99 const float* source;
100 const float toleranceSquared;
101 float subPathCloseX = 0, subPathCloseY = 0;
102 const bool isIdentityTransform;
103
104 HeapBlock<float> stackBase { 32 };
105 float* stackPos;
106 size_t stackSize = 32;
107
109};
110
111} // namespace juce
Represents a 2D affine-transformation matrix.
Very simple container class to hold a pointer to some data on the heap.
Flattens a Path object into a series of straight-line sections.
bool closesSubPath
Indicates whether the current line segment is closing a sub-path.
float y2
The y position of the end of the current line segment.
float x2
The x position of the end of the current line segment.
float y1
The y position of the start of the current line segment.
float x1
The x position of the start of the current line segment.
int subPathIndex
The index of the current line within the current sub-path.
A path is a sequence of lines and curves that may either form a closed shape or be open-ended.
Definition juce_Path.h:65
#define JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(className)
This is a shorthand way of writing both a JUCE_DECLARE_NON_COPYABLE and JUCE_LEAK_DETECTOR macro for ...
JUCE Namespace.
Type unalignedPointerCast(void *ptr) noexcept
Casts a pointer to another type via void*, which suppresses the cast-align warning which sometimes ar...
Definition juce_Memory.h:88