VR-Forces 4.10 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 };
UUID is a unique ID wrapper class.
Definition: rwUUID.h:222
#define DT_DLL_vrfmodel
This file is used to determine how to build.
Definition: vrfmodelDefines.h:24
double myClearingDistance
This is only used when clearing.
Definition: groundCollisionAvoidanceController.h:206
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
bool myAvoidingCollision
Definition: groundCollisionAvoidanceController.h:208
virtual bool init()
Initializes myGroundVehicleState.
This is the DtVrfObjectNavInterface subclass for objects which are actively querying the navigation s...
Definition: activeBotNavInterface.h:26
Instances of DtBooleanOutputPort are output ports through which data producers can send boolean data...
Definition: boolIOPort.h:45
DtStringInputPort * myFollowEntityInputPort
Input Port Name: follow-entity-name Input Port Description: Check this port to see if any possible co...
Definition: groundCollisionAvoidanceController.h:234
Contains class declarations for DtStringInputPort, DtStringOutputPort, and DtStringPortData.
Definition: stringIOPort.h:27
A readable, writable type whose name is the name of a component and that has a list of component name...
Definition: componentDescriptor.h:42
Definition: readerWriterRegistry.h:39
const DtGroundAutoControllerComponent & operator=(const DtGroundAutoControllerComponent &orig)
assignment operator; not implemented
Description: This repository holds all information that is common to all the forms of all entity/aggr...
Definition: vrfObjectStateRepository.h:87
DtInputPortGroup * myCollisionAvoidancePortGroup
Input Port Group Name: collision-avoidance-control Input Port Group Description:
Definition: groundCollisionAvoidanceController.h:227
virtual const char * type() const
Returns a string identifies the class type of component.
Description: Readable, Writable uuid string.
Definition: rwUUID.h:419
DtGroundCollisionAvoidanceController is a controller that helps entities to avoid running into other ...
Definition: groundCollisionAvoidanceController.h:34
virtual void tick()
This gives the thread of control to the component.
DtRwUUID myFollowEntityName
Definition: groundCollisionAvoidanceController.h:213
bool myHavePortGroup
Definition: groundCollisionAvoidanceController.h:211
Definition: collision.h:24
The DtSimComponent class is the base class for the entire simulation model component hierarchy...
Definition: simComponent.h:67
DtCollisionInputPort * myCollisionAvoidancePort
Input Port Name: potential-collision-info Input Port Description: Input Port Range: Input Port Defa...
Definition: groundCollisionAvoidanceController.h:223
DtAutoTransmissionGearEnum
Definition: automotivePSR.h:24
DtInputPortGroup is a data port group of a data consumer.
Definition: inputPortGroup.h:32
Instances of DtCollisionInputPort are input ports through which data consumers can receive informatio...
Definition: collisionIOPort.h:29
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:103
Dt3dBoundingVolume * myCollisionBV
Definition: groundCollisionAvoidanceController.h:209
DtGroundFollowEntityController is a controller that models following behavior for ground vehicles...
Definition: groundFollowEntityController.h:34
virtual bool createPorts()
Overridden to create the automotive ports.
DtGroundAutoControllerComponent is a base controller that holds capabilitites common to all automotiv...
Definition: groundAutoControllerComponent.h:33
DtBooleanOutputPort * myCollisionPort
Output Port Name: collision Output Port Description: Specifies if there&#39;s a collision occurring Outpu...
Definition: groundCollisionAvoidanceController.h:240
virtual bool createPortGroups()
Overridden to create myAutomotiveControlPortGroup.

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)