Base_ModelSurfaceIntersectorB.h

Go to the documentation of this file.
00001 // Anselmo Cervera, Juan J. Gomez-Cadenas and Jose Angel Hernando
00002 
00003 
00004 #ifndef ModelSurfaceIntersectorB_h
00005 #define ModelSurfaceIntersectorB_h 1
00006 
00007 #include "Kalman/Interface_IModelSurfaceIntersector.h"
00008 #include "Kalman/Interface_IModel.h"
00009 
00010 
00011 class ModelSurfaceIntersectorB: public IModelSurfaceIntersector 
00012 {
00013  public:
00014 
00015   // default constructor
00016   ModelSurfaceIntersectorB() {}
00017 
00018   // Constructor providing the model  
00019   ModelSurfaceIntersectorB(IModel* pm){m_model=pm; m_verbosity = m_model->verbosity();}
00020 
00021 
00022   // default destructor  
00023   virtual ~ModelSurfaceIntersectorB(){}
00024 
00025 
00026   //! computes the natural HyperVector when intersecting a surface
00027   virtual bool naturalHVAtSurface(const IState& iniState, 
00028                   const ISurface& surface, 
00029                   HyperVector& natHV) = 0;
00030 
00031   //! computes the natural HyperVector when intersecting a surface and check that the intersection point 
00032   //! is inside the surface
00033   virtual bool naturalHVAtFiniteSurface(const IState& iniState, 
00034                     const ISurface& surface, 
00035                     HyperVector& natHV) = 0;
00036 
00037   //! computes the surface perpendicular to the trajectory and containing the point measHV. 
00038   //! Computes also the natural HyperVector when intersecting that surface.
00039   virtual bool naturalHVAtNormalSurface(const IState& iniState, 
00040                     const HyperVector& measHV,
00041                     ISurface& surface, 
00042                     HyperVector& natHV) { if( false ) { iniState.info(2); surface.info(2); std::cout << measHV << " " << natHV << std::endl; } return false; }; //ME added if and return
00043 
00044   //! computes the distance between a point and a surface
00045   virtual double distanceFromPointToSurface(const IPoint& point, const ISurface& surf) const { if( false ) { point.info(2); surf.info(2); } return 0.; }; //ME added if
00046 
00047   //! set intersector verbosity 
00048   virtual void setVerbosity(int v) {m_verbosity=v;}
00049   //! return intersector verbosity 
00050   virtual int verbosity()  const {return m_verbosity;}  
00051 
00052 
00053  protected:
00054 
00055   //! return a model
00056   virtual const IModel& model() const {return *m_model;};
00057   //! set a model
00058   virtual void setModel(IModel* p) {m_model = p;};
00059 
00060  protected:
00061 
00062   //! A pointer to the model
00063   IModel* m_model;  
00064 
00065   // Verbosity
00066   int m_verbosity; 
00067   
00068 
00069 };
00070 #endif

Generated on Mon Nov 23 08:01:43 2009 for MIPP(E907) by  doxygen 1.4.7