Back to Eqiora docs Skip to main content

CanonicalGeometryV1

Struct CanonicalGeometryV1 

pub struct CanonicalGeometryV1 { /* private fields */ }
Description

Opaque canonical content and identity of one geometry revision.

This value can only be derived from one admitted exact kind or from its kind-specific bounded canonical replay. It has no public kind catalogue and no constructor accepting a caller-provided digest or entity-set facts.

Implementations§

§

impl CanonicalGeometryV1

pub fn cartesian_region_bounds( &self, region: &NamedEntitySet, ) -> Option<Vec<[f64; 2]>>

Exact Cartesian bounds of one selected full-dimensional region.

Recognizes canonical boxes and individual axis-aligned rectangular faces, including subdivided straight sides. Curved, nonrectangular, grouped, and foreign selections have no admitted Cartesian product interpretation.

§

impl CanonicalGeometryV1

pub fn from_convex_polyhedra( vertices_m: Vec<[f64; 3]>, outward_shells: Vec<Vec<Vec<usize>>>, entity_sets: Vec<NamedEntitySet>, tolerance_m: f64, ) -> Result<CanonicalGeometryV1, Diagnostic>

Admit finite, closed convex polyhedral volumes with disjoint interiors.

Coordinates and positive classification precision are metres. Each shell contains its parent’s outward-oriented polygon vertex loops. Shell and vertex order and loop rotation are canonicalized; reversed outward orientation is rejected. Facets shared by parents have one exact identity and opposite incidences. Curved, nonconvex, open, degenerate, and overlapping volumes are outside this family. No numerical tessellation is retained.

As with PlanarRegion::new, named members address the resulting canonical enumerations, never input-relative indices: sorted vertices, sorted undirected edge pairs, sorted undirected facet loops, and sorted shells. Facet loops start at their least vertex; the lexicographically smaller direction orders global facets. Shells sort their outward loops. Dimensions 0, 1, 2, and 3 name vertices, edges, facets, and volumes.

§Errors

Returns EQ0901 for invalid topology, geometry, precision, membership, or resource excess. Default canonical limits and a fixed 16,777,216 geometric floating predicate and 262,144 exact binary-rational predicate budgets also bound construction. Precision conditions edge lengths and interior clearance; it never excuses nonplanarity, nonconvexity, or overlap.

pub fn polyhedral_vertices(&self) -> Option<&[[f64; 3]]>

Canonical exact polyhedral vertices in metres, without mesh vertices.

pub fn polyhedral_volume_facets(&self, volume: usize) -> Option<&[usize]>

Canonically ordered exact facets incident to one canonical volume.

pub fn polyhedral_outward_facet( &self, facet: usize, volume: usize, ) -> Option<&[usize]>

Exact facet vertex loop oriented outward relative to its selected parent. Returns None for a foreign facet/volume incidence or another family.

§

impl CanonicalGeometryV1

pub fn replay_canonical( bytes: &[u8], limits: CanonicalGeometryLimits, ) -> Result<CanonicalGeometryV1, Diagnostic>

Decode any current canonical Geometry family through its owning decoder.

The explicit child schema selects only among concurrently admitted Geometry families; it does not infer or migrate historical generations.

§Errors

Returns EQ0901 for malformed, oversized, unknown, or noncanonical bytes.

pub fn ambient_dimension(&self) -> usize

Dimension of the physical coordinate embedding.

pub fn topological_dimension(&self) -> usize

Highest topological dimension represented by the geometry.

pub fn entity_set_dimension(&self, name: &str) -> Option<usize>

Topological dimension of one exact entity-set name.

pub fn cartesian_boundary_embedding( &self, boundary: &NamedEntitySet, parent: &NamedEntitySet, ) -> Option<CartesianBoundaryEmbedding>

Exact Cartesian embedding of one complete box side and its parent.

Primitive topology or exact authored rectangle coordinates supply the axis and outward side. Grouped, incomplete, curved, nonrectangular, foreign, or stale selections return None.

pub fn constant_parent_outward_normal(&self, name: &str) -> Option<[f64; 2]>

Exact constant parent-outward normal of one supported boundary set.

A classification-free rectangle derives all four axis normals from its canonical boundary topology. The curved families expose a normal only for exact single-edge x-lower and x-upper sets. A circular member, multi-side group, and unsupported geometry return None. Authored planar rectangles derive normals only for complete exact parent-relative sides; callers must not infer a catalogue from entity indices.

pub fn from_region( region: &PlanarRegion, ) -> Result<CanonicalGeometryV1, Diagnostic>

Derive canonical bytes and identity from one validated region.

§Errors

Returns EQ0901 if canonical JSON serialization unexpectedly fails.

pub fn decode_canonical( bytes: &[u8], limits: CanonicalGeometryLimits, ) -> Result<CanonicalGeometryV1, Diagnostic>

Decode one bounded, byte-for-byte canonical geometry definition.

The input is not retained. It is parsed, resource-checked, revalidated through PlanarRegion::new, reconstructed from that region, and accepted only when the reconstructed bytes equal the input exactly.

§Errors

Returns EQ0901 for malformed or unknown wire data, resource excess, invalid geometry, or any noncanonical encoding.

pub fn from_circular_hole( bounds: [[f64; 2]; 2], circle_center: [f64; 2], circle_radius_m: f64, entity_sets: Vec<NamedEntitySet>, ) -> Result<CanonicalGeometryV1, Diagnostic>

Construct one exact axis-aligned rectangle-minus-circle geometry.

The current content identity has strict positive clearance and complete named edge/face membership, with no approximation tolerance or provenance.

§Errors

Returns EQ0901 for invalid exact geometry or entity-set meaning.

pub fn from_circular_hole_named_roles( bounds: [[f64; 2]; 2], circle_center: [f64; 2], circle_radius_m: f64, region: &str, x_lower: &str, x_upper: &str, y_lower: &str, y_upper: &str, hole: &str, ) -> Result<CanonicalGeometryV1, Diagnostic>

Construct one exact rectangle-minus-circle geometry from semantic roles.

Equal boundary names group their fixed roles into one entity set.

§Errors

Returns EQ0901 for invalid exact geometry or role meaning.

pub fn decode_circular_hole_canonical( bytes: &[u8], limits: CanonicalGeometryLimits, ) -> Result<CanonicalGeometryV1, Diagnostic>

Decode the accepted circular-hole wire without widening the straight decoder.

§Errors

Returns EQ0901 for malformed, unknown, excessive, invalid, or noncanonical circular-hole bytes.

pub const fn region(&self) -> Option<&PlanarRegion>

Validated straight-edged region content, if this kind has one.

An exact curved geometry never fabricates its numerical chordal realization as exact region meaning.

pub const fn planar_rectangle_bounds(&self) -> Option<&[[f64; 2]; 2]>

Exact Cartesian bounds for the classification-free rectangle kind.

pub fn cartesian_box_bounds(&self) -> Option<&[[f64; 2]]>

Exact bounds for the classification-free Cartesian box kind.

pub const fn circular_hole_bounds(&self) -> Option<&[[f64; 2]; 2]>

Exact axis-aligned bounds for the admitted circular-hole kind.

pub const fn circular_hole_center(&self) -> Option<[f64; 2]>

Exact circle centre for the admitted circular-hole kind.

pub const fn circular_hole_radius_m(&self) -> Option<f64>

Exact circle radius for the admitted circular-hole kind.

pub const fn classification_tolerance_m(&self) -> Option<f64>

Producer classification precision in metres, when this kind owns one.

Straight-edged planar and convex-polyhedral kinds retain their classification precision. Analytic kinds, including circular holes, carry no classification policy and return None.

pub fn entity_sets(&self) -> &[NamedEntitySet]

Canonically ordered named exact entity sets.

pub fn entity_set(&self, name: &str) -> Option<&NamedEntitySet>

One exact named entity set.

pub fn canonical_bytes(&self) -> &[u8] ⓘ

Exact compact canonical JSON bytes.

pub const fn digest_bytes(&self) -> [u8; 32]

Complete domain-separated SHA-256 identity bytes.

pub fn decode_cartesian_box_v1_canonical( bytes: &[u8], limits: CanonicalGeometryLimits, ) -> Result<CanonicalGeometryV1, Diagnostic>

Decode the exact Cartesian interval/rectangle/box wire.

pub const fn planar_adjacent_rectangle_partition( &self, ) -> Option<(&[[f64; 2]; 2], f64)>

Exact bounds and interface coordinate for the adjacent partition kind.

pub fn decode_planar_adjacent_rectangle_partition_v1_canonical( bytes: &[u8], limits: CanonicalGeometryLimits, ) -> Result<CanonicalGeometryV1, Diagnostic>

Decode the tolerance-free adjacent rectangle partition wire.

pub fn decode_planar_rectangle_v2_canonical( bytes: &[u8], limits: CanonicalGeometryLimits, ) -> Result<CanonicalGeometryV1, Diagnostic>

Decode the classification-free planar rectangle wire.

Trait Implementations§

§

impl Clone for CanonicalGeometryV1

§

fn clone(&self) -> CanonicalGeometryV1

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
§

impl Debug for CanonicalGeometryV1

§

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

Formats the value using the given formatter. Read more
§

impl PartialEq for CanonicalGeometryV1

§

fn eq(&self, other: &CanonicalGeometryV1) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl StructuralPartialEq for CanonicalGeometryV1

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
§

impl<Src, Scheme> ApproxFrom<Src, Scheme> for Src
where Scheme: ApproxScheme,

§

type Err = NoError

The error type produced by a failed conversion.
§

fn approx_from(src: Src) -> Result<Src, <Src as ApproxFrom<Src, Scheme>>::Err>

Convert the given value into an approximately equivalent representation.
§

impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Src
where Dst: ApproxFrom<Src, Scheme>, Scheme: ApproxScheme,

§

type Err = <Dst as ApproxFrom<Src, Scheme>>::Err

The error type produced by a failed conversion.
§

fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>

Convert the subject into an approximately equivalent representation.
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
§

impl<T> ByRef<T> for T

§

fn by_ref(&self) -> &T

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
§

impl<T, Dst> ConvAsUtil<Dst> for T

§

fn approx(self) -> Result<Dst, Self::Err>
where Self: Sized + ApproxInto<Dst>,

Approximate the subject with the default scheme.
§

fn approx_by<Scheme>(self) -> Result<Dst, Self::Err>
where Self: Sized + ApproxInto<Dst, Scheme>, Scheme: ApproxScheme,

Approximate the subject with a specific scheme.
§

impl<T> ConvUtil for T

§

fn approx_as<Dst>(self) -> Result<Dst, Self::Err>
where Self: Sized + ApproxInto<Dst>,

Approximate the subject to a given type with the default scheme.
§

fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>
where Self: Sized + ApproxInto<Dst, Scheme>, Scheme: ApproxScheme,

Approximate the subject to a given type with a specific scheme.
§

fn into_as<Dst>(self) -> Dst
where Self: Sized + Into<Dst>,

Convert the subject to a given type.
§

fn try_as<Dst>(self) -> Result<Dst, Self::Err>
where Self: Sized + TryInto<Dst>,

Attempt to convert the subject to a given type.
§

fn value_as<Dst>(self) -> Result<Dst, Self::Err>
where Self: Sized + ValueInto<Dst>,

Attempt a value conversion of the subject to a given type.
§

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

§

fn rand<T>(&self, rng: &mut (impl Rng + ?Sized)) -> T
where Self: Distribution<T>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
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
§

impl<Src> TryFrom<Src> for Src

§

type Err = NoError

The error type produced by a failed conversion.
§

fn try_from(src: Src) -> Result<Src, <Src as TryFrom<Src>>::Err>

Convert the given value into the subject type.
Source§

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

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
§

impl<Src, Dst> TryInto<Dst> for Src
where Dst: TryFrom<Src>,

§

type Err = <Dst as TryFrom<Src>>::Err

The error type produced by a failed conversion.
§

fn try_into(self) -> Result<Dst, <Src as TryInto<Dst>>::Err>

Convert the subject into the destination type.
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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<Src> ValueFrom<Src> for Src

§

type Err = NoError

The error type produced by a failed conversion.
§

fn value_from(src: Src) -> Result<Src, <Src as ValueFrom<Src>>::Err>

Convert the given value into an exactly equivalent representation.
§

impl<Src, Dst> ValueInto<Dst> for Src
where Dst: ValueFrom<Src>,

§

type Err = <Dst as ValueFrom<Src>>::Err

The error type produced by a failed conversion.
§

fn value_into(self) -> Result<Dst, <Src as ValueInto<Dst>>::Err>

Convert the subject into an exactly equivalent representation.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<T, U> Imply<T> for U
where T: ?Sized, U: ?Sized,

§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Scalar for T
where T: 'static + Clone + PartialEq + Debug,