Explorar el Código

Add some missing conversions for double-precision vec and matrix types

Lucien Greathouse hace 11 meses
padre
commit
aa3da2e5bc
Se han modificado 1 ficheros con 26 adiciones y 0 borrados
  1. 26 0
      JoltC/JoltC.cpp

+ 26 - 0
JoltC/JoltC.cpp

@@ -120,6 +120,13 @@ static JPH::Vec3 to_jph(JPC_Vec3 in) {
 	return JPH::Vec3(in.x, in.y, in.z);
 }
 
+static JPC_Vec4 to_jpc(JPH::Vec4 in) {
+	return JPC_Vec4{in.GetX(), in.GetY(), in.GetZ(), in.GetW()};
+}
+static JPH::Vec4 to_jph(JPC_Vec4 in) {
+	return JPH::Vec4(in.x, in.y, in.z, in.w);
+}
+
 static JPH::Array<JPH::Vec3> to_jph(const JPC_Vec3* src, size_t n) {
 	JPH::Array<JPH::Vec3> vec;
 	vec.resize(n);
@@ -154,6 +161,25 @@ static JPH::Mat44 to_jph(JPC_Mat44 in) {
 	return JPH::Mat44::sLoadFloat4x4Aligned(reinterpret_cast<const JPH::Float4*>(&in));
 }
 
+static JPC_DMat44 to_jpc(JPH::DMat44 in) {
+	JPC_DMat44 out;
+	out.col[0] = to_jpc(in.GetColumn4(0));
+	out.col[1] = to_jpc(in.GetColumn4(1));
+	out.col[2] = to_jpc(in.GetColumn4(2));
+	out.col3 = to_jpc(in.GetTranslation());
+	return out;
+}
+static JPH::DMat44 to_jph(JPC_DMat44 in) {
+	JPH::DVec3 col3 = to_jph(in.col3);
+
+	JPH::DMat44 out(
+		to_jph(in.col[0]),
+		to_jph(in.col[1]),
+		to_jph(in.col[2]),
+		col3);
+	return out;
+}
+
 static JPC_Color to_jpc(JPH::Color in) {
 	return JPC_Color{in.r, in.g, in.b, in.a};
 }