#include <mat4.hpp>
template<typename value_type, typename vector3_type_raw, typename vector4_type_raw, typename quat_type_raw, typename matrix3x4_type_raw, typename matrix4x4_type_raw>
generic_mat4_rtm struct
Contents
Public types
- using component_type = value_type
- using underlying_vector3_type = typename vector3_type_raw::type
- using underlying_vector4_type = typename vector4_type_raw::type
- using underlying_quat_type = typename quat_type_raw::type
- using underlying_matrix3x4_type = typename matrix3x4_type_raw::type
- using underlying_matrix4x4_type = typename matrix4x4_type_raw::type
-
using vec3_type = generic_
vec3_ rtm<value_type, vector3_type_raw> -
using vec4_type = generic_
vec4_ rtm<value_type, vector4_type_raw>
Public static functions
-
static auto create_from_array(const value_type values[16]) -> MVM_INLINE_NODISCARD generic_
mat4_ rtm -
static auto create_identity() -> MVM_INLINE_NODISCARD generic_
mat4_ rtm noexcept -
static auto create_rotation_x(value_type angle) -> MVM_INLINE_NODISCARD generic_
mat4_ rtm noexcept -
static auto create_rotation_y(value_type angle) -> MVM_INLINE_NODISCARD generic_
mat4_ rtm noexcept -
static auto create_rotation_z(value_type angle) -> MVM_INLINE_NODISCARD generic_
mat4_ rtm noexcept -
static auto create_translation(const underlying_
vector4_ type& translation) -> MVM_INLINE_NODISCARD generic_ mat4_ rtm noexcept -
static auto create_translation(value_type x,
value_type y,
value_type z) -> MVM_INLINE_NODISCARD generic_
mat4_ rtm noexcept -
static auto create_scale(value_type x,
value_type y,
value_type z) -> MVM_INLINE_NODISCARD generic_
mat4_ rtm noexcept -
static auto create_scale(const vec3_
type& scale) -> MVM_INLINE_NODISCARD generic_ mat4_ rtm noexcept -
static auto create_perspective_rh(value_type fov,
value_type aspect,
value_type near,
value_type far) -> MVM_INLINE_NODISCARD generic_
mat4_ rtm noexcept -
static auto create_perspective_lh(value_type fov,
value_type aspect,
value_type near,
value_type far) -> MVM_INLINE_NODISCARD generic_
mat4_ rtm noexcept -
static auto create_perspective(value_type fov,
value_type aspect,
value_type near,
value_type far) -> MVM_INLINE_NODISCARD generic_
mat4_ rtm noexcept -
static auto create_ortho_rh(value_type width,
value_type height,
value_type near,
value_type far) -> MVM_INLINE_NODISCARD generic_
mat4_ rtm noexcept -
static auto create_ortho_lh(value_type width,
value_type height,
value_type near,
value_type far) -> MVM_INLINE_NODISCARD generic_
mat4_ rtm noexcept -
static auto create_ortho(value_type width,
value_type height,
value_type near,
value_type far) -> MVM_INLINE_NODISCARD generic_
mat4_ rtm noexcept -
static auto create_ortho_off_center_rh(value_type left,
value_type right,
value_type bottom,
value_type top,
value_type near,
value_type far) -> MVM_INLINE_NODISCARD generic_
mat4_ rtm noexcept -
static auto create_ortho_off_center_lh(value_type left,
value_type right,
value_type bottom,
value_type top,
value_type near,
value_type far) -> MVM_INLINE_NODISCARD generic_
mat4_ rtm noexcept -
static auto create_look_at_rh(const underlying_
vector3_ type& eye, const underlying_ vector3_ type& target, const underlying_ vector3_ type& up) -> MVM_INLINE_NODISCARD generic_ mat4_ rtm noexcept -
static auto create_look_at_lh(const underlying_
vector3_ type& eye, const underlying_ vector3_ type& target, const underlying_ vector3_ type& up) -> MVM_INLINE_NODISCARD generic_ mat4_ rtm noexcept -
static auto create_look_at(const underlying_
vector3_ type& eye, const underlying_ vector3_ type& target, const underlying_ vector3_ type& up) -> MVM_INLINE_NODISCARD generic_ mat4_ rtm noexcept -
static auto create_transformation(const underlying_
vector3_ type& translation, const underlying_ quat_ type& rotation, const underlying_ vector3_ type& scale) -> MVM_INLINE_NODISCARD generic_ mat4_ rtm noexcept
Public functions
-
auto generic_mat4_rtm() -> MVM_
INLINE noexcept -
auto generic_mat4_rtm(value_type x00,
value_type x01,
value_type x02,
value_type x03,
value_type x10,
value_type x11,
value_type x12,
value_type x13,
value_type x20,
value_type x21,
value_type x22,
value_type x23,
value_type x30,
value_type x31,
value_type x32,
float x33) -> MVM_
INLINE noexcept -
auto generic_mat4_rtm(const underlying_
vector4_ type& row0, const underlying_ vector4_ type& row1, const underlying_ vector4_ type& row2, const underlying_ vector4_ type& row3) -> MVM_ INLINE noexcept -
auto generic_mat4_rtm(const underlying_
matrix4x4_ type& rhs) -> MVM_ INLINE noexcept -
auto get_internal() const -> MVM_INLINE_NODISCARD const underlying_
matrix4x4_ type& noexcept -
auto get_internal() -> MVM_INLINE_NODISCARD underlying_
matrix4x4_ type& noexcept - auto operator underlying_matrix4x4_type&() -> MVM_INLINE_NODISCARD noexcept
-
auto operator*(const generic_
mat4_ rtm& m) const -> MVM_INLINE_NODISCARD generic_ mat4_ rtm noexcept -
auto operator*=(const generic_
mat4_ rtm& m) -> MVM_INLINE_NODISCARD generic_ mat4_ rtm& noexcept - auto operator[](size_t index) const -> MVM_INLINE_NODISCARD value_type noexcept
- auto get_component(size_t row, size_t col) const -> MVM_INLINE_NODISCARD value_type noexcept
-
auto get_axis(size_t row) -> MVM_INLINE_NODISCARD vec4_
type noexcept -
auto get_axis_internal(size_t row) -> MVM_INLINE_NODISCARD underlying_
vector4_ type noexcept -
auto set_axis(size_t row,
const vec4_
type& vec) -> MVM_INLINE_NODISCARD generic_ mat4_ rtm& noexcept -
auto set_axis(size_t row,
const underlying_
vector4_ type& axis) -> MVM_INLINE_NODISCARD generic_ mat4_ rtm& noexcept -
auto set_component(size_t row,
size_t col,
value_type value) -> MVM_INLINE_NODISCARD generic_
mat4_ rtm& noexcept -
auto set(value_type x00,
value_type x01,
value_type x02,
value_type x03,
value_type x10,
value_type x11,
value_type x12,
value_type x13,
value_type x20,
value_type x21,
value_type x22,
value_type x23,
value_type x30,
value_type x31,
value_type x32,
value_type x33) -> MVM_INLINE_NODISCARD generic_
mat4_ rtm& noexcept -
auto set(const value_type values[16]) -> MVM_INLINE_NODISCARD generic_
mat4_ rtm& -
auto inverse() -> MVM_INLINE_NODISCARD generic_
mat4_ rtm