public new PointCloud2D Clone() { PointCloud2D list = new PointCloud2D(); foreach (BearingAndRange rab in this) { list.Add(rab.Clone()); } return(list); }
public PointCloud2DSlice(PointD origin, Double bearing, PointCloud2D cloud, Double sliceSize) : this(origin, bearing) { Double startAngle = bearing.SubtractDegrees(sliceSize / 2); int offset = cloud.VectorOffset(startAngle); int endOffset = cloud.VectorOffset(bearing.AddDegrees(sliceSize / 2)); Double vectorSize = cloud.VectorSize; for (Double angle = startAngle; offset != endOffset; angle = angle.AddDegrees(vectorSize)) { offset = cloud.VectorOffset(angle); if (cloud[offset].Range != 0) { Add(cloud[offset].Clone()); } } }
public PointCloud2DSlice(Double bearing, PointCloud2D cloud, Double sliceSize) : this(new PointD(), bearing, cloud, sliceSize) { }