OpendTect  6.6
visseis2ddisplay.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: N. Hemstra
8  Date: January 2003
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 
13 -*/
14 
15 
16 #include "vissurveymod.h"
17 #include "vismultiattribsurvobj.h"
18 #include "multiid.h"
19 #include "posinfo2dsurv.h"
20 
21 class ZAxisTransform;
22 class Color;
23 
24 namespace visBase
25 {
26  class DrawStyle;
27  class PolyLine;
28  class Text2;
29  class TexturePanelStrip;
30 }
31 
32 namespace visSurvey
33 {
34 
41 public:
45  "Seis2DDisplay",
46  toUiString(sFactoryKeyword()))
47 
48  void setGeomID(Pos::GeomID geomid);
49  BufferString getLineName() const;
50  Pos::GeomID getGeomID() const { return geomid_; }
51 
53  const PosInfo::Line2DData& getGeometry() const { return geometry_; }
54 
55  StepInterval<float> getMaxZRange(bool displayspace) const;
57  StepInterval<float> getZRange(bool displayspace,int att=-1) const;
58 
60  TypeSet<Coord>*) const;
62 
66 
67  bool setDataPackID(int attrib,DataPack::ID,
68  TaskRunner*);
69  DataPack::ID getDataPackID(int attrib) const;
72  { return DataPackMgr::SeisID(); }
73 
74  bool allowsPicks() const { return true; }
75  bool allowMaterialEdit() const { return true; }
76  bool hasColor() const { return true; }
77  Color getColor() const;
78  void setColor(Color);
79  const OD::LineStyle* lineStyle() const;
81 
82  void enableAttrib(int attrib,bool yn);
83  bool hasSingleColorFallback() const { return true; }
84 
85  void showPanel(bool yn);
86  bool isPanelShown() const;
87  void showPolyLine(bool yn);
88  bool isPolyLineShown() const;
89  void showLineName(bool yn);
90  bool isLineNameShown() const;
91 
92  bool canDuplicate() const { return true; }
94 
97 
98  void setPixelDensity(float);
99  float getPixelDensity() const {return pixeldensity_;}
100 
101  float calcDist(const Coord3&) const;
102 
103  int nrResolutions() const;
105 
106  TrcKeyZSampling getTrcKeyZSampling( int attrib=-1 ) const
107  { return getTrcKeyZSampling( false, attrib ); }
109  int attrib=-1) const;
114  BufferString&) const;
116  IOPar&) const;
118  void snapToTracePos(Coord3&) const;
119  int getNearestTraceNr(const Coord3&) const;
120 
122  bool usemaxrange) const;
123  float getNearestSegment(const Coord3& pos,
124  bool usemaxrange,int& trcnr1st,
125  int& trcnr2nd,float& frac ) const;
126 
128  int* nearestpanelidx=0);
130  const Coord3 pos1,const Coord3 pos2,
131  TypeSet<Coord3>& projectedcoords);
132 
133  Coord getCoord(int trcnr) const;
134  virtual Coord3 getNormal( const Coord3& c ) const
135  { return SurveyObject::getNormal( c ); }
136  Coord getNormal(int trcnr) const;
137 
140 
141  void clearTexture(int);
142 
143  virtual void setAnnotColor(Color);
144  virtual Color getAnnotColor() const;
145 
147  { return &geomchanged_; }
149  { return &geomidchanged_; }
150 
151  static Seis2DDisplay* getSeis2DDisplay(const MultiID&,const char*);
153 
154  virtual void annotateNextUpdateStage(bool yn);
155 
156  void fillPar(IOPar&) const;
157  bool usePar(const IOPar&);
159  { return panelstrip_; }
160 
161  const visBase::Text2* getVisTextLineName() { return linename_; }
162 
163 protected:
165 
166  virtual void addCache();
167  void removeCache(int);
168  void swapCache(int,int);
169  void emptyCache(int);
170  bool hasCache(int) const;
171  bool getCacheValue(int attrib,int version,
172  const Coord3&,float&) const;
173 
175 
181 
183  void updateTexOriginAndScale(int attrib,
184  const TrcKeyZSampling&);
185  void updateChannels(int attrib,TaskRunner*);
186  void createTransformedDataPack(int attrib,
187  TaskRunner* =0);
188  bool getNearestTrace(const Coord3&,int& idx,
189  float& sqdist) const;
191  void updateRanges(bool trc,bool z);
192 
193  mutable int prevtrcidx_;
194 
198 
202 
204 
206  {
211  int size_;
213  };
214 
217 
222 
225  int voiidx_;
227 
229  {
232  };
234 
235  static const char* sKeyLineSetID();
236  static const char* sKeyTrcNrRange();
237  static const char* sKeyZRange();
238  static const char* sKeyShowLineName();
239  static const char* sKeyShowPanel();
240  static const char* sKeyShowPolyLine();
241 
242  //Old format
243  static const char* sKeyTextureID();
244 
245 public:
246 // old stuff, only here to keep other code compiling
247  MultiID getMultiID() const { return datasetid_; }
248 };
249 
250 } // namespace visSurvey
251 
252 
visSurvey::Seis2DDisplay::usePar
bool usePar(const IOPar &)
visSurvey::Seis2DDisplay::getNearestTrace
bool getNearestTrace(const Coord3 &, int &idx, float &sqdist) const
visSurvey::Seis2DDisplay::sKeyShowPanel
static const char * sKeyShowPanel()
Coord3
A cartesian coordinate in 3D space.
Definition: coord.h:72
OD::LineStyle
Definition: draw.h:118
visSurvey::Seis2DDisplay::UpdateStageInfo
Definition: visseis2ddisplay.h:229
visSurvey::Seis2DDisplay::isPanelShown
bool isPanelShown() const
visSurvey::Seis2DDisplay::prevtrcidx_
int prevtrcidx_
Definition: visseis2ddisplay.h:193
visSurvey::Seis2DDisplay::TraceDisplayInfo::zrg_
StepInterval< float > zrg_
Definition: visseis2ddisplay.h:212
visSurvey::Seis2DDisplay::geomid_
Pos::GeomID geomid_
Definition: visseis2ddisplay.h:223
visSurvey::Seis2DDisplay::getCoord
Coord getCoord(int trcnr) const
visSurvey::Seis2DDisplay::updatePanelStripPath
void updatePanelStripPath()
visSurvey::Seis2DDisplay::sKeyShowPolyLine
static const char * sKeyShowPolyLine()
visSurvey::Seis2DDisplay::showPanel
void showPanel(bool yn)
visSurvey::Seis2DDisplay::setAnnotColor
virtual void setAnnotColor(Color)
visSurvey::Seis2DDisplay::setDisplayTransformation
void setDisplayTransformation(const mVisTrans *)
visSurvey::Seis2DDisplay::sKeyLineSetID
static const char * sKeyLineSetID()
visSurvey::Seis2DDisplay::sKeyZRange
static const char * sKeyZRange()
Pos
Position.
Definition: commontypes.h:78
visSurvey::Seis2DDisplay::transfdatapackids_
TypeSet< DataPack::ID > transfdatapackids_
Definition: visseis2ddisplay.h:200
visSurvey::Seis2DDisplay
Used for displaying a 2D line.
Definition: visseis2ddisplay.h:40
visSurvey::Seis2DDisplay::hasColor
bool hasColor() const
Definition: visseis2ddisplay.h:76
visSurvey::Seis2DDisplay::createTransformedDataPack
void createTransformedDataPack(int attrib, TaskRunner *=0)
PosInfo::Line2DData
Position info for a 2D line.
Definition: posinfo2d.h:65
visSurvey::Seis2DDisplay::getMaxTraceNrRange
const StepInterval< int > & getMaxTraceNrRange() const
visSurvey::MultiTextureSurveyObject
Definition: vismultiattribsurvobj.h:37
visSurvey::Seis2DDisplay::canDuplicate
bool canDuplicate() const
Definition: visseis2ddisplay.h:92
visSurvey::Seis2DDisplay::setDataPackID
bool setDataPackID(int attrib, DataPack::ID, TaskRunner *)
File::toUiString
Export_Basic uiString toUiString(ViewStyle)
visSurvey::Seis2DDisplay::setPixelDensity
void setPixelDensity(float)
visSurvey::Seis2DDisplay::updateChannels
void updateChannels(int attrib, TaskRunner *)
visSurvey::Seis2DDisplay::updatestageinfo_
UpdateStageInfo updatestageinfo_
Definition: visseis2ddisplay.h:233
visSurvey::Seis2DDisplay::getNormal
virtual Coord3 getNormal(const Coord3 &c) const
Definition: visseis2ddisplay.h:134
visBase
Definition: visannot.h:43
visSurvey::Seis2DDisplay::updateRanges
void updateRanges(bool trc, bool z)
visSurvey::Seis2DDisplay::getAllowedDataType
Pol2D3D getAllowedDataType() const
Definition: visseis2ddisplay.h:110
visSurvey::Seis2DDisplay::projectOnNearestPanel
Coord3 projectOnNearestPanel(const Coord3 &pos, int *nearestpanelidx=0)
visSurvey::Seis2DDisplay::sKeyTrcNrRange
static const char * sKeyTrcNrRange()
visSurvey::Seis2DDisplay::getDataTraceRange
Interval< float > getDataTraceRange() const
visSurvey::Seis2DDisplay::getCacheValue
bool getCacheValue(int attrib, int version, const Coord3 &, float &) const
Coord is in attribute space.
mDefaultFactoryInstantiation
#define mDefaultFactoryInstantiation(baseclss, clss, keywrd, usernm)
Definition: factory.h:288
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
visSurvey::Seis2DDisplay::getMaxZRange
StepInterval< float > getMaxZRange(bool displayspace) const
visSurvey::Seis2DDisplay::geometry_
PosInfo::Line2DData & geometry_
Definition: visseis2ddisplay.h:203
visSurvey::Seis2DDisplay::setZAxisTransform
bool setZAxisTransform(ZAxisTransform *, TaskRunner *)
visSurvey::Seis2DDisplay::getNearestSubPos
Coord3 getNearestSubPos(const Coord3 &pos, bool usemaxrange) const
DataPackMgr::ID
int ID
Each Mgr has its own ID.
Definition: datapack.h:139
visSurvey::Seis2DDisplay::updatePanelStripZRange
void updatePanelStripZRange()
visSurvey::Seis2DDisplay::swapCache
void swapCache(int, int)
visSurvey::Seis2DDisplay::getDisplayedDataPackID
DataPack::ID getDisplayedDataPackID(int attrib) const
visSurvey::Seis2DDisplay::getAnnotColor
virtual Color getAnnotColor() const
visSurvey::SurveyObject
Base class for all 'Display' objects.
Definition: vissurvobj.h:58
visSurvey::Seis2DDisplay::panelstrip_
visBase::TexturePanelStrip * panelstrip_
Definition: visseis2ddisplay.h:197
CallBacker
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:185
visSurvey::Seis2DDisplay::mODTextTranslationClass
mODTextTranslationClass(Seis2DDisplay)
visSurvey::Seis2DDisplay::setTraceNrRange
void setTraceNrRange(const Interval< int > &)
visSurvey::SurveyObject::AttribFormat
AttribFormat
Definition: vissurvobj.h:175
visSurvey::Seis2DDisplay::sKeyTextureID
static const char * sKeyTextureID()
visSurvey::Seis2DDisplay::getZAxisTransform
const ZAxisTransform * getZAxisTransform() const
visSurvey::Seis2DDisplay::sKeyShowLineName
static const char * sKeyShowLineName()
visSurvey::Seis2DDisplay::getTraceNrRange
Interval< int > getTraceNrRange() const
TrcKeyZSampling
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:35
visSurvey::Seis2DDisplay::getMovementNotifier
NotifierAccess * getMovementNotifier()
Definition: visseis2ddisplay.h:146
visSurvey::Seis2DDisplay::getManipulationNotifier
NotifierAccess * getManipulationNotifier()
Definition: visseis2ddisplay.h:148
visSurvey::Seis2DDisplay::setLineStyle
void setLineStyle(const OD::LineStyle &)
visSurvey::Seis2DDisplay::getMousePosInfo
void getMousePosInfo(const visBase::EventInfo &, Coord3 &, BufferString &, BufferString &) const
visSurvey::Seis2DDisplay::getNormal
Coord getNormal(int trcnr) const
visSurvey::Seis2DDisplay::lineStyle
const OD::LineStyle * lineStyle() const
multiid.h
StepInterval< float >
Coord
A cartesian coordinate in 2D space.
Definition: coord.h:25
visSurvey::Seis2DDisplay::nrResolutions
int nrResolutions() const
visSurvey::Seis2DDisplay::updateLineNamePos
void updateLineNamePos()
ZAxisTransform
Base class for z-axis transforms.
Definition: zaxistransform.h:37
visSurvey::Seis2DDisplay::addCache
virtual void addCache()
DataPackMgr::SeisID
static ID SeisID()
Cube/Block (N1xN2xN3) data: 3.
visSurvey::Seis2DDisplay::clearTexture
void clearTexture(int)
visSurvey::Seis2DDisplay::hasCache
bool hasCache(int) const
visSurvey::Seis2DDisplay::pixeldensity_
float pixeldensity_
Definition: visseis2ddisplay.h:226
visSurvey::Seis2DDisplay::isPolyLineShown
bool isPolyLineShown() const
visSurvey::Seis2DDisplay::showLineName
void showLineName(bool yn)
NotifierAccess
Interface class for Notifier. See comments there.
Definition: notify.h:22
vismultiattribsurvobj.h
visSurvey::Seis2DDisplay::TraceDisplayInfo::rg_
Interval< int > rg_
Definition: visseis2ddisplay.h:210
visSurvey::Seis2DDisplay::getTexturePanelStrip
visBase::TexturePanelStrip * getTexturePanelStrip() const
Definition: visseis2ddisplay.h:158
visSurvey::Seis2DDisplay::getLineSegmentProjection
void getLineSegmentProjection(const Coord3 pos1, const Coord3 pos2, TypeSet< Coord3 > &projectedcoords)
visSurvey::Seis2DDisplay::getTraceKeyPath
void getTraceKeyPath(TrcKeyPath &, TypeSet< Coord > *) const
visSurvey::Seis2DDisplay::fillPar
void fillPar(IOPar &) const
visBase::EventInfo
Definition: visevent.h:44
visSurvey::Seis2DDisplay::setZRange
void setZRange(const StepInterval< float > &)
visSurvey::Seis2DDisplay::TraceDisplayInfo::size_
int size_
Definition: visseis2ddisplay.h:211
visSurvey::Seis2DDisplay::geomidchanged_
Notifier< Seis2DDisplay > geomidchanged_
Definition: visseis2ddisplay.h:221
TaskRunner
Class that can execute a task.
Definition: task.h:170
Notifier
Class to help setup a callback handling.
Definition: notify.h:126
visSurvey::Seis2DDisplay::getObjectInfo
void getObjectInfo(BufferString &) const
visSurvey::Seis2DDisplay::getSeis2DDisplay
static Seis2DDisplay * getSeis2DDisplay(const MultiID &, const char *)
visSurvey::Seis2DDisplay::allowMaterialEdit
bool allowMaterialEdit() const
Definition: visseis2ddisplay.h:75
visSurvey::Seis2DDisplay::getTrcKeyZSampling
TrcKeyZSampling getTrcKeyZSampling(bool displayspace, int attrib=-1) const
visSurvey::Seis2DDisplay::linename_
visBase::Text2 * linename_
Definition: visseis2ddisplay.h:219
visSurvey::Seis2DDisplay::getGeometry
const PosInfo::Line2DData & getGeometry() const
Definition: visseis2ddisplay.h:53
visSurvey::Seis2DDisplay::getVisTextLineName
const visBase::Text2 * getVisTextLineName()
Definition: visseis2ddisplay.h:161
visSurvey::Seis2DDisplay::getMultiID
MultiID getMultiID() const
Definition: visseis2ddisplay.h:247
visSurvey::Seis2DDisplay::datasetid_
MultiID datasetid_
Definition: visseis2ddisplay.h:201
visSurvey::Seis2DDisplay::maxtrcnrrg_
StepInterval< int > maxtrcnrrg_
Definition: visseis2ddisplay.h:216
visSurvey::Seis2DDisplay::getZRange
StepInterval< float > getZRange(bool displayspace, int att=-1) const
visSurvey::Seis2DDisplay::getNearestTraceNr
int getNearestTraceNr(const Coord3 &) const
visSurvey::Seis2DDisplay::getDataPackMgrID
virtual DataPackMgr::ID getDataPackMgrID() const
Definition: visseis2ddisplay.h:71
visSurvey::Seis2DDisplay::enableAttrib
void enableAttrib(int attrib, bool yn)
mVisTrans
#define mVisTrans
Definition: visdata.h:28
MultiID
Compound key consisting of ints.
Definition: multiid.h:24
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
visSurvey::Seis2DDisplay::polylineds_
visBase::DrawStyle * polylineds_
Definition: visseis2ddisplay.h:196
visSurvey::Seis2DDisplay::TraceDisplayInfo
Definition: visseis2ddisplay.h:206
visSurvey::Seis2DDisplay::TraceDisplayInfo::alltrcnrs_
TypeSet< int > alltrcnrs_
Definition: visseis2ddisplay.h:207
visSurvey::Seis2DDisplay::getNearestSegment
float getNearestSegment(const Coord3 &pos, bool usemaxrange, int &trcnr1st, int &trcnr2nd, float &frac) const
visSurvey::Seis2DDisplay::TraceDisplayInfo::alljoints_
TypeSet< int > alljoints_
Definition: visseis2ddisplay.h:209
visSurvey::Seis2DDisplay::getSeis2DDisplay
static Seis2DDisplay * getSeis2DDisplay(Pos::GeomID)
DataPack::ID
int ID
Definition: datapack.h:37
visSurvey::Seis2DDisplay::annotateNextUpdateStage
virtual void annotateNextUpdateStage(bool yn)
visSurvey::Seis2DDisplay::emptyCache
void emptyCache(int)
visSurvey::Seis2DDisplay::getColor
Color getColor() const
visSurvey::Seis2DDisplay::UpdateStageInfo::oldzrgstart_
float oldzrgstart_
Definition: visseis2ddisplay.h:231
visSurvey::Seis2DDisplay::getSampleRange
const Interval< int > getSampleRange() const
visSurvey::Seis2DDisplay::polyline_
visBase::PolyLine * polyline_
Definition: visseis2ddisplay.h:195
visSurvey::Seis2DDisplay::getPixelDensity
float getPixelDensity() const
Definition: visseis2ddisplay.h:99
visSurvey::Seis2DDisplay::allowsPicks
bool allowsPicks() const
Definition: visseis2ddisplay.h:74
visSurvey::Seis2DDisplay::voiidx_
int voiidx_
Definition: visseis2ddisplay.h:225
visSurvey::SurveyObject::getNormal
virtual Coord3 getNormal(const Coord3 &pos) const
Definition: vissurvobj.h:70
visSurvey::Seis2DDisplay::calcDist
float calcDist(const Coord3 &) const
visSurvey::Seis2DDisplay::snapToTracePos
void snapToTracePos(Coord3 &) const
visSurvey::Seis2DDisplay::getTrcKeyZSampling
TrcKeyZSampling getTrcKeyZSampling(int attrib=-1) const
Definition: visseis2ddisplay.h:106
visSurvey::Seis2DDisplay::duplicate
SurveyObject * duplicate(TaskRunner *) const
visSurvey::Seis2DDisplay::getAttributeFormat
SurveyObject::AttribFormat getAttributeFormat(int attrib) const
visSurvey::Seis2DDisplay::getDataPackID
DataPack::ID getDataPackID(int attrib) const
visSurvey
Used for displaying a polyline, preview for a random line created throught well path.
Definition: visarrowdisplay.h:20
visSurvey::Seis2DDisplay::isLineNameShown
bool isLineNameShown() const
visSurvey::Seis2DDisplay::updateTexOriginAndScale
void updateTexOriginAndScale(int attrib, const TrcKeyZSampling &)
visSurvey::Seis2DDisplay::getDisplayTransformation
const mVisTrans * getDisplayTransformation() const
visSurvey::Seis2DDisplay::~Seis2DDisplay
~Seis2DDisplay()
visSurvey::Seis2DDisplay::trcdisplayinfo_
TraceDisplayInfo trcdisplayinfo_
Definition: visseis2ddisplay.h:215
visSurvey::Seis2DDisplay::datapackids_
TypeSet< DataPack::ID > datapackids_
Definition: visseis2ddisplay.h:199
visSurvey::Seis2DDisplay::setColor
void setColor(Color)
visSurvey::Seis2DDisplay::Seis2DDisplay
Seis2DDisplay()
visBase::PolyLine
Definition: vispolyline.h:36
Only2D
@ Only2D
Definition: commontypes.h:41
Pol2D3D
Pol2D3D
Definition: commontypes.h:41
visSurvey::Seis2DDisplay::TraceDisplayInfo::alltrcpos_
TypeSet< Coord > alltrcpos_
Definition: visseis2ddisplay.h:208
visSurvey::Seis2DDisplay::showPolyLine
void showPolyLine(bool yn)
Interval< float >
visBase::TexturePanelStrip
A TexturePanelStrip is geometrically invariant in the z-direction. Its serially connected panels are ...
Definition: vistexturepanelstrip.h:34
visSurvey::Seis2DDisplay::setGeometry
void setGeometry(const PosInfo::Line2DData &)
Color
Color is an RGB color object, with a transparancy. The storage is in a 4-byte integer,...
Definition: color.h:26
visBase::DrawStyle
Definition: visdrawstyle.h:33
posinfo2dsurv.h
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
visSurvey::Seis2DDisplay::UpdateStageInfo::oldtrcrgstart_
float oldtrcrgstart_
Definition: visseis2ddisplay.h:230
visBase::Text2
Definition: vistext.h:93
visSurvey::Seis2DDisplay::datatransform_
ZAxisTransform * datatransform_
Definition: visseis2ddisplay.h:224
visSurvey::Seis2DDisplay::removeCache
void removeCache(int)
Pos::GeomID
Index_Type GeomID
Definition: commontypes.h:87
visSurvey::Seis2DDisplay::setResolution
void setResolution(int, TaskRunner *)
visSurvey::Seis2DDisplay::geomchanged_
Notifier< Seis2DDisplay > geomchanged_
Definition: visseis2ddisplay.h:220
visSurvey::Seis2DDisplay::getMousePosInfo
void getMousePosInfo(const visBase::EventInfo &, IOPar &) const
TypeSet< TrcKey >
visSurvey::Seis2DDisplay::dataTransformCB
void dataTransformCB(CallBacker *)
visSurvey::Seis2DDisplay::transformation_
const mVisTrans * transformation_
Definition: visseis2ddisplay.h:218
visSurvey::Seis2DDisplay::hasSingleColorFallback
bool hasSingleColorFallback() const
Definition: visseis2ddisplay.h:83

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