OpendTect  6.6
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  RCS: $Id$
10 ________________________________________________________________________
11 
12 
13 -*/
14 
15 #include "algomod.h"
16 #include "posfilter.h"
17 
18 
19 namespace Pos
20 {
21 
26 mExpClass(Algo) RandomFilter : public virtual Filter
27 {
28 public:
29 
31  : passratio_(0.01) {}
33  : passratio_(rf.passratio_) {}
34 
35  bool initialize( TaskRunner* tr=0 ) { 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
165 
Pos::SubsampFilter::seqnr_
int seqnr_
Definition: posfilterstd.h:131
Pos::RandomFilter::RandomFilter
RandomFilter(const RandomFilter &rf)
Definition: posfilterstd.h:32
Pos::SubsampFilter::SubsampFilter
SubsampFilter()
Definition: posfilterstd.h:112
Pos
Position.
Definition: commontypes.h:78
Pos::SubsampFilter::typeStr
static const char * typeStr()
Pos::Filter3D
Provides a filter related to 3D data.
Definition: posfilter.h:79
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
Pos::SubsampFilter::getSummary
virtual void getSummary(BufferString &) const
Pos::RandomFilter::reset
void reset()
Definition: posfilterstd.h:36
Pos::RandomFilter::estRatio
virtual float estRatio(const Provider &) const
Definition: posfilterstd.h:41
posfilter.h
Pos::SubsampFilter::reset
void reset()
Definition: posfilterstd.h:117
mSimpPosFilterDefFns2D
#define mSimpPosFilterDefFns2D(clssnm)
Definition: posfilterstd.h:68
Pos::RandomFilter2D
Passes a percentage of the positions (2D).
Definition: posfilterstd.h:96
Pos::SubsampFilter2D
Passes each nth position (2D).
Definition: posfilterstd.h:157
Pos::RandomFilter::fillPar
virtual void fillPar(IOPar &) const
Pos::SubsampFilter::estRatio
virtual float estRatio(const Provider &) const
Definition: posfilterstd.h:122
Pos::SubsampFilter
Passes each nth position.
Definition: posfilterstd.h:109
Pos::RandomFilter::getSummary
virtual void getSummary(BufferString &) const
Pos::RandomFilter::RandomFilter
RandomFilter()
Definition: posfilterstd.h:30
sKey::Random
FixedString Random()
Definition: keystrs.h:126
mSimpPosFilterDefFns3D
#define mSimpPosFilterDefFns3D(clssnm)
Definition: posfilterstd.h:61
Pos::RandomFilter::usePar
virtual void usePar(const IOPar &)
TaskRunner
Class that can execute a task.
Definition: task.h:170
Pos::SubsampFilter::fillPar
virtual void fillPar(IOPar &) const
Pos::SubsampFilter::each_
int each_
Definition: posfilterstd.h:124
Pos::SubsampFilter::SubsampFilter
SubsampFilter(const SubsampFilter &sf)
Definition: posfilterstd.h:114
Pos::SubsampFilter::drawRes
bool drawRes() const
Pos::RandomFilter::initialize
bool initialize(TaskRunner *tr=0)
Definition: posfilterstd.h:35
Pos::Filter2D
Provides a filter related to 2D seismic data.
Definition: posfilter.h:98
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
Pos::Filter
Decides whether a given position should be included.
Definition: posfilter.h:45
Pos::RandomFilter::passratio_
float passratio_
Definition: posfilterstd.h:43
Pos::RandomFilter::drawRes
bool drawRes() const
Pos::RandomFilter::typeStr
static const char * typeStr()
Pos::RandomFilter::ratioStr
static const char * ratioStr()
Pos::RandomFilter
Passes a percentage of the positions.
Definition: posfilterstd.h:27
Pos::RandomFilter3D
Passes a percentage of the positions (3D).
Definition: posfilterstd.h:82
Pos::SubsampFilter3D
Passes each nth position (3D).
Definition: posfilterstd.h:143
Pos::Provider
Provides a series of positions; can also be used for subselection.
Definition: posprovider.h:33
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
Pos::SubsampFilter::usePar
virtual void usePar(const IOPar &)
Pos::RandomFilter::initStats
void initStats()
Pos::SubsampFilter::eachStr
static const char * eachStr()

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