Gamp v0.0.7-54-gccdc599
Gamp: Graphics, Audio, Multimedia and Processing
Loading...
Searching...
No Matches
jau::math::util Namespace Reference

Classes

class  MatrixStack
 A Matrix stack of compounds, each consisting of 16 * T More...
 
class  PMVMatrix4
 PMVMatrix4 implements the basic computer graphics Matrix4 pack using projection (P), modelview (Mv) and texture (T) Matrix4 operations. More...
 
class  SimpleStack
 A simple stack of compounds, each consisting of element_size * T More...
 
class  SyncBuffer
 Convenient tuple of a sync_action_t and data buffer. More...
 
class  SyncMatrices4
 SyncBuffer interface with multiple underlying Matrix4. More...
 

Typedefs

typedef MatrixStack< float > Mat4fStack
 4x4 float matrix stack
 
typedef PMVMatrix4< float > PMVMat4f
 
typedef SimpleStack< float, 16 > Stack16f
 4x4 float matrix stack based on single float elements
 
typedef void(* sync_action_fptr) ()
 Plain function pointer type matching sync_action_t.
 
typedef jau::function< void()> sync_action_t
 Specific data synchronization action implemented by the data provider to update the buffer with the underlying data before usage, e.g.
 
typedef SyncMatrices4< float > SyncMats4f
 

Enumerations

enum class  PMVData : uint32_t {
  PMVData::none = 0 , PMVData::inv_mv = 1 << 1 , PMVData::inv_tps_mv = 1 << 2 , PMVData::inv_proj = 1 << 3 ,
  PMVData::frustum = 1 << 4 , PMVData::pre_pmv = 1 << 5 , PMVData::pre_pmvi = 1 << 6 , PMVData::manual = frustum | pre_pmv | pre_pmvi
}
 PMVMatrix4 derived matrices and values. More...
 
enum class  PMVMod : uint32_t {
  PMVMod::none = 0 , PMVMod::proj = 1 << 0 , PMVMod::mv = 1 << 1 , PMVMod::text = 1 << 2 ,
  PMVMod::all = proj | mv | text
}
 PMVMatrix4 modified core matrices. More...
 

Functions

constexpr jau::math::Vec3f getEulerAngleOrientation (const jau::math::Vec3f &eulerRotation) noexcept
 Returns an orientation vector for given eurler X/Y/Z angles in radians.
 
constexpr float getOrthoWinZ (float orthoZ, float zNear, float zFar) noexcept
 Returns orthogonal distance (1f/zNear-1f/orthoZ) / (1f/zNear-1f/zFar);.
 
constexpr float getZBufferEpsilon (int zBits, float z, float zNear) noexcept
 Returns resolution of Z buffer of given parameter, see Love Your Z-Buffer.
 
constexpr int getZBufferValue (int zBits, float z, float zNear, float zFar) noexcept
 Returns Z buffer value of given parameter, see Love Your Z-Buffer.
 
 JAU_MAKE_BITFIELD_ENUM_STRING (PMVData, inv_mv, inv_tps_mv, inv_proj, frustum, pre_pmv, pre_pmvi)
 
 JAU_MAKE_BITFIELD_ENUM_STRING (PMVMod, proj, mv, text)
 
template<jau::req::packed_floating_point Value_type>
std::ostream & operator<< (std::ostream &out, const PMVMatrix4< Value_type > &v) noexcept