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

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