From d67fca88b17120566a93004c99dadeef0a61964b Mon Sep 17 00:00:00 2001 From: Jon Santmyer Date: Tue, 5 May 2026 09:55:30 -0400 Subject: fix label rendering over large bodies --- src/tacmap/camera.rs | 21 +++++++-------------- src/tacmap/orbit_render.rs | 2 +- 2 files changed, 8 insertions(+), 15 deletions(-) (limited to 'src/tacmap') diff --git a/src/tacmap/camera.rs b/src/tacmap/camera.rs index ada36ee..5efc24c 100644 --- a/src/tacmap/camera.rs +++ b/src/tacmap/camera.rs @@ -1,16 +1,12 @@ -use std::{cell::RefCell, time::Duration}; +use std::time::Duration; -use cgmath::{EuclideanSpace, InnerSpace, Point2, Point3, Rad, Vector2, Vector3, Vector4, Zero, perspective}; -use winit::{event::ElementState, keyboard::KeyCode}; +use cgmath::{InnerSpace, Point3, Rad, Vector2, Vector3, perspective}; +use winit::event::ElementState; +use winit::keyboard::KeyCode; -use crate::{GameState, solar_system::{self, Kilometers, SolarSystem}, ui, wgpuctx::WgpuCtx}; - -pub const OPENGL_TO_WGPU_MATRIX: cgmath::Matrix4 = cgmath::Matrix4::from_cols( - Vector4::new(1.0, 0.0, 0.0, 0.0), - Vector4::new(0.0, 1.0, 0.0, 0.0), - Vector4::new(0.0, 0.0, 0.5, 0.0), - Vector4::new(0.0, 0.0, 0.5, 1.0) -); +use crate::solar_system::{self, BodyId, Kilometers, SolarSystem}; +use crate::ui; +use crate::wgpuctx::WgpuCtx; pub struct Camera { @@ -268,11 +264,8 @@ impl CameraController let dt = dt.as_secs_f32(); let speed = 1.0; - let current_radius = camera.rel_position.magnitude(); - let polar_diff = (self.position_pos_delta.z - self.position_neg_delta.z) * speed * dt; let azimuth_diff = (self.position_pos_delta.x - self.position_neg_delta.x) * speed * dt; - let dist_diff = (self.position_pos_delta.y - self.position_neg_delta.y) * speed * dt; let polar_final = camera.pitch.0 + polar_diff; let polar_cap = Into::>::into(cgmath::Deg(89.999)).0; diff --git a/src/tacmap/orbit_render.rs b/src/tacmap/orbit_render.rs index d79294e..a6a90d1 100644 --- a/src/tacmap/orbit_render.rs +++ b/src/tacmap/orbit_render.rs @@ -135,7 +135,7 @@ impl OrbitRenderer OrbitVertex::default();(num_points+1)*2]; for i in 0..num_points { let position = body.calculate_orbit_at( - (i as f64 * period_interval) as u64); + (i as f64 * period_interval) as Second); points[i*2].origin_id = body.get_orbits().unwrap() as _; points[i*2].position = [ -- cgit v1.2.3