Skip to main content

spatialrust_interchange/
lib.rs

1//! glTF, OpenUSD, and OGC 3D Tiles scene interchange adapters.
2//!
3//! `openusd` provides in-memory stages plus USDA ASCII mesh export/import.
4//! `tiles3d` provides deterministic OGC 3D Tiles 1.1 point-cloud tilesets
5//! (`tileset.json` + `pnts` payloads). Native libusd bindings remain optional
6//! and outside the default tree.
7
8#![deny(unsafe_code)]
9#![warn(missing_docs)]
10
11mod error;
12#[cfg(feature = "tiles3d")]
13mod json;
14
15#[cfg(feature = "gltf")]
16mod gltf;
17#[cfg(feature = "tiles3d")]
18mod tiles3d;
19#[cfg(feature = "openusd")]
20mod usd;
21
22pub use error::{InterchangeError, InterchangeResult};
23
24#[cfg(feature = "gltf")]
25pub use gltf::{
26    decode_triangle_mesh_gltf_json, export_triangle_mesh_gltf_json, import_triangle_mesh_gltf_json,
27};
28#[cfg(feature = "tiles3d")]
29pub use tiles3d::{
30    build_point_tileset, decode_pnts, encode_pnts, parse_tileset_json, serialize_tileset_json,
31    write_point_tileset, BoundingVolume, BuiltTile, BuiltTileset, PntsFeatureTable, Refinement,
32    Tile, TileContent, Tileset, TilesetBuilderOptions, TilesetWriteReceipt,
33};
34#[cfg(feature = "tiles3d-copc")]
35pub use tiles3d::{export_copc_tileset, CopcTilesetOptions};
36#[cfg(feature = "openusd")]
37pub use usd::{
38    export_stage_usda, import_mesh_from_usda, MemoryUsdStageAdapter, UsdPrimPath, UsdStageAdapter,
39    UsdStageDescription,
40};