#ifndef MESHCOLLIDER_H #define MESHCOLLIDER_H #include "collision.h" class MeshCollider{ public: struct Vertex{ Vector coords; }; struct Triangle{ void *surface; int verts[3],index; }; MeshCollider( const vector &verts,const vector &tris ); ~MeshCollider(); //sphere collision bool collide( const Line &line,float radius,Collision *curr_coll,const Transform &tform ); bool intersects( const MeshCollider &c,const Transform &t )const; private: vector vertices; vector triangles; struct Node{ Box box; Node *left,*right; vector triangles; Node():left(0),right(0){} ~Node(){ delete left;delete right; } }; Node *tree; vector leaves; Box nodeBox( const vector &tris ); Node *createLeaf( const vector &tris ); Node *createNode( const vector &tris ); bool collide( const Box &box,const Line &line,float radius,const Transform &tform,Collision *curr_coll,Node *node ); }; #endif