diff --git a/Cargo.toml b/Cargo.toml index faecde8..92ea5a9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,12 +1,12 @@ [package] name = "pcd_reader" -license="MIT" -description="Reading PointCloud Data from PCD Format" +license = "MIT" +description = "Reading PointCloud Data from PCD Format" version = "0.1.0" edition = "2018" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -byteorder="1.4.3" -lzf="0.3.1" \ No newline at end of file +byteorder = "1.4.3" +lzf-rust = "0.1.0" diff --git a/src/lib.rs b/src/lib.rs index 90dccba..ec20640 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -5,9 +5,9 @@ use std::io::prelude::*; use std::io::BufReader; /// PointCloud struct -/// +/// /// Usage: -/// +/// /// ``` /// use pcd_reader::PointCloud; /// let filename = "sample/sample_binary_compressed.pcd"; @@ -124,8 +124,14 @@ impl PointCloud { let mut compressed_size_buffer = vec![0u8; compressed_size]; let _ = reader.read_exact(&mut compressed_size_buffer); - let decompressed_buffer = lzf::decompress(&compressed_size_buffer, uncompressed_size) - .expect("error decompressing binary_comprressed pcd data."); + let mut decompressed_buffer = vec![0u8; uncompressed_size]; + if let Ok(result_len) = + lzf_rust::decompress(&compressed_size_buffer, &mut decompressed_buffer) + { + decompressed_buffer.truncate(result_len); + } else { + panic!("error decompressing binary_comprressed pcd data."); + } PointCloud { decompressed_buffer, header: PointCloudHeader { @@ -292,4 +298,3 @@ impl PointCloud { data_buffer } } -