Esempio n. 1
0
    public void Compute(List <Point3d> AreaCenters, List <Point3d> gridPts, int gridSize, ref List <List <Point3d> > rectPts, ref List <Point3d> othersPts)
    {
        /*
         * if (rectPts.Count == 0)
         * {
         *  rectPts = new List<List<Point3d>>();
         * }
         * for (int i = 0; i < AreaCenters.Count; i++)
         * {
         *  rectPts.Add(new List<Point3d>());
         * }
         */

        var dists     = RhinoWrapper.DistNearPt(AreaCenters);
        var intervals = MakeInterval(dists, gridSize);

        rects.Clear();
        for (int i = 0; i < AreaCenters.Count; i++)
        {
            var plane = new Rhino.Geometry.Plane(AreaCenters[i], Vector3d.ZAxis);
            rects.Add(new Rectangle3d(plane, intervals[i], intervals[i]));
        }

        rectPts = SelRectPts(gridPts, rects);

        otherPtsBuff.Clear();
        var allRectPts = GetAllData(rectPts);

        foreach (var pt in gridPts)
        {
            if (allRectPts.Contains(pt) == false)
            {
                otherPtsBuff.Add(pt);
            }
        }
        othersPts = otherPtsBuff;
    }