VR-Forces 4.0.4 Class Documentation
include/vrfmodel/surfEntPltCtl.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2007 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: surfEntPltCtl.h,v $ $Revision: 1.34 $ $State: Exp $
00007 *******************************************************************************/
00008 
00011 
00014 
00015 #ifndef surfEntPltDtl_H_
00016 #define surfEntPltDtl_H_
00017 
00018 #include "vrfobjcore/singleTaskControllerComponent.h"
00019 
00020 class DtString;
00021 class DtSimManager;
00022 class DtConstrainedAnalogOutputPort;
00023 class DtBooleanInputPort;
00024 class DtSurfaceEntityActuator;
00025 class DtSurfaceEntityStateRepository;
00026 class DtSurfaceEntityPilotControllerDescriptor;
00027 class DtTaskMessage;
00028 class DtSurfaceMovementPSR;
00029 
00064 
00065 #include "vrfmodel/vrfmodelDefines.h"
00066 class DT_DLL_vrfmodel DtSurfaceEntityPilotController : 
00067    public DtSingleTaskControllerComponent
00068 {
00069 
00070 public:
00071 
00077    DtSurfaceEntityPilotController(const DtString& name, 
00078       DtVrfObject* owner,
00079       DtSimManager* simManager, 
00080       DtComponentDescriptor* desc = 0,
00081       DtReaderWriterRegistry* parentRegistry = 0);
00082 
00086    virtual ~DtSurfaceEntityPilotController();
00087 
00090    virtual DtString type() const;
00091 
00094    virtual bool init();
00095 
00098    virtual void tick();
00099 
00102    virtual void clearTask();
00103 
00105    virtual bool createSurfaceControlPortGroup();
00107    virtual bool createThrottlePort();
00109    virtual bool createRudderPort();
00110 
00112    virtual DtConstrainedAnalogOutputPort* throttlePort() const;
00114    virtual DtConstrainedAnalogOutputPort* rudderPort() const;
00115 
00125    virtual void sailTo(const DtVector& destination, double speed);
00126 
00137    virtual void driftTo(const DtVector& destination, double speed);
00138 
00145    virtual double calculateControlForTurn(double yawAngle);
00146 
00152    virtual double calculateControlForThrottle(double desiredSpeed);
00153 
00161    virtual double calculateControlForThrottle(double desiredSpeed, 
00162       double distance);
00163 
00168    virtual void emergencyStop();
00169 
00173    static DtSimComponent * creator(const DtString& name, 
00174       DtVrfObject* owner,
00175       DtSimManager* simManager, 
00176       DtComponentDescriptor* desc = 0,
00177       DtReaderWriterRegistry* parentRegistry = 0);
00178 
00179 protected:
00180    
00182    virtual bool createPortGroups();
00183 
00185    virtual bool createPorts();
00186    
00194    virtual void lookupAndCacheProcessSR();
00195  
00199    virtual bool postAddComponentsInit();
00200 
00204    virtual bool decideToGiveUpTask() const;
00205 
00206 protected:
00207 
00209    DtSurfaceEntityPilotController();
00210 
00212    DtSurfaceEntityPilotController(
00213       const DtSurfaceEntityPilotController & orig);
00214 
00216    const DtSurfaceEntityPilotController & operator=(
00217       const DtSurfaceEntityPilotController & orig);
00218 
00219 
00220 protected:
00221 
00222    DtSurfaceEntityStateRepository * mySurfaceEntityState;
00223    DtSurfaceEntityPilotControllerDescriptor * myDescriptor;
00224 
00225 
00228 
00233    DtBooleanInputPort* mySmallVelocityClampedInputPort;
00234 
00237    DtOutputPortGroup* mySurfaceControlPortGroup;
00238 
00244    DtConstrainedAnalogOutputPort* myThrottlePort;
00245 
00251    DtConstrainedAnalogOutputPort* myRudderPort;
00252 
00254 
00255    double myLastDistanceSquared;
00256    double myDistanceSquared;
00257 
00263    DtSurfaceMovementPSR* myProcessState;
00264 };
00265 #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)