VR-Forces 4.5 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DtWidgetPicker.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2010 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
7 #pragma once
9 #include <boost/unordered_map.hpp>
10 
11 namespace makVrv
12 {
13  class DtFrameBufferObject;
14  class DtLineRenderer;
15  class DtLineSegment;
16  class DtOverlayResourceProvider;
17  class DtPickableTriangle;
18  class DtPickableWidget;
19  class DtPixelBufferObject;
20  class DtQuad;
21  class DtQuadRenderer;
22  class DtTextureObject;
23  class DtTriangleProxy;
24  class DtTriangleRenderer;
25  class DtPickableWidget;
26  class DtPickableQuad;
27  class DtPickableLine;
28  class DtPickableTriangle;
29 
33  {
34  public:
35 
37  {
38  NO_EVENT = 0,
49  MOUSE_WHEEL
50  };
51 
53  {
55  int x;
56  int y;
57  int wheel;
58  };
59 
60 
61  friend class DtPickableWidget;
62  friend class DtPickableQuad;
63  friend class DtPickableLine;
64  friend class DtPickableTriangle;
65 
67  ~DtWidgetPicker();
68 
70  unsigned int numberOfWidgets() const;
71 
73  void releaseResources();
74 
76  DtPickableQuad* allocatePickableQuad();
77 
79  DtPickableTriangle* allocatePickableTriangle();
80 
82  DtPickableLine* allocatePickableLine();
83 
86  void pick(const MousePickRecord& rec,int w, int h,
87  bool geocentric
88  , double cameraPosition[3]
89  , double cameraMatrix[16]);
90 
92  const DtPickableWidget* findWidgetFromLastPick() const;
93 
95  bool signalEvents();
96 
98  void clearEvents();
99 
101  boost::signal<void ()> signal_destroyed;
102 
103  protected:
104 
107  DtPickableWidget* calculateWidgetFromLastPick();
108 
109  void debugRender();
110 
112  DtQuad* allocateQuad();
113 
115  DtLineSegment* allocateLine();
116 
118  DtTriangleProxy* allocateTriangle();
119 
121  unsigned int widgetCreated(DtPickableWidget*);
122 
124  void widgetToBeDeleted(DtPickableWidget*);
125 
126  bool allocateResources();
127 
128  protected:
129 
137 
140 
143 
145 
146  typedef boost::unordered_map<unsigned int, DtPickableWidget*> WidgetIdMap;
148 
149  unsigned int myFreeId;
150 
151  };
152 }
153 

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)