IpeBezier::IpeBezier | ( | ) | [inline] |
Default constructor, uninitialized curve.
IpeBezier::IpeBezier | ( | const IpeVector & | p0, | |
const IpeVector & | p1, | |||
const IpeVector & | p2, | |||
const IpeVector & | p3 | |||
) | [inline] |
Constructor with four control points.
IpeVector IpeBezier::Point | ( | double | t | ) | const |
Return point on curve with parameter t (from 0.0 to 1.0).
double IpeBezier::Distance | ( | const IpeVector & | v, | |
double | bound | |||
) |
Return distance to Bezier spline.
But may just return bound if actual distance is larger.
bool IpeBezier::Straight | ( | double | precision | ) | const |
Returns true if the Bezier curve is nearly identical to the line segment iV[0]..iV[3].
Subdivide this Bezier curve in the middle.
void IpeBezier::Approximate | ( | double | precision, | |
std::vector< IpeVector > & | result | |||
) | const |
Approximate by a polygonal chain.
result must be empty when calling this.
IpeRect IpeBezier::BBox | ( | ) | const |
Return a tight bounding box (accurate to within 0.5).
IpeBezier IpeBezier::QuadBezier | ( | const IpeVector & | p0, | |
const IpeVector & | p1, | |||
const IpeVector & | p2 | |||
) | [static] |
Convert a quadratic Bezier-spline to a cubic one.
The quadratic Bezier-spline with control points p0, p1, p2 is identical to the cubic Bezier-spline with control points q0 = p0, q1 = (2p1 + p0)/3, q2 = (2p1 + p2)/3, q3 = p2.
Convert a uniform cubic B-spline to a series of Bezier splines.
First and last control point are given multiplicity 3. Bezier splines are appended to result.
void IpeBezier::ClosedSpline | ( | int | n, | |
const IpeVector * | v, | |||
std::vector< IpeBezier > & | result | |||
) | [static] |
Convert a closed uniform cubic B-spline to a series of Bezier splines.
Bezier splines are appended to result.