private Cluster[] getClusters(ManagedPoint point) { List <Cluster> output = new List <Cluster>(); for (int z = 0; z < clusters.GetLength(2); z++) { lock (fillLocker) { Cluster cl1 = getCluster(point.lpx, point.y, z); Cluster cl2 = getCluster(point.rpx, point.y, z); Cluster cl3 = getCluster(point.x, point.tpy, z); Cluster cl4 = getCluster(point.x, point.bpy, z); if (cl1 != null) { output.Add(cl1); } if (cl2 != null) { output.Add(cl2); } if (cl3 != null) { output.Add(cl3); } if (cl4 != null) { output.Add(cl4); } } } return(output.ToArray()); //Distinct()? }
public PointSet(ManagedPoint point, double joinDist) { this.joinDist = joinDist; originX = x = point.x; originY = y = point.y; type = point.type; hash = 0; points.Add(point); }
public void addPoint(ManagedPoint point, double dx, double dy) { double weight = points.Count; x += dx / weight; y += dy / weight; lock (locker) { points.Add(point); } }
public ManagedPoint[] getAllPointsAsArray() { int size = 0; foreach (IDictionary dict in container.Values) { size += dict.Count; } ManagedPoint[] pnts = new ManagedPoint[size]; int index = 0; foreach (IDictionary dict in container.Values) { dict.Values.CopyTo(pnts, index); index += dict.Count; } return(pnts); }
public void addPoint(ManagedPoint point) { addPoint(point, point.x - x, point.y - y); }