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;