123
This commit is contained in:
42
CryPhysics/overlapchecks.h
Normal file
42
CryPhysics/overlapchecks.h
Normal file
@@ -0,0 +1,42 @@
|
||||
#ifndef overlapchecks_h
|
||||
#define overlapchecks_h
|
||||
|
||||
typedef int (*overlap_check)(const primitive*,const primitive*);
|
||||
|
||||
int default_overlap_check(const primitive*, const primitive*);
|
||||
int box_box_overlap_check(const box *box1, const box *box2);
|
||||
int box_heightfield_overlap_check(const box *pbox, const heightfield *phf);
|
||||
int heightfield_box_overlap_check(const heightfield *phf, const box *pbox);
|
||||
int box_tri_overlap_check(const box *pbox, const triangle *ptri);
|
||||
int tri_box_overlap_check(const triangle *ptri, const box *pbox);
|
||||
int box_ray_overlap_check(const box *pbox, const ray *pray);
|
||||
int ray_box_overlap_check(const ray *pray, const box *pbox);
|
||||
int box_sphere_overlap_check(const box *pbox, const sphere *psph);
|
||||
int sphere_box_overlap_check(const sphere *psph, const box *pbox);
|
||||
int tri_sphere_overlap_check(const triangle *ptri, const sphere *psph);
|
||||
int sphere_tri_overlap_check(const sphere *psph, const triangle *ptri);
|
||||
int heightfield_sphere_overlap_check(const heightfield *phf, const sphere *psph);
|
||||
int sphere_heightfield_overlap_check(const sphere *psph, const heightfield *phf);
|
||||
int sphere_sphere_overlap_check(const sphere *psph1, const sphere *psph2);
|
||||
|
||||
quotientf tri_sphere_dist2(const triangle *ptri, const sphere *psph, int &bFace);
|
||||
|
||||
class COverlapChecker {
|
||||
public:
|
||||
COverlapChecker();
|
||||
void Init() { iPrevCode = -1; }
|
||||
int Check(int type1,int type2, primitive *prim1,primitive *prim2) {
|
||||
return table[type1][type2](prim1,prim2);
|
||||
}
|
||||
int CheckExists(int type1,int type2) {
|
||||
return table[type1][type2]!=default_overlap_check;
|
||||
}
|
||||
|
||||
overlap_check table[NPRIMS][NPRIMS];
|
||||
int iPrevCode;
|
||||
float Basis21[9];
|
||||
float Basis21abs[9];
|
||||
};
|
||||
extern COverlapChecker g_Overlapper;
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user