Jafar
|
00001 /* $Id$ */ 00002 00003 #ifndef _GEOMSLAM_POINTS_HPP 00004 #define _GEOMSLAM_POINTS_HPP 00005 00006 #include "geom/Point.hpp" 00007 00008 namespace jafar { 00009 namespace slam { 00010 class BaseFeature; 00011 class PointInvDepthFeatureModel; 00012 } 00013 namespace geomslam { 00022 class SlamPointDriver : public geom::Point3D::Driver { 00023 private: 00024 typedef geom::Atom3D::HomogenousVecD HomogenousVecD; 00025 typedef geom::Atom3D::VecD VecD; 00026 typedef geom::Atom3D::HomogenousMatrixD HomogenousMatrixD; 00027 typedef geom::Atom3D::HomogenousSymMatrixD HomogenousSymMatrixD; 00028 public: 00029 SlamPointDriver( const slam::BaseFeature* feature ); 00030 virtual ~SlamPointDriver(); 00031 virtual Driver* clone() const; 00032 virtual HomogenousVecD homogenousCoordinates() const; 00033 virtual HomogenousSymMatrixD homogenousCoordinatesCov() const; 00034 virtual const geom::Repere3D* reference( ) const; 00035 virtual bool hasCov() const; 00036 private: 00037 const slam::BaseFeature* m_feature; 00038 }; 00048 class SlamInvDepthPointDriver : public geom::Point3D::Driver { 00049 private: 00050 typedef geom::Atom3D::HomogenousVecD HomogenousVecD; 00051 typedef geom::Atom3D::VecD VecD; 00052 typedef geom::Atom3D::HomogenousMatrixD HomogenousMatrixD; 00053 typedef geom::Atom3D::HomogenousSymMatrixD HomogenousSymMatrixD; 00054 typedef geom::Atom3D::SymMatrixD SymMatrixD; 00055 public: 00056 SlamInvDepthPointDriver( const slam::BaseFeature* feature, slam::PointInvDepthFeatureModel& _model ); 00057 virtual ~SlamInvDepthPointDriver(); 00058 virtual Driver* clone() const; 00059 virtual HomogenousVecD homogenousCoordinates() const; 00060 virtual HomogenousSymMatrixD homogenousCoordinatesCov() const; 00061 virtual const geom::Repere3D* reference( ) const; 00062 virtual bool hasCov() const; 00063 private: 00064 const slam::BaseFeature* m_feature; 00065 slam::PointInvDepthFeatureModel& m_model; 00066 }; 00067 } 00068 } 00069 00070 #endif
Generated on Wed Oct 15 2014 00:37:20 for Jafar by doxygen 1.7.6.1 |