Browse Source

the teapot orbiting the sun is real

Lucien Greathouse 1 year ago
parent
commit
3a79c32ed1
3 changed files with 18 additions and 1 deletions
  1. 7 1
      HelloWorld/main.cpp
  2. 3 0
      JoltC/Functions.h
  3. 8 0
      JoltC/JoltC.cpp

+ 7 - 1
HelloWorld/main.cpp

@@ -170,7 +170,13 @@ int main() {
 	const int cCollisionSteps = 1;
 
 	// TODO: Update loop
-	for (int i = 0; i < 100; i++) {
+	for (int i = 0; i < 35; i++) {
+		JPC_RVec3 position = JPC_BodyInterface_GetCenterOfMassPosition(body_interface, sphere_id);
+		JPC_Vec3 velocity = JPC_BodyInterface_GetLinearVelocity(body_interface, sphere_id);
+
+		printf("Step %d: Position = (%f, %f, %f), Velocity = (%f, %f, %f)\n", i, position.x, position.y, position.z, velocity.x, velocity.y, velocity.z);
+		// cout << "Step " << step << ": Position = (" << position.GetX() << ", " << position.GetY() << ", " << position.GetZ() << "), Velocity = (" << velocity.GetX() << ", " << velocity.GetY() << ", " << velocity.GetZ() << ")" << endl;
+
 		JPC_PhysicsSystem_Update(physics_system, cDeltaTime, cCollisionSteps, temp_allocator, job_system);
 	}
 

+ 3 - 0
JoltC/Functions.h

@@ -248,6 +248,9 @@ JPC_API void JPC_BodyInterface_AddBody(JPC_BodyInterface* self, JPC_BodyID inBod
 JPC_API void JPC_BodyInterface_RemoveBody(JPC_BodyInterface* self, JPC_BodyID inBodyID);
 JPC_API void JPC_BodyInterface_DestroyBody(JPC_BodyInterface* self, JPC_BodyID inBodyID);
 
+JPC_API JPC_RVec3 JPC_BodyInterface_GetCenterOfMassPosition(JPC_BodyInterface* self, JPC_BodyID inBodyID);
+JPC_API JPC_Vec3 JPC_BodyInterface_GetLinearVelocity(JPC_BodyInterface* self, JPC_BodyID inBodyID);
+
 ////////////////////////////////////////////////////////////////////////////////
 // PhysicsSystem
 

+ 8 - 0
JoltC/JoltC.cpp

@@ -353,6 +353,14 @@ JPC_API void JPC_BodyInterface_DestroyBody(JPC_BodyInterface* self, JPC_BodyID i
 	to_jph(self)->DestroyBody(to_jph(inBodyID));
 }
 
+JPC_API JPC_RVec3 JPC_BodyInterface_GetCenterOfMassPosition(JPC_BodyInterface* self, JPC_BodyID inBodyID) {
+	return to_jpc(to_jph(self)->GetCenterOfMassPosition(to_jph(inBodyID)));
+}
+
+JPC_API JPC_Vec3 JPC_BodyInterface_GetLinearVelocity(JPC_BodyInterface* self, JPC_BodyID inBodyID) {
+	return to_jpc(to_jph(self)->GetLinearVelocity(to_jph(inBodyID)));
+}
+
 ////////////////////////////////////////////////////////////////////////////////
 // PhysicsSystem