pub struct ExactBRepBuilder { /* private fields */ }Expand description
Mutable assembly state that can only yield an ExactBRep after validation.
Implementations§
Source§impl ExactBRepBuilder
impl ExactBRepBuilder
Sourcepub fn set_face_name(&mut self, face: FaceId, name: FaceName)
pub fn set_face_name(&mut self, face: FaceId, name: FaceName)
Record the persistent structural name of a face.
Naming is opt-in per producer: an operation that cannot honestly say where a face came from simply does not call this, and the face reports no name rather than a misleading one.
Sourcepub fn set_edge_name(&mut self, edge: EdgeId, name: EdgeName)
pub fn set_edge_name(&mut self, edge: EdgeId, name: EdgeName)
Record the persistent structural name of an edge.
Sourcepub fn try_reserve(
&mut self,
curves3: usize,
curves2: usize,
surfaces: usize,
edge_intervals: usize,
pcurve_intervals: usize,
) -> Result<(), TryReserveError>
pub fn try_reserve( &mut self, curves3: usize, curves2: usize, surfaces: usize, edge_intervals: usize, pcurve_intervals: usize, ) -> Result<(), TryReserveError>
Fallibly reserve owned support and interval catalogs for bounded assembly.
Sourcepub fn add_curve3(&mut self, curve: Curve3) -> Curve3Id
pub fn add_curve3(&mut self, curve: Curve3) -> Curve3Id
Store an exact 3D curve support.
Sourcepub fn add_curve2(&mut self, curve: Curve2) -> Curve2Id
pub fn add_curve2(&mut self, curve: Curve2) -> Curve2Id
Store an exact 2D pcurve support.
Sourcepub fn add_surface(&mut self, surface: Surface) -> SurfaceId
pub fn add_surface(&mut self, surface: Surface) -> SurfaceId
Store an exact surface support.
Sourcepub fn topology_mut(&mut self) -> &mut BRep<Curve3Id, Curve2Id, SurfaceId>
pub fn topology_mut(&mut self) -> &mut BRep<Curve3Id, Curve2Id, SurfaceId>
Mutable typed topology under construction. Self::finish validates it.
Sourcepub fn set_edge_interval(&mut self, edge: EdgeId, interval: Interval)
pub fn set_edge_interval(&mut self, edge: EdgeId, interval: Interval)
State an edge’s finite native curve span.
Sourcepub fn set_pcurve_interval(
&mut self,
loop_id: LoopId,
use_index: usize,
interval: Interval,
)
pub fn set_pcurve_interval( &mut self, loop_id: LoopId, use_index: usize, interval: Interval, )
State an edge use’s finite native pcurve span in its loop traversal order.
Sourcepub fn append(&mut self, other: &ExactBRep, reverse: bool) -> Vec<ShellId>
pub fn append(&mut self, other: &ExactBRep, reverse: bool) -> Vec<ShellId>
Copy every vertex, edge, loop, face and shell of other into this
builder, with its curves, surfaces, intervals and names, and return
the new handles of other’s shells in order.
Solids are NOT copied: the caller says what the shells are – the
outer shell of another solid, or a void of one already here. With
reverse, every face is used reversed in its shell, which turns a
solid’s outer shell into the boundary of the same region seen from
outside it: a void.
Sourcepub fn finish(self) -> Result<ExactBRep, ExactBRepError>
pub fn finish(self) -> Result<ExactBRep, ExactBRepError>
Validate and freeze the exact B-rep result.
Refuses a result with no faces, topology that fails
axiolid_topology::audit_brep, and any edge, edge use or face whose
support or finite non-zero interval is missing or does not resolve in
its catalog (see ExactBRepError). Closure is not required: an open
sheet is a valid exact result.
Trait Implementations§
Source§impl Clone for ExactBRepBuilder
impl Clone for ExactBRepBuilder
Source§fn clone(&self) -> ExactBRepBuilder
fn clone(&self) -> ExactBRepBuilder
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more