VR-Forces 4.1 Class Documentation
gndColAvoid.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 1999 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
11 #pragma once
12 
13 #include "vrfmodel/gndAutoCntlr.h"
14 #include "vrfobjcore/vrfObjIter.h"
15 #include <vl/hostStructs.h>
17 
18 class DtString;
19 class DtSimManager;
20 class Dt3dBoundingVolume;
23 class DtInputControlPortGroup;
25 class DtCollision;
26 class DtStringInputPort;
27 
35 {
36 
37 public:
38 
42  DtVrfObject* owner,
43  DtSimManager* simManager,
44  DtComponentDescriptor* desc = 0,
45  DtReaderWriterRegistry* parentRegistry = 0);
46 
50 
54  virtual bool init();
55 
65  virtual void tick();
66 
70  virtual double distanceSquaredToDestination(DtVector offsetVector);
71 
77  virtual void avoidCollision(const DtCollision& potentialCollision);
78 
81  virtual DtString type() const;
82 
86  static DtSimComponent * creator(const DtString& name,
87  DtVrfObject* owner,
88  DtSimManager* simManager,
89  DtComponentDescriptor* desc = 0,
90  DtReaderWriterRegistry* parentRegistry = 0);
91 
92 protected:
96 
100 
104 
107  virtual void clearCollisionStateData();
108 
113  virtual void clearingCollision();
114 
119  bool isAppreciablyMoving(DtVector velocity, double velocityTolerance) const;
120 
130  bool setDefaultPortValuesForAvoidance(DtAutoTransmissionGear currentGear);
131 
138  bool determineObstructionMovementDirection(DtDcm obstructionLocalOrientationMatrix,
139  const DtVector& obstructionVelocity,
140  int& obstructionDirectionSign) const;
141 
145  bool followingObstruction(const DtEntityIdentifier& entityID) const;
146 
159  void avoidMovingObstruction(const DtCollision& potentialCollision);
160 
171  void avoidNonMovingObstruction(const DtCollision& potentialCollision);
172 
182  void startClearingCollision(double clearingDistance);
183 
197  bool calculateCollisionBV();
198 
199  bool createPortGroups();
200  bool createPorts();
201 
202 protected:
203 
206 
208  Dt3dBoundingVolume* myCollisionBV;
209 
210  DtEntityIdentifier myObjectId;
212 
214 
217 
224 
228 
235 
242 
244 };

Document ID: Generated on Tue Jan 29 18:21:16 EST 2013 from SVN revision 123193
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)