Lines Matching refs:inner
49 D2<Bezier> inner;
51 BezierCurve(Bezier const &x, Bezier const &y) : inner(x, y) {}
55 explicit BezierCurve(D2<Bezier> const &b) : inner(b) {}
61 unsigned order() const { return inner[X].order(); }
63 unsigned size() const { return inner[X].order() + 1; }
67 Point controlPoint(unsigned ix) const { return Point(inner[X][ix], inner[Y][ix]); }
68 Point operator[](unsigned ix) const { return Point(inner[X][ix], inner[Y][ix]); }
71 std::vector<Point> controlPoints() const { return bezier_points(inner); }
72 D2<Bezier> const &fragment() const { return inner; }
78 inner[X][ix] = v[X];
79 inner[Y][ix] = v[Y];
105 virtual Point initialPoint() const { return inner.at0(); }
106 virtual Point finalPoint() const { return inner.at1(); }
111 virtual Rect boundsFast() const { return *bounds_fast(inner); }
112 virtual Rect boundsExact() const { return *bounds_exact(inner); }
116 if(deg == 0) return bounds_local(inner, i);
118 if(deg == 1 && order() > 1) return OptRect(bounds_local(Geom::derivative(inner[X]), i),
119 bounds_local(Geom::derivative(inner[Y]), i));
126 return new BezierCurve(Geom::portion(inner, f, t));
129 return new BezierCurve(Geom::reverse(inner));
135 inner[X][i] += tr[X];
136 inner[Y][i] += tr[Y];
141 inner[X][i] *= s[X];
142 inner[Y][i] *= s[Y];
152 return new BezierCurve(Geom::derivative(inner[X]), Geom::derivative(inner[Y]));
158 return (inner[d] - v).roots();
163 virtual Point pointAt(Coord t) const { return inner.pointAt(t); }
165 return inner.valueAndDerivatives(t, n);
167 virtual Coord valueAt(Coord t, Dim2 d) const { return inner[d].valueAt(t); }
168 virtual D2<SBasis> toSBasis() const {return inner.toSBasis(); }
186 inner = D2<Bezier>(Bezier(Bezier::Order(degree)), Bezier(Bezier::Order(degree)));
191 inner = x;
196 inner = D2<Bezier > (x,y);
204 inner[d] = Bezier(Bezier::Order(ord));
206 inner[d][i] = points[i][d];
214 inner[d] = Bezier(c0[d], c1[d]);
221 inner[d] = Bezier(c0[d], c1[d], c2[d]);
228 inner[d] = Bezier(c0[d], c1[d], c2[d], c3[d]);
242 std::pair<Bezier, Bezier> sx = inner[X].subdivide(t), sy = inner[Y].subdivide(t);
263 return new BezierCurveN(Geom::portion(inner, f, t));
270 return new BezierCurveN(Geom::reverse(inner));
311 return new BezierCurveN<degree-1>(Geom::derivative(inner[X]), Geom::derivative(inner[Y]));
316 return inner[X][0] == inner[X][1] && inner[Y][0] == inner[Y][1];