Base_SurfaceB.h

Go to the documentation of this file.
00001 //     Authors:
00002 // Anselmo Cervera, Juan J. Gomez-Cadenas and Jose Angel Hernando
00003 
00004 
00005 #ifndef SurfaceB_h
00006 #define SurfaceB_h 1
00007 
00008 
00009 #include "Kalman/Interface_ISurface.h"
00010 
00011 
00012 class SurfaceB : public ISurface
00013 {
00014  public:
00015   //! default constructor
00016   SurfaceB(){};
00017 
00018   //! constructor providing the type and the name
00019   SurfaceB(std::string type, EVector pos, EVector size, EVector dir, std::string volName=""){ 
00020     m_type = type; 
00021     setParameter("position", pos); 
00022     setParameter("size", size); 
00023     setParameter("direction", dir); 
00024     setVolumeName(volName);
00025   }
00026   SurfaceB(std::string type, EVector pos, EVector size,  EVector dir1, 
00027        EVector dir2, std::string volName=""){ 
00028     m_type = type; 
00029     setParameter("position", pos); 
00030     setParameter("size", size); 
00031     setParameter("direction 1", dir1); 
00032     setParameter("direction 2", dir2);
00033     setVolumeName(volName);
00034   }
00035 
00036 
00037   //! copy of the surface
00038   virtual void copy(const ISurface& surf);
00039 
00040 
00041  
00042   //! default destructor
00043   virtual ~SurfaceB(){};
00044   
00045   //!  A identifying type the surface
00046   virtual string type() const{return m_type;}
00047   virtual void setType(std::string type) {m_type=type;}
00048   
00049   //!  A map with the list of parameters and their names 
00050   virtual std::map<std::string, EVector> parameterMap() const {return m_parameterMap;}
00051   virtual void setParameter(std::string name,EVector par) {m_parameterMap[name]=par;}  
00052 
00053   //! functions related with the Volume
00054   virtual std::string volumeName() const {return m_volumeName;}
00055   virtual void setVolumeName(std::string name){m_volumeName = name;}    
00056 
00057   //  virtual IVolume& volume(){return *m_volume;}    
00058   //  virtual void setVolume(IVolume* vol){m_volume = vol;}    
00059 
00060 
00061    //! main parameter of the surface
00062   virtual void setMainParameter(std::string name, std::string vectorName, int comp) 
00063     { m_mainParameterName = name; m_mainParameterVector = vectorName;m_mainParameterComponent=comp;}  
00064   virtual double mainParameter() const 
00065     {if (m_mainParameterName != "") return parameter(m_mainParameterVector,m_mainParameterComponent);
00066     else return 0;}
00067 
00068   virtual std::string mainParameterName() const {return m_mainParameterName;}
00069   virtual int mainParameterComponent() const {return m_mainParameterComponent;}
00070   virtual std::string  mainParameterVector() const {return m_mainParameterVector;}
00071 
00072   //! prints Surface information
00073   virtual void info(int verb) const;
00074 
00075  protected:
00076 
00077   std::string m_type;
00078   
00079   std::map<std::string, EVector> m_parameterMap;
00080   std::string m_mainParameterName;
00081   std::string m_mainParameterVector;
00082   int m_mainParameterComponent;
00083 
00084   std::string m_volumeName;
00085       
00086 };
00087 
00088 #endif
00089 

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