CommonLibSSE NG
Loading...
Searching...
No Matches
hkVector4.h
Go to the documentation of this file.
1#pragma once
2
4#include "RE/N/NiPoint3.h"
5
6namespace RE
7{
9 {
10 public:
12 quad(_mm_set1_ps(0.0f))
13 {}
14
15 hkVector4(const float& a_x) :
16 quad(_mm_set1_ps(a_x))
17 {}
18
19 hkVector4(const float& a_x, const float& a_y, const float& a_z, const float& a_w) :
20 quad(_mm_setr_ps(a_x, a_y, a_z, a_w))
21 {}
22
23 hkVector4(const hkVector4& a_rhs) :
24 quad(a_rhs.quad)
25 {}
26
27 hkVector4(const hkQuadReal& a_rhs) :
28 quad(a_rhs)
29 {}
30
31 hkVector4(const NiPoint3& a_point) :
32 quad(_mm_setr_ps(a_point.x, a_point.y, a_point.z, 0.0f))
33 {}
34
36 hkVector4 operator+(const hkVector4& a_rhs) const;
37 hkVector4 operator-(const hkVector4& a_rhs) const;
38 hkVector4 operator*(const hkVector4& a_rhs) const;
39 hkVector4 operator/(const hkVector4& a_rhs) const;
40
41 [[nodiscard]] bool IsEqual(const hkVector4& a_pt, float a_epsilon = 1e-3f) const;
42 [[nodiscard]] hkVector4 Cross(const hkVector4& a_pt) const;
43 [[nodiscard]] float Dot3(const hkVector4& a_pt) const;
44 [[nodiscard]] float Dot4(const hkVector4& a_pt) const;
45 [[nodiscard]] float GetDistance3(const hkVector4& a_pt) const noexcept;
46 [[nodiscard]] float GetSquaredDistance3(const hkVector4& a_pt) const noexcept;
47 [[nodiscard]] float Length3() const;
48 [[nodiscard]] float SqrLength3() const;
49 [[nodiscard]] float Length4() const;
50 [[nodiscard]] float SqrLength4() const;
51
52 // members
54 };
55 static_assert(sizeof(hkVector4) == 0x10);
56}
Definition NiPoint3.h:6
Definition hkVector4.h:9
hkVector4(const hkVector4 &a_rhs)
Definition hkVector4.h:23
float Dot4(const hkVector4 &a_pt) const
hkVector4 Cross(const hkVector4 &a_pt) const
hkVector4 operator-(const hkVector4 &a_rhs) const
hkVector4()
Definition hkVector4.h:11
hkVector4(const hkQuadReal &a_rhs)
Definition hkVector4.h:27
hkVector4 & operator=(const hkVector4 &a_rhs)
hkQuadReal quad
Definition hkVector4.h:53
hkVector4 operator/(const hkVector4 &a_rhs) const
float Length4() const
float GetDistance3(const hkVector4 &a_pt) const noexcept
bool IsEqual(const hkVector4 &a_pt, float a_epsilon=1e-3f) const
hkVector4(const float &a_x, const float &a_y, const float &a_z, const float &a_w)
Definition hkVector4.h:19
float Length3() const
float SqrLength3() const
hkVector4(const float &a_x)
Definition hkVector4.h:15
hkVector4(const NiPoint3 &a_point)
Definition hkVector4.h:31
float SqrLength4() const
float GetSquaredDistance3(const hkVector4 &a_pt) const noexcept
hkVector4 operator*(const hkVector4 &a_rhs) const
float Dot3(const hkVector4 &a_pt) const
hkVector4 operator+(const hkVector4 &a_rhs) const
Definition AbsorbEffect.h:6
__m128 hkQuadReal
Definition hkSseMathTypes.h:7