Struct CadAuthoredFaceMesh
pub struct CadAuthoredFaceMesh { /* private fields */ }Description
One graph-bound rectangular face realized as an affine-triangle mesh.
This value has no durable wire. It keeps the exact authored source binding, the independently supplied Geometry classification tolerance and sizing request, the face placement, and the accepted intrinsic region and mesh in one owner. Artifact envelopes remain the durable Geometry and Mesh outputs.
Implementations§
§impl CadAuthoredFaceMesh
impl CadAuthoredFaceMesh
pub fn from_face(
graph: &CadAuthoredGraph,
source_face: &CadAuthoredFaceHandle,
geometry_classification_tolerance_m: f64,
target_maximum_edge_length_m: f64,
maximum_triangles: usize,
quality_gate: MeshQualityGate,
) -> Result<CadAuthoredFaceMesh, Diagnostic>
pub fn from_face( graph: &CadAuthoredGraph, source_face: &CadAuthoredFaceHandle, geometry_classification_tolerance_m: f64, target_maximum_edge_length_m: f64, maximum_triangles: usize, quality_gate: MeshQualityGate, ) -> Result<CadAuthoredFaceMesh, Diagnostic>
Realize one admitted rectangular face under a bounded local request.
Per-axis subdivision is the least positive integer n whose generated
endpoint-snapped binary64 coordinates have maximum adjacent gap D
satisfying D.hypot(D) <= target. The Geometry classification
tolerance rejects degenerate face axes and becomes part of the intrinsic
region identity; it never changes sizing. This reference path admits
only the current provider’s exactly closed, exactly orthogonal rectangle
cycles. Approximate or arbitrarily rotated CAD frames remain unsupported.
§Errors
Returns EQ0901 before topology allocation for a stale or foreign
handle, a non-rectangular face, an invalid scalar or work limit, an
unrepresentable frame, or a resolved mesh exceeding the caller budget.
Accepted topology is then subject to the unchanged SimplicialMesh
EQ0803 orientation and quality gate.
pub const fn source_graph_digest_bytes(&self) -> [u8; 32]
pub const fn source_graph_digest_bytes(&self) -> [u8; 32]
Exact authored graph revision supplying the selected face.
pub const fn source_face(&self) -> &CadAuthoredFaceHandle
pub const fn source_face(&self) -> &CadAuthoredFaceHandle
Graph-bound authored face supplying this surface realization.
pub const fn geometry_classification_tolerance_m(&self) -> f64
pub const fn geometry_classification_tolerance_m(&self) -> f64
Continuous-Geometry classification tolerance in metres.
pub const fn target_maximum_edge_length_m(&self) -> f64
pub const fn target_maximum_edge_length_m(&self) -> f64
Caller-requested maximum triangle-edge length in metres.
pub const fn maximum_triangles(&self) -> usize
pub const fn maximum_triangles(&self) -> usize
Caller-supplied triangle work limit retained with the realization.
pub const fn origin_m(&self) -> [f64; 3]
pub const fn origin_m(&self) -> [f64; 3]
Selected face-cycle origin in the authored graph’s 3D coordinates.
pub const fn u_hat(&self) -> [f64; 3]
pub const fn u_hat(&self) -> [f64; 3]
Unit direction of increasing intrinsic u.
pub const fn v_hat(&self) -> [f64; 3]
pub const fn v_hat(&self) -> [f64; 3]
Unit direction of increasing intrinsic v.
pub const fn parent_outward_normal(&self) -> [f64; 3]
pub const fn parent_outward_normal(&self) -> [f64; 3]
Parent-relative outward unit normal of the selected authored face.
pub const fn u_length_m(&self) -> f64
pub const fn u_length_m(&self) -> f64
Exact selected-face extent along intrinsic u, in metres.
pub const fn v_length_m(&self) -> f64
pub const fn v_length_m(&self) -> f64
Exact selected-face extent along intrinsic v, in metres.
pub const fn u_divisions(&self) -> usize
pub const fn u_divisions(&self) -> usize
Least accepted subdivision count along intrinsic u.
pub const fn v_divisions(&self) -> usize
pub const fn v_divisions(&self) -> usize
Least accepted subdivision count along intrinsic v.
pub const fn u_maximum_realized_gap_m(&self) -> f64
pub const fn u_maximum_realized_gap_m(&self) -> f64
Maximum realized adjacent u-coordinate gap, in metres.
This is the measured spacing used by the acceptance predicate. It can exceed the nominal generator parameter by rounding ulps because the final coordinate is snapped to the exact authored endpoint.
pub const fn v_maximum_realized_gap_m(&self) -> f64
pub const fn v_maximum_realized_gap_m(&self) -> f64
Maximum realized adjacent v-coordinate gap, in metres.
This is the measured spacing used by the acceptance predicate. It can exceed the nominal generator parameter by rounding ulps because the final coordinate is snapped to the exact authored endpoint.
pub fn lift_intrinsic_point_m(&self, point_m: [f64; 2]) -> [f64; 3]
pub fn lift_intrinsic_point_m(&self, point_m: [f64; 2]) -> [f64; 3]
Lift an intrinsic point to the exact retained 3D face placement.
pub const fn region(&self) -> &PlanarRegion
pub const fn region(&self) -> &PlanarRegion
Canonical straight-edged intrinsic Geometry.
pub const fn mesh(&self) -> &SimplicialMesh
pub const fn mesh(&self) -> &SimplicialMesh
Accepted intrinsic affine-triangle mesh.
Trait Implementations§
§impl Clone for CadAuthoredFaceMesh
impl Clone for CadAuthoredFaceMesh
§impl Debug for CadAuthoredFaceMesh
impl Debug for CadAuthoredFaceMesh
§impl PartialEq for CadAuthoredFaceMesh
impl PartialEq for CadAuthoredFaceMesh
§fn eq(&self, other: &CadAuthoredFaceMesh) -> bool
fn eq(&self, other: &CadAuthoredFaceMesh) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for CadAuthoredFaceMesh
Auto Trait Implementations§
impl Freeze for CadAuthoredFaceMesh
impl RefUnwindSafe for CadAuthoredFaceMesh
impl Send for CadAuthoredFaceMesh
impl Sync for CadAuthoredFaceMesh
impl Unpin for CadAuthoredFaceMesh
impl UnsafeUnpin for CadAuthoredFaceMesh
impl UnwindSafe for CadAuthoredFaceMesh
Blanket Implementations§
Source§impl<T> Any for Twhere
T: 'static + ?Sized,
impl<T> Any for Twhere
T: 'static + ?Sized,
§impl<Src, Scheme> ApproxFrom<Src, Scheme> for Srcwhere
Scheme: ApproxScheme,
impl<Src, Scheme> ApproxFrom<Src, Scheme> for Srcwhere
Scheme: ApproxScheme,
§fn approx_from(src: Src) -> Result<Src, <Src as ApproxFrom<Src, Scheme>>::Err>
fn approx_from(src: Src) -> Result<Src, <Src as ApproxFrom<Src, Scheme>>::Err>
§impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Srcwhere
Dst: ApproxFrom<Src, Scheme>,
Scheme: ApproxScheme,
impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Srcwhere
Dst: ApproxFrom<Src, Scheme>,
Scheme: ApproxScheme,
§type Err = <Dst as ApproxFrom<Src, Scheme>>::Err
type Err = <Dst as ApproxFrom<Src, Scheme>>::Err
§fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>
fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>
Source§impl<T> Borrow<T> for Twhere
T: ?Sized,
impl<T> Borrow<T> for Twhere
T: ?Sized,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T, Dst> ConvAsUtil<Dst> for T
impl<T, Dst> ConvAsUtil<Dst> for T
§fn approx(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
fn approx(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
§impl<T> ConvUtil for T
impl<T> ConvUtil for T
§fn approx_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
fn approx_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
§fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst, Scheme>,
Scheme: ApproxScheme,
fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst, Scheme>,
Scheme: ApproxScheme,
§fn into_as<Dst>(self) -> Dstwhere
Self: Sized + Into<Dst>,
fn into_as<Dst>(self) -> Dstwhere
Self: Sized + Into<Dst>,
§fn try_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + TryInto<Dst>,
fn try_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + TryInto<Dst>,
§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
fn rand<T>(&self, rng: &mut (impl Rng + ?Sized)) -> Twhere
Self: Distribution<T>,
Source§impl<T> From<T> for T
impl<T> From<T> for T
Source§impl<T, U> Into<U> for Twhere
U: From<T>,
impl<T, U> Into<U> for Twhere
U: From<T>,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>where
F: FnOnce(&Self) -> bool,
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>where
F: FnOnce(&Self) -> bool,
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> Same for T
impl<T> Same for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.