diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2023-10-24 13:43:58 -0400 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2023-11-15 13:11:11 -0500 |
| commit | 18e65823663af6e2a1472b66486526a23d5e9c30 (patch) | |
| tree | bcd8ce9cec02ce56d644549a33951c20e7228423 /src/ecs.cpp | |
| parent | bd924c70c7c6e98b53c784f3b06f6b315741b8d0 (diff) | |
don't convert bullet to glm unless needed
Diffstat (limited to 'src/ecs.cpp')
| -rw-r--r-- | src/ecs.cpp | 32 |
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()); |
