示例#1
0
        /// <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);
        }
示例#2
0
        /// <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);
            }
        }