UNIVERS  15.3
UNIVERS base processing software API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
u3d_seis.hpp
1 /* u3d_seis.hpp */
2 /* $Id: u3d_seis.hpp,v 1.1 2008/05/13 12:19:18 sad Exp $ */
3 //------------------------------------------------------------------------------
4 #ifndef __u3d_seis_hpp
5 #define __u3d_seis_hpp
6 
7 #include "u3d_os.hpp"
8 #include <mth/u3d_box.hpp>
9 
10 enum U3D_OS_TYPE { OFFSET_VSP, WALKAWAY_VSP };
11 
12 //==============================================================================
15 {
16 public:
17 
19 
20  U3dAbstractSeis(U3dPointsAr sp_ar, U3dPointsAr rec_ar, U3dModAreaPos modelOrigin);
21 
22  virtual ~U3dAbstractSeis();
23 
25  int getSPNum() { return m_sp_ar.size(); }
26 
28  int getRecNum() { return m_rec_ar.size(); }
29 
31  U3dObservSys* getOS(int spId);
32 
34  bool getSP(int spId, U3dPoint &sp);
35 
37  bool getRec(int recId, U3dPoint &recp);
38 
40  bool getReady() { return m_ready; }
41 
42 
44  virtual bool loadSPTraces(int spId) { return false; }
45 
47  double getAmpl(int recId, double time, double f, double az);
48 
50  double getAmplPure(int recId, double time, double f, double az);
52  double getAmplParabolic(int recId, double time, double f, double az);
54  double getAmplWindowSumm(int recId, double time, double f, double az);
55 
56 
58  double getA(int recId, int sample_num, double f, double az);
59 
60 
61 
63  int getTraceLength() { return m_trLength; }
64 
66  double getTraceStep() { return m_trStep; }
67 
69  U3dBox getOSBox();
70 
71  /* DEBUG */
72  float** getTraceXComp() { return m_seisDataXComp; }
73  float** getTraceYComp() { return m_seisDataYComp; }
74  float** getTraceZComp() { return m_seisDataZComp; }
75 
76  void setReady(bool flag) { m_ready = flag; }
77 
78 protected:
79 
81  void sortRec(U3dPointsAr &recs);
82 
84  void setSpsNRecs(U3dPointsAr sp_ar, U3dPointsAr recs_ar);
85 
86  bool m_ready;
87  int m_compNum;
89  int m_trLength;
90  double m_trStep;
92  int m_currentSP;
93 
94  U3dModAreaPos m_modelOrigin; /*< always in UNIVERS coordinate system */
95 
96  float **m_seisDataXComp;
97  float **m_seisDataYComp;
98  float **m_seisDataZComp;
101  U3dPointsAr m_sp_ar;
102  U3dPointsAr m_rec_ar;
103 };
104 
105 //------------------------------------------------------------------------------
106 #endif /* u3d_seis.hpp */
double getA(int recId, int sample_num, double f, double az)
double getTraceStep()
Definition: u3d_seis.hpp:66
bool getReady()
Definition: u3d_seis.hpp:40
void sortRec(U3dPointsAr &recs)
float ** m_seisDataYComp
Definition: u3d_seis.hpp:97
int getSPNum()
Definition: u3d_seis.hpp:25
double getAmplParabolic(int recId, double time, double f, double az)
int getTraceLength()
Definition: u3d_seis.hpp:63
virtual bool loadSPTraces(int spId)
Definition: u3d_seis.hpp:44
Definition: u3d_model_defines.hpp:20
Definition: u3d_box.hpp:24
int m_trLength
Definition: u3d_seis.hpp:89
float ** m_seisDataXComp
Definition: u3d_seis.hpp:96
U3dObservSys * getOS(int spId)
double m_trStep
Definition: u3d_seis.hpp:90
int m_compNum
Definition: u3d_seis.hpp:87
double getAmplPure(int recId, double time, double f, double az)
Definition: u3d_point.hpp:16
double getAmpl(int recId, double time, double f, double az)
U3dBox getOSBox()
U3dPointsAr m_rec_ar
Definition: u3d_seis.hpp:102
bool m_ready
Definition: u3d_seis.hpp:86
bool getSP(int spId, U3dPoint &sp)
void setSpsNRecs(U3dPointsAr sp_ar, U3dPointsAr recs_ar)
Definition: u3d_os.hpp:14
Definition: u3d_seis.hpp:14
float ** m_seisDataZComp
Definition: u3d_seis.hpp:98
int getRecNum()
Definition: u3d_seis.hpp:28
bool getRec(int recId, U3dPoint &recp)
U3dPointsAr m_sp_ar
Definition: u3d_seis.hpp:101
double getAmplWindowSumm(int recId, double time, double f, double az)