![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 1999 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: mountElevAct.h,v $ $Revision: 1.22 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00014 00015 #ifndef DtMountingElevationActuator_H_ 00016 #define DtMountingElevationActuator_H_ 00017 00018 #include "vrfobjcore/actCmpnt.h" 00019 00020 class DtString; 00021 class DtSimManager; 00022 class DtConstrainedAnalogInputPort; 00023 class DtAnalogOutputPort; 00024 class DtIntegerOutputPort; 00025 class DtElevationMountComponentDescriptor; 00026 00031 #include "vrfmodel/vrfmodelDefines.h" 00032 class DT_DLL_vrfmodel DtMountingElevationActuator : public DtActuatorComponent 00033 { 00034 00035 public: 00036 00039 DtMountingElevationActuator(const DtString& name, 00040 DtVrfObject* owner, 00041 DtSimManager* simManager, 00042 DtComponentDescriptor* desc = 0, 00043 DtReaderWriterRegistry* parentRegistry = 0); 00044 00046 virtual ~DtMountingElevationActuator(); 00047 00049 virtual bool postAddComponentsInit(); 00050 00053 virtual DtString type() const; 00054 00056 virtual void tick(); 00057 00058 virtual void setMaxElevateRate(DtReal maxElevateRate); 00059 virtual DtReal maxElevateRate() const; 00060 00061 virtual void setNominalElevation(DtReal nominalElevation); 00062 virtual DtReal nominalElevation() const; 00063 00064 virtual void setElevationRange(DtReal elevationRange); 00065 virtual DtReal elevationRange() const; 00066 00070 static DtSimComponent * creator(const DtString& name, 00071 DtVrfObject* owner, 00072 DtSimManager* simManager, 00073 DtComponentDescriptor* desc = 0, 00074 DtReaderWriterRegistry* parentRegistry = 0); 00075 00081 static double computeDeltaOutsideElevationRange(double nominalElevation, 00082 double elevationRange, 00083 double angleUnderTest); 00084 00085 protected: 00086 00088 virtual bool createPortGroups(); 00089 00091 virtual bool createPorts(); 00092 00093 protected: 00094 00096 DtMountingElevationActuator(); 00097 00099 DtMountingElevationActuator(const DtMountingElevationActuator & orig); 00100 00102 const DtMountingElevationActuator & operator=(const 00103 DtMountingElevationActuator & orig); 00104 00105 00106 protected: 00107 00110 00116 DtConstrainedAnalogInputPort* myElevationPort; 00117 00120 DtOutputPortGroup* myElevationInfoPortGroup; 00121 00127 DtAnalogOutputPort* myNominalElevationPort; 00128 00134 DtAnalogOutputPort* myElevationRangePort; 00135 00141 DtAnalogOutputPort* myMaxElevationRatePort; 00142 00148 DtIntegerOutputPort* myElevationPartTypePort; 00149 00151 00152 const DtElevationMountComponentDescriptor* myElevationCompDesc; 00153 00154 DtReal myMaxElevateRate; 00155 DtReal myNominalElevation; 00156 DtReal myElevationRange; 00157 00158 DtArticulatedPartStateRepository *myRotatingBody; 00159 }; 00160 00161 #endif