Jafar
|
00001 /* $Id$ */ 00002 00003 #ifndef _GEOMSLAM_SEGMENTS_HPP 00004 #define _GEOMSLAM_SEGMENTS_HPP 00005 00006 #include <geom/Segment.hpp> 00007 00008 namespace jafar { 00009 namespace slam { 00010 class SegmentFeature; 00011 } 00012 namespace geomslam { 00019 class SlamSegmentDriver : public geom::Segment3D::Driver, public geom::Line3D::Driver { 00020 private: 00021 typedef geom::Atom3D::HomogenousVecD HomogenousVecD; 00022 typedef geom::Atom3D::VecD VecD; 00023 typedef geom::Atom3D::HomogenousMatrixD HomogenousMatrixD; 00024 typedef geom::Atom3D::HomogenousSymMatrixD HomogenousSymMatrixD; 00025 public: 00026 SlamSegmentDriver( const slam::SegmentFeature* _segmentFeature); 00027 // Virtual segments driver functions 00028 virtual geom::Line3D support() const; 00029 virtual HomogenousVecD firstPoint() const; 00030 virtual HomogenousSymMatrixD firstPointCov() const; 00031 virtual HomogenousVecD lastPoint() const; 00032 virtual HomogenousSymMatrixD lastPointCov() const; 00033 virtual geom::Segment3D::Driver* cloneSegmentDriver() const; 00034 virtual geom::Line3D::Driver* asLineDriver(); 00035 // Virtual lines driver functions 00036 virtual HomogenousVecD pointAt(double t) const; 00037 virtual HomogenousVecD origin() const; 00038 virtual HomogenousSymMatrixD originCov() const; 00039 virtual HomogenousVecD direction() const; 00040 virtual HomogenousSymMatrixD directionCov() const; 00041 virtual geom::Line3D::Driver* cloneLineDriver() const; 00042 // Virtual atom functions 00043 virtual const geom::Repere3D* reference( ) const; 00044 virtual bool hasCov() const; 00045 00046 private: 00047 const slam::SegmentFeature* m_segmentFeature; 00048 }; 00049 } 00050 } 00051 00052 #endif
Generated on Wed Oct 15 2014 00:37:20 for Jafar by doxygen 1.7.6.1 |