OpendTect  6.6
vispolygonselection.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: K. Tingdahl
8  Date: June 2008
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 
13 -*/
14 
15 #include "visbasemod.h"
16 #include "visobject.h"
17 #include "selector.h"
18 #include "draw.h"
19 #include "thread.h"
20 
21 
22 namespace osgGeo{ class PolygonSelection; }
23 
24 template <class T> class ODPolygon;
25 
26 namespace visBase
27 {
28 class Material;
29 class SelectionCallBack;
30 class DrawStyle;
31 class Camera;
32 
40 {
41 public:
44  enum SelectionType { Off, Rectangle, Polygon };
47 
49  const OD::LineStyle& getLineStyle() const;
50 
51  void clear();
52  bool hasPolygon() const;
53  bool singleSelection() const;
54  bool isSelfIntersecting() const;
55  bool isInside(const Coord3&,
56  bool displayspace=false) const;
57 
58  char includesRange(const Coord3& start,
59  const Coord3& stop,
60  bool displayspace ) const;
76 
77  bool rayPickThrough(const Coord3& worldpos,
78  TypeSet<int>& pickedobjids,
79  int depthidx=0) const;
83 
84 protected:
86  const osgGeo::PolygonSelection*);
88 
90 
91 
93 
97 
98 
99  osgGeo::PolygonSelection* selector_;
100  // TODO: rename to primarycamera_
102  SelectionCallBack* selectorcb_;
103 
104 public:
105  mDeprecated("Use setPrimaryCamera")
106  void setMasterCamera(Camera*);
107 };
108 
109 
111 {
112 public:
115 
117  const char* selectorType() const;
118  bool isOK() const;
119  bool hasPolygon() const;
120  bool includes(const Coord3&) const;
121  bool canDoRange() const { return true; }
122  char includesRange(const Coord3& start,
123  const Coord3& stop) const;
125 
126 protected:
127  bool isEq(const Selector<Coord3>&) const;
128 
130 };
131 
132 };
133 
134 
visBase::PolygonCoord3Selector::PolygonCoord3Selector
PolygonCoord3Selector(const PolygonSelection &)
Coord3
A cartesian coordinate in 3D space.
Definition: coord.h:72
OD::LineStyle
Definition: draw.h:118
Selector
Interface for classes that select on basis of a key.
Definition: selector.h:25
ODPolygon
(Closed) sequence of connected 2-D coordinates.
Definition: polygon.h:27
visBase::PolygonSelection::polygonFinished
static Notifier< PolygonSelection > * polygonFinished()
visBase::PolygonSelection::getLineStyle
const OD::LineStyle & getLineStyle() const
visBase::PolygonSelection::mastercamera_
Camera * mastercamera_
Definition: vispolygonselection.h:101
visBase::PolygonSelection::utm2disptransform_
const visBase::Transformation * utm2disptransform_
Definition: vispolygonselection.h:92
visBase::PolygonCoord3Selector::includes
bool includes(const Coord3 &) const
visBase::PolygonSelection::selector_
osgGeo::PolygonSelection * selector_
Definition: vispolygonselection.h:99
visBase::PolygonSelection::create
static PolygonSelection * create()
Definition: vispolygonselection.h:42
visBase
Definition: visannot.h:43
Threads::ReadWriteLock
Lock that permits multiple readers to lock the object at the same time, but it will not allow any rea...
Definition: thread.h:143
visBase::PolygonSelection::isInside
bool isInside(const Coord3 &, bool displayspace=false) const
visBase::PolygonSelection::mDeprecated
mDeprecated("Use setPrimaryCamera") void setMasterCamera(Camera *)
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
visBase::PolygonCoord3Selector::includesRange
char includesRange(const Coord3 &start, const Coord3 &stop) const
visBase::PolygonCoord3Selector::isOK
bool isOK() const
visBase::PolygonSelection::hasPolygon
bool hasPolygon() const
visBase::PolygonSelection::isSelfIntersecting
bool isSelfIntersecting() const
CallBacker
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:185
visobject.h
visBase::PolygonSelection::polygon_
ODPolygon< double > * polygon_
Definition: vispolygonselection.h:95
visBase::PolygonSelection::setLineStyle
void setLineStyle(const OD::LineStyle &)
visBase::PolygonSelection::copy
PolygonSelection * copy() const
visBase::PolygonSelection
Definition: vispolygonselection.h:40
visBase::PolygonSelection::SelectionType
SelectionType
Definition: vispolygonselection.h:44
Seis::Polygon
@ Polygon
Definition: seistype.h:25
visBase::PolygonCoord3Selector::canDoRange
bool canDoRange() const
Definition: vispolygonselection.h:121
visBase::PolygonSelection::setPrimaryCamera
void setPrimaryCamera(Camera *)
Notifier
Class to help setup a callback handling.
Definition: notify.h:126
visBase::PolygonSelection::setUTMCoordinateTransform
void setUTMCoordinateTransform(const visBase::Transformation *)
draw.h
visBase::PolygonSelection::polygonChangeCB
void polygonChangeCB(CallBacker *)
mVisTrans
#define mVisTrans
Definition: visdata.h:28
visBase::PolygonSelection::clear
void clear()
visBase::VisualObjectImpl
Definition: visobject.h:72
visBase::PolygonSelection::drawstyle_
DrawStyle * drawstyle_
Definition: vispolygonselection.h:94
visBase::PolygonSelection::includesRange
char includesRange(const Coord3 &start, const Coord3 &stop, bool displayspace) const
visBase::PolygonSelection::getSelectionType
SelectionType getSelectionType() const
visBase::PolygonSelection::PolygonSelection
PolygonSelection(const osgGeo::PolygonSelection *)
visBase::PolygonCoord3Selector
Definition: vispolygonselection.h:111
visBase::PolygonCoord3Selector::hasPolygon
bool hasPolygon() const
osgGeo
A collection of geoscientific extensions to OpenSceneGraph.
Definition: visannot.h:38
mCreateDataObj
#define mCreateDataObj(clss)
Definition: visdata.h:214
selector.h
visBase::Camera
keep osg camera status and render info
Definition: viscamera.h:30
visBase::PolygonCoord3Selector::isEq
bool isEq(const Selector< Coord3 > &) const
visBase::PolygonSelection::singleSelection
bool singleSelection() const
visBase::PolygonCoord3Selector::clone
Selector< Coord3 > * clone() const
visBase::PolygonCoord3Selector::vissel_
const PolygonSelection & vissel_
Definition: vispolygonselection.h:129
visBase::PolygonCoord3Selector::selectorType
const char * selectorType() const
visBase::PolygonCoord3Selector::~PolygonCoord3Selector
~PolygonCoord3Selector()
visBase::PolygonSelection::~PolygonSelection
~PolygonSelection()
thread.h
visBase::PolygonSelection::setSelectionType
void setSelectionType(SelectionType)
visBase::DrawStyle
Definition: visdrawstyle.h:33
visBase::PolygonSelection::rayPickThrough
bool rayPickThrough(const Coord3 &worldpos, TypeSet< int > &pickedobjids, int depthidx=0) const
visBase::PolygonCoord3Selector::copySelection
void copySelection(const PolygonSelection &)
visBase::PolygonSelection::selectorcb_
SelectionCallBack * selectorcb_
Definition: vispolygonselection.h:102
visBase::PolygonSelection::polygonlock_
Threads::ReadWriteLock polygonlock_
Definition: vispolygonselection.h:96
TypeSet< int >
visBase::PolygonSelection::setHUDCamera
void setHUDCamera(Camera *)

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