Skip to main content

Crate fbx_dom

Crate fbx_dom 

Source
Expand description

FBX document model and typed object layer for asset import.

§Pipeline

  1. LoadDocument::from_parser (ASCII via fbxscii) or Document::from_binary_reader (binary via fbxcel). Both fill the same Document: header, definitions/templates, per-object element subtrees in the internal arena, and connection maps keyed by FBX object id (u64).
  2. Borrowed accessObject wraps a LazyObject + template + Document for Object::properties, Object::attributes, and connection helpers (OO / OP / PP).
  3. Owned rowOwnedObject copies properties, subtree fbxscii::ElementAttribute map, and outgoing connection lists for use without holding a Document.
  4. Classificationobjects::ClassifiedFbxObject::try_from dispatches OwnedObject by type_name / class_name (Assimp-style) into mesh, material, animation, etc.
  5. AggregateOwnedDocument::from walks all objects, classifies, and fills typed Vecs plus OwnedDocument::unknown_objects for rows that fail narrowing.

Connection semantics are documented on crate::document::ObjectPropertyConnection and Object accessor methods.

Re-exports§

pub use objects::AnimationCurve;
pub use objects::AnimationCurveNode;
pub use objects::AnimationLayer;
pub use objects::AnimationStack;
pub use objects::BlendShape;
pub use objects::BlendShapeChannel;
pub use objects::Camera;
pub use objects::CameraSwitcher;
pub use objects::ClassifiedFbxObject;
pub use objects::Cluster;
pub use objects::FbxTryFromReason;
pub use objects::FbxTypeMismatch;
pub use objects::LayeredTexture;
pub use objects::Light;
pub use objects::LightDecay;
pub use objects::LightType;
pub use objects::LimbNode;
pub use objects::LineGeometry;
pub use objects::Material;
pub use objects::MeshGeometry;
pub use objects::Model;
pub use objects::ModelGeometryRef;
pub use objects::ModelRotationOrder;
pub use objects::ModelTransformInheritance;
pub use objects::NodeAttributeRef;
pub use objects::NullNode;
pub use objects::ShapeGeometry;
pub use objects::Skin;
pub use objects::Texture;
pub use objects::Video;

Modules§

objects
Typed FBX object wrappers aligned with Assimp’s FBXDocument and LazyObject::Get-style dispatch.

Structs§

Document
GlobalSettings
ImportSettings
LazyObject
Object
One FBX object id: metadata from LazyObject, template from definitions, subtree from arena.
ObjectPropertyConnection
Endpoint for OP / PP rows: destination object id and property name on that object.
Objects
OwnedDocument
Fully owned FBX DOM view: header, definitions, globals, connection graph, and typed object rows.
OwnedObject
Detached FBX object: typed Property map from Properties70, non-property subtree as ElementAttribute map (mesh Vertices, layer elements, etc.), and outgoing connection edges.
PropertyDetails

Enums§

DocumentParseError
FrameRate
ObjectError
Property
PropertyParseError

Type Aliases§

Template