VR-Forces 4.0.4 Class Documentation
include/vrfobjcore/entityCollision.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2004 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: entityCollision.h,v $ $Revision: 1.8 $ $State: Exp $
00007 *******************************************************************************/
00008 #ifndef entityCollision_H_
00009 #define entityCollision_H_
00010 
00013 
00014 #include "vrfobjcore/collision.h"
00015 #include <matrix/vlVector.h>
00016 #include "vrfobjcore/vrfObjMgr.h"
00017 #include <vlutil/vlSmartPointers.h>
00018 
00019 class DtString;
00020 
00024 #include "vrfobjcore/vrfobjcoreDefines.h"
00025 class DT_DLL_vrfobjcore DtEntityCollision : public DtCollision
00026 {
00027 
00028 public:
00029 
00031    DtEntityCollision(DtSimManager& simManager, 
00032                      DtEntityIdentifier entityID,
00033                      double distanceSquared);
00034 
00036    virtual ~DtEntityCollision();
00037 
00039    virtual DtCollisionObjectType collisionType() const;
00040 
00041    DtEntityCollision(const DtEntityCollision& original);
00042 
00043    DtEntityCollision& operator=(const DtEntityCollision& original);
00044 
00045    bool operator==(const DtCollision& collision) const;
00046    bool operator!=(const DtCollision& collision) const;
00047 
00048    bool operator==(const DtEntityCollision& collision) const;
00049    bool operator!=(const DtEntityCollision& collision) const;
00050    
00053    bool valid() const;
00054 
00055    DtEntityIdentifier obstructionEntityID() const ;
00056 
00057    void setObstructionEntityID(const DtEntityIdentifier& entityID);
00058 
00059    DtVector obstructionLocation() const;
00060    
00061    DtVector obstructionVelocity() const;
00062    
00063    const Dt3dBoundingVolume& obstructionBoundingVolume() const;
00064    Dt3dBoundingVolume& obstructionBoundingVolume();
00065 
00066    void setDistanceSquared(double distanceSquared);
00067    double distanceSquared() const;
00073    void addDistance(double extraDistance);
00074    
00075    virtual const DtDcm& obstructionLocalOrientationMatrix();
00076 
00077    bool testInvariant() const;
00078 
00079    void setSimulationManager(DtSimManager& simManager);
00080 
00081    DtSimManager* simulationManager();
00082    const DtSimManager* simulationManager() const;
00083 
00084    static void objectAboutToBeRemovedCallback(DtVrfObject* object, void* usr);
00085    virtual void processObjectAboutToBeRemoved(DtVrfObject* object);
00086 
00087 protected:
00088    DtEntityIdentifier myObstructionEntityID;
00089    
00091    DtSimManager*  mySimulationManager;
00092 
00094    static Dt3dBoundingVolume nullBoundingVolume;
00095 
00096 private:
00098    mutable DtVrfObject* myObject;
00099 
00100    double myDistanceSquared;
00101 };
00102 
00103 typedef DtBoost::shared_ptr<DtEntityCollision> DtEntityCollisionSharedPtr;
00104 
00105 #endif
00106 

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)