OpendTect  6.3
vislocationdisplay.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: June 2006
9 ________________________________________________________________________
10 
11 
12 -*/
13 
14 #include "vissurveymod.h"
15 #include "visobject.h"
16 #include "vissurvobj.h"
17 #include "pickset.h"
18 
19 class Sphere;
20 template <class T> class Selector;
21 
22 
23 namespace visSurvey
24 {
25 
26 class Sower;
27 
35  , public visSurvey::SurveyObject
36 {
37  friend class Sower;
38 
39 public:
40 
41  typedef Pick::Set::LocID LocID;
43 
44  virtual void setSet(Pick::Set*); // once!
45 
46  Pick::Set* getSet() { return set_; }
47  const Pick::Set* getSet() const { return set_; }
48 
49  DBKey getDBKey() const;
50 
51  const uiString& errMsg() const { return errmsg_; }
52 
53  void fullRedraw(CallBacker* =0);
54  void showAll(bool yn);
55  bool allShown() const { return showall_; }
56  virtual void setOnlyAtSectionsDisplay(bool);
57  virtual bool displayedOnlyAtSections() const;
58 
59  virtual BufferString getManipulationString() const;
60  void getObjectInfo(BufferString&) const;
61  void getMousePosInfo(const EventInfo&,IOPar&) const;
62  virtual void getMousePosInfo(const EventInfo&,Coord3&,
63  BufferString&,BufferString&) const;
64  virtual bool hasColor() const { return true; }
65  virtual Color getColor() const;
66  virtual void setColor(Color);
67 
68  virtual bool allowsPicks() const { return true; }
69  virtual bool isPicking() const;
70  virtual void otherObjectsMoved(
72  virtual NotifierAccess* getManipulationNotifier() { return &manip_; }
73  virtual void setDisplayTransformation(const mVisTrans*);
74  virtual const mVisTrans* getDisplayTransformation() const;
75  void setRightHandSystem(bool yn);
76  virtual void setSceneEventCatcher(visBase::EventCatcher*);
77  virtual void turnOnSelectionMode(bool) {}
78  int getPickID(visBase::DataObject*) const;
79 
80  const SurveyObject* getPickedSurveyObject() const;
81 
82  bool canRemoveSelection() const { return true; }
83  void removeSelection(const Selector<Coord3>&,
84  TaskRunner*);
85 
86  bool setZAxisTransform(ZAxisTransform*,TaskRunner*);
87  const ZAxisTransform* getZAxisTransform() const;
88 
89  virtual void fillPar(IOPar&) const;
90  virtual bool usePar(const IOPar&);
91 
92 protected:
94  virtual void setPosition(int,const Pick::Location&) {}
95  virtual void setPosition(int,const Pick::Location&,
96  bool add) {}
97  virtual void removePosition(int) {}
98  virtual void removeAll();
99 
100  virtual bool hasDirection() const { return false; }
101  virtual bool hasText() const { return false; }
102  virtual int clickedMarkerIndex(const EventInfo&) const;
103  virtual bool isMarkerClick(const EventInfo&) const;
104  virtual void updateDragger() {}
105  virtual void setDraggerNormal(const Coord3&) {}
106  virtual bool draggerNormal() const { return true; }
107  virtual bool removeSelections(TaskRunner*);
108 
109  virtual int isDirMarkerClick(const TypeSet<int>&) const;
110  void triggerDeSel();
111 
112  virtual ~LocationDisplay();
113 
114  LocID addPick(const Coord3&,const Sphere&);
115 
116  bool getPickSurface(const EventInfo&,Coord3&,
117  Coord3&) const;
118  Coord3 display2World(const Coord3&) const;
119  Coord3 world2Display(const Coord3&) const;
120  bool transformPos(Pick::Location&) const;
121  const Coord3 getActivePlaneNormal(const EventInfo&) const;
122  void handleDraggingEvent(const EventInfo&);
123  void handleDirectionEvent(const EventInfo&);
124  int getEventID(const EventInfo&);
125  void handleMouseDown(const EventInfo&,int,bool);
126  void handleMouseUp(const EventInfo&,int);
127 
128  void pickCB(CallBacker*);
129  void setChgCB(CallBacker*);
130 
131  virtual void locChg(const Monitorable::ChangeData&);
132  virtual void dispChg();
133 
136 
139 
141  bool showall_;
144  int voiidx_;
145  bool ctrldown_;
147 
151 
152  static const char* sKeyID();
153  static const char* sKeyMgrName();
154  static const char* sKeyShowAll();
155  static const char* sKeyMarkerType();
156  static const char* sKeyMarkerSize();
157 
160 
161 };
162 
163 } // namespace visSurvey
#define mExpClass(module)
Definition: commondefs.h:157
Sower * sower_
Definition: vislocationdisplay.h:158
bool showall_
Definition: vislocationdisplay.h:141
bool ctrldown_
Definition: vislocationdisplay.h:145
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:182
virtual bool hasColor() const
Definition: vislocationdisplay.h:64
bool allShown() const
Definition: vislocationdisplay.h:55
ZAxisTransform * datatransform_
Definition: vislocationdisplay.h:150
Pick location in space,.
Definition: picklocation.h:44
Interface class for Notifier. See comments there.
Definition: notify.h:20
int voiidx_
Definition: vislocationdisplay.h:144
void usePar(const IOPar &iop, ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:200
DataObject is the base class off all objects that are used in Visualization and ought to be shared in...
Definition: visdata.h:59
ObjectSet< Selector< Coord3 > > selectors_
Definition: vislocationdisplay.h:146
Definition: uistring.h:88
Pick::Set::LocID LocID
Definition: vislocationdisplay.h:41
bool canRemoveSelection() const
Definition: vislocationdisplay.h:82
virtual bool allowsPicks() const
Definition: vislocationdisplay.h:68
Used for displaying a polyline, preview for a random line created throught well path.
Definition: visarrowdisplay.h:18
LocID movinglocationid_
Definition: vislocationdisplay.h:138
virtual bool hasText() const
Definition: vislocationdisplay.h:101
visBase::EventCatcher * eventcatcher_
Definition: vislocationdisplay.h:148
Class to help setup a callback handling.
Definition: notify.h:121
Monitorable set of pick locations.
Definition: pickset.h:41
Set of pointers to objects.
Definition: commontypes.h:28
const Pick::Set * getSet() const
Definition: vislocationdisplay.h:47
3D point or vector
Definition: commontypes.h:57
virtual void setPosition(int, const Pick::Location &)
Definition: vislocationdisplay.h:94
void removeAll()
virtual void setPosition(int, const Pick::Location &, bool add)
Definition: vislocationdisplay.h:95
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
virtual bool hasDirection() const
Definition: vislocationdisplay.h:100
visBase::EventInfo EventInfo
Definition: vislocationdisplay.h:42
#define mVisTrans
Definition: visdata.h:25
const mVisTrans * transformation_
Definition: vislocationdisplay.h:149
bool selectionmodel_
Definition: vislocationdisplay.h:159
Interface for classes that select on basis of a key.
Definition: selector.h:23
int mousepressid_
Definition: vislocationdisplay.h:142
Used for displaying picksets of varying types. The class is not intended for standalone usage...
Definition: vislocationdisplay.h:34
void fillPar(IOPar &iop, const ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:187
virtual void removePosition(int)
Definition: vislocationdisplay.h:97
virtual bool draggerNormal() const
Definition: vislocationdisplay.h:106
Definition: visannot.h:40
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
BufferString errmsg_
Definition: horizontracker.h:117
Notifier< LocationDisplay > manip_
Definition: vislocationdisplay.h:135
Pick::Set * getSet()
Definition: vislocationdisplay.h:46
const uiString & errMsg() const
Definition: vislocationdisplay.h:51
RefMan< Pick::Set > set_
Definition: vislocationdisplay.h:134
Base class for all &#39;Display&#39; objects.
Definition: vissurvobj.h:54
Definition: visevent.h:40
Definition: monitorable.h:113
Color is an RGB color object, with a transparancy. The storage is in a 4-byte integer, similar to Qt.
Definition: color.h:24
Represents a point in spherical coordinates. The angle phi lies in the horizontal plane...
Definition: trigonometry.h:547
Full key to any object in the OpendTect data store.
Definition: dbkey.h:36
virtual NotifierAccess * getManipulationNotifier()
Definition: vislocationdisplay.h:72
virtual void setDraggerNormal(const Coord3 &)
Definition: vislocationdisplay.h:105
Definition: vissower.h:30
virtual void updateDragger()
Definition: vislocationdisplay.h:104
Base class for z-axis transforms.
Definition: zaxistransform.h:35
int pickedsurvobjid_
Definition: vislocationdisplay.h:143
virtual void turnOnSelectionMode(bool)
Definition: vislocationdisplay.h:77
LocID directionlocationid_
Definition: vislocationdisplay.h:137
TypeSet< int > invalidpicks_
Definition: vislocationdisplay.h:140
Definition: visevent.h:83

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