1#![deny(unsafe_code)]
6#![warn(missing_docs)]
7
8mod error;
9mod format;
10#[cfg(feature = "io-manifest")]
11mod manifest;
12mod options;
13#[cfg(feature = "streaming")]
14mod spool;
15mod storage;
16#[cfg(all(
17 feature = "streaming",
18 any(feature = "io-pcd", feature = "io-ply", feature = "io-las", feature = "io-copc")
19))]
20mod streaming;
21mod traits;
22
23#[cfg(feature = "io-pcd")]
24pub mod pcd;
26
27#[cfg(feature = "io-ply")]
28pub mod ply;
30
31#[cfg(feature = "io-las")]
32pub mod las;
34
35#[cfg(feature = "io-e57")]
36pub mod e57;
38
39#[cfg(feature = "io-copc")]
40pub mod copc;
42
43pub use error::IoError;
44pub use format::{
45 detect_point_cloud_format, read_point_cloud_file, read_point_cloud_file_with_format,
46 write_point_cloud_file, write_point_cloud_file_with_format, PointCloudFileFormat,
47};
48#[cfg(feature = "io-manifest")]
49pub use manifest::{
50 DatasetManifest, FileReceipt, ManifestValidation, ReceiptRole, DATASET_MANIFEST_VERSION,
51};
52pub use options::{ReadOptions, WriteOptions};
53#[cfg(feature = "streaming")]
54pub use spool::{BoundedSpool, SpoolOptions};
55pub use storage::StorageRoots;
56#[cfg(feature = "storage-preflight")]
57pub use storage::{StoragePreflight, DEFAULT_MIN_OUTPUT_FREE_BYTES};
58pub use traits::{PointReader, PointSink, PointStream, PointWriter};
59
60#[cfg(feature = "io-pcd")]
61pub use pcd::{
62 infer_field_semantic, read_pcd, read_pcd_file, schema_from_pcd_fields, write_pcd,
63 write_pcd_file, PcdDataKind, PcdFieldSpec, PcdHeader, PcdReader, PcdType, PcdWriteFormat,
64 PcdWriter,
65};
66#[cfg(all(feature = "io-pcd", feature = "streaming"))]
67pub use pcd::{PcdChunkSink, PcdChunkSource};
68
69#[cfg(feature = "io-ply")]
70pub use ply::{
71 infer_property_semantic, ply_property_from_field, read_ply, read_ply_file,
72 schema_from_ply_properties, write_ply, write_ply_file, PlyFormat, PlyHeader, PlyProperty,
73 PlyPropertyKind, PlyReader, PlyWriteFormat, PlyWriter,
74};
75#[cfg(all(feature = "io-ply", feature = "streaming"))]
76pub use ply::{PlyChunkSink, PlyChunkSource};
77
78#[cfg(feature = "io-las")]
79pub use las::{
80 infer_las_field_semantic, read_las, read_las_file, schema_for_las_header,
81 schema_from_point_cloud, write_las, write_las_file, LasReader, LasWriteFormat, LasWriter,
82};
83#[cfg(all(feature = "io-las", feature = "streaming"))]
84pub use las::{LasChunkSink, LasChunkSource};
85
86#[cfg(feature = "io-e57")]
87pub use e57::{
88 e57_prototype_from_schema, read_e57, read_e57_file, schema_for_e57_pointcloud,
89 schema_from_point_cloud as e57_schema_from_point_cloud, write_e57, write_e57_file, E57Reader,
90 E57Writer,
91};
92
93#[cfg(feature = "io-copc")]
94pub use copc::{
95 copc_level_for_resolution, read_copc, read_copc_file, read_copc_file_in_bounds,
96 read_copc_file_info, read_copc_file_with_query, write_copc, write_copc_file,
97 write_copc_file_with_params, CopcBounds, CopcFileInfo, CopcNode, CopcNodeReader, CopcQuery,
98 CopcReader, CopcWriter, CopcWriterParams,
99};
100#[cfg(all(feature = "io-copc", feature = "streaming"))]
101pub use copc::{write_copc_stream, CopcChunkSource, CopcStreamingWriteReceipt};
102
103#[cfg(feature = "io-copc-http")]
104pub use copc::{read_copc_url, read_copc_url_info, read_copc_url_with_query, HttpByteSource};