BaseComponent* PhysicsModule::getComponent(Entity* parent, float mass, Shape s, int group, int mask, bool hasTrigger) { PhysicsComponent* component; // checking if component exists if (components.find(parent->getName()) == components.end()) { component = hasTrigger ? new GhostComponent((btScalar) mass, s, group, mask) : new PhysicsComponent((btScalar) mass, s, group, mask); component->setParent(parent); components[parent->getName()] = component; if (hasTrigger) { ghosts[parent->getName()] = (GhostComponent*) component; } } else { component = components[parent->getName()]; } return component; }