OpendTect  6.6
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  RCS: $Id$
10 ________________________________________________________________________
11 
12 
13 -*/
14 
15 #include "vissurveymod.h"
16 #include "visobject.h"
17 #include "vissurvobj.h"
18 
19 class Sphere;
20 namespace Pick { class Set; class Location; class SetMgr; }
21 template <class T> class Selector;
22 
23 
24 namespace visSurvey
25 {
26 
27 class Sower;
28 class SeedPainter;
29 
38 {
39  friend class Sower;
40 
41 public:
42  virtual void setSet(Pick::Set*); // once!
45  Pick::Set* getSet() { return set_; }
46  const Pick::Set* getSet() const { return set_; }
47 
48  MultiID getMultiID() const { return storedmid_; }
49 
50  const char* errMsg() const { return errmsg_.str(); }
51 
53  void showAll(bool yn);
54  bool allShown() const { return showall_; }
55  virtual void setOnlyAtSectionsDisplay(bool);
56  virtual bool displayedOnlyAtSections() const;
57  void allowDoubleClick( bool yn )
58  { allowdoubleclicks_ = yn; }
59 
63  IOPar& iop ) const
64  { return SurveyObject::getMousePosInfo(ei,iop);}
65  virtual void getMousePosInfo(const visBase::EventInfo&,
67  BufferString&) const;
68  virtual bool hasColor() const { return true; }
69  virtual Color getColor() const;
70  virtual void setColor(Color);
71 
72  virtual bool allowsPicks() const { return true; }
73  virtual bool isPicking() const;
74  virtual void otherObjectsMoved(
76  virtual NotifierAccess* getManipulationNotifier() { return &manip_; }
77  virtual void setDisplayTransformation(const mVisTrans*);
78  virtual const mVisTrans* getDisplayTransformation() const;
79  void setRightHandSystem(bool yn);
81  virtual void turnOnSelectionMode(bool) {}
82 
84 
87  bool isPainting() const;
88 
89  bool canRemoveSelection() const { return true; }
91  TaskRunner*);
92 
95 
96  virtual void fillPar(IOPar&) const;
97  virtual bool usePar(const IOPar&);
98 
99  Coord3 convertCoords(const Coord3&,bool disptoworld);
100 
102  { return invalidpicks_; }
103 
104 protected:
106  virtual void setPosition(int idx,const Pick::Location&,
107  bool add=false);
108  virtual void removePosition(int);
109  virtual void removeAll();
110  virtual void redrawMultiSets() {}
111 
112  virtual bool hasDirection() const { return false; }
113  virtual bool hasText() const { return false; }
114  virtual int clickedMarkerIndex(
115  const visBase::EventInfo& evi)const;
116  virtual bool isMarkerClick(
117  const visBase::EventInfo& evi)const;
118  virtual void updateDragger() {}
119  virtual void setDraggerNormal(const Coord3&) {}
120  virtual bool draggerNormal() const {return true;}
121  virtual bool removeSelections(TaskRunner*);
122 
123  virtual int isDirMarkerClick(const TypeSet<int>&) const;
124  void triggerDeSel();
125 
126  virtual ~LocationDisplay();
127 
128  bool addPick(const Coord3&,const Sphere&,bool);
129  void removePick(int,bool setundo=true);
130 
132  Coord3& pos, Coord3& normal) const;
133  Coord3 display2World(const Coord3&) const;
134  Coord3 world2Display(const Coord3&) const;
137  const visBase::EventInfo&) const;
138 
139  void pickCB(CallBacker* cb);
140  virtual void locChg(CallBacker* cb);
141  virtual void setChg(CallBacker* cb);
142  virtual void dispChg(CallBacker* cb);
144 
150 
152 
153  bool showall_;
156  int voiidx_;
157  bool ctrldown_;
159 
163 
165 
166  static const char* sKeyID();
167  static const char* sKeyMgrName();
168  static const char* sKeyShowAll();
169  static const char* sKeyMarkerType();
170  static const char* sKeyMarkerSize();
171 
174  bool undomove_;
176  bool allowdoubleclicks_ = true;
177 
178 };
179 
180 } // namespace visSurvey
181 
visSurvey::LocationDisplay::turnOnSelectionMode
virtual void turnOnSelectionMode(bool)
Definition: vislocationdisplay.h:81
visSurvey::LocationDisplay::getMultiID
MultiID getMultiID() const
Definition: vislocationdisplay.h:48
Coord3
A cartesian coordinate in 3D space.
Definition: coord.h:72
visSurvey::LocationDisplay::dispChg
virtual void dispChg(CallBacker *cb)
visSurvey::LocationDisplay::sKeyShowAll
static const char * sKeyShowAll()
Selector
Interface for classes that select on basis of a key.
Definition: selector.h:25
visSurvey::LocationDisplay::picksetmgr_
Pick::SetMgr * picksetmgr_
Definition: vislocationdisplay.h:146
visSurvey::LocationDisplay::datatransform_
ZAxisTransform * datatransform_
Definition: vislocationdisplay.h:162
Pick::Set
Set of picks with something in common.
Definition: pickset.h:34
visSurvey::LocationDisplay::transformPos
bool transformPos(Pick::Location &) const
visSurvey::LocationDisplay::removePick
void removePick(int, bool setundo=true)
visSurvey::LocationDisplay::getSet
Pick::Set * getSet()
Definition: vislocationdisplay.h:45
visSurvey::LocationDisplay::voiidx_
int voiidx_
Definition: vislocationdisplay.h:156
visSurvey::LocationDisplay::eventcatcher_
visBase::EventCatcher * eventcatcher_
Definition: vislocationdisplay.h:160
ObjectSet
Set of pointers to objects.
Definition: commontypes.h:31
visSurvey::LocationDisplay::sower_
Sower * sower_
Definition: vislocationdisplay.h:172
visSurvey::LocationDisplay::convertCoords
Coord3 convertCoords(const Coord3 &, bool disptoworld)
visSurvey::LocationDisplay
Used for displaying picksets of varying types. The class is not intended for standalone usage,...
Definition: vislocationdisplay.h:38
visSurvey::LocationDisplay::addPick
bool addPick(const Coord3 &, const Sphere &, bool)
Pick
Definition: picklocation.h:21
visSurvey::LocationDisplay::canRemoveSelection
bool canRemoveSelection() const
Definition: vislocationdisplay.h:89
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
visSurvey::LocationDisplay::otherObjectsMoved
virtual void otherObjectsMoved(const ObjectSet< const SurveyObject > &, int)
visSurvey::LocationDisplay::isPainting
bool isPainting() const
visSurvey::LocationDisplay::triggerDeSel
void triggerDeSel()
visSurvey::LocationDisplay::getObjectInfo
void getObjectInfo(BufferString &) const
visBase::DataObject
DataObject is the base class off all objects that are used in Visualization and ought to be shared in...
Definition: visdata.h:63
visSurvey::LocationDisplay::updateDragger
virtual void updateDragger()
Definition: vislocationdisplay.h:118
visSurvey::LocationDisplay::waitsforpositionid_
int waitsforpositionid_
Definition: vislocationdisplay.h:149
visSurvey::LocationDisplay::selectors_
ObjectSet< Selector< Coord3 > > selectors_
Definition: vislocationdisplay.h:158
visSurvey::LocationDisplay::usePar
virtual bool usePar(const IOPar &)
visSurvey::SurveyObject
Base class for all 'Display' objects.
Definition: vissurvobj.h:58
visSurvey::LocationDisplay::showAll
void showAll(bool yn)
visSurvey::LocationDisplay::~LocationDisplay
virtual ~LocationDisplay()
visBase::VisualObjectImpl
VisualObjectImpl
Definition: visobject.h:127
visBase::EventCatcher
Definition: visevent.h:87
visSurvey::LocationDisplay::redrawMultiSets
virtual void redrawMultiSets()
Definition: vislocationdisplay.h:110
CallBacker
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:185
visSurvey::LocationDisplay::setZAxisTransform
bool setZAxisTransform(ZAxisTransform *, TaskRunner *)
visSurvey::LocationDisplay::errMsg
const char * errMsg() const
Definition: vislocationdisplay.h:50
visSurvey::LocationDisplay::setOnlyAtSectionsDisplay
virtual void setOnlyAtSectionsDisplay(bool)
visSurvey::LocationDisplay::allShown
bool allShown() const
Definition: vislocationdisplay.h:54
visobject.h
visSurvey::LocationDisplay::undoloccoord_
Coord3 undoloccoord_
Definition: vislocationdisplay.h:173
visSurvey::LocationDisplay::setPosition
virtual void setPosition(int idx, const Pick::Location &, bool add=false)
visSurvey::LocationDisplay::sKeyMarkerSize
static const char * sKeyMarkerSize()
visSurvey::LocationDisplay::storedmid_
MultiID storedmid_
Definition: vislocationdisplay.h:164
visSurvey::LocationDisplay::showall_
bool showall_
Definition: vislocationdisplay.h:153
visSurvey::LocationDisplay::setDisplayTransformation
virtual void setDisplayTransformation(const mVisTrans *)
visSurvey::LocationDisplay::getMousePosInfo
virtual void getMousePosInfo(const visBase::EventInfo &, Coord3 &, BufferString &, BufferString &) const
visSurvey::LocationDisplay::manip_
Notifier< LocationDisplay > manip_
Definition: vislocationdisplay.h:147
ZAxisTransform
Base class for z-axis transforms.
Definition: zaxistransform.h:37
visSurvey::Sower
Definition: vissower.h:32
visSurvey::LocationDisplay::sKeyMgrName
static const char * sKeyMgrName()
visSurvey::LocationDisplay::bulkLocChg
void bulkLocChg(CallBacker *cb)
visSurvey::LocationDisplay::hasText
virtual bool hasText() const
Definition: vislocationdisplay.h:113
visSurvey::LocationDisplay::transformation_
const mVisTrans * transformation_
Definition: vislocationdisplay.h:161
visSurvey::SurveyObject::getMousePosInfo
virtual void getMousePosInfo(const visBase::EventInfo &, Coord3 &xyzpos, BufferString &val, BufferString &info) const
Definition: vissurvobj.h:250
Pick::SetMgr
Utility to manage pick set lifecycles. Also supports change notifications.
Definition: picksetmgr.h:34
visSurvey::LocationDisplay::world2Display
Coord3 world2Display(const Coord3 &) const
OD::String::str
const char * str() const
Definition: odstring.h:47
visSurvey::LocationDisplay::getMousePosInfo
void getMousePosInfo(const visBase::EventInfo &ei, IOPar &iop) const
Definition: vislocationdisplay.h:62
NotifierAccess
Interface class for Notifier. See comments there.
Definition: notify.h:22
visSurvey::LocationDisplay::getInvalidLocations
TypeSet< int > getInvalidLocations() const
Definition: vislocationdisplay.h:101
visSurvey::LocationDisplay::getPickIdx
int getPickIdx(visBase::DataObject *) const
visSurvey::LocationDisplay::draggerNormal
virtual bool draggerNormal() const
Definition: vislocationdisplay.h:120
visSurvey::LocationDisplay::getPickSurface
bool getPickSurface(const visBase::EventInfo &, Coord3 &pos, Coord3 &normal) const
visSurvey::LocationDisplay::allowDoubleClick
void allowDoubleClick(bool yn)
Definition: vislocationdisplay.h:57
visBase::EventInfo
Definition: visevent.h:44
visSurvey::LocationDisplay::setRightHandSystem
void setRightHandSystem(bool yn)
visSurvey::LocationDisplay::isDirMarkerClick
virtual int isDirMarkerClick(const TypeSet< int > &) const
visSurvey::LocationDisplay::getColor
virtual Color getColor() const
visSurvey::LocationDisplay::undomove_
bool undomove_
Definition: vislocationdisplay.h:174
TaskRunner
Class that can execute a task.
Definition: task.h:170
visSurvey::LocationDisplay::displayedOnlyAtSections
virtual bool displayedOnlyAtSections() const
Notifier
Class to help setup a callback handling.
Definition: notify.h:126
visSurvey::LocationDisplay::setSet
virtual void setSet(Pick::Set *)
visSurvey::LocationDisplay::setSceneEventCatcher
virtual void setSceneEventCatcher(visBase::EventCatcher *)
visSurvey::LocationDisplay::sKeyMarkerType
static const char * sKeyMarkerType()
visSurvey::LocationDisplay::clickedMarkerIndex
virtual int clickedMarkerIndex(const visBase::EventInfo &evi) const
visSurvey::LocationDisplay::isPicking
virtual bool isPicking() const
visSurvey::LocationDisplay::set_
Pick::Set * set_
Definition: vislocationdisplay.h:145
visSurvey::LocationDisplay::invalidpicks_
TypeSet< int > invalidpicks_
Definition: vislocationdisplay.h:151
visSurvey::LocationDisplay::LocationDisplay
LocationDisplay()
visSurvey::LocationDisplay::fullRedraw
void fullRedraw(CallBacker *=0)
visSurvey::LocationDisplay::removeAll
virtual void removeAll()
Pick::Location
Pick location in space,.
Definition: picklocation.h:46
visSurvey::LocationDisplay::hasDirection
virtual bool hasDirection() const
Definition: vislocationdisplay.h:112
mVisTrans
#define mVisTrans
Definition: visdata.h:28
MultiID
Compound key consisting of ints.
Definition: multiid.h:24
visSurvey::LocationDisplay::getDisplayTransformation
virtual const mVisTrans * getDisplayTransformation() const
visSurvey::LocationDisplay::allowsPicks
virtual bool allowsPicks() const
Definition: vislocationdisplay.h:72
visSurvey::SeedPainter
Definition: visseedpainter.h:36
vissurvobj.h
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
visSurvey::LocationDisplay::display2World
Coord3 display2World(const Coord3 &) const
visSurvey::LocationDisplay::getManipulationString
virtual BufferString getManipulationString() const
visSurvey::LocationDisplay::getZAxisTransform
const ZAxisTransform * getZAxisTransform() const
visSurvey::LocationDisplay::pickedsobjid_
int pickedsobjid_
Picked SurveyObject ID.
Definition: vislocationdisplay.h:155
visSurvey::LocationDisplay::removePosition
virtual void removePosition(int)
MPE::errmsg_
BufferString errmsg_
Definition: horizontracker.h:118
visSurvey::LocationDisplay::fillPar
virtual void fillPar(IOPar &) const
visSurvey::LocationDisplay::getManipulationNotifier
virtual NotifierAccess * getManipulationNotifier()
Definition: vislocationdisplay.h:76
visSurvey::LocationDisplay::hasColor
virtual bool hasColor() const
Definition: vislocationdisplay.h:68
visSurvey::LocationDisplay::setChg
virtual void setChg(CallBacker *cb)
visSurvey::LocationDisplay::pickCB
void pickCB(CallBacker *cb)
visSurvey::LocationDisplay::getSet
const Pick::Set * getSet() const
Definition: vislocationdisplay.h:46
visSurvey
Used for displaying a polyline, preview for a random line created throught well path.
Definition: visarrowdisplay.h:20
visSurvey::LocationDisplay::locChg
virtual void locChg(CallBacker *cb)
Sphere
Represents a point in spherical coordinates. The angle phi lies in the horizontal plane,...
Definition: trigonometry.h:582
visSurvey::LocationDisplay::getPainter
SeedPainter * getPainter()
visSurvey::LocationDisplay::getPickedSurveyObject
const SurveyObject * getPickedSurveyObject() const
visSurvey::LocationDisplay::mousepressid_
int mousepressid_
Definition: vislocationdisplay.h:154
visSurvey::LocationDisplay::setDraggerNormal
virtual void setDraggerNormal(const Coord3 &)
Definition: vislocationdisplay.h:119
visSurvey::LocationDisplay::sKeyID
static const char * sKeyID()
visSurvey::LocationDisplay::setSetMgr
void setSetMgr(Pick::SetMgr *)
visSurvey::LocationDisplay::ctrldown_
bool ctrldown_
Definition: vislocationdisplay.h:157
visSurvey::LocationDisplay::removeSelection
void removeSelection(const Selector< Coord3 > &, TaskRunner *)
Color
Color is an RGB color object, with a transparancy. The storage is in a 4-byte integer,...
Definition: color.h:26
visSurvey::LocationDisplay::selectionmodel_
bool selectionmodel_
Definition: vislocationdisplay.h:175
visSurvey::LocationDisplay::removeSelections
virtual bool removeSelections(TaskRunner *)
visSurvey::LocationDisplay::setColor
virtual void setColor(Color)
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
visSurvey::LocationDisplay::getActivePlaneNormal
const Coord3 getActivePlaneNormal(const visBase::EventInfo &) const
visSurvey::LocationDisplay::waitsfordirectionid_
int waitsfordirectionid_
Definition: vislocationdisplay.h:148
TypeSet< int >
visSurvey::LocationDisplay::isMarkerClick
virtual bool isMarkerClick(const visBase::EventInfo &evi) const

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