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

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