From 0c9e8409866aaeb60b0ecc79d5b2ade0bde0ee30 Mon Sep 17 00:00:00 2001 From: Sara Date: Fri, 6 Oct 2023 23:43:35 +0200 Subject: [PATCH] added camera_world_to_pixel_point --- src/camera.c | 9 +++++++++ src/camera.h | 1 + 2 files changed, 10 insertions(+) diff --git a/src/camera.c b/src/camera.c index 7502dfe..2cbcebb 100644 --- a/src/camera.c +++ b/src/camera.c @@ -33,3 +33,12 @@ SDL_FRect camera_world_to_pixel_rect(Camera* self, SDL_FRect* world_space) { size.x, size.y }; } + +Vector camera_world_to_pixel_point(Camera* self, Vector point) { + Transform t = self->transform; + t.rotation = 0; + t.scale = OneVector; + t = transform_invert(t); + + return vmulff(transform_point(&t, point), g_render_resolution.x / self->fov); +} diff --git a/src/camera.h b/src/camera.h index c2ab7fa..90c2e4c 100644 --- a/src/camera.h +++ b/src/camera.h @@ -18,5 +18,6 @@ extern Camera g_camera; extern void camera_init(); extern SDL_FRect camera_screen_to_world_space(Camera* self, SDL_FRect* camera_space); extern SDL_FRect camera_world_to_pixel_rect(Camera* self, SDL_FRect* world_space); +extern Vector camera_world_to_pixel_point(Camera* self, Vector point); #endif // !_fencer_camera_h