31 lines
894 B
C
31 lines
894 B
C
#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
|