Plasma Engine  2.0
Loading...
Searching...
No Matches
JoltConversionUtils.h
1#pragma once
2
3#include <JoltPlugin/JoltPluginDLL.h>
4
5#include <Foundation/Math/Color.h>
6#include <Foundation/Math/Transform.h>
7#include <Foundation/SimdMath/SimdTransform.h>
8#include <Jolt/Core/Color.h>
9#include <Jolt/Math/Float3.h>
10#include <Jolt/Math/Vec3.h>
11#include <Jolt/Math/Vec4.h>
12
13namespace plJoltConversionUtils
14{
15 PL_ALWAYS_INLINE plVec3 ToVec3(const JPH::Vec3& v)
16 {
17 return plVec3(v.mF32[0], v.mF32[1], v.mF32[2]);
18 }
19
20 PL_ALWAYS_INLINE plVec3 ToVec3(const JPH::Float3& v)
21 {
22 return reinterpret_cast<const plVec3&>(v);
23 }
24
25 PL_ALWAYS_INLINE plColor ToColor(const JPH::ColorArg& c)
26 {
27 const JPH::Vec4 v4 = c.ToVec4();
28 return reinterpret_cast<const plColor&>(v4);
29 }
30
31 PL_ALWAYS_INLINE plSimdVec4f ToSimdVec3(const JPH::Vec3& v)
32 {
33 return plSimdVec4f(v.mF32[0], v.mF32[1], v.mF32[2], v.mF32[3]);
34 }
35
36 PL_ALWAYS_INLINE JPH::Vec3 ToVec3(const plVec3& v)
37 {
38 return JPH::Vec3(v.x, v.y, v.z);
39 }
40
41 PL_ALWAYS_INLINE JPH::Float3 ToFloat3(const plVec3& v)
42 {
43 return reinterpret_cast<const JPH::Float3&>(v);
44 }
45
46 PL_ALWAYS_INLINE JPH::Vec3 ToVec3(const plSimdVec4f& v)
47 {
48 return reinterpret_cast<const JPH::Vec3&>(v);
49 }
50
51 PL_ALWAYS_INLINE plQuat ToQuat(const JPH::Quat& q)
52 {
53 return reinterpret_cast<const plQuat&>(q);
54 }
55
56 PL_ALWAYS_INLINE plSimdQuat ToSimdQuat(const JPH::Quat& q)
57 {
58 return reinterpret_cast<const plSimdQuat&>(q);
59 }
60
61 PL_ALWAYS_INLINE JPH::Quat ToQuat(const plQuat& q)
62 {
63 return JPH::Quat(q.x, q.y, q.z, q.w);
64 }
65
66 PL_ALWAYS_INLINE JPH::Quat ToQuat(const plSimdQuat& q)
67 {
68 return reinterpret_cast<const JPH::Quat&>(q);
69 }
70
71 PL_ALWAYS_INLINE plTransform ToTransform(const JPH::Vec3& pos, const JPH::Quat& rot)
72 {
73 return plTransform(ToVec3(pos), ToQuat(rot));
74 }
75
76 PL_ALWAYS_INLINE plTransform ToTransform(const JPH::Vec3& pos)
77 {
78 return plTransform(ToVec3(pos));
79 }
80
81} // namespace plJoltConversionUtils
plColor represents an RGBA color in linear color space. Values are stored as float,...
Definition Color.h:44
Definition SimdQuat.h:6
A 4-component SIMD vector class.
Definition SimdVec4f.h:8