58 virtual const string name()
const = 0;
127 const string name()
const override;
128 void set(
float x,
float y);
138 LinePath(
float x0,
float y0,
float x1,
float y1);
140 const string name()
const override;
141 void set(
float x0,
float y0,
float x1,
float y1);
155 const string name()
const override;
162 const string name()
const override;
169 const string name()
const override;
189 const string name()
const override;
208 const string name()
const override;
226 const string name()
const override;
234 void setN1(
float n1);
235 void setN2(
float n2);
236 void setN3(
float n3);
259 fl::size
size()
const;
262 const string name()
const override;
272 const vec2f &p3,
float t)
const;
void setRadius(float radius)
const string name() const override
ArchimedeanSpiralPath(u8 turns=3, float radius=1.0f)
vec2f compute(float alpha) override
HeapVector< vec2f > points
void addPoint(float x, float y)
fl::size size() const
Get the number of control points.
CatmullRomParams & params()
fl::shared_ptr< CatmullRomParams > mParams
void clear()
Clear all control points.
vec2f interpolate(const vec2f &p0, const vec2f &p1, const vec2f &p2, const vec2f &p3, float t) const
vec2f compute(float alpha) override
CatmullRomPath(const fl::shared_ptr< CatmullRomParams > &p=fl::make_shared< CatmullRomParams >())
const string name() const override
void addPoint(vec2f p)
Add a point in [0,1]² to the path.
Catmull–Rom spline through arbitrary points.
const string name() const override
vec2f compute(float alpha) override
fl::shared_ptr< GielisCurveParams > mParams
GielisCurveParams & params()
vec2f compute(float alpha) override
GielisCurvePath(const fl::shared_ptr< GielisCurveParams > &p=fl::make_shared< GielisCurveParams >())
const string name() const override
vec2f compute(float alpha) override
const string name() const override
void set(float x0, float y0, float x1, float y1)
vec2f compute(float alpha) override
fl::shared_ptr< LinePathParams > mParams
const string name() const override
LinePath(const LinePathParamsPtr ¶ms=fl::make_shared< LinePathParams >())
LinePathParams & params()
PhyllotaxisParams & params()
fl::shared_ptr< PhyllotaxisParams > mParams
vec2f compute(float alpha) override
const string name() const override
PhyllotaxisPath(const fl::shared_ptr< PhyllotaxisParams > &p=fl::make_shared< PhyllotaxisParams >())
const string name() const override
vec2f compute(float alpha) override
void set(float x, float y)
PointPath(float x, float y)
fl::shared_ptr< RosePathParams > mParams
const string name() const override
RosePath(const fl::shared_ptr< RosePathParams > &p=fl::make_shared< RosePathParams >())
RosePathParams & params()
vec2f compute(float alpha) override
virtual bool hasDrawBounds(rect< i16 > *bounds)
virtual const string name() const =0
virtual vec2f compute(float alpha)=0
virtual ~XYPathGenerator()=default
shared_ptr< T > make_shared(Args &&... args)
#define FASTLED_SMART_PTR(type)
#define FASTLED_UNUSED(x)