/// <summary> /// Converts pen to algorithm's representation. /// </summary> /// <param name="canvas"></param> /// <returns></returns> public OutlineTesselation.TesselationOptionsf ToOutlineTesselationOptions(ICanvasInfo canvas) { OutlineTesselation.TesselationOptionsf t = new OutlineTesselation.TesselationOptionsf(); t.OutlineType = OutlineType.Line; t.OutlineEnd = OutlineEnd.Square; t.LineThickness = widthInCanvas + canvas.ToCanvasSize(widthInPixels); return(t); }
/// <summary> /// Acquires a tesselated outline. /// </summary> /// <param name="width">The width of outline.</param> /// <param name="resolution"></param> /// <returns></returns> public TriangleSoup2f AcquireOutline(float resolution, OutlineTesselation.TesselationOptionsf options) { // For now caching is not supported. TriangleSoup2f soup = new TriangleSoup2f(); outline.TesselateOutline(resolution, options, soup); return(soup); }
//#ifdef TesselationOptions /// <summary> /// Tesselates an outline. /// </summary> /// <param name="resolution"></param> /// <param name="options"></param> public void TesselateOutline(float resolution, OutlineTesselation.TesselationOptionsf options, Storage.Builders.ITriangleBuilder2f builder) { // We first generate contours. ContourBuilder contourBuilder = new ContourBuilder(); Sample(resolution, contourBuilder); // Now we create outlines for each contour. for (int i = 0; i < contourBuilder.Contours.Count; i++) { OutlineTesselation.Tesselate(contourBuilder.Contours[i], options, builder); } }