public ShapeBuilder Flatten(CurveFlattener flattener) { VxsTemp.Borrow(out VertexStore v2); flattener.MakeVxs(_vxs, v2); VxsTemp.ReleaseVxs(_vxs); _vxs = v2; return(this); }
public ShapeBuilder Stroke(Stroke stroke) { VxsTemp.Borrow(out VertexStore v2); stroke.MakeVxs(_vxs, v2); VxsTemp.ReleaseVxs(_vxs); _vxs = v2; return(this); }
public void Reset() { if (_vxs != null) { VxsTemp.ReleaseVxs(_vxs); _vxs = null; } }
public ShapeBuilder Stroke(float width) { VxsTemp.Borrow(out VertexStore v2); using (VectorToolBox.Borrow(out Stroke stroke)) { stroke.Width = width; stroke.MakeVxs(_vxs, v2); } VxsTemp.ReleaseVxs(_vxs); _vxs = v2; return(this); }
public ShapeBuilder Scale(float s) { VxsTemp.Borrow(out VertexStore v2); Affine aff = Affine.NewScaling(s, s); aff.TransformToVxs(_vxs, v2); //release _vxs VxsTemp.ReleaseVxs(_vxs); _vxs = v2; return(this); }
public ShapeBuilder TranslateToNewVxs(double dx, double dy) { VxsTemp.Borrow(out VertexStore v2); int count = _vxs.Count; VertexCmd cmd; for (int i = 0; i < count; ++i) { cmd = _vxs.GetVertex(i, out double x, out double y); x += dx; y += dy; v2.AddVertex(x, y, cmd); } VxsTemp.ReleaseVxs(_vxs); _vxs = v2; return(this); }