pub struct MeshDecoder { /* private fields */ }decoder only.Expand description
Decoder for Draco triangle mesh bitstreams.
MeshDecoder reads a .drc bitstream produced by MeshEncoder (or C++
Draco) and reconstructs a Mesh: faces, attributes, and any
metadata. It handles both EdgeBreaker and sequential connectivity and
dequantizes attributes back to their original data types.
A point-cloud bitstream (geometry type 0) is also accepted and decoded into
the mesh’s underlying PointCloud with no faces.
§Examples
use draco_core::{DecoderBuffer, Mesh, MeshDecoder};
let mut mesh = Mesh::new();
MeshDecoder::new().decode(&mut DecoderBuffer::new(drc_bytes), &mut mesh)?;
println!("{} faces, {} points", mesh.num_faces(), mesh.num_points());A full encode/decode round trip is shown on the MeshEncoder type docs.
Implementations§
Source§impl MeshDecoder
impl MeshDecoder
Sourcepub fn decode(
&mut self,
in_buffer: &mut DecoderBuffer<'_>,
out_mesh: &mut Mesh,
) -> Status
pub fn decode( &mut self, in_buffer: &mut DecoderBuffer<'_>, out_mesh: &mut Mesh, ) -> Status
Decodes a Draco mesh from in_buffer into out_mesh.
Reads the header, optional metadata, connectivity, and attributes,
populating out_mesh. Point-cloud bitstreams are decoded into the
mesh’s underlying point cloud (no faces).
§Errors
Returns an error if the magic/header is invalid, the bitstream version
is unsupported, the geometry is malformed, or a required feature (such
as point_cloud_decode) is disabled.
Sourcepub fn get_corner_table_ref(&self) -> Option<&CornerTable>
pub fn get_corner_table_ref(&self) -> Option<&CornerTable>
Test helper: Returns a reference to the decoded corner table (if any). This is useful in unit tests that wish to compare encoder/decoder corner table structures without accessing internal decoder types.