```fsharp
/// Represents a single planar segment
type IPlaneSegment =
/// the plane for the segment.
abstract member Plane : Plane3d
/// the total number of points in this segment.
abstract member PointCount : int
/// the covered (2d) area for this segment
abstract member Area : float
/// a minimal enclosing box for all the points in the segment
abstract member Bounds : OrientedBox
/// the bounding polygon(s) for the segment.
abstract member BoundingPolygons : Polygon3d[]
/// the overall segmentatin result consists of many segments.
type IPlaneSegmentation =
inherit IEnumerable<IPlaneSegment>
abstract member Count : int
abstract member Item : int -> IPlaneSegment with get
module Api =
val planeSegmentation :
progress : (float -> unit) ->
maxRadius : float ->
maxDistance : float ->
points : V3d[] -> IPlaneSegmentation
```