VR-Forces 4.5 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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 
15 #include <vl/hostStructs.h>
18 
19 class DtString;
20 class DtSimManager;
21 class Dt3dBoundingVolume;
24 class DtInputControlPortGroup;
26 class DtCollision;
27 class DtStringInputPort;
29 
37 {
38 
39 public:
40 
44  DtVrfObject* owner,
45  DtSimManager* simManager,
46  DtComponentDescriptor* desc = 0,
47  DtReaderWriterRegistry* parentRegistry = 0);
48 
52 
56  virtual bool init();
57 
67  virtual void tick();
68 
72  virtual double distanceSquaredToDestination(DtVector offsetVector);
73 
79  virtual void avoidCollision(const DtCollision& potentialCollision);
80 
83  virtual const char* type() const;
84 
88  static DtSimComponent * creator(const DtString& name,
89  DtVrfObject* owner,
90  DtSimManager* simManager,
91  DtComponentDescriptor* desc = 0,
92  DtReaderWriterRegistry* parentRegistry = 0);
93 
94 protected:
98 
102 
106 
109  virtual void clearCollisionStateData();
110 
115  virtual void clearingCollision();
116 
121  bool isAppreciablyMoving(DtVector velocity, double velocityTolerance) const;
122 
132  bool setDefaultPortValuesForAvoidance(DtAutoTransmissionGear currentGear);
133 
140  bool determineObstructionMovementDirection(DtDcm obstructionLocalOrientationMatrix,
141  const DtVector& obstructionVelocity,
142  int& obstructionDirectionSign) const;
143 
147  bool followingObstruction(const DtUUID& entity) const;
148 
161  void avoidMovingObstruction(const DtCollision& potentialCollision);
162 
173  void avoidNonMovingObstruction(const DtCollision& potentialCollision);
174 
184  void startClearingCollision(double clearingDistance);
185 
199  bool calculateCollisionBV();
200 
201  bool createPortGroups();
202  bool createPorts();
203 
204 protected:
205 
208 
210  Dt3dBoundingVolume* myCollisionBV;
211 
213 
215 
217 
220 
227 
231 
238 
245 
247 };

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)