draco_oxide/lib.rs
1// lib.rs
2
3/// Contains the interface between `Mesh` object and 3D geometry files
4/// such as obj and gltf.
5pub mod io;
6
7/// Contains compression techniques used by the encoder and the decoder.
8pub(crate) mod shared;
9
10/// Defines the mesh encoder.
11pub mod encode;
12
13// /// Defines the decoders.
14// pub mod decode;
15
16/// Contains the shared definitions, native objects, and the buffer.
17pub(crate) mod core;
18
19/// Contains the macros used by the encoder and the decoder.
20pub(crate) mod utils;
21
22/// Contains the most commonly used traits, types, and objects.
23pub mod prelude {
24 pub use crate::core::attribute::{Attribute, AttributeType};
25 pub use crate::core::bit_coder::{
26 ByteReader, ByteWriter, FunctionalByteReader, FunctionalByteWriter,
27 };
28 pub use crate::core::mesh::{builder::MeshBuilder, Mesh};
29 pub use crate::core::shared::ConfigType;
30 pub use crate::core::shared::{DataValue, NdVector, Vector};
31 pub use crate::encode::{self, encode};
32 // pub use crate::decode::{self, decode};
33}
34
35/// Evaluation module contains the evaluation functions for the encoder and the decoder.
36/// When enabled, draco-oxide encoder will spit out the evaluation data mixed with encoded data,
37/// and then the `EvalWriter` is used to filter out the evaluation data. This functionality is
38/// most often used in the development and testing phase.
39#[cfg(feature = "evaluation")]
40pub mod eval;