UNIVERS  15.3
UNIVERS base processing software API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
psc_ts_container_3d.hpp
1 /* psc_ts_container_3d.hpp */
2 /* $Id$ */
3 #ifndef __psc_ts_container_3d_hpp
4 #define __psc_ts_container_3d_hpp
5 
6 #include <string>
7 
8 #ifdef GE_BUILD
9 #include <psc_ts_container.hpp>
10 #else
11 #include <s2proc/psc_ts_container.hpp>
12 #endif
13 
15 namespace psc
16 {
18  class TsContainer3D : public TsContainer
19  {
20  public:
21 
23  TsContainer3D();
24 
26  virtual ~TsContainer3D();
27 
39  virtual bool init(const dba::Seismic &dba,
40  const unsigned int corr_dir_mask,
41  const unsigned int max_stride,
42  const Trace::OffsetT offsets_range[2] = NULL);
43 
53  virtual const Entry& operator()(const int nsp,
54  const int nrp,
55  const unsigned int corr_dir,
56  const unsigned int stride) const;
57 
67  virtual Entry& operator()(const int nsp,
68  const int nrp,
69  const unsigned int corr_dir,
70  const unsigned int stride);
71 
78  virtual void applyTimeShift(const Trace::Header::AttrId &attr_id, const int id, const Trace::TimeT dt);
79 
80  static void test_apriory_statics_apply(TsContainer3D &ts);
81 
82  static void test_to_file(const TsContainer3D &ts, const std::string &fname);
83 
84  protected:
85 
86  std::vector<int> m_nss_ids_vec;
87  std::vector<int> m_nsl_ids_vec;
88  std::vector<int> m_nrs_ids_vec;
89  std::vector<int> m_nrl_ids_vec;
91  std::map<int, std::pair<int, int> > m_nsp_to_nss_nsl_map;
92  std::map<int, std::pair<int, int> > m_nrp_to_nrs_nrl_map;
93 
97  bool get_entry_ids(const int nss,
98  const int nsl,
99  const int nrs,
100  const int nrl,
101  const unsigned int corr_dir,
102  const unsigned int stride,
103  size_t &storage_id,
104  size_t &entries_id) const;
105 
106  Entry& get_entry(const int nss,
107  const int nsl,
108  const int nrs,
109  const int nrl,
110  const unsigned int corr_dir,
111  const unsigned int stride);
112  };
113 }; // namespace psc
114 
115 #endif /* psc_ts_container_3d.hpp */
virtual bool init(const dba::Seismic &dba, const unsigned int corr_dir_mask, const unsigned int max_stride, const Trace::OffsetT offsets_range[2]=NULL)
Definition: psc_ts_container_3d.hpp:18
Definition: psc_ts_container.hpp:25
float OffsetT
Definition: trace.hpp:23
Definition: psc_ts_container.hpp:20
float TimeT
Definition: trace.hpp:22
std::vector< int > m_nrl_ids_vec
Definition: psc_ts_container_3d.hpp:89
bool get_entry_ids(const int nss, const int nsl, const int nrs, const int nrl, const unsigned int corr_dir, const unsigned int stride, size_t &storage_id, size_t &entries_id) const
std::vector< int > m_nsl_ids_vec
Definition: psc_ts_container_3d.hpp:87
std::vector< int > m_nrs_ids_vec
Definition: psc_ts_container_3d.hpp:88
virtual const Entry & operator()(const int nsp, const int nrp, const unsigned int corr_dir, const unsigned int stride) const
Definition: dba_seismic.hpp:19
virtual void applyTimeShift(const Trace::Header::AttrId &attr_id, const int id, const Trace::TimeT dt)
std::vector< int > m_nss_ids_vec
Definition: psc_ts_container_3d.hpp:86
virtual ~TsContainer3D()
AttrId
Definition: trace.hpp:34