예제 #1
0
            /// <summary>
            ///
            /// </summary>
            /// <param name="face"></param>
            public void Triangulate(F face)
            {
                face.UnusedCheck();
                _mesh.Faces.OwnsCheck(face);

                var he0 = _getStart(face);
                var he1 = he0.Next.Next;

                while (he1.Next != he0)
                {
                    he0 = _mesh.SplitFaceImpl(he0, he1).Previous;
                    if (he1.Next == he0)
                    {
                        break;
                    }

                    he0 = _mesh.SplitFaceImpl(he0, he1);
                    he1 = he1.Next;
                }
            }
            /// <inheritdoc />
            public void Quadrangulate(F face)
            {
                face.UnusedCheck();
                _mesh.Faces.OwnsCheck(face);

                var he0 = _getStart(face);
                var he1 = he0.Next.Next.Next;

                while (he1 != he0 && he1.Next != he0)
                {
                    he0 = _mesh.SplitFaceImpl(he0, he1).Previous;
                    he1 = he1.Next;
                }
            }