![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2005 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: gndJoyCtl.h,v $ $Revision: 1.19 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00013 00014 00015 #ifndef DtGroundJoyMoveController_H_ 00016 #define DtGroundJoyMoveController_H_ 00017 00018 #include "vrfmodel/gndAutoCntlr.h" 00019 #include "vrfobjcore/simRadio.h" 00020 00021 class DtString; 00022 class DtSimManager; 00023 class DtGroundJoyDeviceControllerDescriptor; 00024 class DtJoyDevice; 00025 00026 00031 #include "vrfmodel/vrfmodelDefines.h" 00032 class DT_DLL_vrfmodel DtGroundJoyMoveController : public DtGroundAutoControllerComponent 00033 { 00034 public: 00035 00038 DtGroundJoyMoveController(const DtString& name, DtVrfObject* owner, 00039 DtSimManager* simManager, DtComponentDescriptor* desc, 00040 DtReaderWriterRegistry * parentRegistry = 0); 00041 00043 virtual ~DtGroundJoyMoveController(); 00044 00046 virtual void tick(); 00047 00050 virtual DtString type() const; 00051 00054 virtual void setComponentDescriptor(DtComponentDescriptor *descriptor); 00055 00058 static void setJoyDeviceSwitchCallbacks(DtSimMessage * msg, void * usrData); 00059 00060 virtual void processSetJoyDeviceSwitch(DtSimMessage * msg); 00061 00062 virtual void calcAndSetPortValues(); 00063 00064 virtual bool joystickEnabled() const; 00065 00069 static DtSimComponent * creator(const DtString& name, 00070 DtVrfObject* owner, 00071 DtSimManager* simManager, 00072 DtComponentDescriptor* desc = 0, 00073 DtReaderWriterRegistry* parentRegistry = 0); 00074 00075 virtual bool collisionDetected(); 00076 00077 private: 00078 00080 DtGroundJoyMoveController(); 00081 00083 DtGroundJoyMoveController( 00084 const DtGroundJoyMoveController& orig); 00085 00087 DtGroundJoyMoveController& operator=( 00088 const DtGroundJoyMoveController& orig); 00089 00090 protected: 00092 virtual void initializeJoyDevice(); 00093 00095 virtual void setRadio(DtSimRadio * radio); 00096 00097 virtual bool detectCollision(); 00098 00099 // Process colliding with a lifeform. Default will destroy if the lifeform shares 00100 // the same parent as the vehicle 00101 virtual void collideWithLifeform(DtVrfObject*); 00102 00103 protected: 00104 DtJoyDevice * myJoyDevice; 00105 bool myInitialized; 00106 00107 int myCurrentGear; 00108 00109 bool myCollisionDetected; 00110 bool myInternalCollisionDetected; 00111 00112 const DtGroundJoyDeviceControllerDescriptor* myJoyDeviceControllerDescriptor; 00113 bool myJoystickEnabled; 00114 }; 00115 00116 #endif