OpendTect  6.3
visfaultsticksetdisplay.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: J.C. Glas
8  Date: November 2008
9 ________________________________________________________________________
10 
11 
12 -*/
13 
14 #include "vissurveymod.h"
15 #include "vissurvobj.h"
16 #include "visobject.h"
17 #include "visemsticksetdisplay.h"
18 
19 #include "emposid.h"
20 
21 
22 namespace visBase
23 {
24  class DrawStyle;
25  class Lines;
26  class MarkerSet;
27  class Transformation;
28 }
29 
30 namespace EM { class FaultStickSet; class FaultStickSetGeometry; }
31 namespace Geometry { class FaultStickSet; class IndexedPrimitiveSet; }
32 namespace MPE { class FaultStickSetEditor; }
33 
34 namespace visSurvey
35 {
36 
37 class MPEEditor;
38 class Seis2DDisplay;
39 
44  , public SurveyObject
45  , public StickSetDisplay
47 public:
49 
53  "FaultStickSetDisplay",
54  toUiString(sFactoryKeyword()))
55 
56 
57  DBKey getDBKey() const;
58  bool isInlCrl() const { return false; }
59 
60  bool hasColor() const { return true; }
61  Color getColor() const;
62  void setColor(Color);
63  bool allowMaterialEdit() const { return true; }
64  NotifierAccess* materialChange();
65  const OD::LineStyle* lineStyle() const;
66  void setLineStyle(const OD::LineStyle&);
67 
68  const OD::MarkerStyle3D* markerStyle() const;
69  void setMarkerStyle(const OD::MarkerStyle3D&);
71  { return false; }
72 
73  void hideAllKnots(bool yn);
74  bool areAllKnotsHidden() const;
75 
76  void showManipulator(bool);
77  bool isManipulatorShown() const;
78 
79  void setDisplayTransformation(const mVisTrans*);
80  const mVisTrans* getDisplayTransformation() const;
81 
82  void setSceneEventCatcher(visBase::EventCatcher*);
83 
84  bool setEMObjectID(const EM::ObjectID&);
85  EM::ObjectID getEMObjectID() const;
86 
87  void setScene(Scene*);
88 
89  const uiString& errMsg() const { return errmsg_; }
90 
91  void updateSticks(bool activeonly=false);
92  void updateEditPids();
93  void updateKnotMarkers();
94  void updateAll();
95  const visBase::Lines* getStickSetLines() const { return sticks_; }
96 
99 
100  bool removeSelections(TaskRunner*);
101  bool canRemoveSelection() const { return true; }
102 
103  void setOnlyAtSectionsDisplay(bool yn);
104  bool displayedOnlyAtSections() const;
105 
106  void setStickSelectMode(bool yn);
107  void turnOnSelectionMode(bool);
108  bool isInStickSelectMode() const;
109 
110  bool allowsPicks() const { return true; }
111 
113  IOPar& iop ) const
114  { return SurveyObject::getMousePosInfo(ei,iop);}
115  void getMousePosInfo(const visBase::EventInfo&,
116  Coord3& xyzpos,BufferString& val,
117  BufferString& info) const;
118 
119  virtual void setPixelDensity(float dpi);
120  virtual void fillPar(IOPar&) const;
121  virtual bool usePar(const IOPar&);
122 
123 protected:
124  virtual ~FaultStickSetDisplay();
125 
126  void otherObjectsMoved(
128  int whichobj);
129 
130  void setActiveStick(const EM::PosID&);
131 
132  static const char* sKeyEarthModelID();
133  static const char* sKeyDisplayOnlyAtSections();
134 
135 
136  bool isPicking() const;
137  void mouseCB(CallBacker*);
138  void draggingStartedCB(CallBacker*);
139  void stickSelectCB(CallBacker*);
140  void emChangeCB(CallBacker*);
141  void polygonFinishedCB(CallBacker*);
142  bool isSelectableMarkerInPolySel(
143  const Coord3& markerworldpos) const;
144 
145  Coord3 disp2world(const Coord3& displaypos) const;
146 
147  void displayOnlyAtSectionsUpdate();
148  bool coincidesWith2DLine(
150  int sticknr,Pos::GeomID);
151  bool coincidesWithPlane(
153  int sticknr,
154  TypeSet<Coord3>& intersectpoints);
155  EM::FaultStickSet* emFaultStickSet();
156  void sowingFinishedCB(CallBacker*);
157  void updateManipulator();
158 
159 
162 
164 
166 
168 
173 
177 };
178 
179 } // namespace VisSurvey
visBase::DrawStyle * stickdrawstyle_
Definition: visfaultsticksetdisplay.h:171
#define mExpClass(module)
Definition: commondefs.h:157
od_int32 ObjectID
Definition: emposid.h:22
bool hasColor() const
Definition: visfaultsticksetdisplay.h:60
Definition: vislines.h:21
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:182
bool isInlCrl() const
Definition: visfaultsticksetdisplay.h:58
visBase::Lines * sticks_
Definition: visfaultsticksetdisplay.h:169
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
visBase::DrawStyle * activestickdrawstyle_
Definition: visfaultsticksetdisplay.h:172
Is an identifier for each position in the earthmodel.
Definition: emposid.h:35
Coord3 mousepos_
Definition: visfaultsticksetdisplay.h:163
visSurvey::MPEEditor * viseditor_
Definition: visfaultsticksetdisplay.h:161
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
MPE stands for Model, Predict, Edit. Contains tracking and editing functions.
Definition: autotracker.h:30
Definition: draw.h:119
Notifier< FaultStickSetDisplay > displaymodechange
Definition: visfaultsticksetdisplay.h:98
bool markerStyleColorSelection() const
Definition: visfaultsticksetdisplay.h:70
Definition: visdrawstyle.h:30
visBase::Lines * activestick_
Definition: visfaultsticksetdisplay.h:170
ObjectEditor to edit EM::FaultStickSet.
Definition: faultstickseteditor.h:26
#define mDefaultFactoryInstantiation(baseclss, clss, keywrd, usernm)
Definition: factory.h:287
Definition: uistring.h:88
MPE::FaultStickSetEditor * fsseditor_
Definition: visfaultsticksetdisplay.h:160
Notifier< FaultStickSetDisplay > colorchange
Definition: visfaultsticksetdisplay.h:97
Used for displaying a polyline, preview for a random line created throught well path.
Definition: visarrowdisplay.h:18
bool makenewstick_
Definition: visfaultsticksetdisplay.h:175
Definition: vismpeeditor.h:46
Class to help setup a callback handling.
Definition: notify.h:121
Set of pointers to objects.
Definition: commontypes.h:28
bool displayonlyatsections_
Definition: visfaultsticksetdisplay.h:174
TypeSet< EM::PosID > editpids_
Definition: visfaultsticksetdisplay.h:167
3D point or vector
Definition: commontypes.h:57
const visBase::Lines * getStickSetLines() const
Definition: visfaultsticksetdisplay.h:95
Set of (small) copyable elements.
Definition: commontypes.h:26
VisualObjectImpl
Definition: visobject.h:123
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:53
Class that can execute a task.
Definition: task.h:193
#define mVisTrans
Definition: visdata.h:25
Fault stick set.
Definition: emfaultstickset.h:98
Database for 3D objects.
Definition: vissurvscene.h:74
bool allowsPicks() const
Definition: visfaultsticksetdisplay.h:110
uiString toUiString(const DBKey &ky)
Definition: dbkey.h:117
void fillPar(IOPar &iop, const ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:187
Index_Type GeomID
Definition: commontypes.h:48
Definition: visemsticksetdisplay.h:39
Definition: visannot.h:40
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
EM::PosID activestickid_
Definition: visfaultsticksetdisplay.h:176
BufferString errmsg_
Definition: horizontracker.h:117
int activesticknr_
Definition: visfaultsticksetdisplay.h:165
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
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 allowMaterialEdit() const
Definition: visfaultsticksetdisplay.h:63
Full key to any object in the OpendTect data store.
Definition: dbkey.h:36
void getMousePosInfo(const visBase::EventInfo &ei, IOPar &iop) const
Definition: visfaultsticksetdisplay.h:112
Display class for FaultStickSets.
Definition: visfaultsticksetdisplay.h:43
Definition: faultstickset.h:25
bool canRemoveSelection() const
Definition: visfaultsticksetdisplay.h:101
Definition: arraytesselator.h:19
Definition: draw.h:91
Definition: visevent.h:83
const uiString & errMsg() const
Definition: visfaultsticksetdisplay.h:89

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