14#define DEFAULT_CAMERA_SPEED 15.0F
15#define DEFAULT_CAMERA_SENSITIVITY 0.15F
16#define DEFAULT_CAMERA_ZOOM 60.0F
17#define DEFAULT_ZOOM_SPEED 1.0F
18#define DEFAULT_SCROLL_SENSITIVITY 50.0F
19#define DEFAULT_MAX_PITCH 89.0F
20#define DEFAULT_MIN_PITCH -89.0F
21#define DEFAULT_MAX_ALPHA 1.0F
22#define DEFAULT_ACCELERATION 10.0F
23#define DEFAULT_FRICTION 0.85F
24#define DEFAULT_ROTATION_SMOOTHING 0.18F
25#define DEFAULT_BOBBING_FREQUENCY 2.2F
26#define DEFAULT_BOBBING_AMPLITUDE 0.0004F
27#define DEFAULT_MIN_VELOCITY_FOR_BOBBING \
29#define DEFAULT_BOBBING_RESET_SPEED 0.95F
30#define DEFAULT_MIN_VELOCITY 0.01F
31#define DEFAULT_TARGET_FPS 60
32#define DEFAULT_FIXED_TIMESTEP \
33 (1.0F / DEFAULT_TARGET_FPS)
34#define DEFAULT_MOUSE_SMOOTHING_FACTOR 0.1F
void camera_init(Camera *cam, float distance, float yaw, float pitch)
Initializes the camera with default values.
Definition camera.c:10
void camera_get_view_matrix(Camera *cam, mat4 view)
Generates the 4x4 view matrix for this camera.
Definition camera.c:168
void camera_fixed_update(Camera *cam)
Performs one fixed-step physics update.
Definition camera.c:86
void camera_process_scroll(Camera *cam, float yoffset)
Processes mouse scroll events to apply physical impulse.
Definition camera.c:175
void camera_build_keyboard_input(Camera *cam)
Converts boolean keyboard flags into move_input.
Definition camera.c:74
void camera_update_vectors(Camera *cam)
Recalculates front, right, and up vectors from yaw and pitch.
Definition camera.c:59
void camera_process_mouse(Camera *cam, float xoffset, float yoffset)
Processes mouse movement to update target orientation.
Definition camera.c:147
Represents a 3D camera with orientation, movement, and physical properties.
Definition camera.h:41
bool move_right
Definition camera.h:59
double last_mouse_x
Definition camera.h:99
bool first_mouse
Definition camera.h:101
float acceleration
Definition camera.h:72
float yaw_target
Definition camera.h:77
bool move_backward
Definition camera.h:57
float zoom
Definition camera.h:53
bool move_down
Definition camera.h:61
float rotation_smoothing
Definition camera.h:79
float bobbing_time
Definition camera.h:84
bool move_left
Definition camera.h:58
float velocity
Definition camera.h:51
float sensitivity
Definition camera.h:52
vec3 velocity_current
Definition camera.h:71
float bobbing_amplitude
Definition camera.h:88
float fixed_timestep
Definition camera.h:93
vec3 position
Definition camera.h:42
float smoothed_y
Definition camera.h:81
vec3 front
Definition camera.h:43
bool move_up
Definition camera.h:60
float mouse_smoothing_factor
Definition camera.h:95
float smoothed_x
Definition camera.h:80
float friction
Definition camera.h:73
float bobbing_frequency
Definition camera.h:86
vec3 world_up
Definition camera.h:46
float pitch_target
Definition camera.h:78
float pitch
Definition camera.h:49
bool move_forward
Definition camera.h:56
vec3 right
Definition camera.h:45
vec3 move_input
Definition camera.h:68
float yaw
Definition camera.h:48
float physics_accumulator
Definition camera.h:92
bool bobbing_enabled
Definition camera.h:89
double last_mouse_y
Definition camera.h:100
vec3 up
Definition camera.h:44