VR-Forces 4.3.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DtDiGuyCharacterModel.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvDiGuy/vrvDiGuy.h>
14 #include <osg/ref_ptr>
15 #include <osg/Geometry>
16 
17 #include <matrix/topoCoord.h>
18 
19 //#define VISUALIZE_DIGUY_VELOCITY
20 
21 class diguyCharacter;
22 class diguyCharacterGuide;
23 
24 namespace osg
25 {
26  class Group;
27 }
28 
29 namespace makVrv
30 {
31  class DtParticleSystemModelAgent;
32  class DtSceneObjectAgent;
33  class DtDiGuyScenario;
34 
36  {
37  float mySpeed;
39  std::string myName;
40  };
41 
42  class DtOsgSceneConnector;
43  class DtSceneObject;
44 
48  {
49  public:
52 
54  virtual ~DtDiGuyCharacterModel();
55 
56  virtual void setModelDefinition(const std::string& modelDefinition);
57 
59  virtual void addToScene( const DtUniqueID& sceneObjectId, int modelSet,
60  int visualizerType );
61 
63  virtual void removeFromScene();
64 
66  virtual void setPosition( int vtx, const DtVector& position );
67 
69  virtual void setOrientation( int vtx, const DtTaitBryan& orientation );
70 
73  virtual std::string className() const;
74 
78  virtual void setCharacterModel(const std::string& characterType);
79 
83  virtual void setEnableAnimationSmoothing(bool);
84 
86  virtual bool enableAnimationSmoothing() const;
87 
89 
90  virtual void setDefaultAppearance(const std::string& appearanceName);
91  virtual void setAppearance(const std::string& appearanceName);
92  virtual void setHeadAppearance(const std::string& appearanceName);
93  virtual void setItemAppearance(const std::string& appearanceName);
95 
96  virtual void setFlamesPresent(bool val);
97  virtual void setEnginePlume(bool val);
98  virtual void setEngineSmoke(bool val);
99  virtual void setTrailState(bool val);
100 
101  virtual void beginAppearanceEffect(const std::string& effect,const std::string& overrideLink,
102  float overrideScale,const DtVector& overrideOffset,float overrideDuration );
103  virtual void endAppearanceEffect(int instant, const std::string& effect,const std::string& overrideLink);
104 
105  virtual void executeGesture(const std::string& gestureName, int reps,
106  float overallDuration, float channelAWeight);
107  virtual void endGesture(const std::string& gestureName,float rampDown);
108 
110  virtual void setDesiredAction(const std::string& action,float speed);
111 
113  virtual void forceAction(const std::string& action, float speed, int autoChooseTransitionBehavior);
114 
116  virtual void forceTemporaryAction(const std::string& action, double duration);
117 
119  virtual void setSpeed(float speed);
120 
122  virtual bool weaponDeployed() const;
123 
125  virtual void setWeaponDeployed(bool deployed);
126 
129  void setFullUpdateNeeded(bool updated);
130 
132  bool fullUpdateNeeded() const;
133 
136  virtual void die(const std::string& deathAction);
137 
139  virtual void revive(const std::string& aliveAction);
140 
142  virtual void setPaused(bool paused);
143 
145  bool paused() const;
146 
148  diguyCharacter* character();
149 
151  virtual void setPosture(int posture);
152 
156  bool autoGenerateActions() const;
157 
161  bool autoGenerateActionSpeed() const;
162 
165  virtual void setModelScalingEnabled( bool b );
166 
167  virtual void setIsSupportModel(bool isSupport);
168 
169  static void setDiGuyAttachGroup(osg::Group* diguy_attach_pt) {DiguyAttachGroup = diguy_attach_pt;}
170 
172  virtual void setEmbarked( bool embarkedState );
173  virtual bool embarked() const;
174 
175  virtual void setScale(const DtVector & scale);
176  virtual void setPartOrientation(int partNumber,
177  const DtTaitBryan& orientation, const DtVector& rotationalVelocity);
178 
179  diguyCharacterGuide * getGuide(){return myGuide;}
180  void setGuide(diguyCharacterGuide * guide){myGuide = guide;}
181 
182  bool getVRForcesEntity(){return myVRForcesEntity;}
183 
184  void setUpTopoConversion( const DtVector& location );
185  void topoOrientationFor(
186  const DtVector& location, const DtVector & velocity, const DtTaitBryan& orientation,
187  DtVector &outVelocity, DtTaitBryan & outOrientation );
188 
189  bool getIsVehicle(){return m_vehicle;}
190 
191  DtDiGuyScenario & getScenario();
192 
193  protected:
194 
195  virtual void setSceneObjectIdOnCollisionBoxes();
196 
198  void slot_modelInstanceToBeDestroyed(DtModelInstance*, DtModel*);
199 
201  void slot_modelInstanceCreated(DtModelInstance*, DtModel*);
202 
203 
204 
205  protected:
206 
207  //void updateParticleSystem(const std::string& appearanceName);
208 
209  static osg::Group* DiguyAttachGroup;
210  DtTaitBryan myOrientation;
212 
213  diguyCharacter* myCharacter;
214  diguyCharacterGuide * myGuide;
215 
225 
227  bool m_vehicle;
228  float m_aim_az;
229  float m_aim_el;
230  float m_gaze_az;
231  float m_gaze_el;
232 
234 
235  //particle support
236  DtParticleSystemModelAgent * myParticleAgent;
237  DtSceneObjectAgent * mySceneObjectParticle;
238 
239  public:
240  DtCoordTransform m_geocToTopo;
241  DtCoordTransform m_topoToGeoc;
242 
243 #ifdef VISUALIZE_DIGUY_VELOCITY
244  osg::ref_ptr<osg::Geometry> myDesiredPositionLine;
245  osg::ref_ptr<osg::Geometry> myDesiredVelocityLine;
246  osg::ref_ptr<osg::Geometry> myVelocityLine;
247  osg::ref_ptr<osg::Geometry> myCordSys;
248  osg::ref_ptr<osg::Geometry> myCurrentDesiredPositionLine;
249  osg::ref_ptr<osg::Geode> myVizualizers;
250  osg::ref_ptr<osg::MatrixTransform> myVizualizersTransform;
251 #endif
252  };
253 }

Document ID: Generated on Wed Jul 29 00:55:00 EDT 2015 from SVN revision 155257
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)