00001 00002 #ifndef ERROR_METRIC_H 00003 #define ERROR_METRIC_H 00004 00005 #include <vector> 00006 00007 #include <blort/TomGine/tgModel.h> 00008 #include <blort/TomGine/tgPose.h> 00009 #include <blort/TomGine/tgMathlib.h> 00010 00011 namespace TomGine{ 00012 00013 class tgErrorMetric 00014 { 00015 private: 00016 00017 00018 vec3 GetRandPointInTriangle(const vec3& t1, const vec3& t2, const vec3& t3, unsigned trials=100) const; 00019 00020 public: 00021 std::vector<vec3> pointlist; 00022 00023 tgErrorMetric(TomGine::tgModel model, unsigned num_points=10000); 00024 00025 vec3 Compare(const TomGine::tgPose &p1, const TomGine::tgPose &p2); 00026 00027 void GetPoints(std::vector<vec3> &pl){ pl = pointlist; } 00028 00029 inline unsigned GetNumPoints(){ return pointlist.size(); } 00030 00031 }; 00032 00033 } // namespace TomGine 00034 00035 #endif