Code: Select all
btRigidBody* Bullet::CreateConvexHullShape(std::vector<Vertex> vertices, float scale, CollisionTypes type, int collidesWith)
{
btConvexHullShape *shape = new btConvexHullShape();
for (auto it = vertices.begin(); it != vertices.end(); ++it)
shape->addPoint(btVector3(it->Position.x * scale, it->Position.y, it->Position.z * scale));
btDefaultMotionState *motionState =
new btDefaultMotionState(btTransform(btQuaternion(1, 0, 0, 0), btVector3(0, 0, 0)));
int mass = 0;
btVector3 fallInertia(0, 0, 0);
shape->calculateLocalInertia(mass, fallInertia);
btRigidBody::btRigidBodyConstructionInfo
bodyCl(mass, motionState, shape, fallInertia);
btRigidBody *body = new btRigidBody(bodyCl);
dynamicsWorld->addRigidBody(body, type, collidesWith);
dynamicsWorld->updateSingleAabb(body);
return body;
}