1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
//! Data types, collections, and algorithms for working with maps on 2D and 3D integer lattices.
//! Commonly known as pixel or voxel data.
//!
//! This library is organized into several crates:
//! - **core**: lattice point and extent data types
//! - **image**: conversion of 2D lattice maps to/from images
//! - **mesh**: 3D isosurface generation algorithms, smooth and cubic
//! - **partition**: spatial queries on voxels, e.g. raycasting
//! - **procgen**: procedural generation of lattice maps, including sampled SDFs and height maps
//! - **search**: search algorithms on lattice maps
//! - **storage**: compressed storage for lattice maps, i.e. functions defined on `Z^2` and `Z^3`
//! - **vox**: conversion of 3D lattice maps to/from VOX data format
//!
//! To learn the basics about lattice maps, start with these doc pages:
//!
//! - [points](https://docs.rs/building_blocks_core/latest/building_blocks_core/point/struct.PointN.html)
//! - [extents](https://docs.rs/building_blocks_core/latest/building_blocks_core/extent/struct.ExtentN.html)
//! - [arrays](https://docs.rs/building_blocks_storage/latest/building_blocks_storage/array/index.html)
//! - [access traits](https://docs.rs/building_blocks_storage/latest/building_blocks_storage/access/index.html)
//! - [chunk maps](https://docs.rs/building_blocks_storage/latest/building_blocks_storage/chunk_map/index.html)
//! - [transform maps](https://docs.rs/building_blocks_storage/latest/building_blocks_storage/transform_map/index.html)
//! - [fn maps](https://docs.rs/building_blocks_storage/latest/building_blocks_storage/func/index.html)

// TODO: when rust 1.49 is stable, update the the hyperlinks above to use RFC 1946 "intra-links"

pub use building_blocks_core as core;
pub use building_blocks_storage as storage;

pub mod prelude {
    pub use super::core::prelude::*;
    pub use super::storage::prelude::*;
}

#[cfg(feature = "image")]
pub use building_blocks_image as image;

#[cfg(feature = "mesh")]
pub use building_blocks_mesh as mesh;

#[cfg(feature = "partition")]
pub use building_blocks_partition as partition;

#[cfg(feature = "procgen")]
pub use building_blocks_procgen as procgen;

#[cfg(feature = "search")]
pub use building_blocks_search as search;

#[cfg(feature = "vox")]
pub use building_blocks_vox as vox;