00001
00002
00003
00004
00005
00006
00007 #ifndef Z_COLLIDER_H
00008 #define Z_COLLIDER_H
00009
00010 #include <gtcutils.h>
00011
00012 typedef void (*gtcboing)(void *a, void *b, void *data);
00013
00014
00015
00016
00017
00018 typedef struct
00019 {
00020 gtcReal box[3][2];
00021 void *data;
00022 } gtcBBox;
00023 void gtc_collider(gtcBBox *bboxes[], int numb, gtcboing bong,
00024 void *data);
00025
00026
00027 void gtc_naive_collider(gtcBBox *bboxes[], int numb, gtcboing bong,
00028 void *data);
00029
00030
00031
00032 typedef struct _gtcAABBTree gtcAABBTree;
00033 struct _gtcAABBTree
00034 {
00035 gtcReal box[3][2];
00036 gtcAABBTree *left, *right;
00037 int tri;
00038 };
00039
00040 gtcAABBTree *gtc_make_tree(int (*f)[3], gtcReal (*v)[3], int numf);
00041 int gtc_collide_AABBTrees(gtcAABBTree *A, gtcAABBTree *B,
00042 gtcReal M[4][4], gtcReal N[4][4],
00043 int (*cb)(int a, int b, void *data),
00044 void *data);
00045
00046 #endif
00047