OpendTect  6.3
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 ________________________________________________________________________
10 
11 
12 -*/
13 
14 #include "algomod.h"
15 #include "posfilter.h"
16 
17 
18 
19 
20 namespace Pos
21 {
22 
27 mExpClass(Algo) FilterSet : public virtual Filter
28 {
29 public:
30 
31  virtual ~FilterSet();
32 
33  void add(Filter*);
34  void add(const IOPar&);
35 
36  static const char* typeStr();
37 
38  virtual bool initialize(TaskRunner*);
39  virtual void reset();
40  virtual bool includes(const Coord&,float) const;
41  virtual float adjustedZ(const Coord&,float) const;
42  virtual bool hasZAdjustment() const;
43  virtual void fillPar(IOPar&) const;
44  virtual void usePar(const IOPar&);
45  virtual void getSummary(BufferString&) const;
46  virtual float estRatio(const Provider&) const;
47 
48  bool isEmpty() const { return filts_.isEmpty(); }
49  int size() const { return filts_.size(); }
50 
51  ObjectSet<Filter>& filters() { return filts_; }
52  const ObjectSet<Filter>& filters() const { return filts_; }
53 
54 protected:
55 
57 
58  void copyFrom(const FilterSet&);
59 
60 };
61 
62 
63 #define mSimpPosFilterSetDefFns(dim) \
64  FilterSet##dim() {} \
65  FilterSet##dim( const FilterSet##dim& fs ) \
66  { *this = fs; } \
67  FilterSet##dim& operator =( const FilterSet##dim& fs ) \
68  { copyFrom(fs); return *this; } \
69  virtual Filter* clone() const { return new FilterSet##dim(*this); } \
70  virtual const char* type() const { return typeStr(); } \
71  virtual const char* factoryKeyword() const { return type(); } \
72  virtual bool includes( const Coord& c, float z=1e30 ) const \
73  { return FilterSet::includes(c,z); } \
74 
75 
81  , public Filter3D
82 {
83 public:
84 
85  virtual bool is2D() const { return false; }
86  virtual bool includes(const BinID&,float z=mUdf(float)) const;
87 
89 
90 };
91 
92 
98  , public Filter2D
99 {
100 public:
101 
102  virtual bool is2D() const { return true; }
103  virtual bool includes(int,float z=mUdf(float),int lidx=0) const;
104 
106 
107 };
108 
109 
110 } // namespace
#define mExpClass(module)
Definition: commondefs.h:157
Provides a series of positions; can also be used for subselection.
Definition: posprovider.h:31
void usePar(const IOPar &iop, ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:200
Provides a filter related to 3D data.
Definition: posfilter.h:77
ObjectSet< Filter > filts_
Definition: posfilterset.h:56
#define mSimpPosFilterSetDefFns(dim)
Definition: posfilterset.h:63
virtual bool is2D() const
Definition: posfilterset.h:85
Decides whether a given position should be included.
Definition: posfilter.h:43
Set of pointers to objects.
Definition: commontypes.h:28
3D FilterSet
Definition: posfilterset.h:80
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:53
const ObjectSet< Filter > & filters() const
Definition: posfilterset.h:52
Class that can execute a task.
Definition: task.h:193
int size() const
Definition: posfilterset.h:49
#define mUdf(type)
Use this macro to get the undefined for simple types.
Definition: undefval.h:270
ObjectSet< Filter > & filters()
Definition: posfilterset.h:51
virtual bool is2D() const
Definition: posfilterset.h:102
Position.
Definition: commontypes.h:38
void fillPar(IOPar &iop, const ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:187
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
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:28
Set of Filters. Owns the Filters.
Definition: posfilterset.h:27
2D point or vector class.
Definition: commontypes.h:58
bool isEmpty() const
Definition: posfilterset.h:48
2D FilterSet
Definition: posfilterset.h:97

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