Ejemplo n.º 1
0
 public QuickHull(GeoPointsArray3 points)
 {
     mPoints = points;
     mPoints.Distinct();
     mVertexCount         = mPoints.Size();
     mTrianglePlanePoints = new List <QHullTrianglePlanePoints>();
 }
Ejemplo n.º 2
0
        public static GeoPointsArray3 BuildConvexHull(GeoPointsArray3 points)
        {
            points.Distinct();
            GeoPlane plane = new GeoPlane(Vector3.zero, 0);

            if (IsOnSamePlane(points, ref plane))
            {
                GeoPointsArray2 point2 = new GeoPointsArray2(GeoPlaneUtils.PlaneTransformLocal(points.mPointArray, plane));
                point2 = BuildConvexHull(point2);
                return(new GeoPointsArray3(GeoPlaneUtils.PlaneTransformGlobal(point2.mPointArray, plane)));
            }
            else
            {
                return(new GeoPointsArray3(QuickHull.BuildHull(points)));
            }
        }