Пример #1
0
        public Mesh()
        {
            var v = _vHead = new MeshUtils.Vertex();
            var f = _fHead = new MeshUtils.Face();

            var pair = MeshUtils.EdgePair.Create();
            var e = _eHead = pair._e;
            var eSym = _eHeadSym = pair._eSym;

            v._next = v._prev = v;
            f._next = f._prev = f;

            e._next = e;
            e._Sym = eSym;

            eSym._next = eSym;
            eSym._Sym = e;
        }
Пример #2
0
Файл: Mesh.cs Проект: D021/ink
        public Mesh()
        {
            var v = _vHead = new MeshUtils.Vertex();
            var f = _fHead = new MeshUtils.Face();

            var pair = MeshUtils.EdgePair.Create();
            var e = _eHead = pair._e;
            var eSym = _eHeadSym = pair._eSym;

            v._next = v._prev = v;
            v._anEdge = null;

            f._next = f._prev = f;
            f._anEdge = null;
            f._trail = null;
            f._marked = false;
            f._inside = false;

            e._next = e;
            e._Sym = eSym;
            e._Onext = null;
            e._Lnext = null;
            e._Org = null;
            e._Lface = null;
            e._winding = 0;
            e._activeRegion = null;

            eSym._next = eSym;
            eSym._Sym = e;
            eSym._Onext = null;
            eSym._Lnext = null;
            eSym._Org = null;
            eSym._Lface = null;
            eSym._winding = 0;
            eSym._activeRegion = null;
        }
Пример #3
0
 public static bool EdgeGoesRight(MeshUtils.Edge e)
 {
     return(VertLeq(e._Org, e._Dst));
 }
Пример #4
0
 public static void AddWinding(MeshUtils.Edge eDst, MeshUtils.Edge eSrc)
 {
     eDst._winding      += eSrc._winding;
     eDst._Sym._winding += eSrc._Sym._winding;
 }
Пример #5
0
 public static bool EdgeGoesLeft(MeshUtils.Edge e)
 {
     return(VertLeq(e._Dst, e._Org));
 }