Пример #1
0
 /// <summary>
 /// Count points approximately NOT within maxDistance of given plane.
 /// Result is always equal or greater than exact number.
 /// Faster than CountPointsNotNearPlane.
 /// </summary>
 public static long CountPointsApproximatelyNotNearPlane(
     this IPointCloudNode node, Plane3d plane, double maxDistance, int minCellExponent = int.MinValue
     )
 => CountPointsApproximately(node,
                             n => !node.BoundingBoxExactGlobal.Intersects(plane, maxDistance),
                             n => plane.Contains(maxDistance, node.BoundingBoxExactGlobal),
                             minCellExponent
                             );
Пример #2
0
 /// <summary>
 /// All points NOT within maxDistance of given plane.
 /// </summary>
 public static IEnumerable <Chunk> QueryPointsNotNearPlane(
     this IPointCloudNode node, Plane3d plane, double maxDistance, int minCellExponent = int.MinValue
     )
 => QueryPoints(node,
                n => !node.BoundingBoxExactGlobal.Intersects(plane, maxDistance),
                n => plane.Contains(maxDistance, node.BoundingBoxExactGlobal),
                p => Math.Abs(plane.Height(p)) > maxDistance,
                minCellExponent
                );
Пример #3
0
 /// <summary>
 /// All points within maxDistance of given plane.
 /// </summary>
 public static IEnumerable <Chunk> QueryPointsNearPlane(
     this PointSetNode node, Plane3d plane, double maxDistance, int minCellExponent = int.MinValue
     )
 => QueryPoints(node,
                n => plane.Contains(maxDistance, node.BoundingBox),
                n => !node.BoundingBox.Intersects(plane, maxDistance),
                p => Math.Abs(plane.Height(p)) <= maxDistance,
                minCellExponent
                );
Пример #4
0
 /// <summary>
 /// Count points within maxDistance of given plane.
 /// </summary>
 public static long CountPointsNearPlane(
     this IPointCloudNode node, Plane3d plane, double maxDistance, int minCellExponent = int.MinValue
     )
 => CountPoints(node,
                n => plane.Contains(maxDistance, node.BoundingBoxExactGlobal),
                n => !node.BoundingBoxExactGlobal.Intersects(plane, maxDistance),
                p => Math.Abs(plane.Height(p)) <= maxDistance,
                minCellExponent
                );
Пример #5
0
 /// <summary>
 /// Count points NOT within maxDistance of given plane.
 /// </summary>
 public static long CountPointsNotNearPlane(
     this PointSetNode node, Plane3d plane, double maxDistance, int minCellExponent = int.MinValue
     )
 => CountPoints(node,
                n => !node.BoundingBox.Intersects(plane, maxDistance),
                n => plane.Contains(maxDistance, node.BoundingBox),
                p => Math.Abs(plane.Height(p)) > maxDistance,
                minCellExponent
                );