OpendTect  6.6
vissurvscene.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: 4-11-2002
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 
13 -*/
14 
15 #include "vissurveymod.h"
16 #include "visscene.h"
17 #include "bufstring.h"
18 #include "keyboardevent.h"
19 #include "mouseevent.h"
20 #include "trckeyzsampling.h"
21 #include "trckeyvalue.h"
22 #include "position.h"
23 
24 class MouseCursor;
25 class TaskRunner;
26 class FontData;
27 class ZAxisTransform;
28 template <class T> class Selector;
29 
30 namespace ZDomain { class Info; }
31 
32 namespace visBase
33 {
34  class Annotation;
35  class MarkerSet;
36  class PolygonSelection;
37  class SceneColTab;
38  class TopBotImage;
39  class Transformation;
40  class VisualObject;
41 }
42 
43 namespace visSurvey
44 {
45 
76 {
77 public:
78  static Scene* create()
80 
81  virtual void removeAll();
82  virtual void addObject(visBase::DataObject*);
90  virtual int size() const;
91  virtual int getFirstIdx(const DataObject*) const;
92  virtual int getFirstIdx(int did) const
93  { return visBase::Scene::getFirstIdx(did); }
95  const visBase::DataObject* getObject(int) const;
96 
99  virtual void removeObject(int idx);
100 
102  const TrcKeyZSampling& getTrcKeyZSampling() const { return tkzs_; }
103  void showAnnotText(bool);
104  bool isAnnotTextShown() const;
105  void showAnnotScale(bool);
106  bool isAnnotScaleShown() const;
107  void showAnnotGrid(bool);
108  bool isAnnotGridShown() const;
109  void showAnnot(bool);
110  bool isAnnotShown() const;
111  void setAnnotText(int dim,const uiString&);
112  void setAnnotFont(const FontData&);
113  const FontData& getAnnotFont() const;
117 
118  visBase::PolygonSelection* getPolySelection() { return polyselector_; }
120  const Selector<Coord3>* getSelector() const;
121  visBase::SceneColTab* getSceneColTab() { return scenecoltab_; }
123 
129  Coord3 getMousePos(bool displayspace) const;
133  const MouseCursor* getMouseCursor() const;
135  const KeyboardEvent& getKeyboardEvent() const { return kbevent_; }
136  const MouseEvent& getMouseEvent() const { return mouseevent_; }
138 
140 
141  void setFixedZStretch(float);
147  float getFixedZStretch() const;
148 
149  void setTempZStretch(float);
150  float getTempZStretch() const;
151 
152  void setZScale(float);
157  float getZScale() const;
161  float getApparentVelocity(float zstretch) const;
162  /*<!Velocity Unit depends on display depth in
163  feet setting. */
164 
171 
172  bool isRightHandSystem() const;
173 
175  const ZDomain::Info& zDomainInfo() const;
177 
178  // Convenience
179  const char* zDomainKey() const;
181  const char* zDomainUnitStr(bool withparens=false) const;
182  int zDomainUserFactor() const;
183  const char* zDomainID() const;
184 
185  void setAnnotColor(const Color&);
186  const Color getAnnotColor() const;
187  void setMarkerPos(const TrcKeyValue&,int sceneid);
188  void setMarkerSize(float );
189  float getMarkerSize() const;
190  const Color& getMarkerColor() const;
191  void setMarkerColor(const Color&);
192 
193  void createTopBotImage(bool istop);
195 
196  void fillPar(IOPar&) const;
197  virtual bool usePar(const IOPar&);
198 
199  static const char* sKeyZStretch();
200 
201 protected:
203 
204  void setup();
211  static const Color& cDefaultMarkerColor();
212 
215 
219 
221 
225 
227 
233 
236  int getImageFromPar(const IOPar&,const char*,
238 
245 
247 
249  float zscale_;
254 
256  bool usepar_;
259 
260  static const char* sKeyShowAnnot();
261  static const char* sKeyShowScale();
262  static const char* sKeyShowGrid();
263  static const char* sKeyAnnotFont();
264  static const char* sKeyAnnotColor();
265  static const char* sKeyMarkerColor();
266  static const char* sKeyShowCube();
267  static const char* sKeyZAxisTransform();
268  static const char* sKeyAppAllowShading();
269  static const char* sKeyTopImageID();
270  static const char* sKeyBotImageID();
271 
272 public:
274  const visBase::EventInfo&,
275  bool outerface,bool ignoreocclusion) const;
277  const visBase::EventInfo&, bool outerface,
278  bool ignoreocclusion,
279  bool inlcrlspace=true ) const;
280 
281  void setMoreObjectsToDoHint(bool yn);
283  void selectPosModeManipObj(int selid);
284 };
285 
286 } // namespace visSurvey
287 
288 
visSurvey::Scene::addUTMObject
void addUTMObject(visBase::VisualObject *)
visSurvey::Scene::zDomainUnitStr
const char * zDomainUnitStr(bool withparens=false) const
visSurvey::Scene::getTopBotImage
visBase::TopBotImage * getTopBotImage(bool istop)
mouseevent.h
visSurvey::Scene::getKeyboardEvent
const KeyboardEvent & getKeyboardEvent() const
Definition: vissurvscene.h:135
ZDomain
Definition: zdomain.h:20
visSurvey::Scene::sKeyZStretch
static const char * sKeyZStretch()
ZDomain::Info
Information of z-domain.
Definition: zdomain.h:93
Coord3
A cartesian coordinate in 3D space.
Definition: coord.h:72
visSurvey::Scene::setMarkerSize
void setMarkerSize(float)
Selector
Interface for classes that select on basis of a key.
Definition: selector.h:25
visSurvey::Scene::removeObject
virtual void removeObject(int idx)
visSurvey::Scene::markerset_
visBase::MarkerSet * markerset_
Definition: vissurvscene.h:229
visSurvey::Scene::create
static Scene * create() mCreateDataObj(Scene)
visSurvey::Scene::getMousePos
Coord3 getMousePos(bool displayspace) const
visSurvey::Scene::setAnnotFont
void setAnnotFont(const FontData &)
visSurvey::Scene::inlcrlscale_
RefMan< visBase::Transformation > inlcrlscale_
Definition: vissurvscene.h:223
visSurvey::Scene::getSelector
const Selector< Coord3 > * getSelector() const
visSurvey::Scene::getApparentVelocity
float getApparentVelocity(float zstretch) const
visSurvey::Scene::coordselector_
Selector< Coord3 > * coordselector_
Definition: vissurvscene.h:231
visSurvey::Scene::sKeyAnnotFont
static const char * sKeyAnnotFont()
visSurvey::Scene::setSceneColTab
void setSceneColTab(visBase::SceneColTab *)
visSurvey::Scene::scenecoltab_
visBase::SceneColTab * scenecoltab_
Definition: vissurvscene.h:232
visSurvey::Scene::getMarkerColor
const Color & getMarkerColor() const
visSurvey::Scene::updateTransforms
void updateTransforms(const TrcKeyZSampling &)
visSurvey::Scene::polyselector_
visBase::PolygonSelection * polyselector_
Definition: vissurvscene.h:230
trckeyvalue.h
visSurvey::Scene::passMouseCursor
void passMouseCursor(const MouseCursor &)
visSurvey::Scene::setTempZStretch
void setTempZStretch(float)
visBase
Definition: visannot.h:43
visSurvey::Scene::getMoreObjectsToDoHint
bool getMoreObjectsToDoHint() const
visSurvey::Scene::zDomainID
const char * zDomainID() const
visSurvey::Scene::getSceneColTab
visBase::SceneColTab * getSceneColTab()
Definition: vissurvscene.h:121
visSurvey::Scene::createTopBotImage
void createTopBotImage(bool istop)
visSurvey::Scene::mouseevent_
MouseEvent mouseevent_
Definition: vissurvscene.h:251
visSurvey::Scene::getFixedZStretch
float getFixedZStretch() const
keyboardevent.h
visSurvey::Scene::showAnnotGrid
void showAnnotGrid(bool)
visBase::TopBotImage
Definition: vistopbotimage.h:28
visSurvey::Scene::getTempZStretch
float getTempZStretch() const
visSurvey::Scene::mousecursorchange
Notifier< Scene > mousecursorchange
Definition: vissurvscene.h:125
visSurvey::Scene::datatransform_
ZAxisTransform * datatransform_
Definition: vissurvscene.h:226
visSurvey::Scene::getAnnotScale
const TrcKeyZSampling & getAnnotScale() const
visSurvey::Scene::showAnnot
void showAnnot(bool)
visSurvey::Scene::getPolySelection
visBase::PolygonSelection * getPolySelection()
Definition: vissurvscene.h:118
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
visSurvey::Scene::sKeyAppAllowShading
static const char * sKeyAppAllowShading()
visSurvey::Scene::xytmousepos_
Coord3 xytmousepos_
Definition: vissurvscene.h:239
visSurvey::Scene::getZAxisTransform
ZAxisTransform * getZAxisTransform()
visSurvey::Scene::zDomainUserName
uiString zDomainUserName() const
visBase::DataObject
DataObject is the base class off all objects that are used in Visualization and ought to be shared in...
Definition: visdata.h:63
visSurvey::Scene::utm2disptransform_
RefMan< visBase::Transformation > utm2disptransform_
Definition: vissurvscene.h:224
visSurvey::Scene::setEventHandled
void setEventHandled()
visSurvey::Scene::getObject
const visBase::DataObject * getObject(int) const
visSurvey::Scene::getUTM2DisplayTransform
const mVisTrans * getUTM2DisplayTransform() const
visBase::VisualObject
Definition: visobject.h:37
visSurvey::Scene::inlcrlrotation_
RefMan< visBase::Transformation > inlcrlrotation_
Definition: vissurvscene.h:222
visSurvey::Scene::infopar_
IOPar & infopar_
Definition: vissurvscene.h:244
visscene.h
visSurvey::Scene::zDomainInfo
const ZDomain::Info & zDomainInfo() const
visSurvey::Scene::keypressed
Notifier< Scene > keypressed
Definition: vissurvscene.h:126
visSurvey::Scene::updateAnnotationText
void updateAnnotationText()
visSurvey::Scene::spacebarwaspressed_
bool spacebarwaspressed_
Definition: vissurvscene.h:218
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::Scene::getMousePos
TrcKeyValue getMousePos() const
visSurvey::Scene::selectPosModeManipObj
void selectPosModeManipObj(int selid)
visBase::SceneColTab
Definition: visscenecoltab.h:30
visSurvey::Scene::annot_
visBase::Annotation * annot_
Definition: vissurvscene.h:228
CallBacker
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:185
visSurvey::Scene::mouseposchange
Notifier< Scene > mouseposchange
Definition: vissurvscene.h:124
visSurvey::Scene::moreobjectstodo_
bool moreobjectstodo_
Definition: vissurvscene.h:257
visSurvey::Scene::mouseposval_
BufferString mouseposval_
Definition: vissurvscene.h:241
visSurvey::Scene::zDomainKey
const char * zDomainKey() const
visSurvey::Scene::sceneboundingboxupdated
Notifier< Scene > sceneboundingboxupdated
Definition: vissurvscene.h:128
visSurvey::Scene::zscale_
float zscale_
Definition: vissurvscene.h:249
bufstring.h
visSurvey::Scene::getAllowedZDomains
void getAllowedZDomains(BufferString &) const
visSurvey::Scene::setZDomainInfo
void setZDomainInfo(const ZDomain::Info &)
TrcKeyZSampling
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:35
visSurvey::Scene::getMarkerSize
float getMarkerSize() const
visSurvey::Scene::usepar_
bool usepar_
Definition: vissurvscene.h:256
visSurvey::Scene::savePropertySettings
void savePropertySettings()
visSurvey::Scene::~Scene
~Scene()
visSurvey::Scene::getMousePosValue
BufferString getMousePosValue() const
visSurvey::Scene::setup
void setup()
ZAxisTransform
Base class for z-axis transforms.
Definition: zaxistransform.h:37
visSurvey::Scene::getAnnotColor
const Color getAnnotColor() const
visSurvey::Scene::mouseCursorCB
void mouseCursorCB(CallBacker *)
visSurvey::Scene::mouseclicked
Notifier< Scene > mouseclicked
Definition: vissurvscene.h:127
visSurvey::Scene::isAnnotTextShown
bool isAnnotTextShown() const
visSurvey::Scene::cDefaultMarkerColor
static const Color & cDefaultMarkerColor()
visSurvey::Scene::sKeyShowGrid
static const char * sKeyShowGrid()
visSurvey::Scene::setAnnotColor
void setAnnotColor(const Color &)
KeyboardEvent
Keyboard event.
Definition: keyboardevent.h:23
visSurvey::Scene::mousecursor_
const MouseCursor * mousecursor_
Definition: vissurvscene.h:243
visBase::PolygonSelection
Definition: vispolygonselection.h:40
trckeyzsampling.h
visSurvey::Scene::selChangeCB
void selChangeCB(CallBacker *)
visSurvey::Scene::setZAxisTransform
void setZAxisTransform(ZAxisTransform *, TaskRunner *)
visSurvey::Scene::setMarkerColor
void setMarkerColor(const Color &)
visSurvey::Scene::setMoreObjectsToDoHint
void setMoreObjectsToDoHint(bool yn)
visSurvey::Scene::sKeyTopImageID
static const char * sKeyTopImageID()
visSurvey::Scene::mouseCB
void mouseCB(CallBacker *)
TrcKeyValue
Definition: trckeyvalue.h:27
visBase::EventInfo
Definition: visevent.h:44
visSurvey::Scene::getZScale
float getZScale() const
visSurvey::Scene::zdomaininfo_
ZDomain::Info * zdomaininfo_
Definition: vissurvscene.h:248
visSurvey::Scene::mousetrckey_
TrcKey mousetrckey_
Definition: vissurvscene.h:240
visSurvey::Scene::setMarkerPos
void setMarkerPos(const TrcKeyValue &, int sceneid)
visSurvey::Scene::getMouseEvent
const MouseEvent & getMouseEvent() const
Definition: vissurvscene.h:136
TaskRunner
Class that can execute a task.
Definition: task.h:170
Notifier
Class to help setup a callback handling.
Definition: notify.h:126
visSurvey::Scene::isRightHandSystem
bool isRightHandSystem() const
visSurvey::Scene
Database for 3D objects.
Definition: vissurvscene.h:76
visSurvey::Scene::showAnnotText
void showAnnotText(bool)
visSurvey::Scene::getTrcKeyZSampling
const TrcKeyZSampling & getTrcKeyZSampling() const
Definition: vissurvscene.h:102
visSurvey::Scene::addInlCrlZObject
void addInlCrlZObject(visBase::DataObject *)
visSurvey::Scene::setPolygonSelector
void setPolygonSelector(visBase::PolygonSelection *)
visSurvey::Scene::sKeyShowScale
static const char * sKeyShowScale()
MPE::removeAll
void removeAll()
visSurvey::Scene::isAnnotShown
bool isAnnotShown() const
visSurvey::Scene::tkzs_
TrcKeyZSampling tkzs_
Definition: vissurvscene.h:252
position.h
mVisTrans
#define mVisTrans
Definition: visdata.h:28
visSurvey::Scene::getTempZStretchTransform
const mVisTrans * getTempZStretchTransform() const
visSurvey::Scene::updatelock_
Threads::Lock updatelock_
Definition: vissurvscene.h:258
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
TrcKey
Represents a unique trace position in one of the surveys that OpendTect is managing.
Definition: trckey.h:28
visSurvey::Scene::posmodemanipdeselobjid_
int posmodemanipdeselobjid_
Definition: vissurvscene.h:217
visSurvey::Scene::getMousePosString
BufferString getMousePosString() const
visSurvey::Scene::curzstretch_
float curzstretch_
Definition: vissurvscene.h:246
uiString
String that is able to hold international (UTF-8) strings for the user interface.
Definition: uistring.h:121
visSurvey::Scene::getZAxisTransform
const ZAxisTransform * getZAxisTransform() const
visSurvey::Scene::setAnnotScale
void setAnnotScale(const TrcKeyZSampling &)
visBase::DataObjectGroup::getFirstIdx
virtual int getFirstIdx(int id) const
visSurvey::Scene::getInlCrl2DisplayTransform
const mVisTrans * getInlCrl2DisplayTransform() const
visSurvey::Scene::hoveredposmodemanipobjids_
TypeSet< int > hoveredposmodemanipobjids_
Definition: vissurvscene.h:216
visBase::Annotation
Annotation is a simple wireframe box with text on its axis.
Definition: visannot.h:53
visSurvey::Scene::mouseposstr_
BufferString mouseposstr_
Definition: vissurvscene.h:242
visSurvey::Scene::getTopBottomSurveyPos
Coord3 getTopBottomSurveyPos(const visBase::EventInfo &, bool outerface, bool ignoreocclusion, bool inlcrlspace=true) const
visSurvey::Scene::tempzstretchtrans_
RefMan< visBase::Transformation > tempzstretchtrans_
Definition: vissurvscene.h:220
MouseCursor
Definition of a mouse cursor, can be either a predefined shape (from the enum, or a file....
Definition: mousecursor.h:26
mCreateDataObj
#define mCreateDataObj(clss)
Definition: visdata.h:214
visSurvey::Scene::sKeyBotImageID
static const char * sKeyBotImageID()
visSurvey::Scene::kbevent_
KeyboardEvent kbevent_
Definition: vissurvscene.h:250
visSurvey::Scene::isAnnotScaleShown
bool isAnnotScaleShown() const
visSurvey::Scene::getAnnotFont
const FontData & getAnnotFont() const
visSurvey::Scene::sKeyAnnotColor
static const char * sKeyAnnotColor()
visSurvey::Scene::zDomainUserFactor
int zDomainUserFactor() const
visSurvey::Scene::sKeyZAxisTransform
static const char * sKeyZAxisTransform()
visSurvey::Scene::topimg_
visBase::TopBotImage * topimg_
Definition: vissurvscene.h:234
visSurvey::Scene::getTopBottomIntersection
Coord3 getTopBottomIntersection(const visBase::EventInfo &, bool outerface, bool ignoreocclusion) const
visSurvey::Scene::showAnnotScale
void showAnnotScale(bool)
visSurvey
Used for displaying a polyline, preview for a random line created throught well path.
Definition: visarrowdisplay.h:20
visSurvey::Scene::createMarkerSet
visBase::MarkerSet * createMarkerSet() const
visSurvey::Scene::togglePosModeManipObjSel
void togglePosModeManipObjSel()
visSurvey::Scene::getMouseCursor
const MouseCursor * getMouseCursor() const
visSurvey::Scene::annotscale_
TrcKeyZSampling annotscale_
Definition: vissurvscene.h:253
FontData
Data needed to make an actual font.
Definition: fontdata.h:20
visSurvey::Scene::sKeyMarkerColor
static const char * sKeyMarkerColor()
visSurvey::Scene::fillPar
void fillPar(IOPar &) const
visSurvey::Scene::getImageFromPar
int getImageFromPar(const IOPar &, const char *, visBase::TopBotImage *&)
visSurvey::Scene::setZScale
void setZScale(float)
visSurvey::Scene::objectMoved
void objectMoved(CallBacker *)
visSurvey::Scene::setTrcKeyZSampling
void setTrcKeyZSampling(const TrcKeyZSampling &)
visSurvey::Scene::setFixedZStretch
void setFixedZStretch(float)
MouseEvent
Definition: mouseevent.h:73
Color
Color is an RGB color object, with a transparancy. The storage is in a 4-byte integer,...
Definition: color.h:26
visSurvey::Scene::botimg_
visBase::TopBotImage * botimg_
Definition: vissurvscene.h:235
visSurvey::Scene::keyPressCB
void keyPressCB(CallBacker *)
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::Scene::ctshownusepar_
bool ctshownusepar_
Definition: vissurvscene.h:255
visSurvey::Scene::sKeyShowAnnot
static const char * sKeyShowAnnot()
visSurvey::Scene::sKeyShowCube
static const char * sKeyShowCube()
visSurvey::Scene::setAnnotText
void setAnnotText(int dim, const uiString &)
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
visSurvey::Scene::isAnnotGridShown
bool isAnnotGridShown() const
visBase::Scene
Scene manages all DataObjects and has some managing functions such as the selection management and va...
Definition: visscene.h:40
visSurvey::Scene::getObject
visBase::DataObject * getObject(int)
TypeSet< int >
RefMan< visBase::Transformation >
visSurvey::Scene::usePar
virtual bool usePar(const IOPar &)

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