VR-Forces 4.0.4 Class Documentation
include/vrfmodel/aggregatedMoveToController.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Generated by VR-Forces Component Code Generator
00003 ** WARNING: Changes to this file WILL BE LOST if file is regenerated.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: aggregatedMoveToController.h,v $ $Revision: 1.4 $ $State: Exp $
00007 *******************************************************************************/
00008 
00012 
00015 
00016 #ifndef aggregatedMoveToController_H_
00017 #define aggregatedMoveToController_H_
00018 
00019 #include "vrfobjcore/singleTaskControllerComponent.h"
00020 #include "vrfmodel/vrfmodelDefines.h"
00021 
00022 class DtCgf;
00023 class DtVrfAggregateStateRepository;
00024 class DtSimMessage;
00025 class DtAggregatedMoveToPSR;
00026 class DtOutputPortGroup;
00027 class DtVectorOutputPort;
00028 class DtAggregatedMoveToDescriptor;
00029 class DtAnalogOutputPort;
00030 class DtSetDataRequest;
00031 class DtSetDataManager;
00032 
00046 class DT_DLL_vrfmodel DtAggregatedMoveToController : public DtSingleTaskControllerComponent
00047 {
00048 private:
00050    DtAggregatedMoveToController();
00052    DtAggregatedMoveToController(const DtAggregatedMoveToController& orig);
00054    DtAggregatedMoveToController& operator=(const DtAggregatedMoveToController& orig);
00055 public:
00057    DtAggregatedMoveToController(const DtString& name, DtVrfObject* owner, DtSimManager* simManager, DtComponentDescriptor* desc=0, DtReaderWriterRegistry *parentRegistry=0);
00058 
00060    virtual ~DtAggregatedMoveToController();
00061 
00063    virtual bool init();
00064 
00066    virtual DtString type() const;
00067 
00069    virtual void tick();
00070 
00075    static void moveToCallback(DtSimMessage * msg, void * usr);
00076 
00081    static void setLocationCallback(DtSimMessage* msg, void* usr);
00082 
00087    static void moveToLocationCallback(DtSimMessage * msg, void * usr);
00088 
00093    static void moveIntoFormationCallback(DtSimMessage * msg, void * usr);
00094 
00099    static void turnToHeadingCallback(DtSimMessage* msg, void* usrData);
00100 
00102    static DtSimComponent* creator(const DtString& name, DtVrfObject* owner, DtSimManager* simManager, DtComponentDescriptor* desc=0, DtReaderWriterRegistry* parentRegistry=0);
00103 
00105    static void modifyVrfObjectCallback(DtSimMessage* msg, void* usr);
00106 
00107 protected:
00108 
00111    virtual void processMoveToTask(DtSimMessage * msg);
00112 
00113 
00114    virtual void processMoveToLocationTask(DtSimMessage * msg);
00115 
00120    virtual void processDestinationChanged();
00121 
00125    virtual bool setupDestination();
00126 
00135    virtual void setupDestinationVector() const;
00136 
00138    virtual void invalidateDestinationVector() const;
00139 
00148    virtual bool atDestination();
00149 
00151    virtual void doMoving();
00152 
00154    virtual double findDesiredHeading();
00155 
00157    virtual void moveToDestination();
00158 
00160    virtual void stop();
00161 
00163    virtual void registerTaskMsgCallbacks();
00164 
00168    virtual void processModifyVrfObject(DtSimMessage* msg);
00169 
00172    virtual void processSetLocation(DtSimMessage* msg);
00173 
00175    virtual bool createPortGroups();
00176 
00178    virtual bool createPorts();
00179 
00185    virtual bool createPSR();
00186 
00187    virtual double distanceToDestination() const;
00188 
00190    virtual void clearTask();
00191 
00196    virtual double atDistance() const;
00197 
00201    virtual void processMoveIntoFormationTask(DtSimMessage* msg);
00202 
00205    virtual void processTurnToHeadingTask(DtSimMessage* msg);
00206 
00208    virtual void sendRequestToSelf(const DtSetDataRequest& request) const;
00209 
00210 protected:
00211 
00214 
00219    DtAnalogOutputPort* myMovementDirectionOutputPort;
00220 
00225    DtAnalogOutputPort* mySpeedOutputPort;
00226 
00228    DtOutputPortGroup* myOutputPortGroup;
00229 
00235    DtVectorOutputPort* myDestinationOutputPort;
00236 
00238 
00241    DtVrfObject*     myControlPoint;
00242 
00243    DtVector          myLocalDestination;
00244    DtVector          myWorldDestination;
00245 
00246    mutable DtVector  myDestinationVector;
00247    mutable bool      myDestinationVectorIsValid;
00248 
00249    bool              myAtDestination;
00250    double            myDistanceSquared;
00251 
00252    DtVrfAggregateStateRepository* myAggregateStateRepository;
00253 
00256    DtAggregatedMoveToPSR* myProcessState;
00257 
00258    DtAggregatedMoveToDescriptor* myAggregatedMoveToDescriptor;
00259 
00262    DtSetDataManager* mySetDataManager;
00263 };
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)