/// <summary> /// All points inside convex hull (including boundary). /// </summary> public static IEnumerable <Chunk> QueryPointsInsideConvexHull( this IPointCloudNode self, Hull3d query, int minCellExponent = int.MinValue ) => QueryPoints(self, n => query.Contains(n.BoundingBoxExactGlobal), n => !query.Intersects(n.BoundingBoxExactGlobal), p => query.Contains(p), minCellExponent);
/// <summary> /// Counts points inside convex hull. /// </summary> internal static long CountPointsInsideConvexHull( this IPointCloudNode self, Hull3d query, int minCellExponent = int.MinValue ) => CountPoints(self, n => query.Contains(n.BoundingBoxExactGlobal), n => !query.Intersects(n.BoundingBoxExactGlobal), p => query.Contains(p), minCellExponent);
/// <summary> /// Counts points outside convex hull (approximately). /// Result is always equal or greater than exact number. /// </summary> internal static long CountPointsApproximatelyOutsideConvexHull( this PointSetNode self, Hull3d query, int minCellExponent = int.MinValue ) => CountPointsApproximately(self, n => !query.Intersects(n.BoundingBox), n => query.Contains(n.BoundingBox), minCellExponent);