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

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