pub struct ReferenceExactCompiler;Expand description
Scalar reference implementation of the exact-compilation capability.
Implementations§
Source§impl ReferenceExactCompiler
impl ReferenceExactCompiler
Sourcepub fn compile_exact_with_report(
&self,
graph: &GeometryGraph,
root: NodeId,
options: &ExecutionOptions,
) -> GeomResult<(ExactBRep, BooleanReport)>
pub fn compile_exact_with_report( &self, graph: &GeometryGraph, root: NodeId, options: &ExecutionOptions, ) -> GeomResult<(ExactBRep, BooleanReport)>
ExactCompiler::compile_exact, with the within-tolerance
decisions the body’s booleans took (#236), merged over every boolean
in its graph (each kind once, with its worst magnitude).
An exact report (BooleanReport::is_exact) means no boolean read
anything within the tolerance: the body is the exact boolean of its
operands as given, and may be cited as exact. Otherwise it is the
exact result of operands moved by at most BooleanReport::linear
and turned by at most BooleanReport::angular, and a consumer
must widen distances by that much. Bodies without booleans, and the
integer-exact prism path, always report exact.
Either way, constructed points closer than
BooleanReport::rounding_floor count as one point and are not
reported, so a consumer widens distances by that floor too (#244).
The merged floor is the largest floor of any boolean or clip beneath
the body; an instance is rigid and keeps its source’s floor, in
model units, unchanged. Zero means no general boolean or clip ran.
§Errors
Sourcepub fn compile_exact_batch_with_reports(
&self,
graph: &GeometryGraph,
roots: &[NodeId],
options: &ExecutionOptions,
) -> GeomResult<Vec<(ExactBRep, BooleanReport)>>
pub fn compile_exact_batch_with_reports( &self, graph: &GeometryGraph, roots: &[NodeId], options: &ExecutionOptions, ) -> GeomResult<Vec<(ExactBRep, BooleanReport)>>
Self::compile_exact_with_report for several roots in one
compilation, sharing its cache, in root order.
§Errors
Trait Implementations§
Source§impl Backend for ReferenceExactCompiler
impl Backend for ReferenceExactCompiler
Source§fn descriptor(&self) -> BackendDescriptor
fn descriptor(&self) -> BackendDescriptor
Source§impl Clone for ReferenceExactCompiler
impl Clone for ReferenceExactCompiler
Source§fn clone(&self) -> ReferenceExactCompiler
fn clone(&self) -> ReferenceExactCompiler
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more