VR-Vantage API Documentation
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, double cameraPosition[3] = 0,
88  double cameraMatrix[16] = 0);
89 
91  const DtPickableWidget* findWidgetFromLastPick() const;
92 
94  bool signalEvents();
95 
97  void clearEvents();
98 
100  boost::signal<void ()> signal_destroyed;
101 
102  protected:
103 
106  DtPickableWidget* calculateWidgetFromLastPick();
107 
108  void debugRender();
109 
111  DtQuad* allocateQuad();
112 
114  DtLineSegment* allocateLine();
115 
117  DtTriangleProxy* allocateTriangle();
118 
120  unsigned int widgetCreated(DtPickableWidget*);
121 
123  void widgetToBeDeleted(DtPickableWidget*);
124 
125  bool allocateResources();
126 
127  protected:
128 
136 
139 
142 
144 
145  typedef boost::unordered_map<unsigned int, DtPickableWidget*> WidgetIdMap;
147 
148  unsigned int myFreeId;
149 
150  };
151 }
152 


Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)