| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- 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
|