VR-Forces 5.0.3 Developer's Guide
 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 
16 
17 class DtString;
19 class Dt3dBoundingVolume;
22 class DtInputControlPortGroup;
24 class DtCollision;
25 class DtStringInputPort;
27 
35 {
36 
37 public:
38 
42  DtLocalObject* owner,
43  DtSimulationServices* 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();
71 
77  virtual void avoidCollision(const DtCollision& potentialCollision);
78 
81  virtual const char* type() const;
82 
86  static DtSimComponent * creator(const DtString& name,
87  DtLocalObject* owner,
88  DtSimulationServices* 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 DtUUID& entity) 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 
211 
213 
216 
223 
227 
234 
241 
243 
245 };
UUID is a unique ID wrapper class.
Definition: rwUUID.h:229
#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:205
bool myAvoidingCollision
Definition: groundCollisionAvoidanceController.h:207
DtNavigationLocalObjectFacade myNavigationLocalObjectFacade
Definition: groundCollisionAvoidanceController.h:244
virtual bool init()
Initializes myGroundVehicleState.
This is the DtVrfObjectNavInterface subclass for objects which are actively querying the navigation s...
Definition: activeBotNavInterface.h:27
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:233
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:49
Definition: readerWriterRegistry.h:39
const DtGroundAutoControllerComponent & operator=(const DtGroundAutoControllerComponent &orig)
assignment operator; not implemented
Description: This repository is an internal repository accessible only by local objects. It holds all information that is common to all the forms of all entity/aggregate/control objects within VR-Forces.
Definition: vrfObjectStateRepository.h:90
DtInputPortGroup * myCollisionAvoidancePortGroup
Input Port Group Name: collision-avoidance-control Input Port Group Description:
Definition: groundCollisionAvoidanceController.h:226
virtual const char * type() const
Returns a string identifies the class type of component. Type values are defined in compTypes...
Description: Readable, Writable uuid string. Use this class in order to convert from object marking t...
Definition: rwUUID.h:431
DtGroundCollisionAvoidanceController is a controller that helps entities to avoid running into other ...
Definition: groundCollisionAvoidanceController.h:33
virtual void tick()
This gives the thread of control to the component. The component is ticked once each simulation from ...
DtRwUUID myFollowEntityName
Definition: groundCollisionAvoidanceController.h:212
bool myHavePortGroup
Definition: groundCollisionAvoidanceController.h:210
Definition: collision.h:25
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:90
The DtSimComponent class is the base class for the entire simulation model component hierarchy...
Definition: simComponent.h:70
DtCollisionInputPort * myCollisionAvoidancePort
Input Port Name: potential-collision-info Input Port Description: Input Port Range: Input Port Defa...
Definition: groundCollisionAvoidanceController.h:222
DtAutoTransmissionGearEnum
Definition: automotivePSR.h:24
DtInputPortGroup is a data port group of a data consumer. It may contain any number of DtInputPorts a...
Definition: inputPortGroup.h:35
Instances of DtCollisionInputPort are input ports through which data consumers can receive informatio...
Definition: collisionIOPort.h:29
Definition: navigationLocalObjectFacade.h:45
Dt3dBoundingVolume * myCollisionBV
Definition: groundCollisionAvoidanceController.h:208
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:34
A locally simulated VRF object. Holds all internal and external data for the object, and provides access to both the current frame and next frame state data for the object. All current frame data is read-only, and next-frame data can be written to. No thread safety guarantees are made on this object during the simulation frame and it should only be accessed by the thread that is simulating the object.
Definition: localObject.h:86
DtBooleanOutputPort * myCollisionPort
Output Port Name: collision Output Port Description: Specifies if there's a collision occurring Outpu...
Definition: groundCollisionAvoidanceController.h:239
virtual bool createPortGroups()
Overridden to create myAutomotiveControlPortGroup.

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)