From 4e404fc9a0c9afdb24164d6d054b0edae52a515c Mon Sep 17 00:00:00 2001 From: realtradam Date: Mon, 15 May 2023 19:03:19 -0400 Subject: prototyping interfaces for 2d collision system --- include/rodeo/collision.h | 35 +++++++++++++++++++++++++++++++++++ include/rodeo/collision_t.h | 31 +++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 include/rodeo/collision.h create mode 100644 include/rodeo/collision_t.h diff --git a/include/rodeo/collision.h b/include/rodeo/collision.h new file mode 100644 index 0000000..9e7b856 --- /dev/null +++ b/include/rodeo/collision.h @@ -0,0 +1,35 @@ + +// -- internal -- +// public +#include "rodeo/collision_t.h" + +rodeo_collision_2d_world_t +rodeo_collision_2d_world_create(void); + +void +rodeo_collision_2d_world_destroy(void); + +cvec_collision_2d_world_item_value* +rodeo_collision_2d_world_item_create( + rodeo_collision_2d_world_t *world, + rodeo_collision_2d_world_item_t item_params +); + +void +rodeo_collision_2d_world_item_destroy( + rodeo_collision_2d_world_t *world, + cvec_collision_2d_world_item_value* cvec_value +); + +void +rodeo_collision_2d_world_compare_self( + rodeo_collision_2d_world_t *world + // resolve function? +); + +void +rodeo_collision_2d_world_compare_other( + rodeo_collision_2d_world_t *world_a, + rodeo_collision_2d_world_t *world_b + // resolve function? +); diff --git a/include/rodeo/collision_t.h b/include/rodeo/collision_t.h new file mode 100644 index 0000000..e51386c --- /dev/null +++ b/include/rodeo/collision_t.h @@ -0,0 +1,31 @@ +#pragma once + +// -- system -- +#include +#include + +typedef +struct +{ + uint32_t id; + float x; + float y; + float dx; + float dy; + bool is_circle; + float width; + float height; +} +rodeo_collision_2d_world_item_t; + +int rodeo_collision_2d_item_cmp( + const rodeo_collision_2d_world_item_t* a, + const rodeo_collision_2d_world_item_t* b +); + +#define i_val rodeo_collision_2d_world_item_t +#define i_cmp rodeo_collision_2d_item_cmp +#define i_type cvec_collision_2d_world_item +#include "stc/cvec.h" + +typedef cvec_collision_2d_world_item rodeo_collision_2d_world_t; -- cgit v1.2.3