candlewick 0.1.0
A renderer
Loading...
Searching...
No Matches
math_types.h File Reference
#include <Eigen/Core>
#include <SDL3/SDL_stdinc.h>

Go to the source code of this file.

Classes

struct  candlewick::GpuMat3
 
struct  candlewick::Rad< T >
 Strong type for floating-point variables representing angles (in radians). More...
 
struct  candlewick::Deg< T >
 Strong type for floating-point variables representing angles (in degrees). More...
 

Namespaces

namespace  candlewick
 
namespace  candlewick::constants
 
namespace  candlewick::math
 

Typedefs

using candlewick::Float2 = Eigen::Vector2f
 
using candlewick::Float3 = Eigen::Vector3f
 
using candlewick::Float4 = Eigen::Vector4f
 
using candlewick::Mat3f = Eigen::Matrix3f
 
using candlewick::Mat4f = Eigen::Matrix4f
 
using candlewick::Vec3u8 = Eigen::Matrix<Uint8, 3, 1>
 
using candlewick::Vec4u8 = Eigen::Matrix<Uint8, 4, 1>
 
using candlewick::FrustumCornersType = std::array<Float3, 8ul>
 
using candlewick::GpuVec2 = Eigen::Matrix<float, 2, 1, Eigen::DontAlign>
 
using candlewick::GpuVec3 = Eigen::Matrix<float, 3, 1, Eigen::DontAlign>
 
using candlewick::GpuVec4 = Eigen::Matrix<float, 4, 1, Eigen::DontAlign>
 
using candlewick::GpuMat4 = Eigen::Matrix<float, 4, 4, Eigen::ColMajor | Eigen::DontAlign>
 
using candlewick::Radf = Rad<float>
 
using candlewick::Degf = Deg<float>
 
using candlewick::OpaqueCastable = std::tuple<const Mesh &, Mat4f>
 Intermediary argument type for shadow-casting or opaque objects. For use in depth or light pre-passes.
 

Functions

constexpr double candlewick::deg2rad (double t)
 
constexpr float candlewick::deg2rad (float t)
 
constexpr float candlewick::rad2deg (float t)
 
template<std::floating_point T>
 candlewick::Rad (T) -> Rad< T >
 
template<std::floating_point T>
 candlewick::Deg (T) -> Deg< T >
 
template<std::floating_point T>
constexpr Rad< T > candlewick::operator* (const Rad< T > &left, const T &right)
 
template<std::floating_point T>
constexpr Rad< T > candlewick::operator* (const T &left, const Rad< T > &right)
 
constexpr auto candlewick::operator""_radf (long double t)
 
constexpr auto candlewick::operator""_rad (long double t)
 
constexpr auto candlewick::operator""_deg (long double t)
 
constexpr auto candlewick::operator""_degf (long double t)
 
Vec3u8 candlewick::hexToRgbi (unsigned long hex)
 
Vec4u8 candlewick::hexToRgbai (unsigned long hex)
 
Float3 candlewick::hexToRgbf (unsigned long hex)
 
Float4 candlewick::hexToRgbaf (unsigned long hex)
 
Float3 candlewick::operator""_rgbf (unsigned long long hex)
 
Float4 candlewick::operator""_rgbaf (unsigned long long hex)
 
Eigen::Vector3d candlewick::operator""_rgb (unsigned long long hex)
 
Eigen::Vector4d candlewick::operator""_rgba (unsigned long long hex)
 
constexpr Uint32 candlewick::math::roundUpTo16 (Uint32 value)
 
Mat3f candlewick::math::computeNormalMatrix (const Mat4f &M)
 

Variables

constexpr double candlewick::constants::Pi = 3.1415926535897932
 
constexpr float candlewick::constants::Pif = 3.141592654f
 
constexpr double candlewick::constants::Pi_2 = 1.5707963267948966
 
constexpr float candlewick::constants::Pi_2f = 1.5707963267f