47 [[nodiscard]] Vec3<Scalar>
get()
const {
return Vec3<Scalar>(*
x, *
y, *
z); }
52 void set(
const Vec3<Scalar> &v) {
61 [[nodiscard]]
bool valid()
const {
return x.valid() &&
y.valid() &&
z.valid(); }
66 explicit operator bool()
const {
return valid(); }
83 [[nodiscard]] Vec4<Scalar>
get()
const {
return Vec4<Scalar>(*
w, *
x, *
y, *
z); }
88 void set(
const Vec4<Scalar> &q) {
98 [[nodiscard]]
bool valid()
const {
return w.valid() &&
x.valid() &&
y.valid() &&
z.valid(); }
103 explicit operator bool()
const {
return valid(); }
121 [[nodiscard]] Mat3<Scalar>
get()
const {
138 void set(
const Mat3<Scalar> &m) {
154 return m00.valid() &&
m10.valid() &&
m20.valid() &&
m01.valid() &&
m11.valid() &&
155 m21.valid() &&
m02.valid() &&
m12.valid() &&
m22.valid();
161 explicit operator bool()
const {
return valid(); }
Core type definitions, concepts, and configuration for Icarus.
Type-safe SignalHandle for zero-overhead hot path access.
Type-safe handle for accessing a signal value.
Definition Handle.hpp:41
Definition AggregationTypes.hpp:13
Handle for accessing a Mat3 signal as nine scalar components.
Definition VecHandle.hpp:113
void set(const Mat3< Scalar > &m)
Write all components from a Mat3.
Definition VecHandle.hpp:138
SignalHandle< Scalar > m10
Definition VecHandle.hpp:114
SignalHandle< Scalar > m00
Definition VecHandle.hpp:114
Mat3< Scalar > get() const
Read all components as a Mat3.
Definition VecHandle.hpp:121
SignalHandle< Scalar > m21
Column 1.
Definition VecHandle.hpp:115
SignalHandle< Scalar > m22
Column 2.
Definition VecHandle.hpp:116
SignalHandle< Scalar > m01
Definition VecHandle.hpp:115
SignalHandle< Scalar > m11
Definition VecHandle.hpp:115
SignalHandle< Scalar > m02
Definition VecHandle.hpp:116
SignalHandle< Scalar > m12
Definition VecHandle.hpp:116
bool valid() const
Check if all handles are valid.
Definition VecHandle.hpp:153
SignalHandle< Scalar > m20
Column 0.
Definition VecHandle.hpp:114
Handle for accessing a quaternion signal as four scalar components.
Definition VecHandle.hpp:74
SignalHandle< Scalar > z
Z component handle.
Definition VecHandle.hpp:78
void set(const Vec4< Scalar > &q)
Write all components from a Vec4 (w, x, y, z order).
Definition VecHandle.hpp:88
bool valid() const
Check if all handles are valid.
Definition VecHandle.hpp:98
SignalHandle< Scalar > w
W (scalar) component handle.
Definition VecHandle.hpp:75
SignalHandle< Scalar > y
Y component handle.
Definition VecHandle.hpp:77
SignalHandle< Scalar > x
X component handle.
Definition VecHandle.hpp:76
Vec4< Scalar > get() const
Read all components as a Vec4 (w, x, y, z order).
Definition VecHandle.hpp:83
Handle for accessing a Vec3 signal as three scalar components.
Definition VecHandle.hpp:39
SignalHandle< Scalar > x
X component handle.
Definition VecHandle.hpp:40
void set(const Vec3< Scalar > &v)
Write all components from a Vec3.
Definition VecHandle.hpp:52
Vec3< Scalar > get() const
Read all components as a Vec3.
Definition VecHandle.hpp:47
SignalHandle< Scalar > z
Z component handle.
Definition VecHandle.hpp:42
bool valid() const
Check if all handles are valid.
Definition VecHandle.hpp:61
SignalHandle< Scalar > y
Y component handle.
Definition VecHandle.hpp:41