VR-Forces 4.5 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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(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(DtSimManager& simManager);
89 
90  DtSimManager* simulationManager();
91  const DtSimManager* simulationManager() const;
92 
93  //fixme - this was merged in from trunk but conflicted with collision avoidance
94  //static void objectAboutToBeRemovedCallback(DtVrfObject* object, void* usr);
95  //virtual void processObjectAboutToBeRemoved(DtVrfObject* object);
96 
97 protected:
99 
102 
104  static Dt3dBoundingVolume nullBoundingVolume;
105 
107 
109 };
110 
111 typedef DtBoost::shared_ptr<DtEntityCollision> DtEntityCollisionSharedPtr;
112 

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)