CompoundShape works, i.e parent child physics :)
Center of mass is still bugged.
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
#ifndef Components_CompoundShape_h__
|
||||
#define Components_CompoundShape_h__
|
||||
|
||||
#include "Component.h"
|
||||
|
||||
namespace Components
|
||||
{
|
||||
struct CompoundShape : Component
|
||||
{
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
#endif // Components_CompoundShape_h__
|
||||
+86
-130
@@ -5,143 +5,98 @@ void GameWorld::Initialize()
|
||||
{
|
||||
World::Initialize();
|
||||
|
||||
std::shared_ptr<Components::Transform> transform;
|
||||
std::shared_ptr<Components::Model> model;
|
||||
|
||||
auto camera = CreateEntity();
|
||||
transform = AddComponent<Components::Transform>(camera, "Transform");
|
||||
transform->Position.z = 150.f;
|
||||
transform->Position.y = 100.f;
|
||||
transform->Orientation = glm::quat(glm::vec3(glm::pi<float>() / 8.f, 0.f, 0.f));
|
||||
auto cameraComp = AddComponent<Components::Camera>(camera, "Camera");
|
||||
cameraComp->FarClip = 2000.f;
|
||||
AddComponent(camera, "Input");
|
||||
auto freeSteering = AddComponent<Components::FreeSteering>(camera, "FreeSteering");
|
||||
|
||||
|
||||
auto terrain = CreateEntity();
|
||||
transform = AddComponent<Components::Transform>(terrain, "Transform");
|
||||
transform->Scale = glm::vec3(1000.0f);
|
||||
transform->Orientation = glm::quat(glm::vec3(0.0f, 0.0f, glm::pi<float>()/20.f));
|
||||
model = AddComponent<Components::Model>(terrain, "Model");
|
||||
model->ModelFile = "Models/PhysicsTest/Plane.obj";
|
||||
auto physics = AddComponent<Components::Physics>(terrain, "Physics");
|
||||
auto Box = AddComponent<Components::BoxShape>(terrain, "BoxShape");
|
||||
Box->Width = 1;
|
||||
Box->Height = 0;
|
||||
Box->Depth = 1;
|
||||
physics->Friction = 0.5f;
|
||||
|
||||
terrain = CreateEntity();
|
||||
transform = AddComponent<Components::Transform>(terrain, "Transform");
|
||||
transform->Scale = glm::vec3(1000.0f);
|
||||
transform->Position = glm::vec3(-500, 0, 0);
|
||||
transform->Orientation = glm::quat(glm::vec3(0.0f, 0.0f, -glm::pi<float>() / 20.f));
|
||||
model = AddComponent<Components::Model>(terrain, "Model");
|
||||
model->ModelFile = "Models/PhysicsTest/Plane.obj";
|
||||
physics = AddComponent<Components::Physics>(terrain, "Physics");
|
||||
Box = AddComponent<Components::BoxShape>(terrain, "BoxShape");
|
||||
Box->Width = 1;
|
||||
Box->Height = 0;
|
||||
Box->Depth = 1;
|
||||
physics->Friction = 0.5f;
|
||||
|
||||
|
||||
|
||||
auto Boxed = CreateEntity();
|
||||
transform = AddComponent<Components::Transform>(Boxed, "Transform");
|
||||
transform->Position.y = 100.f;
|
||||
transform->Position.x = 4.f;
|
||||
transform->Scale = glm::vec3(5.0f);
|
||||
model = AddComponent<Components::Model>(Boxed, "Model");
|
||||
model->ModelFile = "Models/PhysicsTest/Cube.obj";
|
||||
physics = AddComponent<Components::Physics>(Boxed, "Physics");
|
||||
physics->Mass = 10;
|
||||
physics->Friction = 0.5f;
|
||||
Box = AddComponent<Components::BoxShape>(Boxed, "BoxShape");
|
||||
Box->Width = 1;
|
||||
Box->Height = 1;
|
||||
Box->Depth = 1;
|
||||
|
||||
for (int i = 0; i < 20; i++)
|
||||
{
|
||||
auto Sphered = CreateEntity();
|
||||
transform = AddComponent<Components::Transform>(Sphered, "Transform");
|
||||
transform->Position.y = 15.f;
|
||||
transform->Position.x = 4.f;
|
||||
transform->Scale = glm::vec3(1.0f);
|
||||
model = AddComponent<Components::Model>(Sphered, "Model");
|
||||
model->ModelFile = "Models/PhysicsTest/Sphere.obj";
|
||||
physics = AddComponent<Components::Physics>(Sphered, "Physics");
|
||||
physics->Mass = 100;
|
||||
physics->Friction = 0.5f;
|
||||
auto sphere = AddComponent<Components::SphereShape>(Sphered, "SphereShape");
|
||||
sphere->Radius = 1;
|
||||
sphere->RollingFriction = 0.5f;
|
||||
|
||||
|
||||
{
|
||||
auto tank_top = CreateEntity(Sphered);
|
||||
transform = AddComponent<Components::Transform>(tank_top, "Transform");
|
||||
transform->Scale = glm::vec3(1.0f/100.f);
|
||||
model = AddComponent<Components::Model>(tank_top, "Model");
|
||||
model->ModelFile = "Models/tank/tank_top.obj";
|
||||
{
|
||||
auto tank_barrel = CreateEntity(tank_top);
|
||||
transform = AddComponent<Components::Transform>(tank_barrel, "Transform");
|
||||
|
||||
model = AddComponent<Components::Model>(tank_barrel, "Model");
|
||||
model->ModelFile = "Models/tank/tank_barrel.obj";
|
||||
}
|
||||
}
|
||||
auto camera = CreateEntity();
|
||||
auto transform = AddComponent<Components::Transform>(camera, "Transform");
|
||||
transform->Position.z = 150.f;
|
||||
transform->Position.y = 100.f;
|
||||
transform->Orientation = glm::quat(glm::vec3(glm::pi<float>() / 8.f, 0.f, 0.f));
|
||||
auto cameraComp = AddComponent<Components::Camera>(camera, "Camera");
|
||||
cameraComp->FarClip = 2000.f;
|
||||
AddComponent(camera, "Input");
|
||||
auto freeSteering = AddComponent<Components::FreeSteering>(camera, "FreeSteering");
|
||||
}
|
||||
|
||||
|
||||
/*auto tank = CreateEntity();
|
||||
transform = AddComponent<Components::Transform>(tank, "Transform");
|
||||
transform->Position.y = 10.f;
|
||||
transform->Position.x = 4.f;
|
||||
transform->Scale = glm::vec3(.01f);
|
||||
model = AddComponent<Components::Model>(tank, "Model");
|
||||
model->ModelFile = "Models/tank/tank_base.obj";
|
||||
physics = AddComponent<Components::Physics>(tank, "Physics");
|
||||
physics->Mass = 100;
|
||||
physics->Friction = 0.5f;*/
|
||||
|
||||
|
||||
/*auto sphere = AddComponent<Components::SphereShape>(tank, "SphereShape");
|
||||
sphere->Radius = 10.*(1.f / .01f);
|
||||
sphere->RollingFriction = 0.5f;*/
|
||||
/*
|
||||
Box = AddComponent<Components::BoxShape>(tank, "BoxShape");
|
||||
Box->Width = 100;
|
||||
Box->Height = 50;
|
||||
Box->Depth = 100;*/
|
||||
|
||||
/*
|
||||
{
|
||||
auto tank_top = CreateEntity(tank);
|
||||
transform = AddComponent<Components::Transform>(tank_top, "Transform");
|
||||
//transform->Scale = glm::vec3(.0005f);
|
||||
model = AddComponent<Components::Model>(tank_top, "Model");
|
||||
model->ModelFile = "Models/tank/tank_top.obj";
|
||||
auto terrain = CreateEntity();
|
||||
auto transform = AddComponent<Components::Transform>(terrain, "Transform");
|
||||
transform->Scale = glm::vec3(1000.0f);
|
||||
transform->Orientation = glm::quat(glm::vec3(0.0f, 0.0f, 0.0f));
|
||||
auto model = AddComponent<Components::Model>(terrain, "Model");
|
||||
model->ModelFile = "Models/PhysicsTest/Plane.obj";
|
||||
auto physics = AddComponent<Components::Physics>(terrain, "Physics");
|
||||
auto Box = AddComponent<Components::BoxShape>(terrain, "BoxShape");
|
||||
Box->Width = 1;
|
||||
Box->Height = 0;
|
||||
Box->Depth = 1;
|
||||
physics->Friction = 0.5f;
|
||||
}
|
||||
|
||||
|
||||
|
||||
{
|
||||
auto entity = CreateEntity();
|
||||
auto transform = AddComponent<Components::Transform>(entity, "Transform");
|
||||
transform->Scale = glm::vec3(1.0f);
|
||||
transform->Position = glm::vec3(0, 15, 0);
|
||||
transform->Orientation = glm::quat(glm::vec3(0.0f, 0.0f, 0.0f));
|
||||
|
||||
auto physics = AddComponent<Components::Physics>(entity, "Physics");
|
||||
physics->Mass = 10;
|
||||
physics->Friction = 0.5;
|
||||
|
||||
auto compound = AddComponent<Components::CompoundShape>(entity, "CompoundShape");
|
||||
|
||||
{
|
||||
auto tank_barrel = CreateEntity(tank_top);
|
||||
transform = AddComponent<Components::Transform>(tank_barrel, "Transform");
|
||||
//transform->Scale = glm::vec3(.0005f);
|
||||
model = AddComponent<Components::Model>(tank_barrel, "Model");
|
||||
model->ModelFile = "Models/tank/tank_barrel.obj";
|
||||
auto entity0 = CreateEntity(entity);
|
||||
auto transform = AddComponent<Components::Transform>(entity0, "Transform");
|
||||
transform->Scale = glm::vec3(1.f);
|
||||
auto model = AddComponent<Components::Model>(entity0, "Model");
|
||||
model->ModelFile = "Models/PhysicsTest/Sphere.obj";
|
||||
|
||||
auto sphere = AddComponent<Components::SphereShape>(entity0, "SphereShape");
|
||||
sphere->Radius = 0.5f;
|
||||
}
|
||||
|
||||
{
|
||||
auto entity1 = CreateEntity(entity);
|
||||
auto transform = AddComponent<Components::Transform>(entity1, "Transform");
|
||||
transform->Scale = glm::vec3(1.0f);
|
||||
transform->Position = glm::vec3(-1, 1, 0);
|
||||
transform->Orientation = glm::quat(glm::vec3(0.0f, 0.0f, 0.0f));
|
||||
auto model = AddComponent<Components::Model>(entity1, "Model");
|
||||
model->ModelFile = "Models/PhysicsTest/Cube.obj";
|
||||
|
||||
auto box = AddComponent<Components::BoxShape>(entity1, "BoxShape");
|
||||
box->Width = 0.5;
|
||||
box->Height = 0.5;
|
||||
box->Depth = 0.5;
|
||||
}
|
||||
}*/
|
||||
|
||||
|
||||
//auto light = CreateEntity();
|
||||
//transform = AddComponent<Components::Transform>(light, "Transform");
|
||||
//transform->Position.y = 10.f;
|
||||
//auto pointLight = AddComponent<Components::PointLight>(light, "PointLight");
|
||||
//pointLight->Diffuse = glm::vec3(0.1f, 0.1f, 1.0f);
|
||||
//pointLight->linearAttenuation = 1.0f;
|
||||
//pointLight->quadraticAttenuation = 1.0f;
|
||||
{
|
||||
auto entity = CreateEntity();
|
||||
auto transform = AddComponent<Components::Transform>(entity, "Transform");
|
||||
transform->Scale = glm::vec3(1.0f);
|
||||
transform->Position = glm::vec3(1, 6, 0);
|
||||
transform->Orientation = glm::quat(glm::vec3(0.0f, 0.0f, 0.0f));
|
||||
auto model = AddComponent<Components::Model>(entity, "Model");
|
||||
model->ModelFile = "Models/PhysicsTest/Cube.obj";
|
||||
|
||||
auto physics = AddComponent<Components::Physics>(entity, "Physics");
|
||||
physics->Mass = 10;
|
||||
|
||||
auto box = AddComponent<Components::BoxShape>(entity, "BoxShape");
|
||||
box->Width = 0.5;
|
||||
box->Height = 0.5;
|
||||
box->Depth = 0.5;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
void GameWorld::Update(double dt)
|
||||
@@ -165,9 +120,10 @@ void GameWorld::RegisterComponents()
|
||||
m_ComponentFactory.Register("Transform", []() { return new Components::Transform(); });
|
||||
m_ComponentFactory.Register("FreeSteering", []() { return new Components::FreeSteering(); });
|
||||
|
||||
m_ComponentFactory.Register("Physics", []() { return new Components::Physics(); });
|
||||
m_ComponentFactory.Register("CompoundShape", []() { return new Components::CompoundShape(); });
|
||||
m_ComponentFactory.Register("SphereShape", []() { return new Components::SphereShape(); });
|
||||
m_ComponentFactory.Register("BoxShape", []() { return new Components::BoxShape(); });
|
||||
m_ComponentFactory.Register("Physics", []() { return new Components::Physics(); });
|
||||
|
||||
}
|
||||
|
||||
|
||||
+4
-3
@@ -30,9 +30,10 @@
|
||||
#include "Components/Template.h"
|
||||
#include "Components/Transform.h"
|
||||
|
||||
#include "Components\BoxShape.h"
|
||||
#include "Components\SphereShape.h"
|
||||
#include "Components\Physics.h"
|
||||
#include "Components/CompoundShape.h"
|
||||
#include "Components/BoxShape.h"
|
||||
#include "Components/SphereShape.h"
|
||||
#include "Components/Physics.h"
|
||||
|
||||
class GameWorld : public World
|
||||
{
|
||||
|
||||
@@ -59,10 +59,10 @@ void Systems::PhysicsSystem::UpdateEntity(double dt, EntityID entity, EntityID p
|
||||
auto sphereShapeComponent = m_World->GetComponent<Components::SphereShape>(entity, "SphereShape");
|
||||
auto boxShapeComponent = m_World->GetComponent<Components::BoxShape>(entity, "BoxShape");
|
||||
|
||||
if (physicsComponent && (sphereShapeComponent || boxShapeComponent))
|
||||
if (physicsComponent || sphereShapeComponent || boxShapeComponent)
|
||||
{
|
||||
if (m_PhysicsData.find(entity) == m_PhysicsData.end()) {
|
||||
SetUpPhysicsState(entity);
|
||||
SetUpPhysicsState(entity, parent);
|
||||
}
|
||||
|
||||
if (parent != 0)
|
||||
@@ -83,7 +83,7 @@ void Systems::PhysicsSystem::UpdateEntity(double dt, EntityID entity, EntityID p
|
||||
else
|
||||
{
|
||||
if (m_PhysicsData.find(entity) != m_PhysicsData.end()) {
|
||||
TearDownPhysicsState(entity);
|
||||
TearDownPhysicsState(entity, parent);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -98,51 +98,99 @@ void Systems::PhysicsSystem::OnComponentRemoved(std::string type, Component* com
|
||||
|
||||
}
|
||||
|
||||
void Systems::PhysicsSystem::SetUpPhysicsState(EntityID entity)
|
||||
void Systems::PhysicsSystem::SetUpPhysicsState(EntityID entity, EntityID parent)
|
||||
{
|
||||
auto transformComponent = m_World->GetComponent<Components::Transform>(entity, "Transform");
|
||||
if (!transformComponent) {
|
||||
LOG_WARNING("Physics component missing transform component on entity %i", entity);
|
||||
return;
|
||||
}
|
||||
|
||||
auto physicsComponent = m_World->GetComponent<Components::Physics>(entity, "Physics");
|
||||
auto compoundShapeComponent = m_World->GetComponent<Components::CompoundShape>(entity, "CompoundShape");
|
||||
auto sphereShapeComponent = m_World->GetComponent<Components::SphereShape>(entity, "SphereShape");
|
||||
auto boxShapeComponent = m_World->GetComponent<Components::BoxShape>(entity, "BoxShape");
|
||||
|
||||
if (compoundShapeComponent && (sphereShapeComponent || boxShapeComponent)) {
|
||||
LOG_WARNING("Entity %i has both compound shape and normal shape! Normal shapes must be children to entity with compound shape.", entity);
|
||||
}
|
||||
|
||||
PhysicsData* physicsData = &m_PhysicsData[entity];
|
||||
|
||||
/*EntityID baseParent = m_World->GetEntityBaseParent(entity);
|
||||
auto baseCompoundShape = m_World->GetComponent<Components::CompoundShape>(baseParent, "CompoundShape");*/
|
||||
|
||||
if (boxShapeComponent)
|
||||
{
|
||||
physicsData->CollisionShape = new btBoxShape(btVector3(boxShapeComponent->Width, boxShapeComponent->Height, boxShapeComponent->Depth));
|
||||
}
|
||||
else if(sphereShapeComponent)
|
||||
{
|
||||
physicsData->CollisionShape = new btSphereShape(sphereShapeComponent->Radius);
|
||||
}
|
||||
// Set-up compound shape
|
||||
if (compoundShapeComponent) {
|
||||
btCompoundShape* compoundShape = new btCompoundShape();
|
||||
physicsData->CollisionShape = compoundShape;
|
||||
|
||||
if (transformComponent)
|
||||
{
|
||||
btTransform transform;
|
||||
transform.setFromOpenGLMatrix(glm::value_ptr(glm::translate(glm::mat4(), transformComponent->Position) * glm::toMat4(transformComponent->Orientation)));
|
||||
physicsData->MotionState = new btDefaultMotionState(transform);
|
||||
}
|
||||
|
||||
btVector3 inertia;
|
||||
if (physicsComponent->Mass != 0) {
|
||||
physicsData->CollisionShape->calculateLocalInertia(physicsComponent->Mass, inertia);
|
||||
}
|
||||
|
||||
btVector3 inertia;
|
||||
if (physicsComponent->Mass != 0)
|
||||
physicsData->CollisionShape->calculateLocalInertia(physicsComponent->Mass, inertia);
|
||||
btRigidBody::btRigidBodyConstructionInfo rigidBodyCI(physicsComponent->Mass, physicsData->MotionState, physicsData->CollisionShape, inertia);
|
||||
physicsData->RigidBody = new btRigidBody(rigidBodyCI);
|
||||
|
||||
btRigidBody::btRigidBodyConstructionInfo rigidBodyCI(physicsComponent->Mass, physicsData->MotionState, physicsData->CollisionShape, inertia);
|
||||
rigidBodyCI.m_friction = physicsComponent->Friction;
|
||||
if (sphereShapeComponent)
|
||||
{
|
||||
rigidBodyCI.m_rollingFriction = sphereShapeComponent->RollingFriction;
|
||||
m_DynamicsWorld->addRigidBody(physicsData->RigidBody);
|
||||
}
|
||||
|
||||
physicsData->RigidBody = new btRigidBody(rigidBodyCI);
|
||||
// Set-up normal shapes
|
||||
else if (boxShapeComponent) {
|
||||
physicsData->CollisionShape = new btBoxShape(btVector3(boxShapeComponent->Width, boxShapeComponent->Height, boxShapeComponent->Depth));
|
||||
} else if (sphereShapeComponent) {
|
||||
physicsData->CollisionShape = new btSphereShape(sphereShapeComponent->Radius);
|
||||
}
|
||||
if (boxShapeComponent || sphereShapeComponent) {
|
||||
btTransform transform;
|
||||
transform.setFromOpenGLMatrix(glm::value_ptr(glm::translate(glm::mat4(), transformComponent->Position) * glm::toMat4(transformComponent->Orientation)));
|
||||
|
||||
|
||||
// If there's a local physics component
|
||||
if (physicsComponent) {
|
||||
physicsData->MotionState = new btDefaultMotionState(transform);
|
||||
|
||||
m_DynamicsWorld->addRigidBody(physicsData->RigidBody);
|
||||
btVector3 inertia;
|
||||
if (physicsComponent->Mass != 0) {
|
||||
physicsData->CollisionShape->calculateLocalInertia(physicsComponent->Mass, inertia);
|
||||
}
|
||||
|
||||
btRigidBody::btRigidBodyConstructionInfo rigidBodyCI(physicsComponent->Mass, physicsData->MotionState, physicsData->CollisionShape, inertia);
|
||||
physicsData->RigidBody = new btRigidBody(rigidBodyCI);
|
||||
|
||||
m_DynamicsWorld->addRigidBody(physicsData->RigidBody);
|
||||
} else {
|
||||
// Otherwise, find our base parent and attach to compound shape
|
||||
EntityID baseParent = m_World->GetEntityBaseParent(entity);
|
||||
auto basePhysicsComponent = m_World->GetComponent<Components::Physics>(baseParent, "Physics");
|
||||
if (!basePhysicsComponent) {
|
||||
LOG_WARNING("Failed to attach orphan collision shape on entity %i: missing physics component on base parent entity %i", entity, baseParent);
|
||||
return;
|
||||
}
|
||||
auto baseCompoundShapeComponent = m_World->GetComponent<Components::CompoundShape>(baseParent, "CompoundShape");
|
||||
if (!baseCompoundShapeComponent) {
|
||||
LOG_WARNING("Failed to attach orphan collision shape on entity %i: missing compound shape on base parent entity %i", entity, baseParent);
|
||||
return;
|
||||
}
|
||||
PhysicsData* basePhysicsData = &m_PhysicsData.at(baseParent);
|
||||
|
||||
btCompoundShape* baseCompoundShape = dynamic_cast<btCompoundShape*>(basePhysicsData->CollisionShape);
|
||||
baseCompoundShape->addChildShape(transform, physicsData->CollisionShape);
|
||||
|
||||
btVector3 inertia;
|
||||
baseCompoundShape->calculateLocalInertia(basePhysicsComponent->Mass, inertia);
|
||||
|
||||
basePhysicsData->RigidBody->setMassProps(basePhysicsComponent->Mass, inertia);
|
||||
basePhysicsData->RigidBody->updateInertiaTensor();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Systems::PhysicsSystem::TearDownPhysicsState(EntityID entity)
|
||||
void Systems::PhysicsSystem::TearDownPhysicsState(EntityID entity, EntityID parent)
|
||||
{
|
||||
PhysicsData* physicsData = &m_PhysicsData[entity];
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#include "System.h"
|
||||
#include "Components/Transform.h"
|
||||
#include "Components/Physics.h"
|
||||
#include "Components/CompoundShape.h"
|
||||
#include "Components/BoxShape.h"
|
||||
#include "Components/SphereShape.h"
|
||||
|
||||
@@ -38,8 +39,8 @@ namespace Systems
|
||||
std::map<EntityID, PhysicsData> m_PhysicsData;
|
||||
|
||||
|
||||
void SetUpPhysicsState(EntityID entity);
|
||||
void TearDownPhysicsState(EntityID entity);
|
||||
void SetUpPhysicsState(EntityID entity, EntityID parent);
|
||||
void TearDownPhysicsState(EntityID entity, EntityID parent);
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -56,6 +56,15 @@ EntityID World::GetEntityParent(EntityID entity)
|
||||
return it == m_EntityParents.end() ? 0 : it->second;
|
||||
}
|
||||
|
||||
EntityID World::GetEntityBaseParent(EntityID entity)
|
||||
{
|
||||
EntityID parent = GetEntityParent(entity);
|
||||
if (parent == 0)
|
||||
return entity;
|
||||
else
|
||||
return GetEntityBaseParent(parent);
|
||||
}
|
||||
|
||||
bool World::ValidEntity(EntityID entity)
|
||||
{
|
||||
return m_EntityParents.find(entity) != m_EntityParents.end();
|
||||
|
||||
@@ -41,6 +41,7 @@ public:
|
||||
bool ValidEntity(EntityID entity);
|
||||
|
||||
EntityID GetEntityParent(EntityID entity);
|
||||
EntityID GetEntityBaseParent(EntityID entity);
|
||||
|
||||
template <class T>
|
||||
T GetProperty(EntityID entity, std::string property)
|
||||
|
||||
@@ -112,6 +112,7 @@
|
||||
<ClInclude Include="..\..\src\Components\BoxShape.h" />
|
||||
<ClInclude Include="..\..\src\Components\Camera.h" />
|
||||
<ClInclude Include="..\..\src\Components\Collision.h" />
|
||||
<ClInclude Include="..\..\src\Components\CompoundShape.h" />
|
||||
<ClInclude Include="..\..\src\Components\DirectionalLight.h" />
|
||||
<ClInclude Include="..\..\src\Components\FreeSteering.h" />
|
||||
<ClInclude Include="..\..\src\Components\Input.h" />
|
||||
|
||||
@@ -142,6 +142,9 @@
|
||||
<ClInclude Include="..\..\src\Systems\DebugSystem.h">
|
||||
<Filter>Systems</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\Components\CompoundShape.h">
|
||||
<Filter>Components</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\..\src\Shaders\AABB.frag.glsl">
|
||||
|
||||
Reference in New Issue
Block a user