Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef MISC_H
00011 #define MISC_H
00012
00013 template<class T>
00014 T sqr(T f)
00015 {
00016 return f*f;
00017 }
00018
00019 bool intersectRayCircle(const CVec2& m, float r, const CVec2& x, const CVec2& t, float& f);
00020 bool intersectRayLineSegment(const CVec2& a, const CVec2& b, const CVec2& x, const CVec2& t, float&f);
00021 float shortestDistanceToLineSegment(const CVec2& a, const CVec2& b, const CVec2& x);
00022 bool intersectRayCapsule(const CVec2& x, const CVec2& t, const CVec2& a, const CVec2& b, float radius, float& f);
00023
00024 bool intersectPathCircle(const CVec2& c, const CVec2& p, float r0, const CVec2& hd, const CVec2& m1, float r1, float& angle);
00025 bool intersectPathLine(const CVec2& c, const CVec2& p, float r0, const CVec2& hd, const CVec2& p1, const CVec2& p2, float& angle);
00026
00027 bool intersectPathCapsule(const CVec2& c, const CVec2& p, float r0, const CVec2& hd, const CVec2& a, const CVec2& b, float radius, float& f);
00028
00029 float computeOBBIntersection(const CVec2& a, const CVec2& b, const CVec2& c, const CVec2& d, float size);
00030
00031 #endif
00032