VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DtOsgGlStudioCockpit.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
9 #pragma once
10 
12 #include <vrvCore/DtUniqueID.h>
13 #include <vrvCore/DtTickable.h>
14 #include <vlpi/exponentialSmoother.h>
15 
16 #include <osg/ref_ptr>
17 #include <osg/MatrixTransform>
18 
19 #include <string>
20 #include <map>
21 
22 
23 namespace osg
24 {
25  class Switch;
26  class Group;
27 }
28 
29 namespace makVrv
30 {
31  class DtDe;
32  class DtGlStudioDrawable;
33  class DtChannelSpecificGroup;
34  class DtGlStudioEventProcessor;
35  class DtMouseEvent;
36  class DtChannelManager;
37  class DtChannel;
38  class DtChannelConfiguration;
39  class DtWindowConfiguration;
40  class DtGlStudioAttributeUpdater;
41  class DtObserverObject;
42  class DtSceneObject;
43 
49  {
50  public:
51  enum DtPerspective {Dt2D, Dt3D};
52  typedef std::map<std::string, DtGlStudioAttributeUpdater*> DtAttributeUpdateMap;
53 
55  virtual ~DtOsgGlStudioCockpit();
56 
57  //@name Distributed Interface
59 
64  virtual void createCockpit(const std::string& filename,
65  const std::string& rsoName, DtPerspective p,
66  DtUniqueID attachedEntityElementId = 0);
67 
68  virtual void removeCockpit();
69 
71  virtual void setProperty(const std::string& prop, const std::string& val);
72 
74  virtual void setChannelKeyword(const std::string& channelKeyword);
75 
77  virtual void setPerspective(const double& width, const double& height);
78 
80  virtual void setOffset(const double& x, const double& y, const double& z);
81 
83  virtual void setDynamicScale(const double& x, const double& y,
84  const double& z);
85 
87  virtual void setDynamicRotate(const double& x, const double& y,
88  const double& z);
89 
91  virtual void setVisible(bool vis);
92 
94  virtual void addUpdater(const std::string& name, const std::string& type);
95 
98  virtual void updateTSPI(const DtVector& loc, const DtVector& vel,
99  const DtVector& accel, const DtTaitBryan& orient,
100  const DtVector& rotVel, int algorithm);
101 
103  virtual void setObserverName(const std::string& obsName);
104 
108  virtual void setRenderCockpitOnly(bool cockpitOnly);
109 
111 
112  //@name Local Interface
114 
117  virtual std::string className() const;
118 
120  DtUniqueID uniqueID() const;
121 
124  virtual void updateMatrixTransform();
125 
127  virtual bool handleMouseInput(const DtMouseEvent& ea);
128 
130  virtual double update();
131 
133 
135  virtual bool needsUpdate( DtTime tNow );
136 
138  virtual void update( DtTime tNow );
139 
140  protected:
141  //attributes of the current entity
143 
145  virtual void initGlStudio();
146 
148  virtual osg::Group* createOverlayObjects();
149 
152  virtual osg::Group* createChannelNode();
153 
155  virtual void deepRemoveChildren(osg::Group* g);
156 
158  virtual void slot_channelAdded(DtChannelManager* mgr, DtChannel* channel);
159 
161  virtual void slot_channelDestroyed(DtChannelManager* mgr, DtChannel* channel);
162 
164  virtual void slot_channelModified(const std::string& deName, const std::string& windowName,
165  const std::string& channelName, const DtChannelConfiguration& config);
166 
168  virtual void slot_smoothingEnabled(bool smooth);
170  virtual void slot_smoothingPeriod(const double& period);
171 
172  virtual void slot_projectionChanged( DtObserverObject*, bool is2D );
173 
176  std::string myRsoName;
177  std::string myFilename;
178  double myWidth;
179  double myHeight;
181  std::string myChannelKeyword;
182  double myOffsetX;
183  double myOffsetY;
184  double myOffsetZ;
191  std::string myObserverName;
195 
196  osg::Group* myGlStudioGroup;
197  osg::Group* myGlStudio3DGroup;
198  osg::Switch* myViewSwitchNode;
199  osg::ref_ptr<osg::MatrixTransform> myMatrixTransform;
204 
206  DtExponentialSmoother mySmoother;
210  };
211 }

Document ID: Generated on Mon Jul 4 01:00:18 EDT 2016 from SVN revision 166489
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)