diff options
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; + + |
