22#include "Bezier/bezier.h"
23#include "Bezier/declarations.h"
176 double length(
double t1,
double t2)
const;
184 double step(
double t,
double ds)
const;
A Bezier curve class.
Definition bezier.h:37
A Bezier polycurve class.
Definition polycurve.h:39
std::deque< Curve > curves_
Structure for holding underlying Bezier curves.
Definition polycurve.h:310
unsigned size() const
Get number of subcurves.
double curvatureAt(double t) const
Get curvature of the polycurve for a given t.
Point valueAt(double t) const
Get the point on polycurve for a given t.
double distance(const Point &point) const
Get distance of the point to the polycurve.
ParamVector polylineParams(double flatness) const
Get curve parameters corresponding to polyline points.
PointVector intersections(const Curve &curve) const
Get the points of intersection with another curve or polycurve.
std::deque< Curve > & curves()
Get list of all subcurves.
void insertFront(Curve curve)
Insert new curve at the beginning of the polycurve.
void removeFirst()
Remove a subcurve from the beginning of the polycurve.
Curve & curve(unsigned idx)
Get a subcurve.
PointVector polyline(double flatness) const
Get a polyline representation of the polycurve as a vector of points on curve.
void insertBack(Curve curve)
Insert new curve at the end of the polycurve.
void setControlPoint(unsigned idx, const Point &point)
Set the new coordinates to a control point.
Vector normalAt(double t) const
Get the unit normal of the polycurve for a given t.
void removeBack()
Remove a subcurve from the end of the polycurve.
PolyCurve(std::deque< Curve > curves)
Create the Bezier polycurve from deque of curves.
PointVector polyline() const
Get a polyline representation of the polycurve as a vector of points on curve.
std::vector< double > distance(const PointVector &point_vector) const
Get the distance vector of points to the polycurve.
PointVector controlPoints() const
Get the control points of all subcurves.
Vector derivativeAt(double t) const
Get value of a derivative for a given t.
const Curve & curve(unsigned idx) const
Get a subcurve.
double length() const
Compute exact arc length using Chebyshev polynomials.
ParamVector projectPoint(const PointVector &point_vector) const
Get the parameter t vector where polycurve is closest to given points.
BoundingBox boundingBox() const
Get the bounding box of the polycurve.
void insertAt(unsigned idx, Curve curve)
Insert new curve into polycurve.
double projectPoint(const Point &point) const
Get the parameter t where polycurve is closest to given point.
Vector derivativeAt(unsigned n, double t) const
Get value of an nth derivative for a given t.
double length(double t1, double t2) const
Compute exact arc length using Chebyshev polynomials.
PointVector intersections(const PolyCurve &curve) const
Get the points of intersection with another curve or polycurve.
std::pair< Point, Point > endPoints() const
Get first and last control points.
ParamVector polylineParams() const
Get curve parameters corresponding to polyline points.
const std::deque< Curve > & curves() const
Get list of all subcurves.
double length(double t) const
Compute exact arc length using Chebyshev polynomials.
double step(double t, double ds) const
Compute parameter t which is ds distance from given t.
void removeAt(unsigned idx)
Remove a subcurve from the polycurve.
PointVector valueAt(const ParamVector &t_vector) const
Get the point vector on polycurve for given parameters.
unsigned curveIdx(double t) const
Resolve polycurve parameter to subcurve index.
double curvatureDerivativeAt(double t) const
Get curvature derivative of the polycurve for a given t.
Vector tangentAt(double t) const
Get the unit tangent of the polycurve for a given t.
Eigen::Vector2d Point
Point in xy plane.
Definition declarations.h:40
std::vector< double > ParamVector
A vector of curve parameters.
Definition declarations.h:50
std::vector< Point > PointVector
A vector of Points.
Definition declarations.h:45
Eigen::AlignedBox2d BoundingBox
Bounding box class.
Definition declarations.h:60
Eigen::Vector2d Vector
A Vector in xy plane.
Definition declarations.h:55