![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 1999-2003 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: rotWngPltCtl.h,v $ $Revision: 1.27 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00014 00015 #ifndef DtRotaryWingPilotController_H_ 00016 #define DtRotaryWingPilotController_H_ 00017 00018 #include "vrfobjcore/cntrlCmpnt.h" 00019 #include <matrix/LibMatrix.h> 00020 00021 class DtString; 00022 class DtSimManager; 00023 class DtConstrainedAnalogOutputPort; 00024 class DtConstrainedDualAxisAnalogOutputPort; 00025 class DtRotaryWingEntityStateRepository; 00026 class DtOutputPortGroup; 00027 class DtInputPortGroup; 00028 class DtVectorInputPort; 00029 class DtAnalogInputPort; 00030 class DtBooleanInputPort; 00031 00036 #include "vrfmodel/vrfmodelDefines.h" 00037 class DT_DLL_vrfmodel DtRotaryWingPilotController : public DtControllerComponent 00038 { 00039 00040 public: 00041 00044 DtRotaryWingPilotController(const DtString& name, 00045 DtVrfObject* owner, 00046 DtSimManager* simManager, 00047 DtComponentDescriptor* desc = 0, 00048 DtReaderWriterRegistry* parentRegistry = 0); 00049 00051 virtual ~DtRotaryWingPilotController(); 00052 00054 virtual bool init(); 00055 00057 virtual void tick(); 00058 00061 virtual DtString type() const; 00062 00064 00065 virtual bool createGuidancePortGroup(); 00066 virtual bool createDesiredPositionPort(); 00067 virtual bool createDesiredVelocityPort(); 00068 virtual bool createDesiredAccelerationPort(); 00069 virtual bool createDesiredHeadingPort(); 00070 virtual bool createPositionSelectorPort(); 00071 virtual bool createVelocitySelectorPort(); 00072 virtual bool createAccelerationSelectorPort(); 00073 virtual bool createHeadingSelectorPort(); 00074 virtual bool createAggressivenessPort(); 00075 virtual bool createPowerDownPort(); 00077 00079 00080 virtual DtVectorInputPort *desiredPositionPort(); 00081 virtual DtVectorInputPort *desiredVelocityPort(); 00082 virtual DtVectorInputPort *desiredAccelerationPort(); 00083 virtual DtAnalogInputPort *desiredHeadingPort(); 00084 virtual DtAnalogInputPort *positionSelectorPort(); 00085 virtual DtAnalogInputPort *velocitySelectorPort(); 00086 virtual DtAnalogInputPort *accelerationSelectorPort(); 00087 virtual DtAnalogInputPort *headingSelectorPort(); 00088 virtual DtAnalogInputPort *aggressivenessPort(); 00089 virtual DtBooleanInputPort* powerDownPort(); 00091 00094 00095 virtual bool createRotaryWingControlPortGroup(); 00096 virtual bool createThrottlePort(); 00097 virtual bool createCollectivePort(); 00098 virtual bool createCyclicPort(); 00099 virtual bool createPedalPort(); 00101 00102 virtual DtConstrainedAnalogOutputPort * throttlePort(); 00103 virtual DtConstrainedAnalogOutputPort * collectivePort(); 00104 virtual DtConstrainedDualAxisAnalogOutputPort * cyclicPort(); 00105 virtual DtConstrainedAnalogOutputPort * pedalPort(); 00106 00110 static DtSimComponent * creator(const DtString& name, 00111 DtVrfObject* owner, 00112 DtSimManager* simManager, 00113 DtComponentDescriptor* desc = 0, 00114 DtReaderWriterRegistry* parentRegistry = 0); 00115 00116 protected: 00117 00119 virtual bool createPortGroups(); 00120 00122 virtual bool createPorts(); 00123 00125 virtual void setStateFromPorts(); 00126 00127 protected: 00128 00130 DtRotaryWingPilotController(); 00131 00133 DtRotaryWingPilotController(const DtRotaryWingPilotController & 00134 orig); 00135 00137 const DtRotaryWingPilotController & operator=(const 00138 DtRotaryWingPilotController & orig); 00139 00140 00141 protected: 00142 00143 DtRotaryWingEntityStateRepository * myRotaryWingEntityState; 00144 00146 00147 00150 DtOutputPortGroup* myRotaryWingControlPortGroup; 00151 00157 DtConstrainedAnalogOutputPort* myThrottlePort; 00158 00164 DtConstrainedAnalogOutputPort* myCollectivePort; 00165 00171 DtConstrainedDualAxisAnalogOutputPort* myCyclicPort; 00172 00178 DtConstrainedAnalogOutputPort* myPedalPort; 00179 00183 DtInputPortGroup *myGuidancePortGroup; 00184 00189 DtVectorInputPort *myDesiredPositionPort; 00190 00195 DtVectorInputPort *myDesiredVelocityPort; 00196 00201 DtVectorInputPort *myDesiredAccelerationPort; 00202 00207 DtAnalogInputPort *myDesiredHeadingPort; 00208 00214 DtAnalogInputPort *myPositionSelectorPort; 00215 00221 DtAnalogInputPort *myVelocitySelectorPort; 00222 00228 DtAnalogInputPort *myAccelerationSelectorPort; 00229 00235 DtAnalogInputPort *myHeadingSelectorPort; 00236 00242 DtAnalogInputPort *myAggressivenessPort; 00243 00252 DtBooleanInputPort* myPowerDownPort; 00253 00255 00256 DtVector myNormalizedBodyVelocity; 00257 }; 00258 #endif