Skip to main content

oxigeo_copc/
lib.rs

1//! Pure Rust COPC (Cloud Optimized Point Cloud) reader.
2//!
3//! Implements end-to-end reading of COPC (Cloud Optimized Point Cloud) files
4//! built on top of an ASPRS LAS 1.4 public header parser.
5//!
6//! # Module layout
7//! - [`las_header`] parses the LAS public header block.
8//! - [`copc_vlr`] defines the VLR / COPC info binary layout.
9//! - [`vlr_chain`] walks the VLR sequence and locates COPC records.
10//! - [`point_format`] deserializes LAS point records (formats 0-3, 6-10).
11//! - [`hierarchy`] parses COPC octree hierarchy pages and traverses them.
12//! - [`copc_reader`] ties everything together behind the [`CopcReader`] API.
13//!
14//! In-memory point storage and spatial indexing are provided by the [`point`],
15//! [`octree`] and [`profile`] modules.
16
17pub mod copc_reader;
18pub mod copc_vlr;
19pub mod crs_vlr;
20pub mod error;
21pub mod extended_vlr;
22pub mod hierarchy;
23pub mod las_header;
24pub mod laz;
25pub mod octree;
26pub mod point;
27pub mod point_format;
28pub mod profile;
29pub mod vlr_chain;
30
31pub use copc_reader::CopcReader;
32pub use copc_vlr::{CopcInfo, Vlr, VlrKey};
33pub use crs_vlr::{
34    CrsInfo, GeoKeyDirectory, GeoKeyEntry, extract_crs_info, parse_geo_key_directory,
35};
36pub use error::CopcError;
37pub use extended_vlr::{ExtendedVlr, parse_evlr_chain, version_supports_evlr};
38pub use hierarchy::{HierarchyEntry, VoxelKey};
39pub use las_header::{LasHeader, LasVersion};
40pub use laz::{LazItem, LazVlrInfo, decompress_chunk, detect_laszip_vlr, parse_laszip_vlr_data};
41pub use octree::{Octree, OctreeNode, PointCloudStats};
42pub use point::{BoundingBox3D, Point3D, WaveformPacket};
43pub use point_format::{deserialize_point, deserialize_points};
44pub use profile::{GroundFilter, HeightProfile, ProfileSegment};
45pub use vlr_chain::{find_copc_hierarchy_vlr, find_copc_info, parse_vlrs};