OpendTect  6.6
visplanedatadisplay.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: Kris Tingdahl
8  Date: Jan 2002
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 -*/
13 
14 #include "vissurveymod.h"
15 #include "vismultiattribsurvobj.h"
17 #include "vistexturerect.h"
18 
19 #include "mousecursor.h"
20 #include "oduicommon.h"
21 #include "undo.h"
22 
23 template <class T> class Array2D;
24 namespace visBase{ class GridLines; }
25 
26 class BinIDValueSet;
27 
28 namespace visSurvey
29 {
30 
31 class Scene;
32 
43 public:
44 
47 
49 
52  PlaneDataDisplay, "PlaneDataDisplay",
53  ::toUiString(sFactoryKeyword()));
54 
55  bool isInlCrl() const { return true; }
56 
58  SliceType getOrientation() const { return orientation_; }
59 
60  bool hasPosModeManipulator() const { return true; }
61  void showManipulator(bool);
62  bool isManipulatorShown() const;
63  bool isManipulated() const;
64  bool canResetManipulation() const { return true; }
70  { return &movefinished_; }
72  { return &datachanged_; }
73 
74  bool allowMaterialEdit() const { return true; }
75 
76  int nrResolutions() const;
78 
80 
81  TrcKeyZSampling getTrcKeyZSampling(int attrib=-1) const;
83  TypeSet<Coord>*) const;
85  bool displayspace,
86  int attrib=-1) const;
87  TrcKeyZSampling getDataPackSampling(int attrib=0) const;
90  void setRandomPosData(int attrib,
91  const DataPointSet*,
92  TaskRunner*);
94 
95  bool setDataPackID(int attrib,DataPack::ID,
96  TaskRunner*);
97  DataPack::ID getDataPackID(int attrib) const;
100  { return DataPackMgr::SeisID(); }
101 
102  visBase::GridLines* gridlines() { return gridlines_; }
103 
104  const MouseCursor* getMouseCursor() const { return &mousecursor_; }
105 
107  IOPar& iop ) const
108  { return MultiTextureSurveyObject
109  ::getMousePosInfo(ei,iop);}
111  Coord3&,
112  BufferString& val,
113  BufferString& info) const;
115 
116  virtual float calcDist(const Coord3&) const;
117  virtual float maxDist() const;
118  virtual Coord3 getNormal(const Coord3&) const;
119  virtual bool allowsPicks() const { return true; }
120 
123 
124  void setTranslationDragKeys(bool depth, int );
131  int getTranslationDragKeys(bool depth) const;
136  bool isVerticalPlane() const;
137 
138  virtual bool canDuplicate() const { return true; }
140 
141  virtual void annotateNextUpdateStage(bool yn);
142 
143  static const char* sKeyDepthKey() { return "DepthKey"; }
144  static const char* sKeyPlaneKey() { return "PlaneKey"; }
145 
146  virtual void fillPar(IOPar&) const;
147  virtual bool usePar(const IOPar&);
148 
151  { return texturerect_; }
152  float getZScale() const;
154  { return displaytrans_; }
156  Undo& undo();
157  const Undo& undo() const;
158 
159 protected:
161 
162  void setRandomPosDataNoCache(int attrib,
163  const BinIDValueSet*,
164  TaskRunner*);
165  void updateChannels(int attrib,TaskRunner*);
166  void createTransformedDataPack(int attrib,
167  TaskRunner* =0);
169  void setScene(Scene*);
171  void updateRanges(bool resetpos=false);
172  void updateRanges(bool resetinlcrl=false,
173  bool resetz=false);
183 
184  bool getCacheValue(int attrib,int version,
185  const Coord3&,float&) const;
186  void addCache();
187  void removeCache(int);
188  void swapCache(int,int);
189  void emptyCache(int);
190  bool hasCache(int) const;
191 
194 
198 
201 
204 
207 
213 
215  int voiidx_;
216 
219 
223 
225  {
226  bool refreeze_;
229  Coord oldimagesize_; // obsolete
230  };
234 
235  static const char* sKeyOrientation() { return "Orientation"; }
236  static const char* sKeyResolution() { return "Resolution"; }
237  static const char* sKeyGridLinesID() { return "GridLines ID"; }
238 
239  void updateTexOriginAndScale(int attrib,
240  const TrcKeyZSampling&);
241 };
242 
243 } // namespace visSurvey
244 
ConstRefMan< mVisTrans >
visSurvey::PlaneDataDisplay::setTranslationDragKeys
void setTranslationDragKeys(bool depth, int)
visSurvey::PlaneDataDisplay::getZAxisTransform
const ZAxisTransform * getZAxisTransform() const
Coord3
A cartesian coordinate in 3D space.
Definition: coord.h:72
visSurvey::PlaneDataDisplay::resetManipulation
void resetManipulation()
visSurvey::PlaneDataDisplay::mDeclareEnumUtils
mDeclareEnumUtils(SliceType)
visSurvey::PlaneDataDisplay::getDisplayTransformation
const mVisTrans * getDisplayTransformation() const
Definition: visplanedatadisplay.h:153
visSurvey::PlaneDataDisplay::getDataPackMgrID
virtual DataPackMgr::ID getDataPackMgrID() const
Definition: visplanedatadisplay.h:99
visSurvey::PlaneDataDisplay::getDataPackID
DataPack::ID getDataPackID(int attrib) const
visSurvey::PlaneDataDisplay::emptyCache
void emptyCache(int)
OD::SliceType
SliceType
OpendTect flat slice types.
Definition: oduicommon.h:32
visSurvey::PlaneDataDisplay::getNormal
virtual Coord3 getNormal(const Coord3 &) const
visSurvey::PlaneDataDisplay::gridlines
visBase::GridLines * gridlines()
Definition: visplanedatadisplay.h:102
visSurvey::PlaneDataDisplay::draggerFinish
void draggerFinish(CallBacker *)
visSurvey::PlaneDataDisplay::updateMouseCursorCB
void updateMouseCursorCB(CallBacker *)
visSurvey::PlaneDataDisplay::mODTextTranslationClass
mODTextTranslationClass(PlaneDataDisplay)
visSurvey::PlaneDataDisplay::duplicate
virtual SurveyObject * duplicate(TaskRunner *) const
visSurvey::PlaneDataDisplay::getMovementNotifier
NotifierAccess * getMovementNotifier()
Definition: visplanedatadisplay.h:69
ObjectSet
Set of pointers to objects.
Definition: commontypes.h:31
visSurvey::PlaneDataDisplay::mDefaultFactoryInstantiation
mDefaultFactoryInstantiation(visSurvey::SurveyObject, PlaneDataDisplay, "PlaneDataDisplay", ::toUiString(sFactoryKeyword()))
BinIDValueSet
A Pos::IdxPairValueSet with BinIDs.
Definition: binidvalset.h:23
visSurvey::MultiTextureSurveyObject
Definition: vismultiattribsurvobj.h:37
visSurvey::PlaneDataDisplay::addCache
void addCache()
visSurvey::PlaneDataDisplay::setRandomPosDataNoCache
void setRandomPosDataNoCache(int attrib, const BinIDValueSet *, TaskRunner *)
File::toUiString
Export_Basic uiString toUiString(ViewStyle)
visSurvey::PlaneDataDisplay::getMousePosInfo
void getMousePosInfo(const visBase::EventInfo &, Coord3 &, BufferString &val, BufferString &info) const
visSurvey::PlaneDataDisplay::calcDist
virtual float calcDist(const Coord3 &) const
visBase
Definition: visannot.h:43
visSurvey::PlaneDataDisplay::curicstep_
BinID curicstep_
Definition: visplanedatadisplay.h:209
visSurvey::PlaneDataDisplay::UpdateStageInfo::refreeze_
bool refreeze_
Definition: visplanedatadisplay.h:226
visSurvey::PlaneDataDisplay::~PlaneDataDisplay
~PlaneDataDisplay()
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
visSurvey::PlaneDataDisplay::datachanged_
Notifier< PlaneDataDisplay > datachanged_
Definition: visplanedatadisplay.h:212
visSurvey::PlaneDataDisplay::fillPar
virtual void fillPar(IOPar &) const
visSurvey::PlaneDataDisplay::getMouseCursor
const MouseCursor * getMouseCursor() const
Definition: visplanedatadisplay.h:104
visSurvey::PlaneDataDisplay::undo
const Undo & undo() const
visSurvey::PlaneDataDisplay::maxDist
virtual float maxDist() const
visSurvey::PlaneDataDisplay::datatransform_
ZAxisTransform * datatransform_
Definition: visplanedatadisplay.h:214
visSurvey::PlaneDataDisplay::sKeyResolution
static const char * sKeyResolution()
Definition: visplanedatadisplay.h:236
DataPackMgr::ID
int ID
Each Mgr has its own ID.
Definition: datapack.h:139
visSurvey::PlaneDataDisplay::hasCache
bool hasCache(int) const
visSurvey::PlaneDataDisplay::setOrientation
void setOrientation(SliceType)
visSurvey::PlaneDataDisplay::displaytrans_
ConstRefMan< mVisTrans > displaytrans_
Definition: visplanedatadisplay.h:217
visSurvey::SurveyObject
Base class for all 'Display' objects.
Definition: vissurvobj.h:58
visSurvey::PlaneDataDisplay::getDataPackSampling
TrcKeyZSampling getDataPackSampling(int attrib=0) const
visSurvey::PlaneDataDisplay::voiidx_
int voiidx_
Definition: visplanedatadisplay.h:215
visBase::EventCatcher
Definition: visevent.h:87
visSurvey::PlaneDataDisplay::snapPosition
TrcKeyZSampling snapPosition(const TrcKeyZSampling &) const
visSurvey::PlaneDataDisplay::updateTexOriginAndScale
void updateTexOriginAndScale(int attrib, const TrcKeyZSampling &)
visSurvey::PlaneDataDisplay::sKeyDepthKey
static const char * sKeyDepthKey()
Definition: visplanedatadisplay.h:143
CallBacker
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:185
visSurvey::PlaneDataDisplay::eventcatcher_
visBase::EventCatcher * eventcatcher_
Definition: visplanedatadisplay.h:195
visSurvey::PlaneDataDisplay::getCacheValue
bool getCacheValue(int attrib, int version, const Coord3 &, float &) const
Coord is in attribute space.
visSurvey::PlaneDataDisplay::datapackids_
TypeSet< DataPack::ID > datapackids_
Definition: visplanedatadisplay.h:202
visSurvey::PlaneDataDisplay::updateChannels
void updateChannels(int attrib, TaskRunner *)
visSurvey::SurveyObject::AttribFormat
AttribFormat
Definition: vissurvobj.h:175
visBase::TextureRectangle
A TextureRectangle is a Rectangle with a datatexture. The data is set via setData.
Definition: vistexturerect.h:35
mousecursor.h
visSurvey::PlaneDataDisplay::canResetManipulation
bool canResetManipulation() const
Definition: visplanedatadisplay.h:64
visSurvey::PlaneDataDisplay::getAttributeFormat
SurveyObject::AttribFormat getAttributeFormat(int attrib=-1) const
TrcKeyZSampling
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:35
visSurvey::PlaneDataDisplay::allowMaterialEdit
bool allowMaterialEdit() const
Definition: visplanedatadisplay.h:74
visSurvey::PlaneDataDisplay::isManipulated
bool isManipulated() const
visSurvey::PlaneDataDisplay::setTrcKeyZSampling
void setTrcKeyZSampling(const TrcKeyZSampling &)
visSurvey::PlaneDataDisplay::getDataChangedNotifier
NotifierAccess * getDataChangedNotifier()
Definition: visplanedatadisplay.h:71
visSurvey::PlaneDataDisplay::rposcache_
ObjectSet< BinIDValueSet > rposcache_
Definition: visplanedatadisplay.h:206
visSurvey::PlaneDataDisplay::updateTexShiftAndGrowth
void updateTexShiftAndGrowth()
visSurvey::PlaneDataDisplay::mousecursor_
MouseCursor mousecursor_
Definition: visplanedatadisplay.h:196
DataPointSet
Set of data points with group selection.
Definition: datapointset.h:48
BinID
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:31
visSurvey::PlaneDataDisplay::updateRanges
void updateRanges(bool resetinlcrl=false, bool resetz=false)
Coord
A cartesian coordinate in 2D space.
Definition: coord.h:25
ZAxisTransform
Base class for z-axis transforms.
Definition: zaxistransform.h:37
visSurvey::PlaneDataDisplay::dragger_
RefMan< visBase::DepthTabPlaneDragger > dragger_
Definition: visplanedatadisplay.h:197
DataPackMgr::SeisID
static ID SeisID()
Cube/Block (N1xN2xN3) data: 3.
vistexturerect.h
visSurvey::PlaneDataDisplay::getZScale
float getZScale() const
visSurvey::PlaneDataDisplay::getOrientation
SliceType getOrientation() const
Definition: visplanedatadisplay.h:58
visSurvey::SurveyObject::getMousePosInfo
virtual void getMousePosInfo(const visBase::EventInfo &, Coord3 &xyzpos, BufferString &val, BufferString &info) const
Definition: vissurvobj.h:250
visSurvey::PlaneDataDisplay::UpdateStageInfo
Definition: visplanedatadisplay.h:225
visSurvey::PlaneDataDisplay::setRandomPosData
void setRandomPosData(int attrib, const DataPointSet *, TaskRunner *)
undo.h
visSurvey::PlaneDataDisplay::UpdateStageInfo::oldcs_
TrcKeyZSampling oldcs_
Definition: visplanedatadisplay.h:227
visSurvey::PlaneDataDisplay::updateRanges
void updateRanges(bool resetpos=false)
visSurvey::PlaneDataDisplay::forcemanipupdate_
bool forcemanipupdate_
Definition: visplanedatadisplay.h:221
visSurvey::PlaneDataDisplay::usePar
virtual bool usePar(const IOPar &)
visSurvey::PlaneDataDisplay::getMousePosInfo
void getMousePosInfo(const visBase::EventInfo &ei, IOPar &iop) const
Definition: visplanedatadisplay.h:106
visSurvey::PlaneDataDisplay::originalresolution_
int originalresolution_
Definition: visplanedatadisplay.h:220
visSurvey::PlaneDataDisplay::interactivetexturedisplay_
bool interactivetexturedisplay_
Definition: visplanedatadisplay.h:222
visSurvey::PlaneDataDisplay::isManipulatorShown
bool isManipulatorShown() const
visSurvey::PlaneDataDisplay::getTrcKeyZSampling
TrcKeyZSampling getTrcKeyZSampling(bool manippos, bool displayspace, int attrib=-1) const
visSurvey::PlaneDataDisplay::showManipulator
void showManipulator(bool)
NotifierAccess
Interface class for Notifier. See comments there.
Definition: notify.h:22
vismultiattribsurvobj.h
visSurvey::PlaneDataDisplay::hasPosModeManipulator
bool hasPosModeManipulator() const
Definition: visplanedatadisplay.h:60
visSurvey::PlaneDataDisplay::isVerticalPlane
bool isVerticalPlane() const
visSurvey::PlaneDataDisplay::swapCache
void swapCache(int, int)
visSurvey::PlaneDataDisplay::canDuplicate
virtual bool canDuplicate() const
Definition: visplanedatadisplay.h:138
visSurvey::PlaneDataDisplay::transfdatapackids_
TypeSet< DataPack::ID > transfdatapackids_
Definition: visplanedatadisplay.h:203
visBase::EventInfo
Definition: visevent.h:44
visSurvey::PlaneDataDisplay::setDraggerPos
void setDraggerPos(const TrcKeyZSampling &)
visSurvey::PlaneDataDisplay::getManipulationString
BufferString getManipulationString() const
visSurvey::PlaneDataDisplay::setSceneEventCatcher
void setSceneEventCatcher(visBase::EventCatcher *)
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
Database for 3D objects.
Definition: vissurvscene.h:76
visSurvey::PlaneDataDisplay::nrResolutions
int nrResolutions() const
visSurvey::PlaneDataDisplay::getTraceKeyPath
void getTraceKeyPath(TrcKeyPath &, TypeSet< Coord > *) const
visdepthtabplanedragger.h
visSurvey::PlaneDataDisplay::texturerect_
RefMan< visBase::TextureRectangle > texturerect_
Definition: visplanedatadisplay.h:218
visSurvey::PlaneDataDisplay::UpdateStageInfo::oldimagesize_
Coord oldimagesize_
Definition: visplanedatadisplay.h:229
visSurvey::PlaneDataDisplay::moving_
Notifier< PlaneDataDisplay > moving_
Definition: visplanedatadisplay.h:210
visSurvey::PlaneDataDisplay::getObjectInfo
void getObjectInfo(BufferString &) const
visSurvey::PlaneDataDisplay::getRandomPos
void getRandomPos(DataPointSet &, TaskRunner *=0) const
visSurvey::PlaneDataDisplay::PlaneDataDisplay
PlaneDataDisplay()
visSurvey::PlaneDataDisplay::sKeyGridLinesID
static const char * sKeyGridLinesID()
Definition: visplanedatadisplay.h:237
visSurvey::PlaneDataDisplay::startmovepos_
TrcKeyZSampling startmovepos_
Definition: visplanedatadisplay.h:232
visSurvey::PlaneDataDisplay::gridlines_
visBase::GridLines * gridlines_
Definition: visplanedatadisplay.h:199
oduicommon.h
mVisTrans
#define mVisTrans
Definition: visdata.h:28
visSurvey::PlaneDataDisplay::getDisplayedDataPackID
DataPack::ID getDisplayedDataPackID(int attrib) const
visSurvey::PlaneDataDisplay::sKeyOrientation
static const char * sKeyOrientation()
Definition: visplanedatadisplay.h:235
visSurvey::PlaneDataDisplay
Used for displaying an inline, crossline or timeslice.
Definition: visplanedatadisplay.h:42
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
visSurvey::PlaneDataDisplay::annotateNextUpdateStage
virtual void annotateNextUpdateStage(bool yn)
visSurvey::PlaneDataDisplay::setResolution
void setResolution(int, TaskRunner *)
visSurvey::PlaneDataDisplay::csfromsession_
TrcKeyZSampling csfromsession_
Definition: visplanedatadisplay.h:208
visSurvey::PlaneDataDisplay::UpdateStageInfo::oldorientation_
SliceType oldorientation_
Definition: visplanedatadisplay.h:228
DataPack::ID
int ID
Definition: datapack.h:37
visSurvey::PlaneDataDisplay::createTransformedDataPack
void createTransformedDataPack(int attrib, TaskRunner *=0)
visSurvey::PlaneDataDisplay::getManipulationNotifier
NotifierAccess * getManipulationNotifier()
visSurvey::PlaneDataDisplay::getDataTraceRange
Interval< float > getDataTraceRange() const
visSurvey::PlaneDataDisplay::SliceType
OD::SliceType SliceType
Definition: visplanedatadisplay.h:45
MouseCursor
Definition of a mouse cursor, can be either a predefined shape (from the enum, or a file....
Definition: mousecursor.h:26
visSurvey::PlaneDataDisplay::acceptManipulation
void acceptManipulation()
visSurvey::PlaneDataDisplay::dataTransformCB
void dataTransformCB(CallBacker *)
visSurvey::PlaneDataDisplay::displaycache_
ObjectSet< TypeSet< DataPack::ID > > displaycache_
Definition: visplanedatadisplay.h:205
visSurvey::PlaneDataDisplay::removeCache
void removeCache(int)
visSurvey
Used for displaying a polyline, preview for a random line created throught well path.
Definition: visarrowdisplay.h:20
visSurvey::PlaneDataDisplay::isInlCrl
bool isInlCrl() const
Definition: visplanedatadisplay.h:55
visSurvey::PlaneDataDisplay::undo_
Undo & undo_
Definition: visplanedatadisplay.h:233
visSurvey::PlaneDataDisplay::allowsPicks
virtual bool allowsPicks() const
Definition: visplanedatadisplay.h:119
visSurvey::PlaneDataDisplay::manipChanged
void manipChanged(CallBacker *)
visBase::GridLines
Definition: visgridlines.h:32
visSurvey::PlaneDataDisplay::getTextureRectangle
const visBase::TextureRectangle * getTextureRectangle() const
Definition: visplanedatadisplay.h:150
visSurvey::PlaneDataDisplay::setDataPackID
bool setDataPackID(int attrib, DataPack::ID, TaskRunner *)
visSurvey::PlaneDataDisplay::setZAxisTransform
bool setZAxisTransform(ZAxisTransform *, TaskRunner *)
visSurvey::PlaneDataDisplay::draggerMotion
void draggerMotion(CallBacker *)
visSurvey::PlaneDataDisplay::coltabChanged
void coltabChanged(CallBacker *)
visSurvey::PlaneDataDisplay::getTrcKeyZSampling
TrcKeyZSampling getTrcKeyZSampling(int attrib=-1) const
visSurvey::PlaneDataDisplay::draggerStart
void draggerStart(CallBacker *)
visSurvey::PlaneDataDisplay::updatestageinfo_
UpdateStageInfo updatestageinfo_
Definition: visplanedatadisplay.h:231
Interval< float >
visSurvey::PlaneDataDisplay::sKeyPlaneKey
static const char * sKeyPlaneKey()
Definition: visplanedatadisplay.h:144
visSurvey::PlaneDataDisplay::undo
Undo & undo()
visSurvey::PlaneDataDisplay::draggerRightClick
void draggerRightClick(CallBacker *)
visSurvey::PlaneDataDisplay::orientation_
SliceType orientation_
Definition: visplanedatadisplay.h:200
visSurvey::PlaneDataDisplay::getTranslationDragKeys
int getTranslationDragKeys(bool depth) const
visSurvey::PlaneDataDisplay::setScene
void setScene(Scene *)
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
Array2D
Array2D ( Subclass of ArrayND ) is a two dimensional array.
Definition: arraynd.h:140
visSurvey::PlaneDataDisplay::setDisplayTransformation
void setDisplayTransformation(const mVisTrans *)
visSurvey::PlaneDataDisplay::movefinished_
Notifier< PlaneDataDisplay > movefinished_
Definition: visplanedatadisplay.h:211
TypeSet< TrcKey >
RefMan< visBase::DepthTabPlaneDragger >
visSurvey::PlaneDataDisplay::updatePlanePos
bool updatePlanePos(const TrcKeyZSampling &)
visSurvey::PlaneDataDisplay::updateMainSwitch
void updateMainSwitch()
Undo
Class to handle undo/redo information.
Definition: undo.h:42

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