1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
#include "collisioncomponent.h"
#include "Game/Components/CollisionComponents/BoundingTriangle.h"
#include "Game/Components/CollisionComponents/CylinderCollider.h"
#include "Game/Components/CollisionComponents/BoundingDynamicMesh.h"
#include "Graphics/shape.h"
#include <memory>
// for dynamic objects
CollisionComponent::CollisionComponent(std::string shapeType, std::shared_ptr<ModelTransform> mt, const glm::vec3 &initial_pos)
{
if (shapeType == "dynamic_mesh"){
//addCollisionShape<CylinderCollider>(std::make_shared<CylinderCollider>(initial_pos, initial_scale));
addCollisionShape<BoundingDynamicMesh>(std::make_shared<BoundingDynamicMesh>(mt, initial_pos));
}
}
CollisionComponent::CollisionComponent(std::string shapeType, std::shared_ptr<ModelTransform> mt, const glm::vec3 &initial_pos, std::vector<glm::vec3> &obj_data)
{
if (shapeType == "dynamic_mesh"){
addCollisionShape<BoundingDynamicMesh>(std::make_shared<BoundingDynamicMesh>(mt, initial_pos, obj_data));
}
}
// for rigid meshes / environment
CollisionComponent::CollisionComponent(std::string shapeType,
const std::vector<glm::vec3> &obj_data,
const std::shared_ptr<ModelTransform> &mt,
bool isGround){
if (shapeType == "obj"){
addCollisionShape<BoundingTriangle>(std::make_shared<BoundingTriangle>(obj_data, mt, isGround));
}
}
bool CollisionComponent::isRigidBody(){
return m_isRigid;
}
float CollisionComponent::getReboundVel(){
return m_rebound_vel;
}
float CollisionComponent::getAcceleration(){
return m_acceleration;
}
|