24 coordArray.push_back(s);
50 for (
int i = 0; i < n - 1; i++)
90 float unit = 1.0f / 15.0f;
92 for (t = 0; t < 1; t += unit)
104 for (
int i = 0; i < x - 1; i++)
106 Pf.
x = (P[i + 1].
x - P[i].
x) * t + P[i].x;
107 Pf.
y = (P[i + 1].
y - P[i].
y) * t + P[i].y;
113 bezierSet.push_back(Pf);
119 std::vector<Coord2D> temp;
121 if (
mClose && temp.size() >= 3)
140 double addTempLength = 0;
169 double per = 1 - subL / curLineL;
171 P.
x = per * (pointSet[ep.
second].x - pointSet[ep.
first].x) + pointSet[ep.
first].x;
172 P.
y = per * (pointSet[ep.
second].y - pointSet[ep.
first].y) + pointSet[ep.
first].y;
195 int ptnum = coordSet.size();
196 for (
size_t i = 0; i < ptnum; i++)
216 N[0] = coordSet[s].x - coordSet[id].x;
217 N[1] = coordSet[s].y - coordSet[id].y;
219 else if (
id == ptnum - 1)
221 N[0] = coordSet[id].x - coordSet[f].x;
222 N[1] = coordSet[id].y - coordSet[f].y;
226 N[0] = coordSet[s].x - coordSet[f].x;
227 N[1] = coordSet[s].y - coordSet[f].y;
232 double length = 0.05;
246 std::vector<Coord2D> temp;
250 int n = BezierPtSet.size();
251 if (BezierPtSet.size())
253 for (
size_t k = 0; k < n - 1; k++)
257 length +=
sqrt(std::pow((BezierPtSet[f].x - BezierPtSet[e].x), 2) + std::pow((BezierPtSet[f].y - BezierPtSet[e].y), 2));
void updateResampleLinearLine()
std::vector< Coord2D > mResamplePoint
std::map< float, EndPoint > mLength_EndPoint_Map
void addFloatItemToCoord(float x, float y, std::vector< Coord2D > &coordArray)
void setInterpMode(bool useBezier)
Canvas::Interpolation mInterpMode
void rebuildHandlePoint(std::vector< Coord2D > coordSet)
std::vector< Coord2D > mBezierPoint
void addPoint(float x, float y)
std::vector< Coord2D > mUserHandle
std::vector< double > mLengthArray
std::vector< Coord2D > mUserCoord
virtual void updateBezierCurve()
void buildSegMent_Length_Map(std::vector< Coord2D > BezierPtSet)
void resamplePointFromLine(std::vector< Coord2D > pointSet)
void updateBezierPointToBezierSet(Coord2D p0, Coord2D p1, Coord2D p2, Coord2D p3, std::vector< Coord2D > &bezierSet)
void addPointAndHandlePoint(Coord2D point, Coord2D handle_1, Coord2D handle_2)
virtual void UpdateFieldFinalCoord()
DYN_FUNC Complex< Real > sqrt(const Complex< Real > &)
void set(double a, double b)