示例#1
0
        int FindNeighbor(NativeArray <int3> cells, int count, int a, int b, int c)
        {
            int x = a, y = b, z = c;

            if (b < c)
            {
                if (b < a)
                {
                    x = b;
                    y = c;
                    z = a;
                }
            }
            else if (c < a)
            {
                x = c;
                y = a;
                z = b;
            }

            if (x < 0)
            {
                return(-1);
            }

            int3 key;

            key.x = x;
            key.y = y;
            key.z = z;
            return(UTess.GetEqual(cells, count, key, new TestCellE()));
        }
示例#2
0
        bool MergeHulls(NativeArray <UHull> hulls, ref int hullCount, NativeArray <float2> points, UEvent evt)
        {
            float2 temp = evt.a;

            evt.a = evt.b;
            evt.b = temp;
            int index = UTess.GetEqual(hulls, hullCount, evt, new TestHullEventE());

            if (index < 0)
            {
                return(false);
            }

            UHull upper = hulls[index];
            UHull lower = hulls[index - 1];

            lower.iucount = upper.iucount;
            for (int i = 0; i < lower.iucount; ++i)
            {
                lower.iuarray[i] = upper.iuarray[i];
            }

            hulls[index - 1] = lower;
            EraseHull(hulls, index, ref hullCount);
            return(true);
        }
示例#3
0
        int FindConstraint(int a, int b)
        {
            int2 e;

            e.x = a < b ? a : b;
            e.y = a > b ? a : b;
            return(UTess.GetEqual(m_Edges, m_Edges.Length, e, new TestEdgePointE()));
        }