Go to the documentation of this file.00001
00010 #ifndef TG_COLLISSION_H
00011 #define TG_COLLISSION_H
00012
00013 #include <vector>
00014 #include <blort/TomGine/tgMathlib.h>
00015 #include <blort/TomGine/tgModel.h>
00016 #include <blort/TomGine/tgRenderModel.h>
00017
00018 namespace TomGine{
00019
00020 class tgCollission{
00021 private:
00022
00023
00024 public:
00025 static vec3 GetNormal(const vec3& v1, const vec3& v2, const vec3& v3);
00026
00027 static bool IntersectRayTriangle(vec3& p, vec3& n, double& z, const tgRay& ray, const vec3& t1, const vec3& t2, const vec3& t3);
00028 static bool IntersectRayModel(std::vector<vec3> &pl, std::vector<vec3> &nl, std::vector<double> &zl, const tgRay& ray, const tgModel& model);
00029
00030 static bool IntersectModels(const tgModel &m1, const tgModel &m2, const tgPose &p1, const tgPose& p2);
00031 static bool IntersectModels(const tgRenderModel &m1, const tgRenderModel &m2);
00032
00033 static bool PointOnSameSide(const vec3& p1, const vec3& p2, const vec3& a, const vec3& b);
00034 static bool PointInTriangle(const vec3& p, const vec3& t1, const vec3& t2, const vec3& t3);
00035
00036 };
00037
00038 }
00039
00040 #endif