OpendTect  6.3
vismpeeditor.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 
15 #include "vissurveymod.h"
16 #include "emposid.h"
17 #include "visobject.h"
18 #include "vissower.h"
19 #include "emseedpicker.h"
20 #include "draw.h"
21 
22 
23 namespace MPE { class ObjectEditor; }
24 
25 namespace OD { class MarkerStyle3D; }
26 
27 namespace visBase
28 {
29 
30 class DataObjectGroup;
31 class MarkerSet;
32 class Dragger;
33 class EventInfo;
34 class PolyLine;
35 };
36 
37 
38 namespace visSurvey
39 {
40 class Sower;
41 
47 {
48 public:
49  static MPEEditor* create()
51 
52  void setEditor( MPE::ObjectEditor* );
53  void setPatch(MPE::Patch* patch) { patch_ = patch; }
54 
55  MPE::ObjectEditor* getMPEEditor() { return emeditor_; }
56  void setSceneEventCatcher( visBase::EventCatcher* );
57 
58  void setDisplayTransformation( const mVisTrans* );
60  { return transformation_;}
61 
62  void setMarkerSize(float);
63  void turnOnMarker(EM::PosID,bool on);
64  void setMarkerStyle(const OD::MarkerStyle3D&);
65  bool allMarkersDisplayed() const;
66 
70  int getRightClickNode() const;
71  EM::PosID getNodePosID(int idx) const;
72 
73  bool mouseClick( const EM::PosID&, bool shift,
74  bool alt, bool ctrl );
81  bool clickCB( CallBacker* );
89  EM::PosID mouseClickDragger(const TypeSet<int>&) const;
90 
91  bool isDragging() const { return isdragging_; }
92  EM::PosID getActiveDragger() const;
94 
95  Sower& sower() { return *sower_; }
96  void displayPatch(const MPE::Patch*);
97  void cleanPatch();
98  const ObjectSet<visBase::MarkerSet>& getDraggerMarkers() const;
99 protected:
100  ~MPEEditor();
101 
102  void changeNumNodes( CallBacker* );
103  void nodeMovement( CallBacker* );
104  void dragStart( CallBacker* );
105  void dragMotion( CallBacker* );
106  void dragStop( CallBacker* );
107  void updateNodePos( int, const Coord3& );
108  void removeDragger( int );
109  void addDragger( const EM::PosID& );
110  void setActiveDragger( const EM::PosID& );
111  void setupPatchDisplay();
112 
114 
117 
120 
124  float markersize_;
131 
134 
136 };
137 
138 } // namespace visSurvey
const mVisTrans * getDisplayTransformation() const
Definition: vismpeeditor.h:59
#define mExpClass(module)
Definition: commondefs.h:157
Sower & sower()
Definition: vismpeeditor.h:95
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:182
TypeSet< EM::PosID > posids_
Definition: vismpeeditor.h:123
Notifier< MPEEditor > nodeRightClick
Definition: vismpeeditor.h:67
MPE::Patch * patch_
Definition: vismpeeditor.h:116
void setPatch(MPE::Patch *patch)
Definition: vismpeeditor.h:53
bool isDragging() const
Definition: vismpeeditor.h:91
Is an identifier for each position in the earthmodel.
Definition: emposid.h:35
MPE stands for Model, Predict, Edit. Contains tracking and editing functions.
Definition: autotracker.h:30
Notifier< MPEEditor > draggingStarted
Definition: vismpeeditor.h:93
visBase::Material * activenodematerial_
Definition: vismpeeditor.h:119
Used for displaying a polyline, preview for a random line created throught well path.
Definition: visarrowdisplay.h:18
Definition: vismpeeditor.h:46
OD::MarkerStyle3D markerstyle_
Definition: vismpeeditor.h:127
Class to help setup a callback handling.
Definition: notify.h:121
visBase::EventCatcher * eventcatcher_
Definition: vismpeeditor.h:128
int rightclicknode_
Definition: vismpeeditor.h:113
float markersize_
Definition: vismpeeditor.h:124
3D point or vector
Definition: commontypes.h:57
visBase::Material * nodematerial_
Definition: vismpeeditor.h:118
VisualObjectImpl
Definition: visobject.h:123
EM::PosID activedragger_
Definition: vismpeeditor.h:130
#define mVisTrans
Definition: visdata.h:25
Definition: emseedpicker.h:29
Definition: vispolyline.h:33
Abstraction of EM Object editing. It gives lists of which nodes that may be moved, and in what manner.
Definition: emeditor.h:44
Definition: vismaterial.h:36
MPE::ObjectEditor * emeditor_
Definition: vismpeeditor.h:115
Definition: visannot.h:40
const mVisTrans * transformation_
Definition: vismpeeditor.h:129
static uiHor3DInterpol * create(uiParent *)
Sower * sower_
Definition: vismpeeditor.h:135
MPE::ObjectEditor * getMPEEditor()
Definition: vismpeeditor.h:55
ObjectSet< visBase::MarkerSet > draggermarkers_
Definition: vismpeeditor.h:122
OpendTect.
Definition: commontypes.h:25
visBase::MarkerSet * patchmarkers_
Definition: vismpeeditor.h:125
ObjectSet< visBase::Dragger > draggers_
Definition: vismpeeditor.h:121
bool isdragging_
Definition: vismpeeditor.h:133
#define mCreateDataObj(clss)
Definition: visdata.h:210
visBase::PolyLine * patchline_
Definition: vismpeeditor.h:126
Definition: vissower.h:30
MarkerSet is a set of basic pickmarker with a constant size on screen. Size and shape are settable...
Definition: vismarkerset.h:33
Definition: draw.h:91
Definition: visevent.h:83
bool draggerinmotion_
Definition: vismpeeditor.h:132

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