#[non_exhaustive]pub struct GltfScaleArtifact { /* private fields */ }Expand description
A rewritten glTF/GLB container and the exact locations that changed.
Implementations§
Source§impl GltfScaleArtifact
impl GltfScaleArtifact
Sourcepub fn container(&self) -> GltfContainerKind
pub fn container(&self) -> GltfContainerKind
The container kind, unchanged from the source.
Sourcepub fn rewritten_accessors(&self) -> &[usize]
pub fn rewritten_accessors(&self) -> &[usize]
Source accessor indices whose payload was rewritten, ascending and without repeats. One entry per unique accessor index, however many logical uses reach it.
Sourcepub fn rewritten_json_pointers(&self) -> &[String]
pub fn rewritten_json_pointers(&self) -> &[String]
JSON pointers whose value was rewritten, in lexical order.
Buffer URIs re-encoded during container reassembly are not domain
rewrites and are reported by Self::reencoded_buffers instead.
prove_rewritten_artifact checks this list against its own
independent scan, so it is evidence rather than an unverified label.
Sourcepub fn reencoded_buffers(&self) -> &[usize]
pub fn reencoded_buffers(&self) -> &[usize]
Buffer indices whose data URI was re-encoded, ascending. Empty for a GLB whose only buffer is the BIN chunk.
Sourcepub fn affected_source_nodes(&self) -> &[usize]
pub fn affected_source_nodes(&self) -> &[usize]
The affected closure as source-node array indices, ascending.
Reported in the raw glTF index space the operation’s own selectors use
— /nodes/{i} — not as normalized animsmith_core::BoneIds. A
producer recording which identities an artifact affected must name
them in the space the request named, and a consumer holding the
original file can resolve these directly against its nodes array.
animsmith_core::scale::ScalePlan::affected_nodes reports the same
closure in the normalized space; the frontend already proves the two
describe one tree before it writes a byte.
For ScaleOperation::RestBindUniformScale this is the closed
connected hierarchy of DESIGN.md Appendix D §D.2. For
ScaleOperation::WholeDocumentLinearUnits it is every node the
source declares, that operation’s closure being the whole document.
Sourcepub fn affected_source_skins(&self) -> &[usize]
pub fn affected_source_skins(&self) -> &[usize]
The affected skins as source-skin array indices, ascending, in the
same raw index space as Self::affected_source_nodes.
For ScaleOperation::RestBindUniformScale a skin is affected when at
least one of its joints lies inside the closure — which is exactly the
condition under which its inverseBindMatrices accessor is rebased in
at least one slot. A skin straddling the closure boundary is listed:
it is affected, in the slots whose joints are. For
ScaleOperation::WholeDocumentLinearUnits it is every skin the
source declares.
Sourcepub fn declared_factor(&self) -> f64
pub fn declared_factor(&self) -> f64
The factor the caller declared: the conversion factor q for a
whole-document conversion, the expected common factor s for a
rest/bind reparameterization.
Sourcepub fn operation(&self) -> ScaleOperation
pub fn operation(&self) -> ScaleOperation
The operation that produced this artifact, echoed with the selectors the caller declared.
Reported so a proof can refuse to check a rest/bind artifact against a whole-document plan, or the reverse: the two operations write different domains, and a factor alone does not distinguish them.
Trait Implementations§
Source§impl Clone for GltfScaleArtifact
impl Clone for GltfScaleArtifact
Source§fn clone(&self) -> GltfScaleArtifact
fn clone(&self) -> GltfScaleArtifact
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more