refactoring vr code
This commit is contained in:
31
src/hmd.h
31
src/hmd.h
@@ -1,16 +1,9 @@
|
||||
#pragma once
|
||||
#include "rtt.h"
|
||||
#include "app.h"
|
||||
|
||||
struct ViveController
|
||||
struct ViveController : public VRController
|
||||
{
|
||||
enum class kButton : uint8_t
|
||||
{
|
||||
Pad,
|
||||
Trigger,
|
||||
Menu,
|
||||
Grip,
|
||||
COUNT,
|
||||
};
|
||||
enum class kButtonMask : uint64_t
|
||||
{
|
||||
TriggerBit = 0x200000000,
|
||||
@@ -18,20 +11,20 @@ struct ViveController
|
||||
MenuBit = 0x000000002,
|
||||
GripBit = 0x000000004,
|
||||
};
|
||||
enum class kAction
|
||||
{
|
||||
Press,
|
||||
Release,
|
||||
};
|
||||
|
||||
static std::map<kButton, kButtonMask> m_mask;
|
||||
std::array<bool, (int)kButton::COUNT> m_buttons;
|
||||
std::array<bool, (int)kButton::COUNT> m_analog_buttons;
|
||||
glm::mat4 m_mat;
|
||||
|
||||
vr::VRControllerState_t m_state{ 0 };
|
||||
bool m_valid = false;
|
||||
glm::vec2 axis(kButton button) const {
|
||||
|
||||
glm::vec2 axis(kButton button) const
|
||||
{
|
||||
return { m_state.rAxis[(int)button].x, m_state.rAxis[(int)button].y };
|
||||
}
|
||||
|
||||
virtual float get_trigger_value() override
|
||||
{
|
||||
return axis(VRController::kButton::Trigger).x;
|
||||
}
|
||||
};
|
||||
|
||||
struct Vive
|
||||
|
||||
Reference in New Issue
Block a user