VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtDiGuyMotionController.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2023 MAK Technologies, Inc.
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvDiGuy/vrvDiGuy.h>
13 
15 
16 #include <diguyMotionDirection.h>
17 #include <diguyMotionPosture.h>
18 #include <matrix/vlVector.h>
19 
20 class DtTaitBryan;
21 class diguyCharacterGuide;
22 
23 namespace makVrv
24 {
25 
26  class DtDe;
27  class DtDiGuyCharacterModel;
28  class DtMotionModel;
29 
34  {
35  public:
36 
38  DtDiGuyMotionController( DtDiGuyCharacterModel& characterModel, DtDe& de );
39 
41  virtual ~DtDiGuyMotionController();
42 
44  virtual void flagForReinitialization() { myNeedsInit = true; }
45 
46  virtual void updateCharacterMotion( const DtVector& location, const DtTaitBryan& orientation );
47 
49  virtual const char* getActionFromDescription( diguyMotionDirection direction, diguyMotionPosture posture,
50  double actualSpeed );
51 
52  protected:
53 
55  int calculateDirectionFBLR( const DtTaitBryan& ori, const DtVector32& vel );
56 
58  int calculateDirectionFB( const DtTaitBryan& ori, const DtVector32& vel );
59 
60  void cacheMotionModel();
61 
62  protected:
63 
65  {
66 
68  : myLastDirection( DIGUY_MOTION_DIRECTION_NONE )
69  , myLastPosture( DIGUY_MOTION_POSTURE_UPRIGHT )
70  , myLastWeaponDeployed( false )
71  , myLastAction( NULL )
72  , myLastActionTime( 0.0 )
73  , myLastSpeed( 0.0 )
74  {
75  }
76 
80  const char* myLastAction;
82  double myLastSpeed;
83 
84  };
85 
86  protected:
87 
89 
93 
94  // State update tracking variables.
95  // Used for all characters in the motion model.
100 
101  };
102 
103 
107  {
108  public:
109 
112 
114  virtual DtDiGuyMotionController* create(DtDiGuyCharacterModel& characterModel, DtDe& de);
115 
117  static DtDiGuyMotionControllerCreator& instance(DtDe& de);
118 
120  static void registerInstance(DtDe& de, DtDiGuyMotionControllerCreator* instance);
121  };
122 
123 }
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
double myLastSpeed
Definition: DtDiGuyMotionController.h:82
bool myIsGeocentric
Definition: DtDiGuyMotionController.h:98
The base motion model class.
Definition: DtMotionModel.h:26
const char * myLastAction
Definition: DtDiGuyMotionController.h:80
DtDiGuyCharacterModel & myCharacterModel
Definition: DtDiGuyMotionController.h:91
DtVector myAcceleration
Definition: DtDiGuyMotionController.h:97
double myLastActionTime
Definition: DtDiGuyMotionController.h:81
DtMotionModel * myMotionModel
Definition: DtDiGuyMotionController.h:92
Creator for makVrv::DtDiGuyMotionModel.
Definition: DtDiGuyMotionController.h:106
DI-Guy Character model. This class manages a DI-Guy character (diguyCharacter) instance and makes cal...
Definition: DtDiGuyCharacterModel.h:119
bool myLastWeaponDeployed
Definition: DtDiGuyMotionController.h:79
Contains DLL export macros.
Definition: DtDiGuyMotionController.h:64
Contains makVrv::DtVirtualBaseClass class.
int myLastDirection
Definition: DtDiGuyMotionController.h:77
int myLastPosture
Definition: DtDiGuyMotionController.h:78
CharacterUpdateInfoStruct myCharacterInfo
Definition: DtDiGuyMotionController.h:90
virtual void flagForReinitialization()
Flags this controller as needing initialization again during the next update.
Definition: DtDiGuyMotionController.h:44
DtVector myLastTopoUpdateLocation
Definition: DtDiGuyMotionController.h:96
bool myNeedsInit
Definition: DtDiGuyMotionController.h:99
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:72
#define DT_DLL_VRVDIGUY
Definition: vrvDiGuy.h:21
A DiGuy based motion controller for objects which have a DI Guy character. This has been extracted fr...
Definition: DtDiGuyMotionController.h:33
DtDe & myDe
Definition: DtDiGuyMotionController.h:88
CharacterUpdateInfoStruct()
Definition: DtDiGuyMotionController.h:67

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)