OpendTect  6.6
posfilter.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 "coord.h"
17 #include "factory.h"
18 #include "posinfo2dsurv.h"
19 
20 class TaskRunner;
21 
24 namespace Pos
25 {
26 class Provider;
27 
45 {
46 public:
47 
48  virtual Filter* clone() const = 0;
49  virtual ~Filter() {}
50 
51  virtual const char* type() const = 0;
52  virtual bool is2D() const = 0;
53  virtual bool isProvider() const { return false;}
54 
55  virtual bool initialize( TaskRunner* tr=0 )
56  { reset(); return true; }
57  virtual void reset() = 0;
58 
59  virtual bool includes(const Coord&,
60  float z=mUdf(float)) const = 0;
61  virtual bool hasZAdjustment() const { return false;}
62  virtual float adjustedZ(const Coord&, float z ) const { return z; }
63 
64  virtual void usePar(const IOPar&) = 0;
65  virtual void fillPar(IOPar&) const = 0;
66 
67  virtual void getSummary(BufferString&) const = 0;
68  virtual float estRatio(const Provider&) const = 0;
69 
70  static Filter* make(const IOPar&,bool is2d);
71 };
72 
73 
78 mExpClass(Algo) Filter3D : public virtual Filter
79 {
80 public:
81 
82  virtual bool is2D() const { return false; }
83 
84  virtual bool includes(const BinID&,float z=mUdf(float)) const = 0;
85  virtual bool includes(const Coord&,float z=mUdf(float)) const;
86 
88  static Filter3D* make(const IOPar&);
89 
90 };
91 
92 
97 mExpClass(Algo) Filter2D : public virtual Filter
98 {
99 public:
100  Filter2D() {}
102 
103  virtual bool is2D() const { return true; }
104  virtual bool includes(int,float z=mUdf(float),int lidx=0) const = 0;
105  virtual bool includes(const Coord&,
106  float z=mUdf(float)) const = 0;
107 
108  void addGeomID(const Pos::GeomID);
109  void removeGeomID(int lidx);
110  Pos::GeomID geomID(int) const;
111  int nrLines() const;
112 
114  static Filter2D* make(const IOPar&);
115 
116 protected:
117 
119 };
120 
121 
122 } // namespace
123 
Pos::Filter::includes
virtual bool includes(const Coord &, float z=mUdf(float)) const =0
Pos::Filter::~Filter
virtual ~Filter()
Definition: posfilter.h:49
Pos::Filter::getSummary
virtual void getSummary(BufferString &) const =0
factory.h
Pos
Position.
Definition: commontypes.h:78
Pos::Filter3D::make
static Filter3D * make(const IOPar &)
Pos::Filter3D
Provides a filter related to 3D data.
Definition: posfilter.h:79
Pos::Filter2D::is2D
virtual bool is2D() const
Definition: posfilter.h:103
Pos::Filter2D::includes
virtual bool includes(int, float z=mUdf(float), int lidx=0) const =0
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
Pos::Filter::reset
virtual void reset()=0
Pos::Filter3D::mDefineFactoryInClass
mDefineFactoryInClass(Filter3D, factory)
Pos::Filter2D::removeGeomID
void removeGeomID(int lidx)
Pos::Filter::fillPar
virtual void fillPar(IOPar &) const =0
Pos::Filter2D::Filter2D
Filter2D()
Definition: posfilter.h:100
Pos::Filter::clone
virtual Filter * clone() const =0
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
Pos::Filter2D::~Filter2D
~Filter2D()
Pos::Filter2D::geomID
Pos::GeomID geomID(int) const
TaskRunner
Class that can execute a task.
Definition: task.h:170
Pos::Filter::estRatio
virtual float estRatio(const Provider &) const =0
Pos::Filter::initialize
virtual bool initialize(TaskRunner *tr=0)
Definition: posfilter.h:55
Pos::Filter2D::make
static Filter2D * make(const IOPar &)
Pos::Filter3D::is2D
virtual bool is2D() const
Definition: posfilter.h:82
Pos::Filter2D
Provides a filter related to 2D seismic data.
Definition: posfilter.h:98
Pos::Filter::is2D
virtual bool is2D() const =0
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
Pos::Filter::isProvider
virtual bool isProvider() const
Definition: posfilter.h:53
Pos::Filter
Decides whether a given position should be included.
Definition: posfilter.h:45
Pos::Filter2D::geomids_
TypeSet< Pos::GeomID > geomids_
Definition: posfilter.h:118
Pos::Filter2D::mDefineFactoryInClass
mDefineFactoryInClass(Filter2D, factory)
Pos::Filter::make
static Filter * make(const IOPar &, bool is2d)
Pos::Filter::hasZAdjustment
virtual bool hasZAdjustment() const
Definition: posfilter.h:61
Pos::Filter3D::includes
virtual bool includes(const Coord &, float z=mUdf(float)) const
Pos::Filter::type
virtual const char * type() const =0
mUdf
#define mUdf(type)
Use this macro to get the undefined for simple types.
Definition: undefval.h:274
Pos::Filter2D::includes
virtual bool includes(const Coord &, float z=mUdf(float)) const =0
Pos::Filter::usePar
virtual void usePar(const IOPar &)=0
Pos::Filter2D::nrLines
int nrLines() const
Pos::Provider
Provides a series of positions; can also be used for subselection.
Definition: posprovider.h:33
posinfo2dsurv.h
Pos::Filter::adjustedZ
virtual float adjustedZ(const Coord &, float z) const
Definition: posfilter.h:62
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
Pos::GeomID
Index_Type GeomID
Definition: commontypes.h:87
Pos::Filter2D::addGeomID
void addGeomID(const Pos::GeomID)
TypeSet< Pos::GeomID >
Pos::Filter3D::includes
virtual bool includes(const BinID &, float z=mUdf(float)) const =0
coord.h

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