diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2023-11-15 13:03:48 -0500 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2023-11-15 13:03:48 -0500 |
| commit | 1513216876a0409f45d88cbad14ae8b48fca37e2 (patch) | |
| tree | 32b48d966faf36138dd985e4df739a83cddc5f48 /src/camera.hpp | |
| parent | 6a30d21c5175c27aeccc8a6ae956c274f3ef9621 (diff) | |
major input refactor and add debug camera
Diffstat (limited to 'src/camera.hpp')
| -rw-r--r-- | src/camera.hpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/camera.hpp b/src/camera.hpp new file mode 100644 index 0000000..c699767 --- /dev/null +++ b/src/camera.hpp @@ -0,0 +1,33 @@ + +#include "macros.hpp" +#include "vendor/glm_include.hpp" + +#include <cstdint> + +TypeSafeInt_Const_Expr(PkeCameraType, uint8_t, 0xFF); +TypeSafeInt_Const_Expr(PkeCameraOrientation, uint8_t, 0xFF); +TypeSafeInt_Const_Expr(PkeCameraStaleFlags, uint8_t, 0xFF); + +const PkeCameraType PKE_CAMERA_TYPE_PERSPECTIVE = PkeCameraType{1 << 0}; +const PkeCameraType PKE_CAMERA_TYPE_ORTHOGONAL = PkeCameraType{1 << 1}; + +const PkeCameraOrientation PKE_CAMERA_ORIENTATION_TARGET = PkeCameraOrientation{1 << 0}; +const PkeCameraOrientation PKE_CAMERA_ORIENTATION_FREE = PkeCameraOrientation{1 << 1}; + +const PkeCameraStaleFlags PKE_CAMERA_STALE_POS = PkeCameraStaleFlags{1 << 0}; +const PkeCameraStaleFlags PKE_CAMERA_STALE_ROT = PkeCameraStaleFlags{1 << 1}; +const PkeCameraStaleFlags PKE_CAMERA_STALE_ORIENTATION = PkeCameraStaleFlags{1 << 2}; +const PkeCameraStaleFlags PKE_CAMERA_STALE_ALL = PkeCameraStaleFlags{0xFF}; + +struct PkeCamera { + glm::vec3 pos; + glm::quat rot; + glm::vec3 target; + PkeCameraType type; + PkeCameraOrientation orientation; + PkeCameraStaleFlags stale; +}; +extern PkeCamera NullCamera; +extern PkeCamera *ActiveCamera; + + |
