OpendTect  6.3
visboxdragger.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: N. Hemstra
8  Date: August 2002
9 ________________________________________________________________________
10 
11 
12 -*/
13 
14 #include "visobject.h"
15 #include "position.h"
16 
17 
18 namespace osgGeo { class TabBoxDragger; }
19 namespace osg { class ShapeDrawable; }
20 
21 
22 
23 namespace visBase
24 {
25 
26 class BoxDraggerCallbackHandler;
27 
29 {
30 public:
31  friend class BoxDraggerCallbackHandler;
32 
33  static BoxDragger* create()
35 
36  void setCenter(const Coord3&);
37  Coord3 center() const;
38 
39  void setWidth(const Coord3&);
40  Coord3 width() const;
41 
42  void setBoxTransparency(float);
44  void showScaleTabs(bool);
45 
46  void setSpaceLimits(const Interval<float>&,
47  const Interval<float>&,
48  const Interval<float>&);
49 
50  void setWidthLimits(const Interval<float>& x,
51  const Interval<float>& y,
52  const Interval<float>& z );
53 
54  void showDraggerBorder(bool yn=true);
55  bool isDraggerBorderShown() const;
56 
57  bool selectable() const { return selectable_; }
58  void setSelectable(bool yn) { selectable_ = yn; }
59 
60  void setDisplayTransformation(const mVisTrans*);
61  const mVisTrans* getDisplayTransformation() const;
62 
63  void setPlaneTransDragKeys(bool depth,int keys);
71  int getPlaneTransDragKeys(bool depth) const;
77  void useInDepthTranslationForResize(bool);
78  bool isInDepthTranslationUsedForResize() const;
79 
80  void setDragCtrlSpacing(const StepInterval<float>&,
81  const StepInterval<float>&,
82  const StepInterval<float>&);
83 
88 
89 protected:
90  ~BoxDragger();
91 
93 
94  void setOsgMatrix(const Coord3& worldscale,
95  const Coord3& worldtrans);
96 
97  osgGeo::TabBoxDragger* osgboxdragger_;
98  osg::ShapeDrawable* osgdraggerbox_;
99  BoxDraggerCallbackHandler* osgcallbackhandler_;
100 
101  Interval<float> widthranges_[3];
102  Interval<float> spaceranges_[3];
103 
104  StepInterval<float> dragctrlspacing_[3];
105 
108 };
109 
110 };
111 
#define mExpClass(module)
Definition: commondefs.h:157
void setSelectable(bool yn)
Definition: visboxdragger.h:58
static BoxDragger * create()
Definition: visboxdragger.h:33
Definition: visboxdragger.h:28
Notifier< BoxDragger > motion
Definition: visboxdragger.h:85
A collection of geoscientific extensions to OpenSceneGraph.
Definition: visannot.h:35
Notifier< BoxDragger > finished
Definition: visboxdragger.h:87
Notifier< BoxDragger > started
Definition: visboxdragger.h:84
Interval of values.
Definition: commontypes.h:27
ConstRefMan< visBase::Transformation > transform_
Definition: visboxdragger.h:92
Class to help setup a callback handling.
Definition: notify.h:121
Notifier< BoxDragger > changed
Definition: visboxdragger.h:86
3D point or vector
Definition: commontypes.h:57
#define mVisTrans
Definition: visdata.h:25
bool useindepthtransforresize_
Definition: visboxdragger.h:107
bool selectable_
Definition: visboxdragger.h:106
Definition: visannot.h:40
osg::ShapeDrawable * osgdraggerbox_
Definition: visboxdragger.h:98
BoxDraggerCallbackHandler * osgcallbackhandler_
Definition: visboxdragger.h:99
Open Scene Graph.
Definition: visannot.h:26
#define mCreateDataObj(clss)
Definition: visdata.h:210
Definition: visobject.h:67
osgGeo::TabBoxDragger * osgboxdragger_
Definition: visboxdragger.h:97

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