OpendTect-6_4  6.4
geomelement.h
Go to the documentation of this file.
1 #ifndef geomelement_h
2 #define geomelement_h
3 
4 /*+
5 ________________________________________________________________________
6 (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
7 Author: A.H. Bril
8 Date: 23-10-1996
9 Contents: Ranges
10 RCS: $Id$
11 ________________________________________________________________________
12 
13 -*/
14 
15 #include "geometrymod.h"
16 #include "coord.h"
17 #include "ranges.h"
18 #include "callback.h"
19 #include "uistring.h"
20 
22 
23 namespace Geometry
24 {
25 
29 { mODTextTranslationClass(Iterator);
30 public:
31  virtual ~Iterator() {}
32  virtual GeomPosID next() = 0;
34 };
35 
36 
39 public:
40  Element();
41  virtual ~Element();
42  virtual Iterator* createIterator() const = 0;
43 
44  virtual void getPosIDs(TypeSet<GeomPosID>&,
45  bool noudf=true) const;
46  virtual IntervalND<float> boundingBox(bool approx) const;
47  virtual Element* clone() const = 0;
48  virtual uiString errMsg() const;
49 
50  virtual Coord3 getPosition(GeomPosID) const = 0;
51  virtual bool setPosition(GeomPosID,const Coord3&) = 0;
52  virtual bool isDefined(GeomPosID) const = 0;
53 
54  virtual bool isChanged() const { return ischanged_; }
55  virtual void resetChangedFlag() { ischanged_=false; }
56 
57  virtual void trimUndefParts() {}
58 
61 
62  void blockCallBacks(bool yn,bool flush=true);
71  bool blocksCallBacks() const { return blockcbs_; }
72 
73 protected:
74  bool blockcbs_;
77  void triggerMovement(const TypeSet<GeomPosID>&);
78  void triggerMovement(const GeomPosID&);
79  void triggerMovement();
80  void triggerNrPosCh(const TypeSet<GeomPosID>&);
81  void triggerNrPosCh(const GeomPosID&);
82  void triggerNrPosCh();
83  bool ischanged_;
84 
85  uiString& errmsg();
86 
87 private:
88 
92 };
93 
94 } // namespace Geometry
95 
96 #endif
TypeSet< GeomPosID > nrposchbuffer_
Definition: geomelement.h:75
#define mExpClass(module)
Definition: commondefs.h:160
To be able to send and/or receive CallBacks, inherit from this class.
Definition: callback.h:272
bool ischanged_
Definition: geomelement.h:83
A lock of a type that (hopefully) suits your needs. To use it, you need the Locker class...
Definition: threadlock.h:53
uiString * errmsg_
Definition: geomelement.h:91
#define mODTextTranslationClass(clss)
Definition: uistring.h:38
TypeSet< GeomPosID > movementbuffer_
Definition: geomelement.h:76
bool blockcbs_
Definition: geomelement.h:74
Threads::Lock movementlock_
Definition: geomelement.h:90
#define od_int64
Definition: plftypes.h:36
virtual void trimUndefParts()
Definition: geomelement.h:57
CNotifier< Element, const TypeSet< GeomPosID > * > movementnotifier
Definition: geomelement.h:59
virtual ~Iterator()
Definition: geomelement.h:31
Definition: uistring.h:89
virtual bool isChanged() const
Definition: geomelement.h:54
od_int64 GeomPosID
Definition: geomelement.h:21
Definition: geomelement.h:28
Class to store ranges in N dimensions.
Definition: ranges.h:209
A cartesian coordinate in 3D space.
Definition: coord.h:72
Definition: geomelement.h:37
virtual void resetChangedFlag()
Definition: geomelement.h:55
Notifier with automatic capsule creation.
Definition: callback.h:395
Threads::Lock poschglock_
Definition: geomelement.h:89
bool blocksCallBacks() const
Definition: geomelement.h:71
const char * errMsg() const
Definition: horizontracker.h:61
Definition: arraytesselator.h:21
CNotifier< Element, const TypeSet< GeomPosID > * > nrpositionnotifier
Definition: geomelement.h:60

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