Example #1
0
        private void button7_Click(object sender, EventArgs e)
        {
            var builder = new PixelFarm.CpuBlit.VertexProcessing.SimpleRectBorderBuilder();

            builder.SetBorderWidth(6);
            builder.RightBorderWidth   = 14;
            builder.BottomBorderHeight = 3;
            float[] coords = new float[16];

            builder.BuildAroundInnerRefBounds(0, 0, 30, 30, coords);
            //builder.BuildAroundOuterRefBounds(10, 10, 30, 30, coords);
            //builder.BuildOverRefBounds(10, 10, 30, 30, coords);

            //
            TessTest.TessListener t01      = new TessTest.TessListener();
            Tesselate.Tesselator  tess     = new Tesselate.Tesselator();
            List <Vertex>         vertexts = new List <Vertex>();

            for (int i = 0; i < coords.Length;)
            {
                vertexts.Add(new Vertex(coords[i], coords[i + 1]));
                i += 2;
            }
            //------------------

            t01.Connect(vertexts, tess, Tesselate.Tesselator.WindingRuleType.Odd, true);

            //polygon1
            tess.BeginPolygon();
            //------------------------------------
            //contour1
            tess.BeginContour();
            int start_at  = 0;
            int endBefore = start_at + 4;

            for (int i = start_at; i < endBefore; ++i)
            {
                Vertex v = vertexts[i];
                tess.AddVertex(v.m_X, v.m_Y, 0, i);
            }
            tess.EndContour();
            //------------------------------------
            //contour 2
            tess.BeginContour();
            start_at  = 4;
            endBefore = vertexts.Count;
            for (int i = start_at; i < endBefore; ++i)
            {
                Vertex v = vertexts[i];
                tess.AddVertex(v.m_X, v.m_Y, 0, i);
            }
            tess.EndContour();
            tess.EndPolygon();
            //---------------------------
            //save final images
            SaveToImage(null, t01.resultVertexList, 1, 0, 0);
            //---------------------------
        }
Example #2
0
        private void button6_Click(object sender, EventArgs e)
        {
            var builder = new PixelFarm.CpuBlit.VertexProcessing.SimpleRectBorderBuilder();

            builder.SetBorderWidth(6);
            builder.RightBorderWidth   = 14;
            builder.BottomBorderHeight = 3;
            float[] coords = new float[16];
            builder.BuildAroundInnerRefBounds(0, 0, 30, 30, coords);

            _lineColor = Color.Red;
            //
            //skip tess,we use prebuilt index
            //---------------------------
            //save final images
            SaveToImage(null,
                        coords,
                        PixelFarm.CpuBlit.VertexProcessing.SimpleRectBorderBuilder.PrebuiltRectTessIndices,
                        1, 0, 0);
            //---------------------------
            _lineColor = Color.Black;
        }