#include "macros.hpp" #include "vendor/glm_include.hpp" #include 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;