00001 00010 #ifndef __PARTICLE_H__ 00011 #define __PARTICLE_H__ 00012 00013 #include <blort/TomGine/tgPose.h> 00014 #include <blort/TomGine/tgMathlib.h> 00015 #include <blort/Tracker/headers.h> // stdio.h 00016 00017 namespace Tracking{ 00018 00020 class Particle : public TomGine::tgPose 00021 { 00022 public: 00023 vec3 r; 00024 float z; 00025 00026 std::vector<float> userData; 00027 00028 float w; 00029 float c; 00030 00031 Particle(float val=0.0); 00032 Particle(vec3 t, vec3 r, float z, float w, float c, TomGine::tgQuaternion q); 00033 Particle(const Particle& p2); 00034 Particle(const TomGine::tgPose& p2); 00035 00036 Particle& operator=(const Particle& p2); 00037 Particle& operator=(const TomGine::tgPose& p); 00038 Particle operator*(const float& f) const; 00039 Particle operator+(const Particle& p) const; 00040 Particle operator-(const Particle& p) const; 00041 00043 inline bool operator<(const Particle& p2) const { return w < p2.w; } 00044 inline bool operator>(const Particle& p2) const { return w > p2.w; } 00045 00046 }; 00047 00048 } // namespace Tracking 00049 00050 #endif