51 lines
1.5 KiB
Rust
51 lines
1.5 KiB
Rust
pub mod camera;
|
|
pub mod canvas;
|
|
pub mod intersections;
|
|
pub mod lights;
|
|
pub mod materials;
|
|
pub mod matrices;
|
|
pub mod rays;
|
|
pub mod shapes;
|
|
pub mod transformations;
|
|
pub mod tuples;
|
|
pub mod world;
|
|
|
|
/// Value considered close enough for PartialEq implementations.
|
|
pub const EPSILON: Float = 0.00001;
|
|
|
|
pub const BLACK: tuples::Color = tuples::Color::new(0., 0., 0.);
|
|
pub const WHITE: tuples::Color = tuples::Color::new(1., 1., 1.);
|
|
|
|
#[cfg(feature = "float-as-double")]
|
|
/// submodule to defined types, constants and methods when `Float` is defined as a `f64` using the
|
|
/// "float-as-double" cargo feature.
|
|
pub mod float {
|
|
pub use std::f64::*;
|
|
/// Alias of the `f64` type, to be used through out the codebase anywhere a default sized
|
|
/// `Float` is necessary.
|
|
pub type Float = f64;
|
|
}
|
|
|
|
#[cfg(not(feature = "float-as-double"))]
|
|
/// submodule to defined types, constants and methods when `Float` is defined as a `f32` when not using the
|
|
/// "float-as-double" cargo feature.
|
|
pub mod float {
|
|
pub use std::f32::*;
|
|
/// Alias of the `f32` type, to be used through out the codebase anywhere a default sized
|
|
/// `Float` is necessary.
|
|
pub type Float = f32;
|
|
}
|
|
|
|
pub use float::Float;
|
|
|
|
pub mod prelude {
|
|
pub use crate::{
|
|
materials::{Material, MaterialBuilder},
|
|
matrices::{identity, rotation_x, rotation_y, rotation_z, scaling, shearing, translation},
|
|
shapes::{plane, sphere, test_shape},
|
|
transformations::view_transform,
|
|
tuples::{point, vector, Color},
|
|
world::{World, WorldBuilder},
|
|
};
|
|
}
|