docs: add plugin setup guide
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
#pragma once
|
||||
|
||||
#include "RE/H/hkVector4.h"
|
||||
|
||||
namespace RE
|
||||
{
|
||||
class hkMatrix3f
|
||||
{
|
||||
public:
|
||||
constexpr hkMatrix3f() noexcept = default;
|
||||
constexpr hkMatrix3f(const hkVector4f& a_vec0, const hkVector4f& a_vec1, const hkVector4f& a_vec2) noexcept;
|
||||
constexpr hkMatrix3f(
|
||||
float a_x0, float a_y0, float a_z0, float a_w0,
|
||||
float a_x1, float a_y1, float a_z1, float a_w1,
|
||||
float a_x2, float a_y2, float a_z2, float a_w2) noexcept;
|
||||
|
||||
constexpr hkVector4f& operator[](std::size_t a_pos) noexcept;
|
||||
constexpr const hkVector4f& operator[](std::size_t a_pos) const noexcept;
|
||||
constexpr bool operator==(const hkMatrix3f& a_rhs) const noexcept;
|
||||
constexpr bool operator!=(const hkMatrix3f& a_rhs) const noexcept;
|
||||
constexpr hkMatrix3f operator*(const hkMatrix3f& a_rhs) const noexcept;
|
||||
constexpr hkMatrix3f operator*(float a_scalar) const noexcept;
|
||||
|
||||
// members
|
||||
hkVector4f m_col[3]; // 0x00
|
||||
};
|
||||
static_assert(sizeof(hkMatrix3f) == 0x30);
|
||||
|
||||
using hkMatrix3 = hkMatrix3f;
|
||||
}
|
||||
|
||||
namespace RE
|
||||
{
|
||||
constexpr hkMatrix3f::hkMatrix3f(const hkVector4f& a_vec0, const hkVector4f& a_vec1, const hkVector4f& a_vec2) noexcept
|
||||
{
|
||||
m_col[0] = a_vec0;
|
||||
m_col[1] = a_vec1;
|
||||
m_col[2] = a_vec2;
|
||||
}
|
||||
|
||||
constexpr hkMatrix3f::hkMatrix3f(
|
||||
float a_x0, float a_y0, float a_z0, float a_w0,
|
||||
float a_x1, float a_y1, float a_z1, float a_w1,
|
||||
float a_x2, float a_y2, float a_z2, float a_w2) noexcept
|
||||
{
|
||||
m_col[0] = { a_x0, a_y0, a_z0, a_w0 };
|
||||
m_col[1] = { a_x1, a_y1, a_z1, a_w1 };
|
||||
m_col[2] = { a_x2, a_y2, a_z2, a_w2 };
|
||||
}
|
||||
|
||||
constexpr hkVector4f& hkMatrix3f::operator[](std::size_t a_pos) noexcept
|
||||
{
|
||||
assert(a_pos < 3);
|
||||
return m_col[a_pos];
|
||||
}
|
||||
|
||||
constexpr const hkVector4f& hkMatrix3f::operator[](std::size_t a_pos) const noexcept
|
||||
{
|
||||
assert(a_pos < 3);
|
||||
return m_col[a_pos];
|
||||
}
|
||||
|
||||
constexpr bool hkMatrix3f::operator==(const hkMatrix3f& a_rhs) const noexcept
|
||||
{
|
||||
return (m_col[0] == a_rhs[0]) && (m_col[1] == a_rhs[1]) && (m_col[2] == a_rhs[2]);
|
||||
}
|
||||
|
||||
constexpr bool hkMatrix3f::operator!=(const hkMatrix3f& a_rhs) const noexcept
|
||||
{
|
||||
return !operator==(a_rhs);
|
||||
}
|
||||
|
||||
constexpr hkMatrix3f hkMatrix3f::operator*(const hkMatrix3f& a_rhs) const noexcept
|
||||
{
|
||||
hkMatrix3f result;
|
||||
result[0][0] = m_col[0][0] * a_rhs[0][0] + m_col[0][1] * a_rhs[1][0] + m_col[0][2] * a_rhs[2][0];
|
||||
result[1][0] = m_col[1][0] * a_rhs[0][0] + m_col[1][1] * a_rhs[1][0] + m_col[1][2] * a_rhs[2][0];
|
||||
result[2][0] = m_col[2][0] * a_rhs[0][0] + m_col[2][1] * a_rhs[1][0] + m_col[2][2] * a_rhs[2][0];
|
||||
result[0][1] = m_col[0][0] * a_rhs[0][1] + m_col[0][1] * a_rhs[1][1] + m_col[0][2] * a_rhs[2][1];
|
||||
result[1][1] = m_col[1][0] * a_rhs[0][1] + m_col[1][1] * a_rhs[1][1] + m_col[1][2] * a_rhs[2][1];
|
||||
result[2][1] = m_col[2][0] * a_rhs[0][1] + m_col[2][1] * a_rhs[1][1] + m_col[2][2] * a_rhs[2][1];
|
||||
result[0][2] = m_col[0][0] * a_rhs[0][2] + m_col[0][1] * a_rhs[1][2] + m_col[0][2] * a_rhs[2][2];
|
||||
result[1][2] = m_col[1][0] * a_rhs[0][2] + m_col[1][1] * a_rhs[1][2] + m_col[1][2] * a_rhs[2][2];
|
||||
result[2][2] = m_col[2][0] * a_rhs[0][2] + m_col[2][1] * a_rhs[1][2] + m_col[2][2] * a_rhs[2][2];
|
||||
return result;
|
||||
}
|
||||
|
||||
constexpr hkMatrix3f hkMatrix3f::operator*(float a_scalar) const noexcept
|
||||
{
|
||||
hkMatrix3f result;
|
||||
result[0][0] = m_col[0][0] * a_scalar;
|
||||
result[0][1] = m_col[0][1] * a_scalar;
|
||||
result[0][2] = m_col[0][2] * a_scalar;
|
||||
result[1][0] = m_col[1][0] * a_scalar;
|
||||
result[1][1] = m_col[1][1] * a_scalar;
|
||||
result[1][2] = m_col[1][2] * a_scalar;
|
||||
result[2][0] = m_col[2][0] * a_scalar;
|
||||
result[2][1] = m_col[2][1] * a_scalar;
|
||||
result[2][2] = m_col[2][2] * a_scalar;
|
||||
return result;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user