| 12345678910111213141516171819202122232425262728293031323334353637 |
- #ifndef SCUFENG_CAMERA_H_
- #define SCUFENG_CAMERA_H_
- #include "cglm/types.h"
- #include "scufeng/engine.h"
- typedef struct {
- vec3 pos;
- float pitch_rad;
- float yaw_rad;
- float fov_rad;
- float near_clip;
- float far_clip;
- vec3 front;
- vec3 right;
- mat4 view;
- mat4 projection;
- } SECamera;
- SECamera SECamera_new(
- vec3 pos,
- const float fov_rad,
- const float near_clip,
- const float far_clip
- );
- void SECamera_set_perspective(SECamera *const camera);
- void SECamera_pos_set(SECamera *const camera, vec3 pos);
- void SECamera_move_to_direction(SECamera *const camera, SEDirection dir, const float mag);
- void SECamera_look_dir(SECamera *const camera, vec3 dir);
- void SECamera_look_at(SECamera *const camera, vec3 target);
- void SECamera_pitch_add(SECamera *const camera, const float pitch_rad);
- void SECamera_yaw_add(SECamera *const camera, const float yaw_rad);
- void SECamera_view_update(SECamera *const camera);
- #endif // SCUFENG_CAMERA_H_
|