![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 1999 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: mountAzimAct.h,v $ $Revision: 1.21 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00014 00015 #ifndef DtMountingAzimuthActuator_H_ 00016 #define DtMountingAzimuthActuator_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 DtAzimuthMountComponentDescriptor; 00026 class DtSimObjectBaseObjectStateRepository; 00027 00031 #include "vrfmodel/vrfmodelDefines.h" 00032 class DT_DLL_vrfmodel DtMountingAzimuthActuator : public DtActuatorComponent 00033 { 00034 00035 public: 00036 00039 DtMountingAzimuthActuator(const DtString& name, 00040 DtVrfObject* owner, 00041 DtSimManager* simManager, 00042 DtComponentDescriptor* desc = 0, 00043 DtReaderWriterRegistry* parentRegistry = 0); 00044 00046 virtual ~DtMountingAzimuthActuator(); 00047 00049 virtual bool postAddComponentsInit(); 00050 00053 virtual DtString type() const; 00054 00056 virtual void tick(); 00057 00058 virtual void setMaxSlewRate(DtReal maxSlewRate); 00059 virtual DtReal maxSlewRate() const; 00060 00061 virtual void setNominalAzimuth(DtReal nominalAzimuth); 00062 virtual DtReal nominalAzimuth() const; 00063 00064 virtual void setAzimuthSweepRange(DtReal azimuthSweepRange); 00065 virtual DtReal azimuthSweepRange() const; 00066 00070 static DtSimComponent * creator(const DtString& name, 00071 DtVrfObject* owner, 00072 DtSimManager* simManager, 00073 DtComponentDescriptor* desc = 0, 00074 DtReaderWriterRegistry* parentRegistry = 0); 00075 00079 static double computeDeltaOutsideAzimuthRange(double nominalAzimuth, 00080 double azimuthRange, 00081 double angleUnderTest); 00082 00083 protected: 00084 00086 virtual bool createPortGroups(); 00087 00089 virtual bool createPorts(); 00090 00091 protected: 00092 00094 DtMountingAzimuthActuator(); 00095 00097 DtMountingAzimuthActuator(const DtMountingAzimuthActuator & orig); 00098 00100 const DtMountingAzimuthActuator & operator=(const 00101 DtMountingAzimuthActuator & orig); 00102 00103 00104 protected: 00105 00106 DtConstrainedAnalogInputPort* myAzimuthPort; 00107 00110 00113 DtOutputPortGroup* myAzimuthInfoPortGroup; 00114 00120 DtAnalogOutputPort* myNominalAzimuthPort; 00121 00127 DtAnalogOutputPort* myAzimuthRangePort; 00128 00134 DtAnalogOutputPort* myMaxAzimuthRatePort; 00135 00141 DtIntegerOutputPort* myAzimuthPartTypePort; 00142 00144 00145 DtAzimuthMountComponentDescriptor *myAzimuthCompDesc; 00146 00147 DtReal myMaxSlewRate; 00148 DtReal myNominalAzimuth; 00149 DtReal myAzimuthSweep; 00150 00151 DtArticulatedPartStateRepository *myRotatingBody; 00152 }; 00153 00154 #endif 00155 00156 00157 00158