VR-Forces 4.7 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
groundCollisionAvoidanceController.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
11 #pragma once
12 
14 #include <vl/hostStructs.h>
17 
18 class DtString;
19 class DtSimManager;
20 class Dt3dBoundingVolume;
23 class DtInputControlPortGroup;
25 class DtCollision;
26 class DtStringInputPort;
28 
36 {
37 
38 public:
39 
43  DtVrfObject* owner,
44  DtSimManager* simManager,
45  DtComponentDescriptor* desc = 0,
46  DtReaderWriterRegistry* parentRegistry = 0);
47 
51 
55  virtual bool init();
56 
66  virtual void tick();
67 
71  virtual double distanceSquaredToDestination();
72 
78  virtual void avoidCollision(const DtCollision& potentialCollision);
79 
82  virtual const char* type() const;
83 
87  static DtSimComponent * creator(const DtString& name,
88  DtVrfObject* owner,
89  DtSimManager* simManager,
90  DtComponentDescriptor* desc = 0,
91  DtReaderWriterRegistry* parentRegistry = 0);
92 
93 protected:
97 
101 
105 
108  virtual void clearCollisionStateData();
109 
114  virtual void clearingCollision();
115 
120  bool isAppreciablyMoving(DtVector velocity, double velocityTolerance) const;
121 
131  bool setDefaultPortValuesForAvoidance(DtAutoTransmissionGear currentGear);
132 
139  bool determineObstructionMovementDirection(DtDcm obstructionLocalOrientationMatrix,
140  const DtVector& obstructionVelocity,
141  int& obstructionDirectionSign) const;
142 
146  bool followingObstruction(const DtUUID& entity) const;
147 
160  void avoidMovingObstruction(const DtCollision& potentialCollision);
161 
172  void avoidNonMovingObstruction(const DtCollision& potentialCollision);
173 
183  void startClearingCollision(double clearingDistance);
184 
198  bool calculateCollisionBV();
199 
200  bool createPortGroups();
201  bool createPorts();
202 
203 protected:
204 
207 
209  Dt3dBoundingVolume* myCollisionBV;
210 
212 
214 
217 
224 
228 
235 
242 
244 };

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)