VR-Forces Developer's Guide
 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 
12 #include "vrfobjcore/collision.h"
14 #include <matrix/vlVector.h>
15 #include <vlutil/vlSmartPointers.h>
16 #include "vrfobjcore/simObject.h"
18 
19 class DtString;
21 
26 {
27 
28 public:
29 
31  DtEntityCollision(const DtSimulationServices& simServices, const DtUUID& uuid,
32  double distanceSquared);
34  double distanceSquared);
35 
37  virtual ~DtEntityCollision() override;
38 
40  virtual DtCollisionObjectType collisionType() const override;
41 
42  DtEntityCollision(const DtEntityCollision& original);
43 
45 
46  virtual bool operator==(const DtCollision& collision) const override;
47  virtual bool operator!=(const DtCollision& collision) const override;
48 
49  bool operator==(const DtEntityCollision& collision) const;
50  bool operator!=(const DtEntityCollision& collision) const;
51 
54  virtual bool valid() const override;
55 
56  virtual const DtUUID& obstructionEntityID() const override;
57 
58  DtString obstructionMarking() const;
59 
60  virtual void setObstructionEntityID(const DtUUID& entityID) override;
61 
62  virtual DtVector obstructionLocation() const override;
63 
64  virtual DtVector obstructionVelocity() const override;
65 
66  virtual bool intersectsPoint(const DtVector& localPosition) const override;
67 
73  double largestDimensionInDirection(const DtVector& localDirection) const;
74 
75  virtual Dt3dBoundingVolume obstructionBoundingVolume() const override;
76 
77  DtExtent obstructionExtent() const;
78 
79  virtual void setDistanceSquared(double distanceSquared) override;
80  virtual double distanceSquared() const override;
87  //void addDistance(double extraDistance);
88 
89  virtual DtDcm obstructionLocalOrientationMatrix() const override;
90 
91  virtual bool testInvariant() const override;
92 
93  //void setSimulationManager(const DtSimulationServices& simManager);
94  //const DtSimulationServices* simulationManager() const;
95 
96  //fixme - this was merged in from trunk but conflicted with collision avoidance
97  //static void objectAboutToBeRemovedCallback(DtVrfObject* object, void* usr);
98  //virtual void processObjectAboutToBeRemoved(DtVrfObject* object);
99 
100 protected:
102 
105 
107  static Dt3dBoundingVolume nullBoundingVolume;
108 
110 
112 
114 };
115 
116 typedef std::shared_ptr<DtEntityCollision> DtEntityCollisionSharedPtr;
117 
UUID is a unique ID wrapper class.
Definition: uuid.h:59
std::shared_ptr< DtEntityCollision > DtEntityCollisionSharedPtr
Definition: entityCollision.h:116
virtual const DtUUID & obstructionEntityID() const =0
virtual DtVector obstructionLocation() const =0
virtual bool valid() const =0
virtual double distanceSquared() const =0
The DtExtent represents an axis-aligned 3d bounding box.
Definition: extent.h:43
const DtSimulationServices * mySimulationServices
Does not own this. Just a convenience pointer.
Definition: entityCollision.h:104
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
DtPlatformSimObjectFacade myPlatformSimObjectFacade
Definition: entityCollision.h:113
double myDistanceSquared
Definition: entityCollision.h:111
DtCollisionObjectType
Definition: collision.h:19
Definition: collision.h:25
virtual void setObstructionEntityID(const DtUUID &entityID)=0
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:96
virtual DtDcm obstructionLocalOrientationMatrix() const =0
DtUUID myObstructionEntityID
Definition: entityCollision.h:101
virtual bool operator==(const DtCollision &other) const =0
virtual void setDistanceSquared(double distanceSquared)=0
DtCollision & operator=(const DtCollision &original)
Copy constructor - not implemented.
Contains the DtSimObjectReference class declaration.
virtual bool testInvariant() const =0
Holds all information associated with a (potential) collision with a vrfObject.
Definition: entityCollision.h:25
virtual Dt3dBoundingVolume obstructionBoundingVolume() const =0
virtual DtVector obstructionVelocity() const =0
static Dt3dBoundingVolume nullBoundingVolume
Gets returned if myObject is NULL.
Definition: entityCollision.h:107
DtSimObjectReference myObject
Definition: entityCollision.h:109

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)