#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>
move::vectormath::generic_mat4_rtm struct

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