#[non_exhaustive]pub struct ExactIntersectionCurve {
pub branches: Vec<Curve3>,
pub derivation: Derivation,
pub spans: Vec<Option<Interval>>,
}Expand description
The exact intersection curve of two elementary surfaces, when one exists in closed form.
Returns the curve together with the identity used to derive it, so a caller can record provenance rather than re-deriving trust.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.branches: Vec<Curve3>The branches of the intersection, in deterministic order.
Usually one, but several elementary pairs genuinely meet in TWO disjoint components: equal-radius cylinders on intersecting axes cut two ellipses, and parallel cylinders cut two lines. Returning a single curve would have forced this code to pick one and discard the other, which is exactly the silent geometry loss the rest of this module refuses to do. Exact: every coordinate comes from the operands’ own numbers through the stated identity, never from a fit.
derivation: DerivationWhich closed-form identity produced branches.
spans: Vec<Option<Interval>>The parameter span each branch exists on, aligned with branches:
None for a curve defined on its whole natural domain (a line, a
full circle or ellipse), Some for a piece of a ruled section
(ADR 0076), which exists only where its discriminant is not
negative. Two pieces over one span join at both ends into a loop.
Implementations§
Trait Implementations§
Source§impl Clone for ExactIntersectionCurve
impl Clone for ExactIntersectionCurve
Source§fn clone(&self) -> ExactIntersectionCurve
fn clone(&self) -> ExactIntersectionCurve
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more