OpendTect  6.6
visemobjdisplay.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: Kristofer Tingdahl
8  Date: May 2004
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 -*/
13 
14 
15 #include "vissurveymod.h"
16 #include "bufstringset.h"
17 #include "draw.h"
18 #include "emposid.h"
19 #include "visobject.h"
20 #include "vissurvobj.h"
21 #include "emobject.h"
22 
23 class ZAxisTransform;
24 
25 namespace EM { class EMManager; class EMObject; }
26 namespace Geometry { class Element; }
27 namespace visBase
28 {
29  class DataObjectGroup;
30  class DrawStyle;
31  class TextureChannel2RGBA;
32  class MarkerSet;
33 }
34 
35 namespace visSurvey
36 {
38 {
41 
43  {
44  Threads::Locker locker( lock_ );
45  emcallbackdata_ += data;
46  }
47 
48  const EM::EMObjectCallbackData* getCallBackData( int idx ) const
49  {
50  if ( idx<emcallbackdata_.size() )
51  return emcallbackdata_[idx];
52  return 0;
53  }
54 
55  void clearData()
56  {
57  Threads::Locker locker( lock_ );
59  }
60 
61  int size() const { return emcallbackdata_.size(); }
62 };
63 
64 class MPEEditor;
65 class EdgeLineSetDisplay;
66 
67 
70 {
71 public:
76  { return false; }
78  { return zaxistransform_; }
79 
80  virtual bool setEMObject(const EM::ObjectID&,TaskRunner*);
82  virtual bool updateFromEM(TaskRunner*);
83  virtual void updateFromMPE();
84 
85  void showPosAttrib( int attr, bool yn);
88  bool showsPosAttrib( int attr ) const;
92  const char* errMsg() const { return errmsg_.str(); }
93 
96 
97  virtual void setOnlyAtSectionsDisplay(bool yn);
98  virtual bool displayedOnlyAtSections() const;
99 
100  virtual void turnOnSelectionMode(bool);
101  bool allowMaterialEdit() const { return true; }
102  const OD::LineStyle* lineStyle() const;
104 
105  bool hasColor() const;
107  Color getColor() const;
108 
109  bool allowsPicks() const { return true; }
110 
113  IOPar& iop ) const
114  { return SurveyObject::getMousePosInfo(ei,iop);}
115  virtual void getMousePosInfo(const visBase::EventInfo&,
116  Coord3&,
117  BufferString& val,
118  BufferString& info) const;
120  void enableEditing(bool yn);
121  bool isEditingEnabled() const;
122 
123  virtual EM::SectionID getSectionID(int visid) const = 0;
125 
127  const TypeSet<int>& path,
128  const Coord3& clickeddisplaypos) const;
129 
130  virtual bool canRemoveSelection() const { return true; }
131  virtual bool removeSelections(TaskRunner*);
132  virtual void clearSelections();
133  virtual void updateAuxData() {}
134 
137 
138  virtual void fillPar(IOPar&) const;
139  virtual bool usePar(const IOPar&);
140 
141  NotifierAccess* getMovementNotifier() { return &hasmoved; }
143 
144  void lock(bool yn);
145  NotifierAccess* getLockNotifier() { return &locknotifier;}
146  virtual void doOtherObjectsMoved(
148  int whichobj ) =0;
149  virtual void setPixelDensity(float dpi);
151 
152 
153 protected:
156  virtual void removeEMStuff();
157 
158  virtual void removeSectionDisplay(const EM::SectionID&) = 0;
159  virtual bool addSection(const EM::SectionID&,TaskRunner*)=0;
160 
161  virtual EM::PosID findClosestNode(const Coord3&) const;
162  virtual void emChangeCB(CallBacker*);
163  virtual void clickCB(CallBacker*);
164  virtual void updatePosAttrib(int attrib);
166 
167  virtual void updateSelections();
169 
172 
176 
178 
181 
186 
189  //set in usePar,
190  //should be nil when given
191  //to channels_.
192 
194 
196  mutable bool nontexturecolisset_;
201 
203  bool ctrldown_;
208 
209  static const char* sKeyEarthModelID();
210  static const char* sKeyResolution();
211  static const char* sKeyEdit();
212  static const char* sKeyOnlyAtSections();
213  static const char* sKeyLineStyle();
214  static const char* sKeySections();
215  static const char* sKeyPosAttrShown();
216 
217 
218 private:
219  void unSelectAll();
224 public:
225  virtual bool getOnlyAtSectionsDisplay() const
226  { return displayedOnlyAtSections(); }
227 };
228 
229 } // namespace visSurvey
230 
visSurvey::EMObjectDisplay::clearSelections
virtual void clearSelections()
emobject.h
Coord3
A cartesian coordinate in 3D space.
Definition: coord.h:72
OD::LineStyle
Definition: draw.h:118
visSurvey::EMChangeData::getCallBackData
const EM::EMObjectCallbackData * getCallBackData(int idx) const
Definition: visemobjdisplay.h:48
emposid.h
visBase::TextureChannel2RGBA
Definition: vistexturechannel2rgba.h:36
visSurvey::EMObjectDisplay::setSceneEventCatcher
void setSceneEventCatcher(visBase::EventCatcher *)
visSurvey::EMObjectDisplay::locknotifier
Notifier< EMObjectDisplay > locknotifier
Definition: visemobjdisplay.h:171
visSurvey::EMObjectDisplay::errMsg
const char * errMsg() const
Definition: visemobjdisplay.h:92
visSurvey::EMChangeData::lock_
Threads::Lock lock_
Definition: visemobjdisplay.h:40
visSurvey::EMObjectDisplay::addSection
virtual bool addSection(const EM::SectionID &, TaskRunner *)=0
visSurvey::EMObjectDisplay::sKeyLineStyle
static const char * sKeyLineStyle()
visSurvey::EMObjectDisplay::em_
EM::EMManager & em_
Definition: visemobjdisplay.h:182
visSurvey::EMObjectDisplay::fillPar
virtual void fillPar(IOPar &) const
visSurvey::EMObjectDisplay::updateFromMPE
virtual void updateFromMPE()
visSurvey::EMObjectDisplay::getZAxisTransform
const ZAxisTransform * getZAxisTransform() const
Definition: visemobjdisplay.h:77
Threads::Locker
Locks the lock, shutting out access from other threads if needed.
Definition: threadlock.h:85
visSurvey::EMObjectDisplay::getChannels2RGBA
virtual visBase::TextureChannel2RGBA * getChannels2RGBA()
visSurvey::EMObjectDisplay::sKeyPosAttrShown
static const char * sKeyPosAttrShown()
visSurvey::EMObjectDisplay::getObjectInfo
void getObjectInfo(BufferString &) const
ObjectSet< const EM::EMObjectCallbackData >
visSurvey::EMObjectDisplay::selectors_
ObjectSet< Selector< Coord3 > > selectors_
Definition: visemobjdisplay.h:204
visSurvey::EMObjectDisplay::getEditor
MPEEditor * getEditor()
BufferStringSet
Set of BufferString objects.
Definition: bufstringset.h:26
Geometry
Definition: arraytesselator.h:21
visBase
Definition: visannot.h:43
visSurvey::EMObjectDisplay::getDisplayTransformation
const mVisTrans * getDisplayTransformation() const
visSurvey::EMObjectDisplay::getObjectID
EM::ObjectID getObjectID() const
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
visSurvey::EMObjectDisplay::allowMaterialEdit
bool allowMaterialEdit() const
Definition: visemobjdisplay.h:101
visSurvey::EMObjectDisplay::ctrldown_
bool ctrldown_
Definition: visemobjdisplay.h:203
visSurvey::EMObjectDisplay::posattribs_
TypeSet< int > posattribs_
Definition: visemobjdisplay.h:179
visSurvey::EMObjectDisplay::getMousePosInfo
void getMousePosInfo(const visBase::EventInfo &ei, IOPar &iop) const
Definition: visemobjdisplay.h:112
visSurvey::SurveyObject
Base class for all 'Display' objects.
Definition: vissurvobj.h:58
visSurvey::EMObjectDisplay::getSectionID
EM::SectionID getSectionID(const TypeSet< int > *path) const
visSurvey::EMObjectDisplay::hasmoved
Notifier< EMObjectDisplay > hasmoved
Definition: visemobjdisplay.h:170
visSurvey::EMObjectDisplay::usePar
virtual bool usePar(const IOPar &)
visSurvey::EMObjectDisplay::updateSelections
virtual void updateSelections()
visSurvey::EMObjectDisplay::getSeedMarkerSet
const visBase::MarkerSet * getSeedMarkerSet() const
visBase::VisualObjectImpl
VisualObjectImpl
Definition: visobject.h:127
visSurvey::EMObjectDisplay::parsections_
BufferStringSet parsections_
Definition: visemobjdisplay.h:185
visSurvey::EMObjectDisplay::setColor
void setColor(Color)
visBase::EventCatcher
Definition: visevent.h:87
visBase::MarkerSet
MarkerSet is a set of basic pickmarker with a constant size on screen. Size and shape are settable.
Definition: vismarkerset.h:36
visSurvey::EMObjectDisplay::setDisplayTransformation
void setDisplayTransformation(const mVisTrans *)
CallBacker
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:185
visSurvey::EMObjectDisplay::~EMObjectDisplay
~EMObjectDisplay()
ObjectSet::size
size_type size() const
Definition: objectset.h:55
visSurvey::EMObjectDisplay
Definition: visemobjdisplay.h:70
visSurvey::EMObjectDisplay::emChangeCB
virtual void emChangeCB(CallBacker *)
visSurvey::EMChangeData
Definition: visemobjdisplay.h:38
visSurvey::EMObjectDisplay::removeSelections
virtual bool removeSelections(TaskRunner *)
visSurvey::EMObjectDisplay::getMultiID
MultiID getMultiID() const
visSurvey::EMChangeData::clearData
void clearData()
Definition: visemobjdisplay.h:55
EM
Earth Model objects like horizons, faults, fault-sticks and bodies.
Definition: bulk2dhorizonscanner.h:26
visSurvey::EMObjectDisplay::EMObjectDisplay
EMObjectDisplay()
visSurvey::EMObjectDisplay::removeEMStuff
virtual void removeEMStuff()
visobject.h
visSurvey::EMObjectDisplay::channel2rgba_
visBase::TextureChannel2RGBA * channel2rgba_
Definition: visemobjdisplay.h:188
visSurvey::EMObjectDisplay::changedisplay
Notifier< EMObjectDisplay > changedisplay
Definition: visemobjdisplay.h:142
visSurvey::EMObjectDisplay::restoresessupdate_
bool restoresessupdate_
Definition: visemobjdisplay.h:200
visSurvey::EMObjectDisplay::showsPosAttrib
bool showsPosAttrib(int attr) const
visSurvey::EMObjectDisplay::setEMObject
virtual bool setEMObject(const EM::ObjectID &, TaskRunner *)
visSurvey::EMObjectDisplay::nontexturecolisset_
bool nontexturecolisset_
Definition: visemobjdisplay.h:196
visSurvey::EMObjectDisplay::addsectionids_
TypeSet< EM::SectionID > addsectionids_
Definition: visemobjdisplay.h:193
visSurvey::EMObjectDisplay::sKeyEarthModelID
static const char * sKeyEarthModelID()
visSurvey::EMObjectDisplay::showPosAttrib
void showPosAttrib(int attr, bool yn)
visSurvey::EMObjectDisplay::parmid_
MultiID parmid_
Definition: visemobjdisplay.h:184
visSurvey::EMObjectDisplay::emchangedata_
EMChangeData emchangedata_
Definition: visemobjdisplay.h:207
visSurvey::EMObjectDisplay::sKeyOnlyAtSections
static const char * sKeyOnlyAtSections()
visSurvey::EMObjectDisplay::setZAxisTransform
virtual bool setZAxisTransform(ZAxisTransform *, TaskRunner *)
Definition: visemobjdisplay.h:75
visSurvey::EMObjectDisplay::findClosestNode
virtual EM::PosID findClosestNode(const Coord3 &) const
visSurvey::EMObjectDisplay::displayonlyatsections_
bool displayonlyatsections_
Definition: visemobjdisplay.h:198
ZAxisTransform
Base class for z-axis transforms.
Definition: zaxistransform.h:37
visSurvey::EMObjectDisplay::getSectionID
virtual EM::SectionID getSectionID(int visid) const =0
visSurvey::SurveyObject::getMousePosInfo
virtual void getMousePosInfo(const visBase::EventInfo &, Coord3 &xyzpos, BufferString &val, BufferString &info) const
Definition: vissurvobj.h:250
visSurvey::EMObjectDisplay::burstalertison_
bool burstalertison_
Definition: visemobjdisplay.h:202
visSurvey::EMObjectDisplay::turnOnSelectionMode
virtual void turnOnSelectionMode(bool)
visSurvey::EMObjectDisplay::setLineStyle
void setLineStyle(const OD::LineStyle &)
OD::String::str
const char * str() const
Definition: odstring.h:47
visBase::PolygonSelection
Definition: vispolygonselection.h:40
NotifierAccess
Interface class for Notifier. See comments there.
Definition: notify.h:22
visSurvey::EMObjectDisplay::setPixelDensity
virtual void setPixelDensity(float dpi)
visBase::EventInfo
Definition: visevent.h:44
visSurvey::EMObjectDisplay::emobject_
EM::EMObject * emobject_
Definition: visemobjdisplay.h:183
visSurvey::EMObjectDisplay::getLockNotifier
NotifierAccess * getLockNotifier()
Definition: visemobjdisplay.h:145
visSurvey::EMChangeData::emcallbackdata_
ObjectSet< const EM::EMObjectCallbackData > emcallbackdata_
Definition: visemobjdisplay.h:39
visSurvey::EMObjectDisplay::findOverlapSelectors
const TypeSet< int > findOverlapSelectors(visBase::PolygonSelection *)
TaskRunner
Class that can execute a task.
Definition: task.h:170
Notifier
Class to help setup a callback handling.
Definition: notify.h:126
visSurvey::EMObjectDisplay::selectionids_
TypeSet< EM::SubID > selectionids_
Definition: visemobjdisplay.h:206
visSurvey::EMObjectDisplay::hasColor
bool hasColor() const
visSurvey::EMObjectDisplay::allowsPicks
bool allowsPicks() const
Definition: visemobjdisplay.h:109
visSurvey::EMObjectDisplay::updatePosAttrib
virtual void updatePosAttrib(int attrib)
visSurvey::MPEEditor
Definition: vismpeeditor.h:44
visSurvey::EMObjectDisplay::getPosAttribPosID
EM::PosID getPosAttribPosID(int attrib, const TypeSet< int > &path, const Coord3 &clickeddisplaypos) const
visSurvey::EMObjectDisplay::editor_
MPEEditor * editor_
Definition: visemobjdisplay.h:187
draw.h
mVisTrans
#define mVisTrans
Definition: visdata.h:28
MultiID
Compound key consisting of ints.
Definition: multiid.h:24
visSurvey::EMObjectDisplay::eventcatcher_
visBase::EventCatcher * eventcatcher_
Definition: visemobjdisplay.h:175
visSurvey::EMObjectDisplay::updateLockedSeedsColor
void updateLockedSeedsColor()
vissurvobj.h
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
visSurvey::EMObjectDisplay::removeSectionDisplay
virtual void removeSectionDisplay(const EM::SectionID &)=0
visSurvey::EMObjectDisplay::getMovementNotifier
NotifierAccess * getMovementNotifier()
Definition: visemobjdisplay.h:141
visSurvey::EMObjectDisplay::lock
void lock(bool yn)
EM::SectionID
od_int16 SectionID
Definition: emposid.h:24
bufstringset.h
deepErase
void deepErase(BufferStringSet &)
visSurvey::EMObjectDisplay::canRemoveSelection
virtual bool canRemoveSelection() const
Definition: visemobjdisplay.h:130
visSurvey::EMObjectDisplay::doOtherObjectsMoved
virtual void doOtherObjectsMoved(const ObjectSet< const SurveyObject > &, int whichobj)=0
visSurvey::EMObjectDisplay::getOnlyAtSectionsDisplay
virtual bool getOnlyAtSectionsDisplay() const
Definition: visemobjdisplay.h:225
visSurvey::EMChangeData::addCallBackData
void addCallBackData(const EM::EMObjectCallbackData *data)
Definition: visemobjdisplay.h:42
visSurvey::EMChangeData::size
int size() const
Definition: visemobjdisplay.h:61
EM::ObjectID
od_int32 ObjectID
Definition: emposid.h:23
visSurvey::EMObjectDisplay::parposattrshown_
TypeSet< int > parposattrshown_
Definition: visemobjdisplay.h:180
visSurvey::EMObjectDisplay::updateAuxData
virtual void updateAuxData()
Definition: visemobjdisplay.h:133
EM::EMManager
Manages the loaded/half loaded EM objects in OpendTect.
Definition: emmanager.h:46
visSurvey::EMObjectDisplay::sKeyResolution
static const char * sKeyResolution()
visSurvey::EMObjectDisplay::nontexturecol_
Color nontexturecol_
Definition: visemobjdisplay.h:195
MPE::errmsg_
BufferString errmsg_
Definition: horizontracker.h:118
visSurvey::EMObjectDisplay::updateFromEM
virtual bool updateFromEM(TaskRunner *)
visSurvey
Used for displaying a polyline, preview for a random line created throught well path.
Definition: visarrowdisplay.h:20
visSurvey::EMObjectDisplay::handleEmChange
void handleEmChange(const EM::EMObjectCallbackData &)
visSurvey::EMObjectDisplay::sKeySections
static const char * sKeySections()
visSurvey::EMObjectDisplay::posattribmarkers_
ObjectSet< visBase::MarkerSet > posattribmarkers_
Definition: visemobjdisplay.h:177
visSurvey::EMObjectDisplay::getMousePosInfo
virtual void getMousePosInfo(const visBase::EventInfo &, Coord3 &, BufferString &val, BufferString &info) const
visSurvey::EMObjectDisplay::drawstyle_
visBase::DrawStyle * drawstyle_
Definition: visemobjdisplay.h:197
visSurvey::EMObjectDisplay::unSelectAll
void unSelectAll()
visSurvey::EMObjectDisplay::setChannels2RGBA
virtual bool setChannels2RGBA(visBase::TextureChannel2RGBA *)
visSurvey::EMObjectDisplay::sKeyEdit
static const char * sKeyEdit()
EM::EMObject
Base class for all EarthModel objects.
Definition: emobject.h:159
EM::EMObjectCallbackData
EM object callback data.
Definition: emobject.h:46
visSurvey::EMObjectDisplay::enableEditing
void enableEditing(bool yn)
visSurvey::EMObjectDisplay::zaxistransform_
ZAxisTransform * zaxistransform_
Definition: visemobjdisplay.h:174
visSurvey::EMObjectDisplay::displayedOnlyAtSections
virtual bool displayedOnlyAtSections() const
Color
Color is an RGB color object, with a transparancy. The storage is in a 4-byte integer,...
Definition: color.h:26
visSurvey::EMObjectDisplay::getColor
Color getColor() const
Threads::Lock
A lock of a type that (hopefully) suits your needs. To use it, you need the Locker class.
Definition: threadlock.h:53
visSurvey::EMObjectDisplay::isEditingEnabled
bool isEditingEnabled() const
visBase::DrawStyle
Definition: visdrawstyle.h:33
visSurvey::EMObjectDisplay::clickCB
virtual void clickCB(CallBacker *)
visSurvey::EMObjectDisplay::lineStyle
const OD::LineStyle * lineStyle() const
visSurvey::EMObjectDisplay::displayedSections
BufferStringSet displayedSections() const
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
visSurvey::EMObjectDisplay::polygonFinishedCB
void polygonFinishedCB(CallBacker *)
EM::PosID
Is an identifier for each position in the earthmodel.
Definition: emposid.h:37
TypeSet< int >
visSurvey::EMObjectDisplay::enableedit_
bool enableedit_
Definition: visemobjdisplay.h:199
visSurvey::EMObjectDisplay::setOnlyAtSectionsDisplay
virtual void setOnlyAtSectionsDisplay(bool yn)
visSurvey::EMObjectDisplay::transformation_
const mVisTrans * transformation_
Definition: visemobjdisplay.h:173

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