 |
CUGL 1.3
Cornell University Game Library
|
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);
218 _points(std::move(spline._points)), _smooth(std::move(spline._smooth)) {}
226 #pragma mark Assignment Operators
244 _size = spline._size; _closed = spline._closed;
245 _points = std::move(spline._points);
246 _smooth = std::move(spline._smooth);
349 #pragma mark Attribute Accessors
543 void setTangent(
int index,
const Vec2& tang,
bool symmetric=
false);
595 #pragma mark Anchor Editting Methods
671 _points.clear(); _smooth.clear();
672 _closed =
false; _size = 0;
676 #pragma mark Nearest Point Methods
739 #pragma mark Internal Helpers
789 void subdivide(
int segment,
float tp, std::vector<Vec2>& left, std::vector<Vec2>& rght)
const {
790 subdivide(_points,6*segment,tp,left,rght);
810 static void subdivide(
const std::vector<Vec2>& src,
int soff,
float tp,
811 std::vector<Vec2>& left, std::vector<Vec2>& rght);
int addAnchor(const Vec2 &point)
Definition: CUCubicSpline.h:611
Vec2 getProjectionSlow(const Vec2 &point, int segment) const
float nearestParameter(const Vec2 &point) const
Vec2 getProjectionFast(const Vec2 &point, int segment) const
Definition: CUCubicSplineApproximator.h:70
CubicSpline(CubicSpline &&spline)
Definition: CUCubicSpline.h:217
void setTangent(int index, const Vec2 &tang, bool symmetric=false)
CubicSpline()
Definition: CUCubicSpline.h:125
void setPoint(float tp, const Vec2 &point)
Vec2 getPoint(float tp) const
Definition: CUCubicSpline.h:405
const std::vector< Vec2 > getControlPoints() const
Definition: CUCubicSpline.h:591
void deleteAnchor(int index)
CubicSpline & set(const Vec2 &point)
Definition: CUCubicSpline.h:260
int getSize() const
Definition: CUCubicSpline.h:358
CubicSpline & operator=(const CubicSpline &spline)
Definition: CUCubicSpline.h:234
Polynomial getPolynomialX(int segment) const
~CubicSpline()
Definition: CUCubicSpline.h:223
bool isClosed() const
Definition: CUCubicSpline.h:374
Definition: CUPolynomial.h:67
Polynomial getProjectionPolynomial(const Vec2 &point, int segment) const
Definition: CUCubicSpline.h:88
Vec2 getAnchor(int index) const
void setClosed(bool flag)
void subdivide(int segment, float tp, std::vector< Vec2 > &left, std::vector< Vec2 > &rght) const
Definition: CUCubicSpline.h:789
int nearestTangent(const Vec2 &point, float threshold) const
bool getSmooth(int index) const
CubicSpline(const Vec2 &point)
Definition: CUCubicSpline.h:135
void setAnchor(int index, const Vec2 &point)
Polynomial getPolynomialY(int segment) const
void setSmooth(int index, bool flag)
CubicSpline & operator=(CubicSpline &&spline)
Definition: CUCubicSpline.h:243
Vec2 getTangent(int index) const
void insertAnchor(float param)
Definition: CUCubicSpline.h:665
int nearestAnchor(const Vec2 &point, float threshold) const
void clear()
Definition: CUCubicSpline.h:670
Vec2 nearestPoint(const Vec2 &point) const
Definition: CUCubicSpline.h:694