public SpatialCollectionAsBinLattice(Point3d min, Point3d max, int binSize, IList <T> items) { this.spatialObjects = items; this.binSize = binSize; double binRadius = binSize / 2; if (min.Equals(max)) { this.min = new Point3d(min.X - binRadius, min.Y - binRadius, min.Z - binRadius); this.max = new Point3d(max.X + binRadius, max.Y + binRadius, max.Z + binRadius); } else { this.min = min; this.max = max; } populateLattice(); }
public void updateDatastructure(Point3d min, Point3d max, int minNodeSize, IList <T> spatialObjects) { this.spatialObjects = spatialObjects; this.binSize = minNodeSize; if (min.Equals(max)) { this.min = new Point3d(min.X - 50, min.Y - 50, min.Z - 50); this.max = new Point3d(max.X + 50, max.Y + 50, max.Z + 50); } //else //{ // this.min = new Point3d(min.X - Math.Abs(max.X - min.X)/2, min.Y - Math.Abs(max.Y - min.Y)/2, min.Z - Math.Abs(max.Z - min.Z)/2); // this.max = new Point3d(max.X + Math.Abs(max.X - min.X)/2, max.Y + Math.Abs(max.Y - min.Y)/2, max.Z + Math.Abs(max.Z - min.Z)/2); //} this.min = min; this.max = max; populateLattice(); }