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
+1 -1
View File
@@ -20,7 +20,7 @@ SceneView::SceneView(Gfx::PGraphics graphics, PWindow owner, const ViewportCreat
LightCullingPass(graphics),
BasePass(graphics)
))
, cameraSystem(createInfo.dimensions, Math::Vector(0, 0, 10))
, cameraSystem(createInfo.dimensions, Vector(0, 0, 10))
{
AssetRegistry::importFile("C:\\Users\\Dynamitos\\TestSeeleProject\\Assets\\Ayaka\\Avatar_Girl_Sword_Ayaka_Tex_Body_Diffuse.png");
AssetRegistry::importFile("C:\\Users\\Dynamitos\\TestSeeleProject\\Assets\\Ayaka\\Avatar_Girl_Sword_Ayaka_Tex_Body_Lightmap.png");
+7 -7
View File
@@ -3,7 +3,7 @@
using namespace Seele;
ViewportControl::ViewportControl(const Math::URect& viewportDimensions, Math::Vector initialPos)
ViewportControl::ViewportControl(const URect& viewportDimensions, Vector initialPos)
: position(initialPos)
, fieldOfView(glm::radians(70.f))
, aspectRatio(static_cast<float>(viewportDimensions.size.x) / viewportDimensions.size.y)
@@ -25,9 +25,9 @@ void ViewportControl::update(Component::Camera& camera, float deltaTime)
{
cameraMove *= 4;
}
Math::Vector moveVector = Math::Vector();
Math::Vector forward = glm::normalize(springArm);
Math::Vector side = glm::cross(Math::Vector(0, 1, 0), forward);
Vector moveVector = Vector();
Vector forward = glm::normalize(springArm);
Vector side = glm::cross(Vector(0, 1, 0), forward);
if(keys[KeyCode::KEY_W])
{
moveVector += forward * cameraMove;
@@ -64,11 +64,11 @@ void ViewportControl::update(Component::Camera& camera, float deltaTime)
lastX = mouseX;
lastY = mouseY;
springArm = glm::normalize(
Math::Vector(
Vector(
cos(yaw) * cos(pitch),
sin(pitch),
sin(yaw) * cos(pitch)));
camera.viewMatrix = glm::lookAt(position, position + springArm, Math::Vector(0, 1, 0));
camera.viewMatrix = glm::lookAt(position, position + springArm, Vector(0, 1, 0));
camera.projectionMatrix = glm::perspective(fieldOfView, aspectRatio, 0.1f, 1000.0f);
std::cout << yaw << " " << pitch << std::endl;
}
@@ -96,7 +96,7 @@ void ViewportControl::mouseButtonCallback(MouseButton button, InputAction action
}
}
void ViewportControl::viewportResize(Math::URect dimensions)
void ViewportControl::viewportResize(URect dimensions)
{
aspectRatio = static_cast<float>(dimensions.size.x) / dimensions.size.y;
}
+4 -4
View File
@@ -8,16 +8,16 @@ namespace Seele
class ViewportControl
{
public:
ViewportControl(const Math::URect& viewportDimensions, Math::Vector initialPos /*TODO: configurable initial rotations*/);
ViewportControl(const URect& viewportDimensions, Vector initialPos /*TODO: configurable initial rotations*/);
~ViewportControl();
void update(Component::Camera& camera, float deltaTime);
void keyCallback(KeyCode key, InputAction action);
void mouseMoveCallback(double xPos, double yPos);
void mouseButtonCallback(MouseButton button, InputAction action);
void viewportResize(Math::URect dimensions);
void viewportResize(URect dimensions);
private:
Math::Vector position;
Math::Vector springArm;
Vector position;
Vector springArm;
float fieldOfView;
float aspectRatio;
StaticArray<bool, static_cast<size_t>(KeyCode::KEY_LAST)> keys;