OpendTect  6.6
visdragger.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: Nanne Hemstra
8  Date: December 2003
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 -*/
13 
14 #include "visbasemod.h"
15 #include "visobject.h"
16 #include "position.h"
17 #include "visosg.h"
18 
19 namespace osgManipulator { class Dragger; }
20 namespace osg
21 {
22  class MatrixTransform;
23  class Node;
24 }
25 
26 namespace visBase
27 {
28 
32 class DraggerCallbackHandler;
33 class Transformation;
34 
36 {
37 public:
38 
43 
44  virtual void setDisplayTransformation( const mVisTrans* );
46 
48  const Interval<float>& y,
49  const Interval<float>& z);
50 
51 protected:
52  friend class DraggerCallbackHandler;
55 
56  virtual void notifyStart() = 0;
57  virtual void notifyStop() = 0;
58  virtual void notifyMove() = 0;
59 
61  osgManipulator::Dragger* osgdragger_;
62  osg::Group* osgroot_;
63 
64  void initDragger(osgManipulator::Dragger*);
65 
66  Interval<float> spaceranges_[3];
67 
68 private:
69  DraggerCallbackHandler* cbhandler_;
70 
71 public:
72  void handleEvents(bool yn);
73  bool isHandlingEvents() const;
74 };
75 
76 
78 {
79 public:
80  static Dragger* create()
82 
83  enum Type { Translate1D, Translate2D, Translate3D,
84  Scale3D };
86 
87  void setPos(const Coord3&);
88  Coord3 getPos() const;
89 
90  void setSize(const float);
91  float getSize() const;
92 
93  void setArrowColor(const Color&);
94  const Color& getArrowColor() const;
95 
96  void setRotation(const Coord3&, const float);
98  bool defaultRotation() const;
99 
100  void setOwnShape(DataObject*,bool activeshape);
102  bool selectable() const;
103 
104  NotifierAccess* rightClicked() { return &rightclicknotifier_; }
107  void updateDragger( bool active );
109 
110 protected:
112  void triggerRightClick(const EventInfo* eventinfo);
113  virtual void notifyStart();
114  virtual void notifyStop();
115  virtual void notifyMove();
116  osg::MatrixTransform* createDefaultDraggerGeometry();
117  osg::MatrixTransform* createTranslateDefaultGeometry();
118  void setScaleAndTranslation(bool move=false);
119 
120 
123 
130 
132  float rotangle_;
134 
135 public:
136  bool isMoving() const;
137 };
138 
139 } // namespace visBase
140 
visBase::DraggerBase::DraggerBase
DraggerBase()
visBase::Dragger::draggersizescale_
float draggersizescale_
Definition: visdragger.h:128
visosg.h
Coord3
A cartesian coordinate in 3D space.
Definition: coord.h:72
visBase::Dragger::markerpos_
Coord3 markerpos_
Definition: visdragger.h:127
visBase::Dragger::create
static Dragger * create()
Definition: visdragger.h:80
visBase::DraggerBase::osgdragger_
osgManipulator::Dragger * osgdragger_
Definition: visdragger.h:61
visBase::Dragger::Type
Type
Definition: visdragger.h:83
visBase::DraggerBase::osgroot_
osg::Group * osgroot_
Definition: visdragger.h:62
visBase::DraggerBase::isHandlingEvents
bool isHandlingEvents() const
visBase::Dragger::updateDragger
void updateDragger(bool active)
visBase::Dragger::rightClickedEventInfo
const EventInfo * rightClickedEventInfo() const
visBase::Dragger::setOwnShape
void setOwnShape(DataObject *, bool activeshape)
visBase::Dragger::createDefaultDraggerGeometry
osg::MatrixTransform * createDefaultDraggerGeometry()
visBase
Definition: visannot.h:43
visBase::Dragger::setDraggerType
void setDraggerType(Type)
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
visBase::Dragger::selectable
bool selectable() const
visBase::Dragger::arrowcolor_
Color arrowcolor_
Definition: visdragger.h:133
osg
Open Scene Graph.
Definition: visannot.h:29
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
visBase::Dragger::rotangle_
float rotangle_
Definition: visdragger.h:132
visBase::Dragger::~Dragger
~Dragger()
visobject.h
visBase::Dragger::getSize
float getSize() const
visBase::Dragger::setSize
void setSize(const float)
visBase::Dragger::defaultdraggergeomsize_
float defaultdraggergeomsize_
Definition: visdragger.h:129
visBase::Dragger::notifyStart
virtual void notifyStart()
visBase::Dragger::inactiveshape_
DataObject * inactiveshape_
Definition: visdragger.h:124
visBase::DraggerBase::notifyMove
virtual void notifyMove()=0
visBase::Dragger::setDefaultRotation
void setDefaultRotation()
visBase::Dragger::setDisplayTransformation
void setDisplayTransformation(const visBase::Transformation *)
visBase::DraggerBase::setSpaceLimits
void setSpaceLimits(const Interval< float > &x, const Interval< float > &y, const Interval< float > &z)
visBase::DraggerBase::displaytrans_
const visBase::Transformation * displaytrans_
Definition: visdragger.h:60
visBase::Dragger::rightClicked
NotifierAccess * rightClicked()
Definition: visdragger.h:104
visBase::DraggerBase::changed
Notifier< DraggerBase > changed
Definition: visdragger.h:42
visBase::DraggerBase::handleEvents
void handleEvents(bool yn)
visBase::DraggerBase::motion
Notifier< DraggerBase > motion
Definition: visdragger.h:40
visBase::DraggerBase::setDisplayTransformation
virtual void setDisplayTransformation(const visBase::Transformation *)
visBase::Dragger
Definition: visdragger.h:78
visBase::Dragger::ismarkershape_
bool ismarkershape_
Definition: visdragger.h:125
NotifierAccess
Interface class for Notifier. See comments there.
Definition: notify.h:22
visBase::DraggerBase::getDisplayTransformation
const visBase::Transformation * getDisplayTransformation() const
visBase::Dragger::notifyStop
virtual void notifyStop()
visBase::EventInfo
Definition: visevent.h:44
visBase::DraggerBase::finished
Notifier< DraggerBase > finished
Definition: visdragger.h:41
visBase::Dragger::getArrowColor
const Color & getArrowColor() const
Notifier
Class to help setup a callback handling.
Definition: notify.h:126
visBase::Dragger::rotation_
Coord3 rotation_
Definition: visdragger.h:131
visBase::DraggerBase
Definition: visdragger.h:36
visBase::DraggerBase::cbhandler_
DraggerCallbackHandler * cbhandler_
Definition: visdragger.h:69
visBase::Dragger::is2dtranslate_
bool is2dtranslate_
Definition: visdragger.h:126
visBase::Dragger::setArrowColor
void setArrowColor(const Color &)
position.h
visBase::Dragger::defaultRotation
bool defaultRotation() const
mVisTrans
#define mVisTrans
Definition: visdata.h:28
visBase::Dragger::notifyMove
virtual void notifyMove()
visBase::Dragger::triggerRightClick
void triggerRightClick(const EventInfo *eventinfo)
visBase::DraggerBase::~DraggerBase
~DraggerBase()
visBase::Dragger::setPos
void setPos(const Coord3 &)
visBase::Dragger::setRotation
void setRotation(const Coord3 &, const float)
visBase::Dragger::isMoving
bool isMoving() const
visBase::Dragger::rightclickeventinfo_
const EventInfo * rightclickeventinfo_
Definition: visdragger.h:122
mCreateDataObj
#define mCreateDataObj(clss)
Definition: visdata.h:214
osgManipulator
Definition: visdragger.h:19
visBase::DraggerBase::initDragger
void initDragger(osgManipulator::Dragger *)
visBase::Dragger::rightclicknotifier_
Notifier< Dragger > rightclicknotifier_
Definition: visdragger.h:121
visBase::Dragger::createTranslateDefaultGeometry
osg::MatrixTransform * createTranslateDefaultGeometry()
visBase::Dragger::setScaleAndTranslation
void setScaleAndTranslation(bool move=false)
visBase::Dragger::rightClickedPath
const TypeSet< int > * rightClickedPath() const
visBase::DraggerBase::notifyStop
virtual void notifyStop()=0
visBase::Dragger::getPos
Coord3 getPos() const
visBase::DraggerBase::started
Notifier< DraggerBase > started
Definition: visdragger.h:39
Interval< float >
Color
Color is an RGB color object, with a transparancy. The storage is in a 4-byte integer,...
Definition: color.h:26
visBase::DraggerBase::notifyStart
virtual void notifyStart()=0
TypeSet< int >

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