Skip to main content

ScaleCapabilityFacts

Struct ScaleCapabilityFacts 

Source
#[non_exhaustive]
pub struct ScaleCapabilityFacts {
Show 16 fields pub coverage: ScaleCapabilityCoverage, pub morphs_present: bool, pub morph_weights_present: bool, pub whole_document_morphs_preservable: bool, pub cameras_present: bool, pub lights_present: bool, pub instancing_present: bool, pub unregistered_extensions_present: bool, pub extras_present: bool, pub unknown_source_members_present: bool, pub non_triangle_primitives_present: bool, pub unsupported_vertex_attributes_present: bool, pub secondary_skin_influences_present: bool, pub inverse_bind_issues_present: bool, pub unsafe_accessor_layout_present: bool, pub external_resources_present: bool,
}
Expand description

Format-neutral capability facts a frontend projects from its raw source inventory before any scale plan or candidate exists.

This is deliberately coarser than a format’s own raw capability manifest (for example animsmith_gltf::GltfCapabilityManifest): it only carries the flags this module’s planning needs to fail closed on an unsupported domain, per DESIGN.md Appendix D §D.4. A frontend projects its richer, format-specific manifest down to these flags.

Fields (Non-exhaustive)§

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
§coverage: ScaleCapabilityCoverage

Whether the projection covers the complete source domain.

§morphs_present: bool

A morph target is present.

§morph_weights_present: bool

Static or animated morph weights are present.

§whole_document_morphs_preservable: bool

The format adapter owns exact preservation of every present morph payload for whole-document conversion.

Presence alone is never permission: this witness is set only after a raw adapter has validated its operation-specific write set and proof.

§cameras_present: bool

A camera is present.

§lights_present: bool

A punctual light is present.

§instancing_present: bool

GPU-instancing data is present.

§unregistered_extensions_present: bool

An extension is not covered by a registered length-field handler.

§extras_present: bool

Non-null application-specific extras are present.

§unknown_source_members_present: bool

A JSON/source member outside the modeled schema was ignored.

§non_triangle_primitives_present: bool

A non-triangle-list primitive is present.

§unsupported_vertex_attributes_present: bool

A vertex attribute outside the normalized writer subset is present.

§secondary_skin_influences_present: bool

A secondary skin-influence set is present.

§inverse_bind_issues_present: bool

An inverse-bind accessor is missing, empty, mismatched, or unreadable.

§unsafe_accessor_layout_present: bool

A scale-bearing source layout cannot be safely bounded or rewritten.

§external_resources_present: bool

An external (non-embedded) resource is referenced.

Implementations§

Source§

impl ScaleCapabilityFacts

Source

pub fn is_supported(&self) -> bool

A capability projection declaring complete coverage and no unsupported domain for either operation.

This operation-agnostic query stays conservative for callers that do not yet have an operation in hand. Planning uses Self::is_supported_for so a format adapter that owns raw morph preservation can admit morphs for whole-document conversion without weakening the rest/bind boundary.

Source

pub fn is_supported_for(&self, operation: ScaleOperation) -> bool

Whether this complete projection is supported for operation.

Morph targets are deliberately operation-specific. A whole-document format adapter may scale raw POSITION deltas and preserve dimensionless weights outside crate::Document; rest/bind still refuses every morph because its raw preservation proof has not been defined. All other capability domains retain the same refusal for both operations.

Trait Implementations§

Source§

impl Clone for ScaleCapabilityFacts

Source§

fn clone(&self) -> ScaleCapabilityFacts

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 Copy for ScaleCapabilityFacts

Source§

impl Debug for ScaleCapabilityFacts

Source§

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

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

impl Default for ScaleCapabilityFacts

Source§

fn default() -> ScaleCapabilityFacts

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

impl Eq for ScaleCapabilityFacts

Source§

impl PartialEq for ScaleCapabilityFacts

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for ScaleCapabilityFacts

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> 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> Same for T

Source§

type Output = T

Should always be Self
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 = 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.
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.