diff options
| author | realtradam <[email protected]> | 2023-05-15 19:03:19 -0400 |
|---|---|---|
| committer | realtradam <[email protected]> | 2023-05-15 19:03:19 -0400 |
| commit | 4e404fc9a0c9afdb24164d6d054b0edae52a515c (patch) | |
| tree | 10820cc90dc6c31c28501c23df344c7d51bde6b8 | |
| parent | 5e935512696c55b5005e997cfc4dab88ecdf8141 (diff) | |
| download | RodeoKit-4e404fc9a0c9afdb24164d6d054b0edae52a515c.tar.gz RodeoKit-4e404fc9a0c9afdb24164d6d054b0edae52a515c.zip | |
prototyping interfaces for 2d collision system
| -rw-r--r-- | include/rodeo/collision.h | 35 | ||||
| -rw-r--r-- | include/rodeo/collision_t.h | 31 |
2 files changed, 66 insertions, 0 deletions
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 <stdint.h> +#include <stdbool.h> + +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; |
