VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
featureCollision.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
7 
8 #pragma once
9 
11 #include "geometry/extent.h"
12 
13 #include "features/feature.h"
14 #include "features/query.h"
15 #include "vrfobjcore/collision.h"
16 
17 #include "features/areaFeature.h"
18 
20 {
21 
22 public:
23 
26  MAKVRinTerra::DtAreaFeature::CPtr feature, double distanceSq,
27  const Coordinate_System* localCs);
28 
30  virtual ~DtFeatureCollision();
31 
35  DtFeatureCollision(const DtFeatureCollision& original);
36 
37 
38 public:
39 
40  bool operator==(const DtCollision& other) const;
41  bool operator!=(const DtCollision& other) const;
42 
43  bool operator==(const DtFeatureCollision& collision) const;
44  bool operator!=(const DtFeatureCollision& collision) const;
45 
48  bool valid() const;
49 
51  virtual DtCollisionObjectType collisionType() const;
52 
53  MAKVRinTerra::DtAreaFeature::CPtr feature() const;
54 
55  bool matches(const MAKVRinTerra::DtQuery & query);
56 
57  void setObstructionEntityID(const DtUUID& entityID);
58  const DtUUID& obstructionEntityID() const;
59 
61 
63 
64  bool intersectsPoint(const DtVector& localPosition) const;
65 
66  Dt3dBoundingVolume obstructionBoundingVolume() const;
67 
68  DtExtent extent() const;
69 
70  void setDistanceSquared(double distanceSquared);
71  double distanceSquared() const;
72 
74 
75  bool testInvariant() const;
76 
77 protected:
79 
81  Dt3dBoundingVolume myBoundingVolume;
82 
84 
87 };
UUID is a unique ID wrapper class.
Definition: uuid.h:59
virtual const DtUUID & obstructionEntityID() const =0
virtual DtVector obstructionLocation() const =0
virtual bool valid() const =0
Definition: featureCollision.h:19
virtual double distanceSquared() const =0
Dt3dBoundingVolume myBoundingVolume
Definition: featureCollision.h:81
The DtExtent represents an axis-aligned 3d bounding box.
Definition: extent.h:43
boost::shared_ptr< const DtAreaFeature > CPtr
Definition: areaFeature.h:33
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?
Definition: coordSystem.h:54
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
Represents a set of characeters a DtFeature object can have. DtQuery objects are the way to communica...
Definition: query.h:38
DtCollisionObjectType
Definition: collision.h:19
boost::shared_ptr< const DtProj > CPtr
Definition: proj.h:48
Definition: collision.h:25
virtual void setObstructionEntityID(const DtUUID &entityID)=0
DtDcm myOrientation
Definition: featureCollision.h:80
virtual DtDcm obstructionLocalOrientationMatrix() const =0
const Coordinate_System * myLocalCs
Definition: featureCollision.h:85
Contains the declaration of the DtExtent class.
virtual bool operator==(const DtCollision &other) const =0
double myDistanceSquared
Definition: featureCollision.h:83
virtual void setDistanceSquared(double distanceSquared)=0
DtCollision & operator=(const DtCollision &original)
Copy constructor - not implemented.
virtual bool testInvariant() const =0
MAKVRinTerra::DtProj::CPtr myLocalProj
Definition: featureCollision.h:86
MAKVRinTerra::DtAreaFeature::CPtr myFeature
Definition: featureCollision.h:78
virtual Dt3dBoundingVolume obstructionBoundingVolume() const =0
virtual DtVector obstructionVelocity() const =0

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)