overhauled physics engine

This commit is contained in:
Dynamitos
2023-01-21 18:43:21 +01:00
parent 3c7346cf7b
commit 2208ab438a
164 changed files with 22606 additions and 928 deletions
+4 -8
View File
@@ -6,7 +6,7 @@ using namespace Seele;
Actor::Actor(PScene scene)
: Entity(scene)
{
scene->attachComponent<Component::Transform>(identifier);
attachComponent<Component::Transform>();
}
Actor::~Actor()
@@ -32,13 +32,9 @@ void Actor::removeChild(PActor child)
children.remove(children.find(child), false);
child->setParent(nullptr);
}
const Component::Transform& Actor::getTransform() const
Component::Transform& Actor::getTransform()
{
return scene->accessComponent<Component::Transform>(identifier);
return accessComponent<Component::Transform>();
}
//Component::Transform& Actor::getTransform()
//{
// return scene->accessComponent<Component::Transform>(identifier);
//}
+1 -2
View File
@@ -18,8 +18,7 @@ public:
void removeChild(PActor child);
Array<PActor> getChildren();
// Returns a read-only copy of the actors transform
const Component::Transform& getTransform() const;
Component::Transform& getTransform();
protected:
//Component::Transform& getTransform();
+4 -4
View File
@@ -6,8 +6,8 @@ using namespace Seele;
CameraActor::CameraActor(PScene scene)
: Actor(scene)
{
scene->attachComponent<Component::Camera>(identifier);
scene->accessComponent<Component::Transform>(identifier).setRelativeLocation(Math::Vector(10, 5, 14));
attachComponent<Component::Camera>();
attachComponent<Component::Transform>().setRelativeLocation(Vector(10, 5, 14));
}
CameraActor::~CameraActor()
@@ -16,10 +16,10 @@ CameraActor::~CameraActor()
Component::Camera& CameraActor::getCameraComponent()
{
return scene->accessComponent<Component::Camera>(identifier);
return accessComponent<Component::Camera>();
}
const Component::Camera& CameraActor::getCameraComponent() const
{
return scene->accessComponent<Component::Camera>(identifier);
return accessComponent<Component::Camera>();
}
+1 -1
View File
@@ -11,5 +11,5 @@ Entity::Entity(PScene scene)
Entity::~Entity()
{
scene->destroyEntity(identifier);
}
+12 -2
View File
@@ -13,9 +13,19 @@ public:
virtual ~Entity();
template<typename Component, typename... Args>
Component& attachComponent(Args... args)
Component& attachComponent(Args&&... args)
{
return scene->attachComponent<Component>(identifier, args...);
return scene->attachComponent<Component>(identifier, std::forward<Args>(args)...);
}
template<typename Component>
Component& accessComponent()
{
return scene->accessComponent<Component>(identifier);
}
template<typename Component>
const Component& accessComponent() const
{
return scene->accessComponent<Component>(identifier);
}
protected:
PScene scene;