OpendTect  6.6
posfilterset.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 
20 
21 namespace Pos
22 {
23 
28 mExpClass(Algo) FilterSet : public virtual Filter
29 {
30 public:
31 
32  virtual ~FilterSet();
33 
34  void add(Filter*);
35  void add(const IOPar&);
36 
37  static const char* typeStr();
38 
39  virtual bool initialize(TaskRunner*);
40  virtual void reset();
41  virtual bool includes(const Coord&,float) const;
42  virtual float adjustedZ(const Coord&,float) const;
43  virtual bool hasZAdjustment() const;
44  virtual void fillPar(IOPar&) const;
45  virtual void usePar(const IOPar&);
46  virtual void getSummary(BufferString&) const;
47  virtual float estRatio(const Provider&) const;
48 
49  bool isEmpty() const { return filts_.isEmpty(); }
50  int size() const { return filts_.size(); }
51 
52  ObjectSet<Filter>& filters() { return filts_; }
53  const ObjectSet<Filter>& filters() const { return filts_; }
54 
55 protected:
56 
58 
59  void copyFrom(const FilterSet&);
60 
61 };
62 
63 
64 #define mSimpPosFilterSetDefFns(dim) \
65  FilterSet##dim() {} \
66  FilterSet##dim( const FilterSet##dim& fs ) \
67  { *this = fs; } \
68  FilterSet##dim& operator =( const FilterSet##dim& fs ) \
69  { copyFrom(fs); return *this; } \
70  virtual Filter* clone() const { return new FilterSet##dim(*this); } \
71  virtual const char* type() const { return typeStr(); } \
72  virtual const char* factoryKeyword() const { return type(); } \
73  virtual bool includes( const Coord& c, float z=1e30 ) const \
74  { return FilterSet::includes(c,z); } \
75 
76 
82  , public Filter3D
83 {
84 public:
85 
86  virtual bool is2D() const { return false; }
87  virtual bool includes(const BinID&,float z=mUdf(float)) const;
88 
90 
91 };
92 
93 
99  , public Filter2D
100 {
101 public:
102 
103  virtual bool is2D() const { return true; }
104  virtual bool includes(int,float z=mUdf(float),int lidx=0) const;
105 
107 
108 };
109 
110 
111 } // namespace
112 
Pos::FilterSet::usePar
virtual void usePar(const IOPar &)
Pos::FilterSet3D::includes
virtual bool includes(const BinID &, float z=mUdf(float)) const
Pos::FilterSet::typeStr
static const char * typeStr()
"Set"
Pos
Position.
Definition: commontypes.h:78
Pos::FilterSet::filters
const ObjectSet< Filter > & filters() const
Definition: posfilterset.h:53
Pos::FilterSet::add
void add(Filter *)
ObjectSet
Set of pointers to objects.
Definition: commontypes.h:31
Pos::FilterSet3D
3D FilterSet
Definition: posfilterset.h:83
Pos::Filter3D
Provides a filter related to 3D data.
Definition: posfilter.h:79
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
Pos::FilterSet
Set of Filters. Owns the Filters.
Definition: posfilterset.h:29
posfilter.h
Pos::FilterSet::~FilterSet
virtual ~FilterSet()
Pos::FilterSet2D::includes
virtual bool includes(int, float z=mUdf(float), int lidx=0) const
BinID
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:31
Coord
A cartesian coordinate in 2D space.
Definition: coord.h:25
mSimpPosFilterSetDefFns
#define mSimpPosFilterSetDefFns(dim)
Definition: posfilterset.h:64
Pos::FilterSet::reset
virtual void reset()
TaskRunner
Class that can execute a task.
Definition: task.h:170
Pos::FilterSet::initialize
virtual bool initialize(TaskRunner *)
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::FilterSet::hasZAdjustment
virtual bool hasZAdjustment() const
Pos::FilterSet::size
int size() const
Definition: posfilterset.h:50
Pos::FilterSet2D
2D FilterSet
Definition: posfilterset.h:100
Pos::Filter
Decides whether a given position should be included.
Definition: posfilter.h:45
Pos::FilterSet::estRatio
virtual float estRatio(const Provider &) const
Pos::FilterSet2D::is2D
virtual bool is2D() const
Definition: posfilterset.h:103
Pos::FilterSet::add
void add(const IOPar &)
Pos::FilterSet::filts_
ObjectSet< Filter > filts_
Definition: posfilterset.h:57
mUdf
#define mUdf(type)
Use this macro to get the undefined for simple types.
Definition: undefval.h:274
Pos::FilterSet::adjustedZ
virtual float adjustedZ(const Coord &, float) const
Pos::FilterSet::fillPar
virtual void fillPar(IOPar &) const
Pos::FilterSet3D::is2D
virtual bool is2D() const
Definition: posfilterset.h:86
Pos::Provider
Provides a series of positions; can also be used for subselection.
Definition: posprovider.h:33
Pos::FilterSet::isEmpty
bool isEmpty() const
Definition: posfilterset.h:49
Pos::FilterSet::filters
ObjectSet< Filter > & filters()
Definition: posfilterset.h:52
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
Pos::FilterSet::copyFrom
void copyFrom(const FilterSet &)
Pos::FilterSet::includes
virtual bool includes(const Coord &, float) const
Pos::FilterSet::getSummary
virtual void getSummary(BufferString &) const

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