VR-Forces 4.0.4 Class Documentation
include/vrfmodel/humanMoveToController.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: humanMoveToController.h,v $ $Revision: 1.7 $ $State: Exp $
00007 *******************************************************************************/
00008 
00012 
00015 
00016 #ifndef DtHumanMoveToController_H_
00017 #define DtHumanMoveToController_H_
00018 
00019 #include "vrfobjcore/singleTaskControllerComponent.h"
00020 #include "vrfmodel/vrfmodelDefines.h"
00021 
00022 class DtCgf;
00023 class DtHumanStateRepository;
00024 class DtSimMessage;
00025 class DtHumanMoveToPSR;
00026 class DtCollisionInputPort;
00027 class DtInputPortGroup;
00028 class DtHumanMovementControlOutputPortGroup;
00029 class DtVectorOutputPort;
00030 class DtHumanMoveToControllerDescriptor;
00031 
00042 class DT_DLL_vrfmodel DtHumanMoveToController : public DtSingleTaskControllerComponent
00043 {
00044 private:
00046    DtHumanMoveToController();
00048    DtHumanMoveToController(const DtHumanMoveToController& orig);
00050    DtHumanMoveToController& operator=(const DtHumanMoveToController& orig);
00051 public:
00053    DtHumanMoveToController(const DtString& name, DtVrfObject* owner, DtSimManager* simManager, DtComponentDescriptor* desc=0, DtReaderWriterRegistry *parentRegistry=0);
00054 
00056    virtual ~DtHumanMoveToController();
00057 
00059    virtual bool init();
00060 
00062    virtual DtString type() const;
00063 
00065    virtual void tick();
00066 
00071    static void moveToCallback(DtSimMessage * msg, void * usr);
00072 
00077    static void setLocationCallback(DtSimMessage* msg, void* usr);
00078 
00083    static void moveToLocationCallback(DtSimMessage * msg, void * usr);
00084 
00086    static DtSimComponent* creator(const DtString& name, DtVrfObject* owner, DtSimManager* simManager, DtComponentDescriptor* desc=0, DtReaderWriterRegistry* parentRegistry=0);
00087 
00089    static void modifyVrfObjectCallback(DtSimMessage* msg, void* usr);
00090 
00091 protected:
00092 
00095    virtual void processMoveToTask(DtSimMessage * msg);
00096 
00097 
00098    virtual void processMoveToLocationTask(DtSimMessage * msg);
00099 
00104    virtual void processDestinationChanged();
00105 
00109    virtual bool setupDestination();
00110 
00119    virtual void setupDestinationVector() const;
00120 
00122    virtual void invalidateDestinationVector() const;
00123 
00132    virtual bool atDestination();
00133 
00135    virtual void doMoving();
00136 
00138    virtual double findDesiredHeading();
00139 
00141    virtual void moveToDestination();
00142 
00144    virtual void stop();
00145 
00147    virtual void registerTaskMsgCallbacks();
00148 
00152    virtual void processModifyVrfObject(DtSimMessage* msg);
00153 
00156    virtual void processSetLocation(DtSimMessage* msg);
00157 
00159    virtual bool createPortGroups();
00160 
00162    virtual bool createPorts();
00163 
00169    virtual bool createPSR();
00170 
00171    virtual double distanceToDestination() const;
00172 
00174    virtual void clearTask();
00175 
00177    virtual bool destinationIsInsideObstruction(
00178       const DtVector& localDestination) const;
00179 
00182    virtual bool decideToGiveUpTask() const;
00183 
00188    virtual double atDistance() const;
00189 
00190 protected:
00191 
00194 
00201    DtCollisionInputPort*   myCollisionAvoidancePort;
00202 
00205    DtInputPortGroup*       myCollisionAvoidancePortGroup;
00206 
00208    DtHumanMovementControlOutputPortGroup* myHumanMovementControlOutputPortGroup;
00209 
00215    DtVectorOutputPort* myDestinationOutputPort;
00216 
00218 
00221    DtVrfObject*     myControlPoint;
00222 
00223    DtVector          myLocalDestination;
00224    DtVector          myWorldDestination;
00225 
00226    mutable DtVector  myDestinationVector;
00227    mutable bool      myDestinationVectorIsValid;
00228 
00229    bool              myAtDestination;
00230    double            myDistanceSquared;
00231 
00232    DtHumanStateRepository* myHumanStateRepository;
00233 
00236    DtHumanMoveToPSR* myProcessState;
00237 
00238    DtHumanMoveToControllerDescriptor* myHumanMoveToControllerDescriptor;
00239 };
00240 
00242 void registerDtHumanMoveToController(DtCgf* cgf);
00243 #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)