OpendTect  6.3
posfilterstd.h
Go to the documentation of this file.
1 #pragma once
2 
3 /*+
4 ________________________________________________________________________
5 
6  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
7  Author: Bert
8  Date: Feb 2008
9 ________________________________________________________________________
10 
11 
12 -*/
13 
14 #include "algomod.h"
15 #include "posfilter.h"
16 
17 
18 namespace Pos
19 {
20 
25 mExpClass(Algo) RandomFilter : public virtual Filter
26 {
27 public:
28 
30  : passratio_(0.01) {}
32  : passratio_(rf.passratio_) {}
33 
34  bool initialize( TaskRunner* tskr=0 )
35  { reset(); return true; }
36  void reset() { initStats(); }
37 
38  virtual void usePar(const IOPar&);
39  virtual void fillPar(IOPar&) const;
40  virtual void getSummary(BufferString&) const;
41  virtual float estRatio(const Provider&) const { return passratio_; }
42 
43  float passratio_;
44 
45  static const char* typeStr();
46  static const char* ratioStr();
47 
48 protected:
49 
50  void initStats();
51  bool drawRes() const;
52 };
53 
54 
55 #define mSimpPosFilterDefFnsBase \
56 const char* factoryKeyword() const { return type(); } \
57 virtual const char* type() const { return typeStr(); } \
58 virtual bool includes(const Coord&,float z=1e30) const { return drawRes(); } \
59 static void initClass()
60 
61 #define mSimpPosFilterDefFns3D(clssnm) \
62 virtual bool includes(const BinID&,float z=1e30) const { return drawRes(); } \
63 virtual bool is2D() const { return false; } \
64 virtual Filter* clone() const { return new clssnm##Filter3D(*this); } \
65 static Filter3D* create() { return new clssnm##Filter3D; } \
66 mSimpPosFilterDefFnsBase
67 
68 #define mSimpPosFilterDefFns2D(clssnm) \
69 virtual bool includes(int,float z=1e30,int nr=0) const { return drawRes(); } \
70 virtual bool is2D() const { return false; } \
71 virtual Filter* clone() const { return new clssnm##Filter2D(*this); } \
72 static Filter2D* create() { return new clssnm##Filter2D; } \
73 mSimpPosFilterDefFnsBase
74 
75 
81  , public RandomFilter
82 {
83 public:
84 
86 
87 };
88 
89 
95  , public RandomFilter
96 {
97 public:
98 
100 
101 };
102 
103 
108 mExpClass(Algo) SubsampFilter : public virtual Filter
109 {
110 public:
111 
113  : each_(2), seqnr_(0) {}
115  : each_(sf.each_), seqnr_(sf.seqnr_) {}
116 
117  void reset() { seqnr_ = 0; }
118 
119  virtual void usePar(const IOPar&);
120  virtual void fillPar(IOPar&) const;
121  virtual void getSummary(BufferString&) const;
122  virtual float estRatio(const Provider&) const { return 1.f/each_; }
123 
124  int each_;
125 
126  static const char* typeStr();
127  static const char* eachStr();
128 
129 protected:
130 
131  mutable int seqnr_;
132 
133  bool drawRes() const;
134 };
135 
136 
142  , public SubsampFilter
143 {
144 public:
145 
147 
148 };
149 
150 
156  , public SubsampFilter
157 {
158 public:
159 
161 
162 };
163 
164 } // namespace
#define mExpClass(module)
Definition: commondefs.h:157
void reset()
Definition: posfilterstd.h:36
virtual float estRatio(const Provider &) const
Definition: posfilterstd.h:41
Passes each nth position.
Definition: posfilterstd.h:108
Provides a series of positions; can also be used for subselection.
Definition: posprovider.h:31
float passratio_
Definition: posfilterstd.h:43
virtual float estRatio(const Provider &) const
Definition: posfilterstd.h:122
FixedString Random()
Definition: keystrs.h:106
int seqnr_
Definition: posfilterstd.h:131
Passes each nth position (2D).
Definition: posfilterstd.h:155
RandomFilter(const RandomFilter &rf)
Definition: posfilterstd.h:31
void usePar(const IOPar &iop, ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:200
SubsampFilter(const SubsampFilter &sf)
Definition: posfilterstd.h:114
Provides a filter related to 3D data.
Definition: posfilter.h:77
bool initialize(TaskRunner *tskr=0)
Definition: posfilterstd.h:34
Passes a percentage of the positions (3D).
Definition: posfilterstd.h:80
Decides whether a given position should be included.
Definition: posfilter.h:43
Passes a percentage of the positions.
Definition: posfilterstd.h:25
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:53
Class that can execute a task.
Definition: task.h:193
RandomFilter()
Definition: posfilterstd.h:29
Position.
Definition: commontypes.h:38
void fillPar(IOPar &iop, const ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:187
#define mSimpPosFilterDefFns2D(clssnm)
Definition: posfilterstd.h:68
Provides a filter related to 2D seismic data.
Definition: posfilter.h:96
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
Passes each nth position (3D).
Definition: posfilterstd.h:141
void reset()
Definition: posfilterstd.h:117
#define mSimpPosFilterDefFns3D(clssnm)
Definition: posfilterstd.h:61
Passes a percentage of the positions (2D).
Definition: posfilterstd.h:94
SubsampFilter()
Definition: posfilterstd.h:112
int each_
Definition: posfilterstd.h:124

Generated at for the OpendTect seismic interpretation project. Copyright (C): dGB Beheer B. V. 2017