|
|
|
|
@ -27,6 +27,7 @@
|
|
|
|
|
#define MIN_DISTANCE_BODY_RADIUS_MULT 2.75f |
|
|
|
|
#define MIN_DISTANCE_SPACECRAFT_DEFAULT 0.5f |
|
|
|
|
#define MIN_DISTANCE_SPACECRAFT_PARENT_RADIUS_MULT 0.1f |
|
|
|
|
#define CAMERA_NEAR_CULL_DISTANCE 0.05f |
|
|
|
|
|
|
|
|
|
// Zoom direction enumeration for improved readability
|
|
|
|
|
enum ZoomDirection { |
|
|
|
|
@ -254,7 +255,9 @@ static float get_target_min_distance(RenderState* render_state, SimulationState*
|
|
|
|
|
return CAMERA_MIN_DISTANCE; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return target_radius * MIN_DISTANCE_BODY_RADIUS_MULT; |
|
|
|
|
float radius_based_dist = target_radius * MIN_DISTANCE_BODY_RADIUS_MULT; |
|
|
|
|
float cull_based_dist = target_radius + CAMERA_NEAR_CULL_DISTANCE + 0.001f; |
|
|
|
|
return (radius_based_dist > cull_based_dist) ? radius_based_dist : cull_based_dist; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static void zoom_camera(RenderState* render_state, SimulationState* sim, ZoomDirection zoom_dir) { |
|
|
|
|
|