| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- local ffi = require("ffi")
- ffi.cdef
- [[
- typedef struct
- {
- Vec3 m_position;
- Vec3 m_look_at;
- Vec3 m_up;
- float m_angle_x;
- float m_angle_y;
- Mat4 m_view;
- Mat4 m_projection;
- float m_FOV;
- float m_aspect;
- float m_near;
- float m_far;
- } Camera;
- Camera* camera(const Vec3& position, float fov, float aspect);
- const Vec3& camera_position(Camera* self);
- void camera_set_position(Camera* self, const Vec3& position);
- const Vec3& camera_look_at(Camera* self);
- void camera_set_look_at(Camera* self, const Vec3& lookat);
- void camera_set_rotation(Camera* self, const float x, const float y);
- const Vec3& camera_up(Camera* self);
- float camera_fov(Camera* self);
- void camera_set_fov(Camera* self, float fov);
- float camera_aspect(Camera* self);
- void camera_set_aspect(Camera* self, float aspect);
- float camera_near_clip_distance(Camera* self);
- void camera_set_near_clip_distance(Camera* self, float near);
- float camera_far_clip_distance(Camera* self);
- void camera_set_far_clip_distance(Camera* self, float far);
- const Mat4& camera_projection_matrix(Camera* self);
- const Mat4& camera_view_matrix(Camera* self);
- void camera_move_forward(Camera* self, float meters);
- void camera_move_backward(Camera* self, float meters);
- void camera_strafe_left(Camera* self, float meters);
- void camera_strafe_right(Camera* self, float meters);
- ]]
- Camera = {}
- Camera.camera = lib.camera
- Camera.position = lib.camera_position
- Camera.set_position = lib.camera_set_position
- Camera.look_at = lib.camera_look_at
- Camera.set_look_at = lib.camera_set_look_at
- Camera.set_rotation = lib.camera_set_rotation
- Camera.up = lib.camera_up
- Camera.fov = lib.camera_fov
- Camera.set_fov = lib.camera_set_fov
- Camera.aspect = lib.camera_aspect
- Camera.set_aspect = lib.camera_set_aspect
- Camera.near_clip_distance = lib.camera_near_clip_distance
- Camera.set_near_clip_distance = lib.camera_set_near_clip_distance
- Camera.far_clip_distance = lib.camera_far_clip_distance
- Camera.set_far_clip_distance = lib.camera_set_far_clip_distance
- Camera.projection_matrix = lib.camera_projection_matrix
- Camera.view_matrix = lib.camera_view_matrix
- Camera.move_forward = lib.camera_move_forward
- Camera.move_backward = lib.camera_move_backward
- Camera.strafe_left = lib.camera_strafe_left
- Camera.strafe_right = lib.camera_strafe_right
|