diff --git a/examples/ExampleApps/MovingCubeApp.cpp b/examples/ExampleApps/MovingCubeApp.cpp index 8dc9a12..fc0031e 100644 --- a/examples/ExampleApps/MovingCubeApp.cpp +++ b/examples/ExampleApps/MovingCubeApp.cpp @@ -37,7 +37,7 @@ namespace OpenVulkano Scene::SimpleDrawable m_drawable; 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 { @@ -127,6 +127,7 @@ namespace OpenVulkano m_morphableCameraControl.Init(&m_camera); #if USE_PLANE_CAM_CONTROL m_cameraControl.Init(&m_camera, PLANE_NORMAL); + // m_cameraControl.Init(&m_camera, Scene::PlaneCameraController::DefaultAxis::OYZ); #else m_cameraControl.Init(&m_camera); #endif @@ -147,6 +148,7 @@ namespace OpenVulkano GetGraphicsAppManager()->GetRenderer()->SetScene(&m_scene); #if USE_PLANE_CAM_CONTROL m_cameraControl.Init(&m_camera, PLANE_NORMAL); + // m_cameraControl.Init(&m_camera, Scene::PlaneCameraController::DefaultAxis::OYZ); #else m_cameraControl.Init(&m_camera); #endif diff --git a/openVulkanoCpp/Scene/PlaneCameraController.cpp b/openVulkanoCpp/Scene/PlaneCameraController.cpp index f72a0fa..ea58849 100644 --- a/openVulkanoCpp/Scene/PlaneCameraController.cpp +++ b/openVulkanoCpp/Scene/PlaneCameraController.cpp @@ -29,6 +29,18 @@ namespace OpenVulkano::Scene 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() { auto input = OpenVulkano::Input::InputManager::GetInstance(); diff --git a/openVulkanoCpp/Scene/PlaneCameraController.hpp b/openVulkanoCpp/Scene/PlaneCameraController.hpp index 02d33af..baccaf5 100644 --- a/openVulkanoCpp/Scene/PlaneCameraController.hpp +++ b/openVulkanoCpp/Scene/PlaneCameraController.hpp @@ -22,9 +22,17 @@ namespace OpenVulkano::Scene Input::InputAction* m_actionBoost; public: + enum class DefaultAxis + { + OXY, + OXZ, + OYZ, + }; + PlaneCameraController(Camera* camera = nullptr); void Init(Camera* camera, const Math::Vector3f& planeNormal); + void Init(Camera* camera, DefaultAxis axis); void Tick() override; void SetDefaultKeybindings(); void SetPlaneNormal(const Math::Vector3f& planeNormal);