Example #1
0
File: KDTree.cs Project: Arnyev/MG
        public List <Vector4> GetIntersectionPoints(List <Intersection> ranges, float minimumDifference = 0)
        {
            var intersections = new List <Vector4>();

            StartingNode.GetIntersectionPoints(intersections, ranges, minimumDifference);
            return(intersections);
        }
Example #2
0
File: KDTree.cs Project: Arnyev/MG
        public void GetIntersectionPoints(List <Vector4> points, List <Intersection> ranges, float minimumDifference)
        {
            if (Smaller != null)
            {
                Smaller.GetIntersectionPoints(points, ranges, minimumDifference);
            }
            if (Bigger != null)
            {
                Bigger.GetIntersectionPoints(points, ranges, minimumDifference);
            }

            if (_possibleIntersections == 0)
            {
                return;
            }

            if (_dividedTrianglesA != null)
            {
                for (int i = 0; i < _dividedTrianglesA.Length; i++)
                {
                    var triangleIndicesB = _dividedTrianglesB[i];
                    var triangleIndicesA = _dividedTrianglesA[i];

                    if (triangleIndicesA.Count > 0 && triangleIndicesB.Count > 0)
                    {
                        GetIntersectionsBetweenTriangles(points, triangleIndicesB, triangleIndicesA, ranges, minimumDifference);
                    }
                }
            }

            else
            {
                var triangleIndicesA = MyIndicesA;
                var triangleIndicesB = MyIndicesB;

                GetIntersectionsBetweenTriangles(points, triangleIndicesB, triangleIndicesA, ranges, minimumDifference);
            }
        }