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
1.4.7