VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
entityCollision.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
10 
11 #include "vrfobjcore/collision.h"
12 #include <matrix/vlVector.h>
14 #include <vlutil/vlSmartPointers.h>
16 
17 class DtString;
18 
24 {
25 
26 public:
27 
29  DtEntityCollision(const DtSimManager& simManager, const DtUUID& uuid,
30  double distanceSquared);
31 
33  virtual ~DtEntityCollision();
34 
36  virtual DtCollisionObjectType collisionType() const;
37 
38  DtEntityCollision(const DtEntityCollision& original);
39 
41 
42  bool operator==(const DtCollision& collision) const;
43  bool operator!=(const DtCollision& collision) const;
44 
45  bool operator==(const DtEntityCollision& collision) const;
46  bool operator!=(const DtEntityCollision& collision) const;
47 
50  bool valid() const;
51 
52  const DtUUID& obstructionEntityID() const ;
53 
54  const DtString& obstructionMarking() const;
55 
56  void setObstructionEntityID(const DtUUID& entityID);
57 
59 
61 
62  bool intersectsPoint(const DtVector& localPosition) const;
63 
69  double largestDimensionInDirection(const DtVector& localDirection) const;
70 
71  const Dt3dBoundingVolume& obstructionBoundingVolume() const;
72  Dt3dBoundingVolume& obstructionBoundingVolume();
73 
74  void setDistanceSquared(double distanceSquared);
75  double distanceSquared() const;
82  //void addDistance(double extraDistance);
83 
84  virtual const DtDcm& obstructionLocalOrientationMatrix() const;
85 
86  bool testInvariant() const;
87 
88  void setSimulationManager(const DtSimManager& simManager);
89  const DtSimManager* simulationManager() const;
90 
91  //fixme - this was merged in from trunk but conflicted with collision avoidance
92  //static void objectAboutToBeRemovedCallback(DtVrfObject* object, void* usr);
93  //virtual void processObjectAboutToBeRemoved(DtVrfObject* object);
94 
95 protected:
97 
100 
102  static Dt3dBoundingVolume nullBoundingVolume;
103 
104  mutable const DtVrfObject* myObject;
105 
107 };
108 
109 typedef DtBoost::shared_ptr<DtEntityCollision> DtEntityCollisionSharedPtr;
110 
UUID is a unique ID wrapper class.
Definition: rwUUID.h:222
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
virtual const DtUUID & obstructionEntityID() const =0
virtual DtVector obstructionLocation() const =0
virtual bool valid() const =0
DtBoost::shared_ptr< DtEntityCollision > DtEntityCollisionSharedPtr
Definition: entityCollision.h:109
virtual double distanceSquared() const =0
const DtSimManager * mySimulationManager
Does not own this. Just a convenience pointer.
Definition: entityCollision.h:99
virtual bool operator!=(const DtCollision &other) const =0
virtual bool intersectsPoint(const DtVector &localPosition) const =0
virtual DtCollisionObjectType collisionType() const =0
What type of collision is it? Another object or a vector feature?
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
virtual Dt3dBoundingVolume & obstructionBoundingVolume()=0
double myDistanceSquared
Definition: entityCollision.h:106
DtCollisionObjectType
Definition: collision.h:18
Definition: collision.h:24
virtual void setObstructionEntityID(const DtUUID &entityID)=0
DtUUID myObstructionEntityID
Definition: entityCollision.h:96
const DtVrfObject * myObject
Definition: entityCollision.h:104
virtual bool operator==(const DtCollision &other) const =0
virtual void setDistanceSquared(double distanceSquared)=0
DtCollision & operator=(const DtCollision &original)
Copy constructor - not implemented.
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:103
virtual bool testInvariant() const =0
virtual const DtDcm & obstructionLocalOrientationMatrix() const =0
Holds all information associated with a (potential) collision with a vrfObject.
Definition: entityCollision.h:23
virtual DtVector obstructionVelocity() const =0
static Dt3dBoundingVolume nullBoundingVolume
Gets returned if myObject is NULL.
Definition: entityCollision.h:102

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)