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; }