VR-Forces 4.0.4 Class Documentation
include/vrfmodel/rotWngColAvod.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2000 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: rotWngColAvod.h,v $ $Revision: 1.28 $ $State: Exp $
00007 *******************************************************************************/
00008 
00011 
00014 
00015 #ifndef DtRotaryWingCollisionAvoidanceController_H_
00016 #define DtRotaryWingCollisionAvoidanceController_H_
00017 
00018 #include "vrfmodel/rotWngMvToCtl.h"
00019 #include <vl/hostStructs.h>
00020 #include "vrfobjcore/filteredObjList.h"
00021 
00022 #include <vl/objectId.h>
00023 
00024 class DtRotaryWingColAvoidanceControllerDescriptor;
00025 
00030 #include "vrfmodel/vrfmodelDefines.h"
00031 class DT_DLL_vrfmodel DtRotaryWingCollisionAvoidanceController : public DtRotaryWingMoveToControllerComponent
00032 {
00033 
00034 public:
00035 
00038    DtRotaryWingCollisionAvoidanceController(const DtString& name, 
00039       DtVrfObject* owner,
00040       DtSimManager* simManager, 
00041       DtComponentDescriptor* desc = 0,
00042       DtReaderWriterRegistry* parentRegistry = 0);
00043 
00045    virtual ~DtRotaryWingCollisionAvoidanceController();
00046    virtual bool init();
00047 
00049    virtual void tick();
00050    
00052    virtual DtVrfObject * detectCollision();
00053 
00054    virtual bool checkEntityForCollision(DtVrfObject * collidee);
00055 
00057    virtual void avoidCollision(DtVrfObject * collidee);
00058 
00060    virtual void processExistingCollision();
00061 
00064    virtual DtString type() const;
00065 
00069    static DtSimComponent * creator(const DtString& name, 
00070       DtVrfObject* owner,
00071       DtSimManager* simManager, 
00072       DtComponentDescriptor* desc = 0,
00073       DtReaderWriterRegistry* parentRegistry = 0);
00074 
00076    virtual bool distCleared();
00077 
00080    virtual double timeToMinimumDistance(const DtVector & deltaVel,
00081       const DtVector & deltaPos) const;
00082 
00083    virtual void registerTaskMsgCallbacks();
00084 
00086    virtual void clearCollision();
00087 
00088 protected:
00089 
00090 
00096 
00098    DtRotaryWingCollisionAvoidanceController();
00099 
00101    DtRotaryWingCollisionAvoidanceController
00102       (const DtRotaryWingCollisionAvoidanceController& orig);
00103 
00105    DtRotaryWingCollisionAvoidanceController& operator=
00106       (const DtRotaryWingCollisionAvoidanceController& orig);
00107 
00108 
00110    virtual void checkMinDiveAltitude();
00111 
00114    virtual void pilotProperties();
00115 
00116 protected:
00118    DtManagedObjectListConstPtr myPhysicalEntityList;
00119 
00121    DtVector             myEvadeDirection;
00122    DtReal               myRelativeVelMag;
00123    DtReal               myCurrentDistanceSq;
00125    DtVector             myClearingPt;
00126 
00127    DtObjectId           myObjectId;
00128    DtObjectId           myCollidee;
00129    bool           myHavePortGroup;
00130    bool           myIsColliding;
00131    bool           myIsClearing;
00132    bool           myTooLow;
00133    DtRotaryWingColAvoidanceControllerDescriptor * 
00134       myAvoidanceControllerDescriptor;
00135 };
00136 
00137 #endif
00138 

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)