Skip to main content

split_solid_by_plane

Function split_solid_by_plane 

Source
pub fn split_solid_by_plane(
    solid: &BrepSolid,
    plane_point: Vec3,
    plane_normal: Vec3,
) -> Result<(BrepSolid, BrepSolid), String>
Expand description

Split solid into two pieces by the plane through plane_point with normal plane_normal. Returns (below, above) where below is the piece on the −n side of the plane and above the piece on the +n side.

Contract: when the plane does not actually divide the solid into two non-degenerate pieces (it misses the body, or is tangent so one side is empty), this returns Err("split_solid_by_plane: plane does not intersect the solid") rather than a degenerate/empty piece.