Using DefaultAxis to specify one of the base axis to move against
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user