#ifndef CAMERA_CONTROLLER_H #define CAMERA_CONTROLLER_H #include "core/transformable.h" #include "core/scene_node_entity.h" #include "utils/mirror.h" #include "utils/drop.h" typedef struct CameraController { SceneNode *node; Transformable transform; Transform global; float rotation_speed; float max_speed_time; Transformable target; float time_rotated; } CameraController; extern SceneNode *CreateCameraController(Transformable target); extern void DestroyCameraController(CameraController *self); extern void CameraControllerEnterTree(CameraController *self); extern void CameraControllerExitTree(CameraController *self); extern void CameraControllerTick(CameraController *self, double delta); DECL_REFLECT(CameraController); decl_typeclass_impl(SceneNodeEntity, CameraController); decl_typeclass_impl(Drop, CameraController); #endif // !CAMERA_CONTROLLER_H