FarseerPhysics.Common.Decomposition.CDT.Delaunay.Sweep.DTSweepContext.CreateAdvancingFront C# (CSharp) Method

CreateAdvancingFront() public method

public CreateAdvancingFront ( ) : void
return void
        public void CreateAdvancingFront()
        {
            AdvancingFrontNode head, tail, middle;
            // Initial triangle
            DelaunayTriangle iTriangle = new DelaunayTriangle(Points[0], Tail, Head);
            Triangles.Add(iTriangle);

            head = new AdvancingFrontNode(iTriangle.points[1]);
            head.Triangle = iTriangle;
            middle = new AdvancingFrontNode(iTriangle.points[0]);
            middle.Triangle = iTriangle;
            tail = new AdvancingFrontNode(iTriangle.points[2]);

            aFront = new AdvancingFront(head, tail);
            aFront.AddNode(middle);

            // TODO: I think it would be more intuitive if head is middles next and not previous
            //       so swap head and tail
            aFront.Head.Next = middle;
            middle.Next = aFront.Tail;
            middle.Prev = aFront.Head;
            aFront.Tail.Prev = middle;
        }

Usage Example

Example #1
0
        /// <summary>
        /// Triangulate simple polygon with holes
        /// </summary>
        public static void Triangulate(DTSweepContext tcx)
        {
            tcx.CreateAdvancingFront();

            Sweep(tcx);

            // Finalize triangulation
            if (tcx.TriangulationMode == TriangulationMode.Polygon)
            {
                FinalizationPolygon(tcx);
            }
            else
            {
                FinalizationConvexHull(tcx);
            }

            tcx.Done();
        }
All Usage Examples Of FarseerPhysics.Common.Decomposition.CDT.Delaunay.Sweep.DTSweepContext::CreateAdvancingFront