summaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authorrealtradam <[email protected]>2023-05-15 19:03:19 -0400
committerrealtradam <[email protected]>2023-05-15 19:03:19 -0400
commit4e404fc9a0c9afdb24164d6d054b0edae52a515c (patch)
tree10820cc90dc6c31c28501c23df344c7d51bde6b8 /include
parent5e935512696c55b5005e997cfc4dab88ecdf8141 (diff)
downloadRodeoKit-4e404fc9a0c9afdb24164d6d054b0edae52a515c.tar.gz
RodeoKit-4e404fc9a0c9afdb24164d6d054b0edae52a515c.zip
prototyping interfaces for 2d collision system
Diffstat (limited to 'include')
-rw-r--r--include/rodeo/collision.h35
-rw-r--r--include/rodeo/collision_t.h31
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;