OpendTect  6.3
visfaultdisplay.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 ________________________________________________________________________
10 
11 
12 -*/
13 
14 #include "vissurveymod.h"
15 #include "vismultiattribsurvobj.h"
16 #include "visemsticksetdisplay.h"
17 
18 #include "emposid.h"
19 #include "explfaultsticksurface.h"
20 #include "ranges.h"
21 
22 class DataPointSet;
23 class ZAxisTransform;
24 
25 namespace visBase
26 {
27  class GeomIndexedShape;
28  class Transformation;
29  class PolyLine3D;
30  class DrawStyle;
31  class PolyLine;
32 }
33 
34 namespace EM { class Fault3D; }
35 namespace MPE { class FaultEditor; }
36 namespace Geometry
37 {
38  class ExplPlaneIntersection;
39  class FaultStickSurface;
40 }
41 
42 template <class T > class Array2D;
43 
44 namespace visSurvey
45 {
46 class MPEEditor;
47 class HorizonDisplay;
48 
55  , public StickSetDisplay
57 public:
58  FaultDisplay();
59 
62  "FaultDisplay",
63  toUiString(sFactoryKeyword()));
64 
65 
66  DBKey getDBKey() const;
67  bool isInlCrl() const { return false; }
68 
69  virtual int nrResolutions() const;
70  virtual void setResolution(int,TaskRunner*);
71 
73  { return SurveyObject::RandomPos; }
74  void getRandomPos(DataPointSet&,TaskRunner*) const;
75  void getRandomPosCache(int,DataPointSet&) const;
76  void setRandomPosData(int,const DataPointSet*,
77  TaskRunner*);
78 
79  bool hasColor() const { return true; }
80  bool usesColor() const;
81  Color getColor() const;
82  void setColor(Color);
83  bool allowMaterialEdit() const { return true; }
84  NotifierAccess* materialChange();
85 
86  void useTexture( bool yn, bool trigger );
87  bool usesTexture() const;
88  bool showsTexture() const;
89  bool canShowTexture() const;
90 
91  void setDepthAsAttrib(int);
92  void enableAttrib(int attrib,bool yn);
93  bool hasSingleColorFallback() const { return true; }
94 
95  void showManipulator(bool);
96  bool isManipulatorShown() const;
97 
98  void setDisplayTransformation(const mVisTrans*);
99  const mVisTrans* getDisplayTransformation() const;
100 
101  void setSceneEventCatcher(visBase::EventCatcher*);
102 
103  void triangulateAlg(mFltTriProj);
104  mFltTriProj triangulateAlg() const;
105 
106  void display(bool sticks,bool panels);
107  bool areSticksDisplayed() const;
108  bool arePanelsDisplayed() const;
109  bool arePanelsDisplayedInFull() const;
110 
111  bool setEMObjectID(const EM::ObjectID&);
112  EM::ObjectID getEMObjectID() const;
113 
114  void setScene(Scene*);
115 
116  bool removeSelections(TaskRunner*);
117  bool canRemoveSelection() const { return true; }
118 
119  void setOnlyAtSectionsDisplay(bool);
120  bool displayedOnlyAtSections() const;
121 
122  void displayIntersections(bool yn);
123  bool areIntersectionsDisplayed() const;
124  bool canDisplayIntersections() const;
125 
126  void displayHorizonIntersections(bool yn);
127  bool areHorizonIntersectionsDisplayed() const;
128  bool canDisplayHorizonIntersections() const;
129 
132 
133  void updateKnotMarkers();
134 
135  void setStickSelectMode(bool yn);
136  void turnOnSelectionMode(bool);
137  bool isInStickSelectMode() const;
138 
139  const OD::LineStyle* lineStyle() const;
140  void setLineStyle(const OD::LineStyle&);
141 
142  const OD::MarkerStyle3D* markerStyle() const;
143  void setMarkerStyle(const OD::MarkerStyle3D&);
145  { return false; }
146 
147  virtual void getMousePosInfo(const visBase::EventInfo& ei,
148  IOPar& iop ) const
149  { return MultiTextureSurveyObject
150  ::getMousePosInfo(ei,iop); }
151  void getMousePosInfo(const visBase::EventInfo&,
152  Coord3& xyzpos,BufferString& val,
153  BufferString& info) const;
154 
155  bool allowsPicks() const { return true; }
156  bool isVerticalPlane() const {return false;}
157  bool canBDispOn2DViewer() const {return false;}
158  DataPack::ID addDataPack(const DataPointSet&) const ;
159  bool setDataPackID(int attrib,DataPack::ID,
160  TaskRunner*);
161  DataPack::ID getDataPackID(int attrib) const;
163  { return DataPackMgr::SurfID(); }
164 
166  const ObjectSet<const SurveyObject>& objs,
167  int whichobj)
168  { otherObjectsMoved( objs, whichobj ); }
169 
170  NotifierAccess* getMovementNotifier() { return &hasmoved; }
171 
172  EM::Fault3D* emFault();
173  void showSelectedSurfaceData();
174  const BufferStringSet* selectedSurfaceDataNames();
175  const Array2D<float>* getTextureData(int attrib);
176  void matChangeCB(CallBacker*);
177  virtual void setPixelDensity(float dpi);
178 
179  bool setZAxisTransform(ZAxisTransform*,TaskRunner*);
180  const ZAxisTransform* getZAxisTransform() const;
181 
182  virtual void fillPar(IOPar&) const;
183  virtual bool usePar(const IOPar&);
184 
185  const visBase::GeomIndexedShape* getFaultDisplayedPlane() const;
186  const visBase::GeomIndexedShape* getFaultDisplayedStickLines() const;
187  const ObjectSet<visBase::MarkerSet>& getFaultDisplayedSticks() const;
188 
189 protected:
190 
191  virtual ~FaultDisplay();
192  void otherObjectsMoved(
194  int whichobj);
195  void setRandomPosDataInternal(int attrib,
196  const DataPointSet*,
197  int column,
198  TaskRunner*);
199  void updatePanelDisplay();
200  void updateStickDisplay();
201  void updateIntersectionDisplay();
202  void updateHorizonIntersectionDisplay();
203  void updateDisplay();
204 
205  void updateSingleColor();
206  void updateManipulator();
207 
208  virtual bool getCacheValue(int attrib,int version,
209  const Coord3&,float&) const;
210  virtual void addCache();
211  virtual void removeCache(int);
212  virtual void swapCache(int,int);
213  virtual void emptyCache(int);
214  virtual bool hasCache(int) const;
215 
216  bool isPicking() const;
217  void mouseCB(CallBacker*);
218  void emChangeCB(CallBacker*);
219  void stickSelectCB(CallBacker*);
220  void dataTransformCB(CallBacker*);
221  void polygonFinishedCB(CallBacker*);
222  bool isSelectableMarkerInPolySel(
223  const Coord3& markerworldpos ) const;
224 
225  void setActiveStick(const EM::PosID&);
226  void updateActiveStickMarker();
227  void updateHorizonIntersections( int whichobj,
229  void updateEditorMarkers();
230 
231  Coord3 disp2world(const Coord3& displaypos) const;
232 
233  bool coincidesWith2DLine(
235  int sticknr) const;
236  bool coincidesWithPlane(
238  int sticknr,
239  TypeSet<Coord3>& intersectpoints) const;
240  void updateStickHiding();
241  void setLineRadius(visBase::GeomIndexedShape*);
242  void sowingFinishedCB(CallBacker*);
243  bool onSection(int sticknr);
244  void showActiveStickMarker();
245  bool isDisplayingSticksUseful() const;
246 
248  int voiid_;
249 
252 
255 
260 
266 
269 
272 
274 
276 
280 
282 
284 
287  bool endstick_;
289 
291 
292  static const char* sKeyTriProjection();
293  static const char* sKeyEarthModelID();
294  static const char* sKeyDisplayPanels();
295  static const char* sKeyDisplaySticks();
296  static const char* sKeyDisplayIntersections();
297  static const char* sKeyDisplayHorIntersections();
298  static const char* sKeyUseTexture();
299  static const char* sKeyLineStyle();
300  static const char* sKeyZValues();
301 
303  // temporal code
304  private:
307 };
308 
309 };
#define mExpClass(module)
Definition: commondefs.h:157
od_int32 ObjectID
Definition: emposid.h:22
bool hasColor() const
Definition: visfaultdisplay.h:79
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:182
bool displayhorintersections_
Definition: visfaultdisplay.h:265
visBase::PolyLine3D * activestickmarker_
Definition: visfaultdisplay.h:267
Geometry::ExplFaultStickSurface * explicitpanels_
Definition: visfaultdisplay.h:251
EM::PosID activestickid_
Definition: visfaultdisplay.h:288
TypeSet< DataPack::ID > datapackids_
Definition: visfaultdisplay.h:275
Set of data points with group selection.
Definition: datapointset.h:47
ObjectEditor to edit EM::Fault3D.
Definition: faulteditor.h:28
bool allowMaterialEdit() const
Definition: visfaultdisplay.h:83
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
Is an identifier for each position in the earthmodel.
Definition: emposid.h:35
Interface class for Notifier. See comments there.
Definition: notify.h:20
bool otherobjects_
Definition: visfaultdisplay.h:286
void usePar(const IOPar &iop, ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:200
MPE stands for Model, Predict, Edit. Contains tracking and editing functions.
Definition: autotracker.h:30
Notifier< FaultDisplay > hasmoved
Definition: visfaultdisplay.h:290
Definition: draw.h:119
#define mFltTriProj
Definition: explfaultsticksurface.h:32
Definition: visdrawstyle.h:30
visBase::GeomIndexedShape * paneldisplay_
Definition: visfaultdisplay.h:250
Geometry::ExplPlaneIntersection * explicitintersections_
Definition: visfaultdisplay.h:257
Definition: faultsticksurface.h:18
#define mDefaultFactoryInstantiation(baseclss, clss, keywrd, usernm)
Definition: factory.h:287
bool canBDispOn2DViewer() const
Definition: visfaultdisplay.h:157
Set of BufferString objects.
Definition: bufstringset.h:25
Geometry::ExplFaultStickSurface * explicitsticks_
Definition: visfaultdisplay.h:254
Definition: explplaneintersection.h:26
Used for displaying a polyline, preview for a random line created throught well path.
Definition: visarrowdisplay.h:18
Definition: vismpeeditor.h:46
bool displaypanels_
Definition: visfaultdisplay.h:281
Class to help setup a callback handling.
Definition: notify.h:121
Set of pointers to objects.
Definition: commontypes.h:28
Definition: visfaultdisplay.h:54
Definition: groupedid.h:40
visBase::GeomIndexedShape * stickdisplay_
Definition: visfaultdisplay.h:253
Definition: visgeomindexedshape.h:33
3D point or vector
Definition: commontypes.h:57
Set of (small) copyable elements.
Definition: commontypes.h:26
int activestick_
Definition: visfaultdisplay.h:268
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:53
bool validtexture_
Definition: visfaultdisplay.h:277
bool isVerticalPlane() const
Definition: visfaultdisplay.h:156
Array2D ( Subclass of ArrayND ) is a two dimensional array.
Definition: arraynd.h:127
Class that can execute a task.
Definition: task.h:193
ZAxisTransform * zaxistransform_
Definition: visfaultdisplay.h:247
#define mVisTrans
Definition: visdata.h:25
bool usestexture_
Definition: visfaultdisplay.h:279
ObjectSet< visBase::PolyLine > faultpolylines_
Definition: visfaultdisplay.h:305
Coord3 mousepos_
Definition: visfaultdisplay.h:273
TypeSet< int > horintersectids_
Definition: visfaultdisplay.h:263
bool displayintersections_
Definition: visfaultdisplay.h:264
ObjectSet< visBase::GeomIndexedShape > horintersections_
Definition: visfaultdisplay.h:261
Database for 3D objects.
Definition: vissurvscene.h:74
ObjectSet< Geometry::ExplFaultStickSurface > horshapes_
Definition: visfaultdisplay.h:262
Notifier< FaultDisplay > displaymodechange
Definition: visfaultdisplay.h:131
uiString toUiString(const DBKey &ky)
Definition: dbkey.h:117
TypeSet< int > planeids_
Definition: visfaultdisplay.h:259
void fillPar(IOPar &iop, const ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:187
Definition: vismultiattribsurvobj.h:35
bool canRemoveSelection() const
Definition: visfaultdisplay.h:117
Definition: visemsticksetdisplay.h:39
Definition: visannot.h:40
ObjectSet< const SurveyObject > intersectionobjs_
Definition: visfaultdisplay.h:258
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
bool isInlCrl() const
Definition: visfaultdisplay.h:67
Color nontexturecol_
Definition: visfaultdisplay.h:278
bool markerStyleColorSelection() const
Definition: visfaultdisplay.h:144
MPE::FaultEditor * faulteditor_
Definition: visfaultdisplay.h:270
TypeSet< TypeSet< Coord3 > > intersectionlines_
Definition: visfaultdisplay.h:306
bool hasSingleColorFallback() const
Definition: visfaultdisplay.h:93
int voiid_
Definition: visfaultdisplay.h:248
ObjectSet< Array2D< float > > texuredatas_
Definition: visfaultdisplay.h:283
Definition: explfaultsticksurface.h:35
visBase::DrawStyle * drawstyle_
Definition: visfaultdisplay.h:285
Earth Model objects like horizons, faults, fault-sticks and bodies.
Definition: embody.h:23
Base class for all &#39;Display&#39; objects.
Definition: vissurvobj.h:54
Definition: visevent.h:40
SurveyObject::AttribFormat getAttributeFormat(int) const
Definition: visfaultdisplay.h:72
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
bool allowsPicks() const
Definition: visfaultdisplay.h:155
3D Fault
Definition: emfault3d.h:76
DataPackMgr::ID getDataPackMgrID() const
Definition: visfaultdisplay.h:162
Full key to any object in the OpendTect data store.
Definition: dbkey.h:36
Definition: groupedid.h:41
visBase::GeomIndexedShape * intersectiondisplay_
Definition: visfaultdisplay.h:256
Base class for z-axis transforms.
Definition: zaxistransform.h:35
virtual void getMousePosInfo(const visBase::EventInfo &ei, IOPar &iop) const
Definition: visfaultdisplay.h:147
bool endstick_
Definition: visfaultdisplay.h:287
Definition: vispolyline.h:61
Notifier< FaultDisplay > colorchange
Definition: visfaultdisplay.h:130
Definition: arraytesselator.h:19
NotifierAccess * getMovementNotifier()
Definition: visfaultdisplay.h:170
void doOtherObjectsMoved(const ObjectSet< const SurveyObject > &objs, int whichobj)
Definition: visfaultdisplay.h:165
Definition: draw.h:91
Definition: visevent.h:83
visSurvey::MPEEditor * viseditor_
Definition: visfaultdisplay.h:271
static ID SurfID()
Surface (triangulated) data: 5.

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