41 #ifndef __CU_CUBIC_SPLINE_H__
42 #define __CU_CUBIC_SPLINE_H__
44 #include "CUMathBase.h"
102 std::vector<Vec2> _points;
108 std::vector<bool> _smooth;
118 #pragma mark Constructors
169 CubicSpline(
const float* points,
int size,
int offset=0);
219 #pragma mark Attribute Accessors
413 void setTangent(
int index,
const Vec2& tang,
bool symmetric=
false);
465 #pragma mark Anchor Editting Methods
541 _points.clear(); _smooth.clear();
542 _closed =
false; _size = 0;
546 #pragma mark Nearest Point Methods
609 #pragma mark Internal Helpers
659 void subdivide(
int segment,
float tp, std::vector<Vec2>& left, std::vector<Vec2>& rght)
const {
660 subdivide(_points,6*segment,tp,left,rght);
680 static void subdivide(
const std::vector<Vec2>& src,
int soff,
float tp,
681 std::vector<Vec2>& left, std::vector<Vec2>& rght);
Vec2 getProjectionSlow(const Vec2 &point, int segment) const
void setClosed(bool flag)
Vec2 getPoint(float tp) const
Definition: CUCubicSpline.h:275
int getSize() const
Definition: CUCubicSpline.h:228
int addAnchor(const Vec2 &point)
Definition: CUCubicSpline.h:481
void deleteAnchor(int index)
bool getSmooth(int index) const
Vec2 nearestPoint(const Vec2 &point) const
Definition: CUCubicSpline.h:564
void setTangent(int index, const Vec2 &tang, bool symmetric=false)
const std::vector< Vec2 > getControlPoints() const
Definition: CUCubicSpline.h:461
void clear()
Definition: CUCubicSpline.h:540
void subdivide(int segment, float tp, std::vector< Vec2 > &left, std::vector< Vec2 > &rght) const
Definition: CUCubicSpline.h:659
Polynomial getPolynomialX(int segment) const
Definition: CUPolynomial.h:67
void setPoint(float tp, const Vec2 &point)
Vec2 getAnchor(int index) const
int nearestTangent(const Vec2 &point, float threshold) const
Vec2 getTangent(int index) const
int nearestAnchor(const Vec2 &point, float threshold) const
Vec2 getProjectionFast(const Vec2 &point, int segment) const
~CubicSpline()
Definition: CUCubicSpline.h:215
bool isClosed() const
Definition: CUCubicSpline.h:244
Polynomial getProjectionPolynomial(const Vec2 &point, int segment) const
Polynomial getPolynomialY(int segment) const
Definition: CUCubicSpline.h:88
CubicSpline(const Vec2 &point)
Definition: CUCubicSpline.h:135
float nearestParameter(const Vec2 &point) const
void setAnchor(int index, const Vec2 &point)
Definition: CUAnimationNode.h:52
void insertAnchor(float param)
Definition: CUCubicSpline.h:535
void setSmooth(int index, bool flag)
Definition: CUCubicSplineApproximator.h:70
CubicSpline()
Definition: CUCubicSpline.h:125