Using DefaultAxis to specify one of the base axis to move against

This commit is contained in:
Vladyslav Baranovskyi
2024-06-26 22:42:03 +03:00
parent e77f3c331e
commit a715f91b40
3 changed files with 23 additions and 1 deletions

View File

@@ -37,7 +37,7 @@ namespace OpenVulkano
Scene::SimpleDrawable m_drawable; Scene::SimpleDrawable m_drawable;
Scene::Node m_node; Scene::Node m_node;
}; };
const Math::Vector3f PLANE_NORMAL(1, 0, 0); const Math::Vector3f PLANE_NORMAL(1, 0, 1);
} }
class MovingCubeAppImpl final : public MovingCubeApp class MovingCubeAppImpl final : public MovingCubeApp
{ {
@@ -127,6 +127,7 @@ namespace OpenVulkano
m_morphableCameraControl.Init(&m_camera); m_morphableCameraControl.Init(&m_camera);
#if USE_PLANE_CAM_CONTROL #if USE_PLANE_CAM_CONTROL
m_cameraControl.Init(&m_camera, PLANE_NORMAL); m_cameraControl.Init(&m_camera, PLANE_NORMAL);
// m_cameraControl.Init(&m_camera, Scene::PlaneCameraController::DefaultAxis::OYZ);
#else #else
m_cameraControl.Init(&m_camera); m_cameraControl.Init(&m_camera);
#endif #endif
@@ -147,6 +148,7 @@ namespace OpenVulkano
GetGraphicsAppManager()->GetRenderer()->SetScene(&m_scene); GetGraphicsAppManager()->GetRenderer()->SetScene(&m_scene);
#if USE_PLANE_CAM_CONTROL #if USE_PLANE_CAM_CONTROL
m_cameraControl.Init(&m_camera, PLANE_NORMAL); m_cameraControl.Init(&m_camera, PLANE_NORMAL);
// m_cameraControl.Init(&m_camera, Scene::PlaneCameraController::DefaultAxis::OYZ);
#else #else
m_cameraControl.Init(&m_camera); m_cameraControl.Init(&m_camera);
#endif #endif

View File

@@ -29,6 +29,18 @@ namespace OpenVulkano::Scene
SetDefaultKeybindings(); SetDefaultKeybindings();
} }
void PlaneCameraController::Init(Camera* camera, DefaultAxis axis)
{
Math::Vector3f vector;
switch (axis)
{
case DefaultAxis::OXY: vector = Math::Vector3f(0, 0, 1); break;
case DefaultAxis::OXZ: vector = Math::Vector3f(0, 1, 0); break;
case DefaultAxis::OYZ: vector = Math::Vector3f(1, 0, 0); break;
}
Init(camera, vector);
}
void PlaneCameraController::Tick() void PlaneCameraController::Tick()
{ {
auto input = OpenVulkano::Input::InputManager::GetInstance(); auto input = OpenVulkano::Input::InputManager::GetInstance();

View File

@@ -22,9 +22,17 @@ namespace OpenVulkano::Scene
Input::InputAction* m_actionBoost; Input::InputAction* m_actionBoost;
public: public:
enum class DefaultAxis
{
OXY,
OXZ,
OYZ,
};
PlaneCameraController(Camera* camera = nullptr); PlaneCameraController(Camera* camera = nullptr);
void Init(Camera* camera, const Math::Vector3f& planeNormal); void Init(Camera* camera, const Math::Vector3f& planeNormal);
void Init(Camera* camera, DefaultAxis axis);
void Tick() override; void Tick() override;
void SetDefaultKeybindings(); void SetDefaultKeybindings();
void SetPlaneNormal(const Math::Vector3f& planeNormal); void SetPlaneNormal(const Math::Vector3f& planeNormal);