Esempio n. 1
0
    private MTriangle GetTriangle(int index)
    {
        var t = new MTriangle();

        if (triangles.Length < (index * 3 + 2) || index == -1)
        {
            Debug.LogWarning("Trying to access " + index + " but " + (index * 3 + 2) + " > " + triangles.Length);
        }
        t[0] = triangles[index * 3 + 0];
        t[1] = triangles[index * 3 + 1];
        t[2] = triangles[index * 3 + 2];
        return(t);
    }
Esempio n. 2
0
    private int getNeighboringTriangle(int vertex, MTriangle mTriangle)
    {
        var triangleCandidates = g.getTrianglesAt(vertex);

        foreach (var t in triangleCandidates)
        {
            PolygonSide side;
            if (mTriangle.isNeighbor(GetTriangle(t), out side))
            {
                Debug.Log("Is neighbor at side " + side);
                return(t);
            }
        }
        Debug.LogError("Not a neighbor");
        return(-1);
    }
Esempio n. 3
0
 private bool isLHS(MTriangle mTriangle, PolygonSide pairEntry, int vertexExit)
 {
     foreach (var side in mTriangle.GetSides())
     {
         if (pairEntry.SameAs(side))
         {
             if (vertexExit == side.left)
             {
                 return(false);
             }
             else if (vertexExit == side.right)
             {
                 return(true);
             }
         }
     }
     return(false);
 }
Esempio n. 4
0
    internal bool isNeighbor(MTriangle t2, out PolygonSide neighbor)
    {
        var sides = GetSides();

        foreach (var side in sides)
        {
            if (t2.innerList.Contains(side.left) && t2.innerList.Contains(side.right))
            {
                neighbor = side;
                return(true);
            }
        }

        // var intersect = this.innerList.Intersect (t2.innerList).ToList ();
        // if (intersect.Count == 2) {
        //  neighbor = new Pair<int> (intersect[0], intersect[1]);
        //  return true;
        // } else {
        neighbor = null;
        return(false);
        // }
    }