Lines Matching defs:BezierCurveN

175 class BezierCurveN
179 static void assert_degree(BezierCurveN<required_degree> const *) {}
185 BezierCurveN() {
190 explicit BezierCurveN(D2<Bezier > const &x) {
195 BezierCurveN(Bezier x, Bezier y) {
200 BezierCurveN(std::vector<Point> const &points) {
211 BezierCurveN(Point c0, Point c1) {
218 BezierCurveN(Point c0, Point c1, Point c2) {
225 BezierCurveN(Point c0, Point c1, Point c2, Point c3) {
241 std::pair<BezierCurveN, BezierCurveN> subdivide(Coord t) const {
244 BezierCurveN(sx.first, sy.first),
245 BezierCurveN(sx.second, sy.second));
257 return new BezierCurveN(*this);
261 return new BezierCurveN<1>(pointAt(f), pointAt(t));
263 return new BezierCurveN(Geom::portion(inner, f, t));
268 return new BezierCurveN<1>(finalPoint(), initialPoint());
270 return new BezierCurveN(Geom::reverse(inner));
291 // BezierCurveN<0> is meaningless; specialize it out
292 template<> class BezierCurveN<0> : public BezierCurveN<1> { private: BezierCurveN();};
298 typedef BezierCurveN<1> LineSegment;
302 typedef BezierCurveN<2> QuadraticBezier;
306 typedef BezierCurveN<3> CubicBezier;
310 Curve *BezierCurveN<degree>::derivative() const {
311 return new BezierCurveN<degree-1>(Geom::derivative(inner[X]), Geom::derivative(inner[Y]));
315 template <> inline bool BezierCurveN<1>::isDegenerate() const {
318 template <> inline bool BezierCurveN<1>::isLineSegment() const { return true; }
319 template <> Curve *BezierCurveN<1>::derivative() const;
320 template <> Coord BezierCurveN<1>::nearestTime(Point const &, Coord, Coord) const;
321 template <> std::vector<CurveIntersection> BezierCurveN<1>::intersect(Curve const &, Coord) const;
322 template <> int BezierCurveN<1>::winding(Point const &) const;
323 template <> void BezierCurveN<1>::feed(PathSink &sink, bool moveto_initial) const;
324 template <> void BezierCurveN<2>::feed(PathSink &sink, bool moveto_initial) const;
325 template <> void BezierCurveN<3>::feed(PathSink &sink, bool moveto_initial) const;