OpendTect  6.6
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 RCS: $Id$
10 ________________________________________________________________________
11 
12 -*/
13 
14 #include "geometrymod.h"
15 #include "coord.h"
16 #include "ranges.h"
17 #include "callback.h"
18 #include "uistring.h"
19 
21 
22 namespace Geometry
23 {
24 
29 public:
30  virtual ~Iterator() {}
31  virtual GeomPosID next() = 0;
33 };
34 
35 
38 public:
40  virtual ~Element();
41  virtual Iterator* createIterator() const = 0;
42 
44  bool noudf=true) const;
45  virtual IntervalND<float> boundingBox(bool approx) const;
46  virtual Element* clone() const = 0;
47  virtual uiString errMsg() const;
48 
49  virtual Coord3 getPosition(GeomPosID) const = 0;
50  virtual bool setPosition(GeomPosID,const Coord3&) = 0;
51  virtual bool isDefined(GeomPosID) const = 0;
52 
53  virtual bool isChanged() const { return ischanged_; }
54  virtual void resetChangedFlag() { ischanged_=false; }
55 
56  virtual void trimUndefParts() {}
57 
60 
61  void blockCallBacks(bool yn,bool flush=true);
70  bool blocksCallBacks() const { return blockcbs_; }
71 
72 protected:
73  bool blockcbs_;
77  void triggerMovement(const GeomPosID&);
80  void triggerNrPosCh(const GeomPosID&);
82  bool ischanged_;
83 
85 
86 private:
87 
91 };
92 
93 } // namespace Geometry
94 
Geometry::Element::nrpositionnotifier
CNotifier< Element, const TypeSet< GeomPosID > * > nrpositionnotifier
Definition: geomelement.h:59
Geometry::Element::blockcbs_
bool blockcbs_
Definition: geomelement.h:73
Geometry::Element::createIterator
virtual Iterator * createIterator() const =0
Geometry::Element::ischanged_
bool ischanged_
Definition: geomelement.h:82
Coord3
A cartesian coordinate in 3D space.
Definition: coord.h:72
Geometry::Element::Element
Element()
Geometry::Iterator
Definition: geomelement.h:28
uistring.h
Geometry::Element::movementlock_
Threads::Lock movementlock_
Definition: geomelement.h:89
Geometry::Iterator::mODTextTranslationClass
mODTextTranslationClass(Iterator)
Geometry::Iterator::~Iterator
virtual ~Iterator()
Definition: geomelement.h:30
Geometry
Definition: arraytesselator.h:21
od_int64
#define od_int64
Definition: plftypes.h:35
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
Geometry::Element
Definition: geomelement.h:37
Geometry::Element::triggerNrPosCh
void triggerNrPosCh()
Geometry::Element::getPosIDs
virtual void getPosIDs(TypeSet< GeomPosID > &, bool noudf=true) const
Geometry::Iterator::next
virtual GeomPosID next()=0
returs -1 if not valid
Geometry::Element::errmsg_
uiString * errmsg_
Definition: geomelement.h:90
Geometry::Element::triggerNrPosCh
void triggerNrPosCh(const GeomPosID &)
callback.h
CallBacker
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:185
Geometry::Element::movementnotifier
CNotifier< Element, const TypeSet< GeomPosID > * > movementnotifier
Definition: geomelement.h:58
Geometry::Element::blocksCallBacks
bool blocksCallBacks() const
Definition: geomelement.h:70
Geometry::Element::clone
virtual Element * clone() const =0
IntervalND
Class to store ranges in N dimensions.
Definition: ranges.h:214
Geometry::Element::errmsg
uiString & errmsg()
Geometry::Element::isChanged
virtual bool isChanged() const
Definition: geomelement.h:53
Geometry::Element::boundingBox
virtual IntervalND< float > boundingBox(bool approx) const
Geometry::Element::triggerMovement
void triggerMovement(const GeomPosID &)
Geometry::Element::trimUndefParts
virtual void trimUndefParts()
Definition: geomelement.h:56
Geometry::Element::getPosition
virtual Coord3 getPosition(GeomPosID) const =0
Geometry::Element::mODTextTranslationClass
mODTextTranslationClass(Element)
Geometry::Element::resetChangedFlag
virtual void resetChangedFlag()
Definition: geomelement.h:54
Geometry::Element::triggerMovement
void triggerMovement()
Geometry::Element::poschglock_
Threads::Lock poschglock_
Definition: geomelement.h:88
uiString
String that is able to hold international (UTF-8) strings for the user interface.
Definition: uistring.h:121
Geometry::Element::movementbuffer_
TypeSet< GeomPosID > movementbuffer_
Definition: geomelement.h:75
GeomPosID
od_int64 GeomPosID
Definition: geomelement.h:20
Geometry::Element::blockCallBacks
void blockCallBacks(bool yn, bool flush=true)
Geometry::Element::triggerMovement
void triggerMovement(const TypeSet< GeomPosID > &)
Geometry::Element::nrposchbuffer_
TypeSet< GeomPosID > nrposchbuffer_
Definition: geomelement.h:74
Geometry::Element::setPosition
virtual bool setPosition(GeomPosID, const Coord3 &)=0
ranges.h
Geometry::Element::errMsg
virtual uiString errMsg() const
Geometry::Element::triggerNrPosCh
void triggerNrPosCh(const TypeSet< GeomPosID > &)
Threads::Lock
A lock of a type that (hopefully) suits your needs. To use it, you need the Locker class.
Definition: threadlock.h:53
Geometry::Element::~Element
virtual ~Element()
Geometry::Element::isDefined
virtual bool isDefined(GeomPosID) const =0
CNotifier
Notifier with automatic capsule creation.
Definition: notify.h:171
TypeSet< GeomPosID >
coord.h

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