Skip to main content

SurfaceIntersectionOptions

Struct SurfaceIntersectionOptions 

Source
pub struct SurfaceIntersectionOptions {
    pub tolerance: f64,
    pub seed_density: f64,
    pub maximum_steps: usize,
    pub maximum_step: Option<f64>,
    pub seed_points: Vec<Vec3>,
    pub seed_only: bool,
    pub seed_gate: Option<f64>,
    pub span_budget: Option<f64>,
    pub ordered_starts: bool,
    pub consume_starts: bool,
    pub tree_seeds: bool,
    pub seed_start_cross: Option<f64>,
}

Fields§

§tolerance: f64§seed_density: f64§maximum_steps: usize§maximum_step: Option<f64>§seed_points: Vec<Vec3>§seed_only: bool§seed_gate: Option<f64>§span_budget: Option<f64>

When set, every accepted span is re-sampled as the cubic Hermite through its two stations — chord-scaled tangents, in 3D and in each carrier’s parameter plane — at five interior parameters, and the span’s deviation is the largest distance among the 3D Hermite and the two carriers’ images of their parameter Hermites. A span over the budget is rejected and re-stepped at half the step (accepted at the minimum step regardless), and the step grows only while the deviation stays under an eighth of the budget. The curve then reports its station tangents and its largest span deviation.

None, the default, measures nothing and marches exactly as before. The budget a lane carries is what its FIT can absorb (the imprint’s intersection_fit), never the corrector’s tolerance: a cubic Hermite over a circle of radius r with step h misses by about r (h/r)^4 / 384, so a budget of 1e-7 would hold the step near r/15 and multiply stations on every curved section.

§ordered_starts: bool

Off, the default, keeps the grid-then-seeds order byte for byte.

§consume_starts: bool

A3’s second half: a start an earlier trace ran through is consumed with a station snapped to it (the start is a refined intersection point, the chord it lies by is not), instead of merely dropped. Off, the default, keeps the first-claimant rule. Measured apart from the ordering because it inserts stations into traced curves.

§tree_seeds: bool

The transverse gate stays. Off, the default, grids as before.

§seed_start_cross: Option<f64>

SUB-GATE STARTS (2026-10-17, the revolve-into-bore report): the |n_a × n_b| an EXPLICIT seed is admitted at, in place of [TRANSVERSE_START_CROSS]. Grid and tree starts keep the gate: the tangency-band runaway it exists for is theirs (a refined start inside a band is a point no transverse curve passes through). An explicit seed the caller has PROVEN to lie on a crossing — a trim edge of one face that leaves one side of the other carrier for the other at the seed — is a point of a transverse section whatever the angle, and the march from it is sound down to where the corrector can still tell the section from the tangency band: the lateral uncertainty tol / α of a crossing at angle α against the band’s half-width √(2 R tol) across a contact of curvature radius R, so α ≥ √(tol / 2R); the caller derives the bound from its own tolerance and scale. A seed below it is dropped exactly as before. None, the default, keeps the gate byte for byte.

Trait Implementations§

Source§

impl Clone for SurfaceIntersectionOptions

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for SurfaceIntersectionOptions

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for SurfaceIntersectionOptions

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for SurfaceIntersectionOptions

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<S, T> Upcast<T> for S
where T: UpcastFrom<S> + ?Sized, S: ?Sized,

Source§

fn upcast(&self) -> &T
where Self: ErasableGeneric, T: Sized + ErasableGeneric<Repr = Self::Repr>,

Perform a zero-cost type-safe upcast to a wider ref type within the Wasm bindgen generics type system. Read more
Source§

fn upcast_into(self) -> T
where Self: Sized + ErasableGeneric, T: Sized + ErasableGeneric<Repr = Self::Repr>,

Perform a zero-cost type-safe upcast to a wider type within the Wasm bindgen generics type system. Read more