VR-Forces 4.0.4 Class Documentation
include/vrfmodel/baseMountCtlr.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 1999-2003 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: baseMountCtlr.h,v $ $Revision: 1.26 $ $State: Exp $
00007 *******************************************************************************/
00008 
00011 
00014 
00015 #ifndef DtBaseMountingController_H_
00016 #define DtBaseMountingController_H_
00017 
00018 
00019 #include "vrfobjcore/cntrlCmpnt.h"
00020 #include <vlpi/disEnums.h>
00021 
00022 class DtAnalogInputPort;
00023 class DtConstrainedAnalogOutputPort;
00024 class DtIntegerInputPort;
00025    
00034 #include "vrfmodel/vrfmodelDefines.h"
00035 class DT_DLL_vrfmodel DtBaseMountingController : public DtControllerComponent
00036 {
00037 
00038 public:
00039 
00042    DtBaseMountingController(const DtString& name, 
00043       DtVrfObject* owner,
00044       DtSimManager* simManager, 
00045       DtComponentDescriptor* desc = 0,
00046       DtReaderWriterRegistry* parentRegistry = 0);
00047 
00049    virtual ~DtBaseMountingController();
00050 
00052    virtual bool postAddComponentsInit();
00053 
00056    virtual DtString type() const;
00057 
00059    virtual DtOutputPortGroup* mountingControlPortGroup();
00060 
00062    virtual DtInputPortGroup* azimuthInfoPortGroup();
00063 
00065    virtual DtInputPortGroup* elevationInfoPortGroup();
00066    
00068    virtual void tick();
00069 
00088    virtual void reorientMounting();
00089 
00093    virtual void setDesiredAzimuth(DtReal desiredAzimuth);
00094    virtual DtReal desiredAzimuth();
00096 
00100    virtual void setDesiredElevation(DtReal desiredElevation);
00101    virtual DtReal desiredElevation();
00103 
00104    virtual void findDesiredAzimuthAndElevation();
00105 
00112    virtual bool desiredOrientationIsInRange(double& azimuthOutOfRangeBy,
00113       double& elevationOutOfRangeBy, double additionalAzimuthMargin = 0.0,
00114       double additionalElevationMargin = 0.0);
00115 
00118    virtual bool createAzimuthPort();
00119    virtual DtConstrainedAnalogOutputPort * azimuthPort() const;
00120 
00121    virtual bool createElevationPort();
00122    virtual DtConstrainedAnalogOutputPort * elevationPort() const;
00123 
00125    virtual bool createAzimuthInfoPorts();
00126    
00128    virtual bool createElevationInfoPorts();
00129    
00138    virtual double approximateMountSwing(double angleChange, double maxRate);
00139 
00143    static DtSimComponent * creator(const DtString& name, 
00144       DtVrfObject* owner,
00145       DtSimManager* simManager, 
00146       DtComponentDescriptor* desc = 0,
00147       DtReaderWriterRegistry* parentRegistry = 0);
00148 
00149 protected:
00150    
00152    virtual bool createPortGroups();
00153 
00155    virtual bool createPorts();
00156 
00157 protected:
00158 
00160    DtBaseMountingController();
00161 
00163    DtBaseMountingController(const DtBaseMountingController & orig);
00164 
00166    const DtBaseMountingController & operator=(const DtBaseMountingController & 
00167       orig);
00168 
00169 protected:
00170 
00173 
00177    DtInputPortGroup* myAzimuthInfoPortGroup;
00178 
00184    DtAnalogInputPort* myNominalAzimuthPort;
00185 
00191    DtAnalogInputPort* myAzimuthRangePort;
00192 
00198    DtAnalogInputPort* myMaxAzimuthRatePort;
00199 
00205    DtIntegerInputPort* myAzimuthPartTypePort;
00206    
00210    DtInputPortGroup* myElevationInfoPortGroup;
00211 
00217    DtAnalogInputPort* myNominalElevationPort;
00218 
00224    DtAnalogInputPort* myElevationRangePort;
00225 
00231    DtAnalogInputPort* myMaxElevationRatePort;
00232 
00238    DtIntegerInputPort* myElevationPartTypePort;
00239 
00243    DtOutputPortGroup* myMountingControlPortGroup;
00244 
00250    DtConstrainedAnalogOutputPort* myAzimuthPort;
00251 
00257    DtConstrainedAnalogOutputPort* myElevationPort;
00258 
00260 
00261    DtArticulatedPartStateRepository *  myAzimuthMountPart;
00262    DtArticulatedPartStateRepository *  myElevationMountPart;
00263    DtArticulatedPartStateRepository *  myChildSimBody;
00264 
00266    DtReal             myDesiredAzimuth;
00268    DtReal             myDesiredElevation;
00269 
00273    DtReal             myAngleApproxMargin;
00274 
00275 };
00276 
00277 #endif

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)