13 #define DEFAULT_CAMERA_SPEED 15.0F
14 #define DEFAULT_CAMERA_SENSITIVITY 0.15F
15 #define DEFAULT_CAMERA_ZOOM 60.0F
16 #define DEFAULT_ZOOM_SPEED 1.0F
17 #define DEFAULT_SCROLL_SENSITIVITY 50.0F
18 #define DEFAULT_MAX_PITCH 89.0F
19 #define DEFAULT_MIN_PITCH -89.0F
20 #define DEFAULT_MAX_ALPHA 1.0F
21 #define DEFAULT_ACCELERATION 10.0F
22 #define DEFAULT_FRICTION 0.85F
23 #define DEFAULT_ROTATION_SMOOTHING 0.18F
24 #define DEFAULT_BOBBING_FREQUENCY 2.2F
25 #define DEFAULT_BOBBING_AMPLITUDE 0.0004F
26 #define DEFAULT_MIN_VELOCITY_FOR_BOBBING \
28 #define DEFAULT_BOBBING_RESET_SPEED 0.95F
29 #define DEFAULT_MIN_VELOCITY 0.01F
30 #define DEFAULT_TARGET_FPS 60
31 #define DEFAULT_FIXED_TIMESTEP \
32 (1.0F / DEFAULT_TARGET_FPS)
33 #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:9
void camera_get_view_matrix(Camera *cam, mat4 view)
Generates the 4x4 view matrix for this camera.
Definition: camera.c:162
void camera_fixed_update(Camera *cam)
Performs one fixed-step physics update.
Definition: camera.c:73
void camera_process_scroll(Camera *cam, float yoffset)
Processes mouse scroll events to apply physical impulse.
Definition: camera.c:169
void camera_update_vectors(Camera *cam)
Recalculates front, right, and up vectors from yaw and pitch.
Definition: camera.c:57
void camera_process_mouse(Camera *cam, float xoffset, float yoffset)
Processes mouse movement to update target orientation.
Definition: camera.c:141
Represents a 3D camera with orientation, movement, and physical properties.
Definition: camera.h:40
int move_backward
Definition: camera.h:56
int move_up
Definition: camera.h:59
double last_mouse_x
Definition: camera.h:91
float acceleration
Definition: camera.h:64
float yaw_target
Definition: camera.h:69
float zoom
Definition: camera.h:52
float rotation_smoothing
Definition: camera.h:71
float bobbing_time
Definition: camera.h:76
int first_mouse
Definition: camera.h:93
float velocity
Definition: camera.h:50
float sensitivity
Definition: camera.h:51
int move_down
Definition: camera.h:60
vec3 velocity_current
Definition: camera.h:63
float bobbing_amplitude
Definition: camera.h:80
float fixed_timestep
Definition: camera.h:85
vec3 position
Definition: camera.h:41
int move_forward
Definition: camera.h:55
float smoothed_y
Definition: camera.h:73
vec3 front
Definition: camera.h:42
float mouse_smoothing_factor
Definition: camera.h:87
float smoothed_x
Definition: camera.h:72
float friction
Definition: camera.h:65
int move_left
Definition: camera.h:57
float bobbing_frequency
Definition: camera.h:78
vec3 world_up
Definition: camera.h:45
float pitch_target
Definition: camera.h:70
float pitch
Definition: camera.h:48
vec3 right
Definition: camera.h:44
int bobbing_enabled
Definition: camera.h:81
float yaw
Definition: camera.h:47
float physics_accumulator
Definition: camera.h:84
int move_right
Definition: camera.h:58
double last_mouse_y
Definition: camera.h:92
vec3 up
Definition: camera.h:43