VR-Forces 4.0.4 Class Documentation
include/bhaveSim/vrfEntityBot.h
Go to the documentation of this file.
00001 
00002 /*******************************************************************************
00003 ** Copyright (c) 2011 MAK Technologies, Inc.
00004 ** All rights reserved.
00005 *******************************************************************************/
00006 
00007 
00008 #pragma once
00009 
00010 #pragma warning (disable : 4284)
00011 
00012 #include <bhaveSim/bhaveSimDefines.h>
00013 #include <vrfobjcore/vrfKinState.h>
00014 #include <matrix/3dBoundingVolume.h>
00015 
00016 #include <bhaveSim/vrfTaskAgent.h>
00017 #include <bhaveSim/preferredTerraintypeBodyAttribute.h>
00018 #include <bhaveSim/preferredTerraintypeConstraint.h>
00019 
00020 #include <kyruntime.h>
00021 
00022 class DtVrfObject;
00023 class DtObjectType;
00024 class DtVrfMovingObjectStateRepository;
00025 
00026 namespace BHAVE
00027 {
00028 class DtKynapseController;
00029 class DtVrfTaskAgent;
00030 
00032 class DT_DLL_bhaveSim DtVrfEntityBot : public Kaim::Bot
00033 {
00034 public:
00035    KY_DECLARE_BOT( DtVrfEntityBot )
00036 
00037    DtVrfEntityBot( );
00038    virtual ~DtVrfEntityBot();
00039    
00041    virtual KyResult OnInitialize();
00042 
00045    virtual void initializeModifiers(Kaim::Modifiers& mod);
00046 
00049    virtual void initializePathfinderOptions();
00050 
00052    virtual void setTaskAgent(DtVrfTaskAgent*);
00053 
00054    inline DtVrfTaskAgent* getTaskAgent() const { return myTaskAgent; }
00055 
00057    virtual void setMovementMode(const char *);
00058    virtual const char * movementMode();
00059 
00061    virtual bool isExecutingTask();
00062 
00064    virtual bool usingRoadMovement();
00065 
00067    virtual void Think();
00068 
00070    virtual void OnClear();
00071 
00073    DtVrfObject* GetVrfObject() const { return static_cast<DtVrfObject*>(m_body.GetUserData());}
00074 
00076    virtual void updateFromVrf();
00077 
00078    //The following are helper classes which can be freely calculated by other functions.
00079 
00081    virtual bool objectIsHostile(DtVrfObject* otherObject);
00082 
00084    virtual void onTeleport();
00085 
00087    inline double orderedSpeed() const { return myOrderedSpeed; }
00088 
00090    virtual void setDistanceToTarget(double dd);
00091    inline double distanceToTarget() const { return myDistanceToTarget; }
00092 
00094    Kaim::Database* pathdataDatabase() const { return myDb; }
00095 
00098    virtual double pathDataHeight() const {return 2.0;}
00099 
00100 public:
00103    static KyBool embarkedEntityFiltering(Kaim::Body& thisEntity, Kaim::Body& targetEntity);
00104    static KyBool embarkedEntityFiltering(Kaim::Bot& thisEntity, Kaim::Bot& targetEntity);
00105 
00106 protected:
00107 
00109    virtual void updateTorsoOrientation( DtVrfMovingObjectStateRepository* movingSR, Kaim::Body &body );
00110    virtual void updateOrientation( DtVrfMovingObjectStateRepository* movingSR, Kaim::Body &body );
00111    virtual void updatePosition( DtVrfMovingObjectStateRepository* movingSR, const Dt3dBoundingVolume &boundingVolume, Kaim::Body &body );
00112    
00113 protected:
00114 
00116    Kaim::BodyMaxSpeed * myMaxSpeedAttribute;
00117    Kaim::BodyTorsoOrientation * myTorsoOrientationAttribute;
00118    DtPreferredTerrainTypeBodyAttribute* myPreferredTerrainAttribute;
00119 
00121    double myOrderedSpeed;
00122    double myDistanceToTarget;
00123 
00125    Kaim::Database* myDb;   
00127    DtVrfTaskAgent* myTaskAgent;
00128 
00129    DtString myMovementMode;
00130    DtString myContextName;
00131 
00132    //Modifier for goal
00133    DtPreferredTerrainTypeConstraint myTerrainTypeConstraint;
00134 };
00135 
00136 } //namespace BHAVE
00137 

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)