Skip to main content

Mat4Component Class Template

Generic 4x4 matrix component with dirty-state tracking. More...

Declaration

template <typename TDomainTag, typename TNumericType, typename THandle, typename ... Args> class helios::engine::core::components::Mat4Component<TDomainTag, TNumericType, THandle, Args> { ... }

Public Member Typedefs Index

template < ... >
usingHandle_type = THandle
template < ... >
usingValue_type = helios::math::mat4< TNumericType >

Public Constructors Index

template < ... >
Mat4Component ()=default
template < ... >
Mat4Component (const Value_type &value)

Constructs the component with an initial value. More...

template < ... >
Mat4Component (const TNumericType value)

Constructs the component with a scalar-filled matrix. More...

template < ... >
Mat4Component (const Mat4Component &other)

Copy constructor. More...

template < ... >
Mat4Component (Mat4Component &&) noexcept=default

Default move constructor. More...

Public Operators Index

template < ... >
Mat4Component &operator= (const Mat4Component &)=default

Default copy assignment. More...

template < ... >
Mat4Component &operator= (Mat4Component &&) noexcept=default

Default move assignment. More...

Public Member Functions Index

template < ... >
Value_type &value () noexcept

Returns the current value for in-place modification. More...

template < ... >
const Value_type &value () const noexcept

Returns the current value. More...

template < ... >
voidsetValue (const Value_type &value) noexcept

Updates the value and marks the component dirty on change. More...

Private Member Attributes Index

template < ... >
helios::math::mat4< TNumericType >value_ {}

Description

Generic 4x4 matrix component with dirty-state tracking.

Template Parameters
TDomainTag

Semantic domain tag.

THandle

Owning entity handle type.

TNumericType

Scalar type for matrix values.

Definition at line 28 of file Mat4Component.ixx.

Public Member Typedefs

Handle_type

template <typename TDomainTag, typename TNumericType, typename THandle, typename ... Args>
using helios::engine::core::components::Mat4Component< TDomainTag, TNumericType, THandle, Args >::Handle_type = THandle

Definition at line 35 of file Mat4Component.ixx.

35 using Handle_type = THandle;

Value_type

template <typename TDomainTag, typename TNumericType, typename THandle, typename ... Args>
using helios::engine::core::components::Mat4Component< TDomainTag, TNumericType, THandle, Args >::Value_type = helios::math::mat4<TNumericType>

Definition at line 37 of file Mat4Component.ixx.

37 using Value_type = helios::math::mat4<TNumericType>;

Public Constructors

Mat4Component()

template <typename TDomainTag, typename TNumericType, typename THandle, typename ... Args>
helios::engine::core::components::Mat4Component< TDomainTag, TNumericType, THandle, Args >::Mat4Component ()
default

Definition at line 39 of file Mat4Component.ixx.

Mat4Component()

template <typename TDomainTag, typename TNumericType, typename THandle, typename ... Args>
helios::engine::core::components::Mat4Component< TDomainTag, TNumericType, THandle, Args >::Mat4Component (const Value_type & value)
inline explicit

Constructs the component with an initial value.

Parameters
value

Initial matrix value.

Definition at line 46 of file Mat4Component.ixx.

46 explicit Mat4Component(const Value_type& value) : value_(value) { }

Mat4Component()

template <typename TDomainTag, typename TNumericType, typename THandle, typename ... Args>
helios::engine::core::components::Mat4Component< TDomainTag, TNumericType, THandle, Args >::Mat4Component (const TNumericType value)
inline explicit

Constructs the component with a scalar-filled matrix.

Parameters
value

Scalar used to initialize all matrix elements.

Definition at line 53 of file Mat4Component.ixx.

53 explicit Mat4Component(const TNumericType value) : value_(Value_type{value}) {}

Mat4Component()

template <typename TDomainTag, typename TNumericType, typename THandle, typename ... Args>
helios::engine::core::components::Mat4Component< TDomainTag, TNumericType, THandle, Args >::Mat4Component (const Mat4Component & other)
inline

Copy constructor.

Parameters
other

The component to copy from.

Copies the value and forces the copied component into a dirty state to ensure dependent systems refresh cached data.

Definition at line 63 of file Mat4Component.ixx.

64 value_(other.value_) {}

Mat4Component()

template <typename TDomainTag, typename TNumericType, typename THandle, typename ... Args>
helios::engine::core::components::Mat4Component< TDomainTag, TNumericType, THandle, Args >::Mat4Component (Mat4Component &&)
noexcept default

Default move constructor.

Definition at line 69 of file Mat4Component.ixx.

Public Operators

operator=()

template <typename TDomainTag, typename TNumericType, typename THandle, typename ... Args>
Mat4Component & helios::engine::core::components::Mat4Component< TDomainTag, TNumericType, THandle, Args >::operator= (const Mat4Component &)
default

Default copy assignment.

Definition at line 67 of file Mat4Component.ixx.

operator=()

template <typename TDomainTag, typename TNumericType, typename THandle, typename ... Args>
Mat4Component & helios::engine::core::components::Mat4Component< TDomainTag, TNumericType, THandle, Args >::operator= (Mat4Component &&)
noexcept default

Default move assignment.

Definition at line 71 of file Mat4Component.ixx.

Public Member Functions

setValue()

template <typename TDomainTag, typename TNumericType, typename THandle, typename ... Args>
void helios::engine::core::components::Mat4Component< TDomainTag, TNumericType, THandle, Args >::setValue (const Value_type & value)
inline noexcept

Updates the value and marks the component dirty on change.

Parameters
value

New matrix value.

Definition at line 97 of file Mat4Component.ixx.

97 void setValue(const Value_type& value) noexcept {
98 value_ = value;
99 };

Reference helios::engine::core::components::Mat4Component< TDomainTag, TNumericType, THandle, Args >::value.

value()

template <typename TDomainTag, typename TNumericType, typename THandle, typename ... Args>
Value_type & helios::engine::core::components::Mat4Component< TDomainTag, TNumericType, THandle, Args >::value ()
inline noexcept

Returns the current value for in-place modification.

Returns

Mutable reference to the current 4x4 matrix value.

Definition at line 79 of file Mat4Component.ixx.

80 return value_;
81 }

Referenced by helios::engine::core::components::Mat4Component< TDomainTag, TNumericType, THandle, Args >::setValue.

value()

template <typename TDomainTag, typename TNumericType, typename THandle, typename ... Args>
const Value_type & helios::engine::core::components::Mat4Component< TDomainTag, TNumericType, THandle, Args >::value ()
inline noexcept

Returns the current value.

Returns

Current 4x4 matrix value.

Definition at line 88 of file Mat4Component.ixx.

89 return value_;
90 }

Private Member Attributes

value_

template <typename TDomainTag, typename TNumericType, typename THandle, typename ... Args>
helios::math::mat4<TNumericType> helios::engine::core::components::Mat4Component< TDomainTag, TNumericType, THandle, Args >::value_ {}

Definition at line 30 of file Mat4Component.ixx.

30 helios::math::mat4<TNumericType> value_{};

The documentation for this class was generated from the following file:


Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.9.8.