UNIVERS  15.3
UNIVERS base processing software API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
zd_f3d_seismic.hpp
1 /* zd_f3d_seismic.hpp */
2 /* $Id: zd_f3d_seismic.hpp,v 1.2 2008/03/13 07:04:37 vlad Exp $ */
3 #ifndef __zd_f3d_seismic_hpp
4 #define __zd_f3d_seismic_hpp
5 
6 #include "zd_function3d.hpp"
7 #include "zd_seismic_file.hpp"
8 #include "zqb_svoptions.hpp"
9 
10 
25 class ZdF3DSeismic : public ZdFunction3D
26 {
27 public:
28 
33  ZdF3DSeismic (const char* szFuncName);
34 
35 
37  virtual ~ZdF3DSeismic ();
38 
39 
40  /*
41  * Properties
42  */
43 
50  void setSeismicFile (ZdSeismicFile* zdSeisFile,
51  const ZqbSVOptions& rSVO);
52 
54  ZdSeismicFile* getSeismicFile () const;
55 
57  const ZqbSVOptions& getSVOptions () const;
58 
59 
60  /*
61  * Run-time type identification facility
62  */
63 
65  virtual bool compatibleType (const char* szType) const;
66 
67 
68  /*
69  * Basic functionality
70  */
71 
75  virtual int countX ();
76 
80  virtual int countY ();
81 
85  virtual double argX (int iX);
86 
90  virtual double argY (int iY);
91 
97  virtual double func (int iX, int iY);
98 
99 
100  /*
101  * Extended functionality
102  */
103 
108  virtual double argStepX ();
109 
114  virtual double argStepY ();
115 
119  virtual void getArgBoundsX (double b[2]);
120 
124  virtual void getArgBoundsY (double b[2]);
125 
129  virtual void getFuncBounds (double b[2]);
130 
134  virtual int argIndexX (double x);
135 
139  virtual int argIndexY (double y);
140 
141 
142 protected:
143 
147  float *m_pfSeismic;
148 
152 
154  std::vector<double> m_vfCoords;
155 
157  std::vector<int> m_viTraceIds;
158 
160  double m_fCoordStep;
161 
169 
172  float m_pfMinMax[2];
173 
175  void updateMinMax (const float mm[2]);
176 
177 private:
178 
180  static int s_iNameCounter;
181 
183  static char *s_szOwnType;
184 
185 };
186 
187 
188 /* Inline methods implementation */
189 #include "zd_f3d_seismic_inline.hpp"
190 
191 
192 #endif /* zd_f3d_seismic.hpp */
const ZqbSVOptions & getSVOptions() const
Definition: zd_f3d_seismic_inline.hpp:33
virtual double argStepY()
virtual double func(int iX, int iY)
virtual int argIndexY(double y)
Definition: zd_f3d_seismic.hpp:25
virtual int argIndexX(double x)
virtual void getFuncBounds(double b[2])
std::vector< int > m_viTraceIds
Definition: zd_f3d_seismic.hpp:157
float * m_pfSeismic
Definition: zd_f3d_seismic.hpp:147
std::vector< double > m_vfCoords
Definition: zd_f3d_seismic.hpp:154
Definition: zd_seismic_file.hpp:17
void setSeismicFile(ZdSeismicFile *zdSeisFile, const ZqbSVOptions &rSVO)
virtual bool compatibleType(const char *szType) const
virtual void getArgBoundsY(double b[2])
ZdSeismicFile * getSeismicFile() const
Definition: zd_f3d_seismic_inline.hpp:22
Definition: zqb_svoptions.hpp:139
ZdSeismicFile * m_zdSeisFile
Definition: zd_f3d_seismic.hpp:151
ZdF3DSeismic(const char *szFuncName)
double m_fCoordStep
Definition: zd_f3d_seismic.hpp:160
virtual double argY(int iY)
virtual int countX()
virtual double argStepX()
virtual ~ZdF3DSeismic()
void updateMinMax(const float mm[2])
Definition: zd_f3d_seismic_inline.hpp:44
float m_pfMinMax[2]
Definition: zd_f3d_seismic.hpp:172
virtual int countY()
virtual double argX(int iX)
virtual void getArgBoundsX(double b[2])
ZqbSVOptions m_Options
Definition: zd_f3d_seismic.hpp:168
Definition: zd_function3d.hpp:29