コード例 #1
0
ファイル: Poly2TriTessellator.cs プロジェクト: Vengarioth/XUI
        public static VectorMesh TriangulateShape(Shape shape)
        {
            P2T.CreateContext(TriangulationAlgorithm.DTSweep);

            var vertexBufferGenerator = new BufferGenerator();
            var indexBufferGenerator = new BufferGenerator();
            int indexCount = 0;

            foreach(var path in shape.Paths)
            {
                AddPathToBuffers(path, vertexBufferGenerator, indexBufferGenerator, ref indexCount);
            }

            var vertexBuffer = BufferFactory.Allocate(BufferTarget.ArrayBuffer, BufferUsageHint.StaticDraw, vertexBufferGenerator.GetBuffer());
            var indexBuffer = BufferFactory.Allocate(BufferTarget.ElementArrayBuffer, BufferUsageHint.StaticDraw, indexBufferGenerator.GetBuffer());

            return new VectorMesh(vertexBuffer, indexBuffer, indexCount);
        }