Skip to main content

TangentSectionRecord

Struct TangentSectionRecord 

Source
pub struct TangentSectionRecord {
    pub first: FaceKey,
    pub second: FaceKey,
    pub start: Vec3,
    pub end: Vec3,
    pub length: f64,
    pub closed: bool,
    pub stations: usize,
    pub planar: bool,
    pub faces: Vec<FaceKey>,
    pub piece_ids: Vec<u64>,
    pub grazing: Vec<(Vec3, f64)>,
}
Expand description

One extended tangential contact the imprint recognised (see ImprintResultRecord::tangent_sections).

Fields§

§first: FaceKey§second: FaceKey§start: Vec3

Ends of the longest run of the traced contact inside both trims (the contact point itself when the contact was not traced).

§end: Vec3§length: f64

Chord length of that run.

§closed: bool

The run is the whole traced curve and the curve closed on itself.

§stations: usize

Stations of the run.

§planar: bool

One carrier is a plane: the branch the lane traces. false names a curved/curved contact the lane recognises but does not trace.

§faces: Vec<FaceKey>

The faces the contact INVOLVES: the two carriers’ faces, and every face of either operand that shares an edge the run’s ends lie on (the through-bore’s contact line ends on the wall’s top and bottom edges, so the box’s top and bottom faces are involved; a blind pocket’s ends lie on the bore’s cap rings, so the caps are). The boolean’s attribution rewrites a refusal only when a face it names is in here.

§piece_ids: Vec<u64>

The section pieces the contact was imprinted as (ImprintOptions::tangent_curve_imprint): process_curve’s pieces on the clipped run, in mint order. Empty when the section was recorded only. The assembler pairs the coedges of these pieces by material side. Appended at the end of the struct (2026-10-11).

§grazing: Vec<(Vec3, f64)>

GRAZING PIERCES WITHOUT A SECTION (2026-10-17, the revolve-into-bore report): a trim edge of one face pierces the other carrier INSIDE both trims, but at an angle below the seed gate, and the march found no branch for the pair. The pierce proves a section crosses the faces there; the empty march says the crossing is too near tangency to walk (a third-order contact: the branch is born tangent to a contact curve on a shared boundary, boolean::attribute_to_tangent_node). Each entry is the pierce point and its |edge_tangent · normal|. Such a record is attribution only — nothing is imprinted — and names the contact when the assembly tears downstream of it. Appended at the end of the struct.

Implementations§

Source§

impl TangentSectionRecord

Source

pub fn pierce_only(&self) -> bool

A record standing on its grazing pierces ALONE — the lane found no contact to name, so the driver set its ends to the pierces (its start IS the first pierce, bit for bit, and nothing was traced). The boolean’s attribution reads such a record only as a fallback: a contact the lane found, or a tangent node the imprint classified, is the nearer cause and keeps its own wording.

Trait Implementations§

Source§

impl Clone for TangentSectionRecord

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 TangentSectionRecord

Source§

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

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

impl<'de> Deserialize<'de> for TangentSectionRecord

Source§

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

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for TangentSectionRecord

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. 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