Skip to main content

draco_io/
lib.rs

1//! Low-level format I/O and glTF binary contracts for Draco.
2//!
3//! Full glTF documents, scene preservation, compression and compact views live
4//! in `draco-gltf`. This crate intentionally owns only container/resource and
5//! accessor-to-geometry primitives.
6
7#![cfg_attr(docsrs, feature(doc_cfg))]
8#![deny(missing_docs)]
9
10#[cfg(feature = "fbx-reader")]
11/// FBX ASCII container reader.
12pub mod fbx_ascii;
13#[cfg(any(feature = "fbx-reader", feature = "fbx-writer"))]
14mod fbx_ascii_syntax;
15#[cfg(feature = "fbx-writer")]
16mod fbx_ascii_writer;
17#[cfg(feature = "fbx-reader")]
18/// FBX binary container decoder.
19pub mod fbx_container;
20#[cfg(feature = "fbx-writer")]
21mod fbx_encoder;
22#[cfg(any(feature = "fbx-reader", feature = "fbx-writer"))]
23pub mod fbx_node;
24#[cfg(feature = "fbx-reader")]
25/// Byte order, resource limits, and read options for the FBX reader.
26pub mod fbx_options;
27#[cfg(feature = "fbx-reader")]
28/// FBX binary reader.
29pub mod fbx_reader;
30#[cfg(any(feature = "fbx-reader", feature = "fbx-writer"))]
31/// Polygon-corner-domain expansion of FBX geometry.
32pub mod fbx_render_mesh;
33#[cfg(any(feature = "fbx-reader", feature = "fbx-writer"))]
34mod fbx_scene;
35#[cfg(feature = "fbx-reader")]
36mod fbx_templates;
37#[cfg(feature = "fbx-reader")]
38/// Composition of the FBX transform stack into a local matrix.
39mod fbx_transform;
40#[cfg(feature = "fbx-writer")]
41/// FBX binary writer.
42pub mod fbx_writer;
43#[cfg(feature = "gltf-container")]
44/// glTF/GLB containers and resource resolution.
45pub mod gltf_container;
46#[cfg(feature = "gltf-container")]
47mod gltf_error;
48#[cfg(feature = "gltf-geometry")]
49/// Reader-agnostic accessor and Draco geometry contracts.
50pub mod gltf_geometry;
51#[cfg(feature = "gltf-container")]
52/// `EXT_meshopt_compression` bitstream decoders.
53pub mod meshopt;
54#[cfg(feature = "obj-reader")]
55/// Wavefront OBJ reader.
56pub mod obj_reader;
57#[cfg(feature = "obj-writer")]
58/// Wavefront OBJ writer.
59pub mod obj_writer;
60/// PLY format configuration.
61pub mod ply_format;
62#[cfg(feature = "ply-reader")]
63/// PLY reader.
64pub mod ply_reader;
65#[cfg(feature = "ply-writer")]
66/// PLY writer.
67pub mod ply_writer;
68#[cfg(feature = "stl-reader")]
69/// STL reader.
70pub mod stl_reader;
71#[cfg(feature = "stl-writer")]
72/// STL writer.
73pub mod stl_writer;
74/// Shared reader and writer traits.
75pub mod traits;
76
77#[cfg(feature = "fbx-reader")]
78pub use fbx_options::{FbxByteOrder, FbxDecodeLimits, FbxReadOptions};
79#[cfg(feature = "fbx-reader")]
80pub use fbx_reader::{FbxMemoryReader, FbxReader};
81#[cfg(any(feature = "fbx-reader", feature = "fbx-writer"))]
82pub use fbx_render_mesh::{FbxGeometryLayers, FbxRenderLayer, FbxRenderMesh};
83#[cfg(any(feature = "fbx-reader", feature = "fbx-writer"))]
84pub use fbx_scene::{
85    FbxAnimChannel, FbxAnimChannelPath, FbxAnimInterpolation, FbxAnimSampler, FbxAnimation,
86    FbxBinormalSet, FbxCamera, FbxColorSet, FbxCreaseKind, FbxCreaseLayer, FbxGlobalSettings,
87    FbxLayerSet, FbxLight, FbxMaterial, FbxMeshInstance, FbxMeshLayers, FbxMorphTarget,
88    FbxNodeAttribute, FbxNodeId, FbxNormalSet, FbxScene, FbxSceneNode, FbxSkin, FbxSkinCluster,
89    FbxSmoothingLayer, FbxTangentSet, FbxTexture, FbxTextureBinding, FbxTextureSlot, FbxTransform,
90    FbxTransformStack, FbxUvSet, FbxWarning, FbxWarningCode,
91};
92#[cfg(feature = "fbx-writer")]
93pub use fbx_writer::{FbxFormat, FbxWriter};
94#[cfg(feature = "gltf-container")]
95pub use gltf_container::{
96    decode_data_uri, inspect_glb, parse_glb_json_and_bin, parse_gltf_container,
97    resolve_gltf_buffers, resolve_resource_uri, ExternalFilePolicy, FileResourceResolver,
98    GlbChunkDescriptor, GlbLayout, GlbRangeReader, GltfBufferReference, GltfContainer,
99    GltfContainerFormat, ResourceLimits, ResourceResolver,
100};
101#[cfg(feature = "gltf-container")]
102pub use gltf_error::GltfError;
103#[cfg(feature = "gltf-geometry")]
104pub use gltf_geometry::{decode_geometry, AccessorSource, DecodedAccessor};
105#[cfg(feature = "gltf-container")]
106pub use meshopt::{MeshoptFilter, MeshoptMode};
107#[cfg(feature = "obj-reader")]
108pub use obj_reader::ObjReader;
109#[cfg(feature = "obj-writer")]
110pub use obj_writer::ObjWriter;
111pub use ply_format::PlyFormat;
112#[cfg(feature = "ply-reader")]
113pub use ply_reader::PlyReader;
114#[cfg(feature = "ply-writer")]
115pub use ply_writer::PlyWriter;
116#[cfg(feature = "stl-reader")]
117pub use stl_reader::StlReader;
118#[cfg(feature = "stl-writer")]
119pub use stl_writer::{StlFormat, StlWriter};
120pub use traits::{PointCloudReader, PointCloudWriter, ReadFromBytes, Reader, WriteToBytes, Writer};