UNIVERS  15.3
UNIVERS base processing software API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
ZTrSetStream.H
1 /* ZTrSetStream.H */
2 /* $Id: ZTrSetStream.H,v 1.7 2003/11/17 14:18:39 vlad Exp $ */
3 #ifndef __ZTrSetStream_H
4 #define __ZTrSetStream_H
5 
6 #include <ldb/trset.h>
7 #include <ldb/trselect.h>
8 #include <zm/ZSeismicStream.H>
9 #include <zm/ZTracePar.H>
10 
11 
17 {
18 public:
19 
21  ZTrSetStream (TrSet* ts);
22 
25  ZTrSetStream (const ZTrSetStream& ztss);
26 
27  virtual ~ZTrSetStream ();
28 
30  const TrIndexTable* index_table () const;
31 
33  TrSet* trset () const;
34 
36  virtual const ZTracePar& operator() () const;
37 
40  virtual void set_selection_rule (TsExpr* expr);
41 
42 
46  virtual void set_custom_coord (const char* coord_name,
47  Compar order = ASCENT_ORDER);
48 
54  virtual void set_secondary_order (const char* secondary_name,
55  Compar order = ASCENT_ORDER);
56 
62  virtual void set_tertiary_order (const char* tertiary_name,
63  Compar order = ASCENT_ORDER);
64 
67  virtual Logic get_coord_range (float c[2]);
68 
70  virtual float average_coord_step ();
71 
72 
78  void set_custom_coord_vector (double* coordslist);
79 
80  /*
81  * Iterator methods.
82  */
83 
86  virtual Logic go_first_coord ();
87 
90  virtual Logic go_next_coord ();
91 
94  virtual float coord ();
95 
97  virtual int ensemble_length () const;
98 
100  virtual float* trace_body (int ens_index = 0);
101 
104  virtual ZTracePar trace_par (int ens_index = 0) const;
105 
107  virtual long trace_id (int ens_index = 0) const;
108 
109 private:
110 
111  TrSet *ts;
112  TrIndexTable it;
113  char *selrule;
114  char *cname[3];
115  Compar corder[3];
116  TraceAttrId ctaid[3];
117  int ens_start;
118  int ens_length;
119  ZTracePar trpar;
120  double avg_step;
121  double *coords;
124  void gather_ensemble ();
125 
127  void apply_selection ();
128 
129 };
130 
131 
132 #endif /* ZTrSetStream.H */
const TrIndexTable * index_table() const
virtual Logic go_next_coord()
virtual void set_selection_rule(TsExpr *expr)
virtual int ensemble_length() const
virtual float average_coord_step()
void set_custom_coord_vector(double *coordslist)
ZTrSetStream(TrSet *ts)
virtual long trace_id(int ens_index=0) const
Definition: ZTracePar.H:13
virtual float * trace_body(int ens_index=0)
virtual Logic go_first_coord()
virtual const ZTracePar & operator()() const
Definition: trset.h:56
virtual Logic get_coord_range(float c[2])
virtual void set_secondary_order(const char *secondary_name, Compar order=ASCENT_ORDER)
virtual void set_custom_coord(const char *coord_name, Compar order=ASCENT_ORDER)
virtual float coord()
Definition: ZSeismicStream.H:15
Definition: ZTrSetStream.H:16
Definition: trselect.h:109
TrSet * trset() const
virtual void set_tertiary_order(const char *tertiary_name, Compar order=ASCENT_ORDER)
Definition: trset.h:96
virtual ZTracePar trace_par(int ens_index=0) const