5. Boost package for math¶
The math boost module implements collection of helper macros and functions to accompany math.
All functions and symbols are in “math_boost” module, use require to get access to it.
require daslib/math_boost
-
AABR
¶
AABR fields are
min |
float2 |
max |
float2 |
axis aligned bounding rectangle
-
AABB
¶
AABB fields are
min |
float3 |
max |
float3 |
axis aligned bounding box
-
Ray
¶
Ray fields are
dir |
float3 |
origin |
float3 |
ray (direction and origin)
5.1. Angle conversions¶
-
degrees
(f: float const)¶
degrees returns float
argument |
argument type |
---|---|
f |
float const |
convert radians to degrees
-
radians
(f: float const)¶
radians returns float
argument |
argument type |
---|---|
f |
float const |
convert degrees to radians
5.2. Intersections¶
-
is_intersecting
(a: AABR const; b: AABR const)¶
is_intersecting returns bool
argument |
argument type |
---|---|
a |
math_boost::AABR const |
b |
math_boost::AABR const |
A.LO<=B.HI && A.HI>=B.LO
-
is_intersecting
(a: AABB const; b: AABB const)
is_intersecting returns bool
argument |
argument type |
---|---|
a |
math_boost::AABB const |
b |
math_boost::AABB const |
A.LO<=B.HI && A.HI>=B.LO
-
is_intersecting
(ray: Ray const; aabb: AABB const; Tmin: float const; Tmax: float const)
is_intersecting returns bool
argument |
argument type |
---|---|
ray |
math_boost::Ray const |
aabb |
math_boost::AABB const |
Tmin |
float const |
Tmax |
float const |
A.LO<=B.HI && A.HI>=B.LO
5.3. Matrices¶
look_at_lh (Eye:float3 const;At:float3 const;Up:float3 const) : math::float4x4
look_at_rh (Eye:float3 const;At:float3 const;Up:float3 const) : math::float4x4
perspective_lh (fovy:float const;aspect:float const;zn:float const;zf:float const) : math::float4x4
perspective_rh (fovy:float const;aspect:float const;zn:float const;zf:float const) : math::float4x4
planar_shadow (Light:float4 const;Plane:float4 const) : math::float4x4
-
look_at_lh
(Eye: float3 const; At: float3 const; Up: float3 const)¶
look_at_lh returns math::float4x4
argument |
argument type |
---|---|
Eye |
float3 const |
At |
float3 const |
Up |
float3 const |
left-handed (z forward) look at matrix with origin at Eye and target at At, and up vector Up.
-
look_at_rh
(Eye: float3 const; At: float3 const; Up: float3 const)¶
look_at_rh returns math::float4x4
argument |
argument type |
---|---|
Eye |
float3 const |
At |
float3 const |
Up |
float3 const |
right-handed (z towards viewer) look at matrix with origin at Eye and target at At, and up vector Up.
-
perspective_lh
(fovy: float const; aspect: float const; zn: float const; zf: float const)¶
perspective_lh returns math::float4x4
argument |
argument type |
---|---|
fovy |
float const |
aspect |
float const |
zn |
float const |
zf |
float const |
left-handed (z forward) perspective matrix
-
perspective_rh
(fovy: float const; aspect: float const; zn: float const; zf: float const)¶
perspective_rh returns math::float4x4
argument |
argument type |
---|---|
fovy |
float const |
aspect |
float const |
zn |
float const |
zf |
float const |
right-handed (z toward viewer) perspective matrix
-
perspective_rh_opengl
(fovy: float const; aspect: float const; zn: float const; zf: float const)¶
perspective_rh_opengl returns math::float4x4
argument |
argument type |
---|---|
fovy |
float const |
aspect |
float const |
zn |
float const |
zf |
float const |
right-handed (z toward viewer) opengl (z in [-1..1]) perspective matrix
-
ortho_rh
(left: float const; right: float const; bottom: float const; top: float const; zNear: float const; zFar: float const)¶
ortho_rh returns math::float4x4
argument |
argument type |
---|---|
left |
float const |
right |
float const |
bottom |
float const |
top |
float const |
zNear |
float const |
zFar |
float const |
right handed (z towards viwer) orthographic (parallel) projection matrix
-
planar_shadow
(Light: float4 const; Plane: float4 const)¶
planar_shadow returns math::float4x4
argument |
argument type |
---|---|
Light |
float4 const |
Plane |
float4 const |
planar shadow projection matrix, i.e. all light shadows to be projected on a plane
5.4. Plane¶
-
plane_dot
(Plane: float4 const; Vec: float4 const)¶
plane_dot returns float
argument |
argument type |
---|---|
Plane |
float4 const |
Vec |
float4 const |
dot product of Plane and ‘Vec’
-
plane_normalize
(Plane: float4 const)¶
plane_normalize returns float4 const
argument |
argument type |
---|---|
Plane |
float4 const |
normalize `Plane’, length xyz will be 1.0 (or 0.0 for no plane)
-
plane_from_point_normal
(p: float3 const; n: float3 const)¶
plane_from_point_normal returns float4
argument |
argument type |
---|---|
p |
float3 const |
n |
float3 const |
construct plane from point p and normal n
5.5. Color packig and unpacking¶
-
RGBA_TO_UCOLOR
(x: float const; y: float const; z: float const; w: float const)¶
RGBA_TO_UCOLOR returns uint
argument |
argument type |
---|---|
x |
float const |
y |
float const |
z |
float const |
w |
float const |
conversion from RGBA to ucolor. x,y,z,w are in [0,1] range
-
RGBA_TO_UCOLOR
(xyzw: float4 const)
RGBA_TO_UCOLOR returns uint
argument |
argument type |
---|---|
xyzw |
float4 const |
conversion from RGBA to ucolor. x,y,z,w are in [0,1] range
-
UCOLOR_TO_RGBA
(x: uint const)¶
UCOLOR_TO_RGBA returns float4
argument |
argument type |
---|---|
x |
uint const |
conversion from ucolor to RGBA. x components are in [0,255] range
-
UCOLOR_TO_RGB
(x: uint const)¶
UCOLOR_TO_RGB returns float3
argument |
argument type |
---|---|
x |
uint const |
conversion from ucolor to RGB. x components are in [0,255] range. result is float3(x,y,z)
5.6. Uncategorized¶
-
linear_to_SRGB
(x: float const)¶
linear_to_SRGB returns float
argument |
argument type |
---|---|
x |
float const |
convert value from linear space to sRGB curve space
-
linear_to_SRGB
(c: float3 const)
linear_to_SRGB returns float3
argument |
argument type |
---|---|
c |
float3 const |
convert value from linear space to sRGB curve space
-
linear_to_SRGB
(c: float4 const)
linear_to_SRGB returns float4
argument |
argument type |
---|---|
c |
float4 const |
convert value from linear space to sRGB curve space