pbrt_r3/core/base/
constants.rs

1use super::types::Float;
2/*
3static PBRT_CONSTEXPR Float ShadowEpsilon = 0.0001f;
4static PBRT_CONSTEXPR Float Pi = 3.14159265358979323846;
5static PBRT_CONSTEXPR Float InvPi = 0.31830988618379067154;
6static PBRT_CONSTEXPR Float Inv2Pi = 0.15915494309189533577;
7static PBRT_CONSTEXPR Float Inv4Pi = 0.07957747154594766788;
8static PBRT_CONSTEXPR Float PiOver2 = 1.57079632679489661923;
9static PBRT_CONSTEXPR Float PiOver4 = 0.78539816339744830961;
10static PBRT_CONSTEXPR Float Sqrt2 = 1.41421356237309504880;
11*/
12pub const DOUBLE_ONE_MINUS_EPSILON: f64 = 0.99999999999999989;
13pub const FLOAT_ONE_MINUS_EPSILON: f32 = 0.99999994;
14
15#[cfg(not(feature = "float-as-double"))]
16mod detail {
17    use super::*;
18
19    pub const SHADOW_EPSILON: Float = 0.0001;
20    pub const PI: Float = std::f32::consts::PI; //3.14159265358979323846;
21    pub const INV_PI: Float = std::f32::consts::FRAC_1_PI; //0.31830988618379067154;
22    pub const INV_2_PI: Float = INV_PI * 0.5;
23    pub const INV_4_PI: Float = INV_PI * 0.25;
24
25    pub const INV_SQRT_PI: Float = 0.5 * std::f32::consts::FRAC_2_SQRT_PI; //1 / sqrt(pi)
26
27    pub const PI_OVER_2: Float = PI / 2.0; //1.57079632679489661923
28    pub const PI_OVER_4: Float = PI / 4.0; //0.78539816339744830961
29
30    pub const SQRT_2: Float = std::f32::consts::SQRT_2;
31
32    pub const ONE_MINUS_EPSILON: f32 = FLOAT_ONE_MINUS_EPSILON;
33}
34
35#[cfg(feature = "float-as-double")]
36mod detail {
37    use super::*;
38
39    pub const SHADOW_EPSILON: Float = 0.0001;
40    pub const PI: Float = std::f64::consts::PI; //3.14159265358979323846;
41    pub const INV_PI: Float = std::f64::consts::FRAC_1_PI; //0.31830988618379067154;
42    pub const INV_2_PI: Float = INV_PI * 0.5;
43    pub const INV_4_PI: Float = INV_PI * 0.25;
44
45    pub const INV_SQRT_PI: Float = 0.5 * std::f64::consts::FRAC_2_SQRT_PI; //1 / sqrt(pi)
46
47    pub const PI_OVER_2: Float = PI / 2.0; //1.57079632679489661923
48    pub const PI_OVER_4: Float = PI / 4.0; //0.78539816339744830961
49
50    pub const SQRT_2: Float = std::f64::consts::SQRT_2;
51
52    pub const ONE_MINUS_EPSILON: f64 = DOUBLE_ONE_MINUS_EPSILON;
53}
54
55pub use detail::*;