Skip to main content

spatialrust_io/
lib.rs

1//! Point cloud and spatial data IO for SpatialRust.
2//!
3//! Format support is feature-gated. Core reader/writer traits live here.
4
5#![deny(unsafe_code)]
6#![warn(missing_docs)]
7
8mod error;
9mod format;
10mod options;
11mod traits;
12
13#[cfg(feature = "io-pcd")]
14/// PCD (Point Cloud Data) readers and writers.
15pub mod pcd;
16
17#[cfg(feature = "io-ply")]
18/// PLY (Polygon File Format) readers and writers.
19pub mod ply;
20
21#[cfg(feature = "io-las")]
22/// LAS/LAZ (ASPRS LiDAR) readers and writers.
23pub mod las;
24
25#[cfg(feature = "io-e57")]
26/// E57 (ASTM E2807) readers and writers.
27pub mod e57;
28
29#[cfg(feature = "io-copc")]
30/// COPC (Cloud Optimized Point Cloud) readers and writers.
31pub mod copc;
32
33pub use error::IoError;
34pub use format::{
35    detect_point_cloud_format, read_point_cloud_file, read_point_cloud_file_with_format,
36    write_point_cloud_file, write_point_cloud_file_with_format, PointCloudFileFormat,
37};
38pub use options::{ReadOptions, WriteOptions};
39pub use traits::{PointReader, PointSink, PointStream, PointWriter};
40
41#[cfg(feature = "io-pcd")]
42pub use pcd::{
43    infer_field_semantic, read_pcd, read_pcd_file, schema_from_pcd_fields, write_pcd,
44    write_pcd_file, PcdDataKind, PcdFieldSpec, PcdHeader, PcdReader, PcdType, PcdWriteFormat,
45    PcdWriter,
46};
47
48#[cfg(feature = "io-ply")]
49pub use ply::{
50    infer_property_semantic, ply_property_from_field, read_ply, read_ply_file,
51    schema_from_ply_properties, write_ply, write_ply_file, PlyFormat, PlyHeader, PlyProperty,
52    PlyPropertyKind, PlyReader, PlyWriteFormat, PlyWriter,
53};
54
55#[cfg(feature = "io-las")]
56pub use las::{
57    infer_las_field_semantic, read_las, read_las_file, schema_for_las_header,
58    schema_from_point_cloud, write_las, write_las_file, LasReader, LasWriteFormat, LasWriter,
59};
60
61#[cfg(feature = "io-e57")]
62pub use e57::{
63    e57_prototype_from_schema, read_e57, read_e57_file, schema_for_e57_pointcloud,
64    schema_from_point_cloud as e57_schema_from_point_cloud, write_e57, write_e57_file, E57Reader,
65    E57Writer,
66};
67
68#[cfg(feature = "io-copc")]
69pub use copc::{
70    copc_level_for_resolution, read_copc, read_copc_file, read_copc_file_in_bounds,
71    read_copc_file_info, read_copc_file_with_query, write_copc, write_copc_file,
72    write_copc_file_with_params, CopcBounds, CopcFileInfo, CopcQuery, CopcReader, CopcWriter,
73    CopcWriterParams,
74};
75
76#[cfg(feature = "io-copc-http")]
77pub use copc::{read_copc_url, read_copc_url_info, read_copc_url_with_query, HttpByteSource};