12 #ifndef __BEZIER_HPP__
13 #define __BEZIER_HPP__
26 std::vector<Point3d> _bezierV;
27 std::vector<uint> _binomV;
30 Bezier() : _bezPoints(5 ,5), _bezSize(20 ,20), _bezierV(0), _binomV(0) {}
66 if(points.size() == _bezierV.size()) {
71 const std::vector<Point3d>&
bezierV()
const {
79 return _bezierV[idx(u, v)];
82 return _bezierV[idx(u, v)];
93 void readParms(
Parms& parms, QString section);
95 void loadBezier(QString filename);
96 void saveBezier(QString filename);
99 void scale(
float ScaleX,
float ScaleY);
103 double scale1,
double scale2,
double s);
108 Point3d evalCoord(
float u,
float v)
const;
109 Point3d evalCoordTrim(
double& u,
double& v);
111 Point3d evalCoordSpline(
double u,
double v);
115 return (v * _bezPoints.
x() + u);
119 void discretizeLine(
int discPoints,
double vPos,
Matrix4d rotMat,
120 std::vector<Point3d>& discretizedBez, std::vector<Point3d>& differentialBez);
124 void discretizeLineEqualWeight(
int discPoints,
double vPos,
Matrix4d rotMat,
125 std::vector<Point3d>& discretizedBez, std::vector<Point3d>& differentialBez,
double& totalLength);
128 void discretizeGrid(
int discPoints,
Matrix4d rotMat,
129 std::vector<std::vector<Point3d> >& discretizedBez);