summaryrefslogtreecommitdiff
path: root/src/ecs.cpp
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2023-10-24 13:43:58 -0400
committerJonathan Bradley <jcb@pikum.xyz>2023-11-15 13:11:11 -0500
commit18e65823663af6e2a1472b66486526a23d5e9c30 (patch)
treebcd8ce9cec02ce56d644549a33951c20e7228423 /src/ecs.cpp
parentbd924c70c7c6e98b53c784f3b06f6b315741b8d0 (diff)
don't convert bullet to glm unless needed
Diffstat (limited to 'src/ecs.cpp')
-rw-r--r--src/ecs.cpp32
1 files changed, 4 insertions, 28 deletions
diff --git a/src/ecs.cpp b/src/ecs.cpp
index 9de5c44..b5b0ce4 100644
--- a/src/ecs.cpp
+++ b/src/ecs.cpp
@@ -403,20 +403,10 @@ CompInstance &ECS_CreateInstance(EntityHandle entHandle, EntityHandle entityType
if (btDynamicsWorld) {
comp->bt.localInertia = btVector3(0, 0, 0);
- btVector3 scale;
- GlmToBullet(instPos.scale, scale);
comp->bt.collisionShape = Pke_New<btBoxShape>(bulletBucket);
- new (comp->bt.collisionShape) btBoxShape(scale);
+ new (comp->bt.collisionShape) btBoxShape(instPos.scale);
comp->bt.collisionShape->calculateLocalInertia(btScalar(1.f), comp->bt.localInertia);
- btTransform transform;
- transform.setIdentity();
- btVector3 origin;
- GlmToBullet(instPos.pos, origin);
- transform.setOrigin(origin);
- btQuaternion rot;
- GlmToBullet(instPos.rot, rot);
- transform.setRotation(rot);
- comp->bt.defaultMotionState = btDefaultMotionState(transform);
+ comp->bt.defaultMotionState = btDefaultMotionState(instPos.posRot);
comp->bt.rigidBody = Pke_New<btRigidBody>(bulletBucket);
new (comp->bt.rigidBody) btRigidBody(btScalar(1.f), &comp->bt.defaultMotionState, comp->bt.collisionShape, comp->bt.localInertia);
comp->bt.rigidBody->setLinearVelocity(btVector3(0,0,0));
@@ -456,22 +446,8 @@ void ECS_UpdateInstance(EntityHandle entHandle, const InstPos &instPos, bool ove
auto *inst = &Comp_Instance_BucketContainer.buckets[b].instances[i];
if (btDynamicsWorld && overridePhysics) {
- btTransform transform;
- transform.setIdentity();
-
- btVector3 origin;
- GlmToBullet(instPos.pos, origin);
- transform.setOrigin(origin);
-
- btQuaternion rot;
- GlmToBullet(instPos.rot, rot);
- transform.setRotation(rot);
- inst->bt.rigidBody->setWorldTransform(transform);
-
- btVector3 scale;
- GlmToBullet(instPos.scale, scale);
- inst->bt.collisionShape->setLocalScaling(scale);
-
+ inst->bt.rigidBody->setWorldTransform(instPos.posRot);
+ inst->bt.collisionShape->setLocalScaling(instPos.scale);
inst->bt.rigidBody->setLinearVelocity(btVector3(0,0,0));
inst->bt.rigidBody->setAngularVelocity(btVector3(0,0,0));
btDynamicsWorld->getPairCache()->cleanProxyFromPairs(inst->bt.rigidBody->getBroadphaseProxy(), btDynamicsWorld->getDispatcher());