|
VisuTwin Canvas
C++ 3D Engine — Metal Backend
|
3D vector for positions, directions, and normals with multi-backend SIMD acceleration. More...
#include <core/math/vector3.h>
Public Member Functions | |
| Vector3 | cross (const Vector3 &other) const |
| float | distance (const Vector3 &other) const |
| float | dot (const Vector3 &other) const |
| float | getX () const |
| float | getY () const |
| float | getZ () const |
| float | length () const |
| float | lengthSquared () const |
| Vector3 | normalized () const |
| Vector3 | operator* (const Vector3 &other) const |
| Vector3 | operator* (float scalar) const |
| Vector3 | operator+ (const Vector3 &other) const |
| Vector3 & | operator+= (const Vector3 &rhs) |
| Vector3 | operator- () const |
| Vector3 | operator- (const Vector3 &other) const |
| Vector3 & | operator-= (const Vector3 &rhs) |
| void | print () const |
| Matrix4 | toScalingMatrix () const |
| Matrix4 | toTranslationMatrix () const |
| Vector3 | transform (const Matrix4 &mat) const |
| Vector3 | transformNormal (const Matrix4 &mat) const |
| Vector3 () | |
| Vector3 (const float s) | |
| Vector3 (const float x, const float y, const float z) | |
| Vector3 (const PackedVector3f &packed) | |
| Vector3 (const Vector4 &other) | |
Public Attributes | |
| union { | |
| struct { | |
| float x | |
| float y | |
| float z | |
| } | |
| float v [3] | |
| }; | |
Static Public Attributes | |
| static Vector3 | UNIT_X |
| static Vector3 | UNIT_Y |
| static Vector3 | UNIT_Z |
3D vector for positions, directions, and normals with multi-backend SIMD acceleration.
Vector3 uses a 16-byte aligned union supporting scalar, SSE, Apple SIMD, and NEON backends. The active backend is controlled by USE_SIMD_MATH / USE_SIMD_PREFER_NEON defines (currently scalar fallback is active).
|
inline |
Definition at line 51 of file vector3.h.
Referenced by cross(), distance(), dot(), normalized(), operator*(), operator*(), operator+(), operator+=(), operator-(), operator-(), operator-=(), transform(), and transformNormal().
|
inlineexplicit |
|
inline |
| visutwin::canvas::Vector3::Vector3 | ( | const Vector4 & | other | ) |
|
inlineexplicit |
References Vector3().
Referenced by visutwin::canvas::Tri::intersectsRay().
|
inlinenodiscard |
Definition at line 242 of file vector3.h.
References Vector3().
Referenced by visutwin::canvas::Pose::look().
|
nodiscard |
|
inlinenodiscard |
Definition at line 122 of file vector3.h.
References x.
Referenced by visutwin::canvas::BoundingBox::add(), visutwin::canvas::OrientedBox::containsPoint(), visutwin::canvas::GlbParser::createFromModel(), visutwin::canvas::Pose::look(), visutwin::canvas::GlbParser::parse(), visutwin::canvas::Picker::prepare(), visutwin::canvas::GlbParser::prepareFromModel(), print(), visutwin::canvas::MetalUniformBinder::setEnvironmentUniforms(), visutwin::canvas::BoundingBox::setFromTransformedAabb(), visutwin::canvas::MetalUniformBinder::setLightingUniforms(), and visutwin::canvas::ElementInput::syncTextElements().
|
inlinenodiscard |
Definition at line 134 of file vector3.h.
References y.
Referenced by visutwin::canvas::BoundingBox::add(), visutwin::canvas::OrientedBox::containsPoint(), visutwin::canvas::GlbParser::createFromModel(), visutwin::canvas::Pose::look(), visutwin::canvas::GlbParser::parse(), visutwin::canvas::Picker::prepare(), visutwin::canvas::GlbParser::prepareFromModel(), print(), visutwin::canvas::MetalUniformBinder::setEnvironmentUniforms(), visutwin::canvas::BoundingBox::setFromTransformedAabb(), visutwin::canvas::MetalUniformBinder::setLightingUniforms(), and visutwin::canvas::ElementInput::syncTextElements().
|
inlinenodiscard |
Definition at line 146 of file vector3.h.
References z.
Referenced by visutwin::canvas::BoundingBox::add(), visutwin::canvas::OrientedBox::containsPoint(), visutwin::canvas::GlbParser::createFromModel(), visutwin::canvas::ShadowRendererDirectional::cull(), visutwin::canvas::Pose::look(), visutwin::canvas::GlbParser::parse(), visutwin::canvas::Picker::prepare(), visutwin::canvas::GlbParser::prepareFromModel(), print(), visutwin::canvas::MetalUniformBinder::setEnvironmentUniforms(), visutwin::canvas::BoundingBox::setFromTransformedAabb(), visutwin::canvas::MetalUniformBinder::setLightingUniforms(), and visutwin::canvas::ElementInput::syncTextElements().
|
inlinenodiscard |
Definition at line 224 of file vector3.h.
References dot().
Referenced by visutwin::canvas::isVisibleInCameraFrustum(), visutwin::canvas::Picker::prepare(), and visutwin::canvas::CollisionComponent::worldBounds().
|
inlinenodiscard |
Definition at line 233 of file vector3.h.
References dot().
Referenced by visutwin::canvas::BoundingSphere::containsPoint(), visutwin::canvas::ShadowRendererDirectional::cull(), visutwin::canvas::LightComponent::direction(), visutwin::canvas::BoundingSphere::intersectsBoundingSphere(), visutwin::canvas::OrientedBox::intersectsBoundingSphere(), and visutwin::canvas::Picker::prepare().
|
nodiscard |
|
inline |
|
nodiscard |
|
nodiscard |
References Vector3().
References Vector3().
Referenced by visutwin::canvas::OrientedBox::intersectsRay().
| union { ... } visutwin::canvas::Vector3 |
| float visutwin::canvas::Vector3::v[3] |
| float visutwin::canvas::Vector3::x |
Definition at line 41 of file vector3.h.
Referenced by getX(), operator+(), operator+=(), operator-(), operator-=(), print(), Vector3(), Vector3(), Vector3(), and Vector3().
| float visutwin::canvas::Vector3::y |
Definition at line 41 of file vector3.h.
Referenced by getY(), operator+(), operator+=(), operator-(), operator-=(), print(), Vector3(), Vector3(), Vector3(), and Vector3().
| float visutwin::canvas::Vector3::z |
Definition at line 41 of file vector3.h.
Referenced by getZ(), operator+(), operator+=(), operator-(), operator-=(), print(), Vector3(), Vector3(), Vector3(), and Vector3().