diff options
| author | lepelog <25211966+lepelog@users.noreply.github.com> | 2025-12-13 01:23:37 +0100 |
|---|---|---|
| committer | lepelog <25211966+lepelog@users.noreply.github.com> | 2026-02-01 18:14:38 +0100 |
| commit | b017949c4b37acbfea90fdd5641dbdceaee688a7 (patch) | |
| tree | 1648b752fd8a55070ac3555ea9615e09dd95a7b1 /include/egg | |
| parent | 62fc066b605680af84cc921aba070b62e7df8ff7 (diff) | |
d_t_mass_obj 99%
Diffstat (limited to 'include/egg')
| -rw-r--r-- | include/egg/math/eggQuat.h | 22 | ||||
| -rw-r--r-- | include/egg/math/eggVector.h | 7 |
2 files changed, 29 insertions, 0 deletions
diff --git a/include/egg/math/eggQuat.h b/include/egg/math/eggQuat.h index a752b229..96808c56 100644 --- a/include/egg/math/eggQuat.h +++ b/include/egg/math/eggQuat.h @@ -44,10 +44,26 @@ struct Quatf { Vector3f rotateVector(const Vector3f &); Vector3f rotateVectorInv(const Vector3f &); // not in SS void slerpTo(const Quatf &, f32, Quatf &out) const; + void slerpTo2(f32 fparam,const Quatf & param1, Quatf &out ) const { + const Quatf & tmp = param1; + slerpTo(tmp, fparam, out); + } void limitSlerpTo(const Quatf &, f32, f32, Quatf &out) const; void makeVectorRotationLimit(Vector3f &, Vector3f &, f32); // not in SS void makeVectorRotation(const Vector3f &, const Vector3f &); + // not sure about the name + f32 dot(const Quatf& other) const { + f32 ret = v.dot(other.v); + ret += w * other.w; + return ret; + } + + void set(const Quatf& other) { + v.set(other.v); + w = other.w; + } + void multScalar(f32 s) { w *= s; v.x *= s; @@ -58,6 +74,12 @@ struct Quatf { set(1.0f, 0.0f, 0.0f, 0.0f); } + void makeWPositive() { + if (w < 0.f) { + multScalar(-1.f); + } + } + Vector3f v; f32 w; }; diff --git a/include/egg/math/eggVector.h b/include/egg/math/eggVector.h index abcf1176..8886a45a 100644 --- a/include/egg/math/eggVector.h +++ b/include/egg/math/eggVector.h @@ -1,11 +1,14 @@ #ifndef EGG_VECTOR_H #define EGG_VECTOR_H +#include "JSystem/JMath/JMath.h" #include "common.h" #include "egg/math/eggMath.h" +#include "nw4r/math/math_arithmetic.h" #include "nw4r/math/math_triangular.h" #include "nw4r/math.h" +#include <cmath> namespace EGG { @@ -132,6 +135,10 @@ struct Vector3f : public nw4r::math::VEC3 { return squaredLength() <= Math<f32>::epsilon(); } + bool isZero2() const { + return fabsf(JMathInlineVEC::C_VECSquareMag(*this)) <= Math<f32>::epsilon(); + } + void setZero() { x = y = z = 0.0f; } |
