Exemplo n.º 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
                             );
Exemplo n.º 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
                );
Exemplo n.º 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
                );
Exemplo n.º 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
                );
Exemplo n.º 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
                );