VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
groundFollowEntityController.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
11 
12 #pragma once
13 
15 
16 #include <vlutil/vlString.h>
17 #include <matrix/vlVector.h>
18 #include <vlpi/trigonometricSmoother.h>
19 
21 class DtSimMessage;
22 class DtStringOutputPort;
24 
35 {
36 
37 public:
38 
42  DtLocalObject* owner,
43  DtSimulationServices* simManager,
44  DtComponentDescriptor* desc = 0,
45  DtReaderWriterRegistry* parentRegistry = 0);
46 
49 
52  virtual const char* type() const;
53 
54 
58  static void followEntityCallback(DtSimMessage* msg, void* usrData);
59 
60  virtual void processFollowEntityTask(DtSimMessage* msg);
61 
62  virtual DtVector predictedDestination();
63 
68  virtual DtUUID entityToFollow();
69  virtual void setEntityToFollow(const DtUUID& entity);
70 
73  virtual const DtVector& offsetVector() const;
74  virtual void setOffsetVector(const DtVector& offsets);
75 
79  static DtSimComponent * creator(const DtString& name,
80  DtLocalObject* owner,
81  DtSimulationServices* simManager,
82  DtComponentDescriptor* desc = 0,
83  DtReaderWriterRegistry* parentRegistry = 0);
84 
86  virtual void registerTaskMsgCallbacks();
87 
91  virtual bool setupDestination();
92 
95  virtual bool passedDestination();
96 
99  virtual double findDesiredSpeed();
100 
104  virtual double findDesiredHeading();
105 
111  virtual void setupDestinationVector();
112 
116  virtual void stop(bool success) override;
117 
119  virtual void tick();
120 
122  virtual bool usingNavBot(){return false;}
123 
125  virtual void updateNavBotDestination();
126 
128  virtual bool needToUpdateNavInterfaceDestination(const DtVector& newLocalDestination);
129 
130 protected:
134 
137  orig);
138 
142 
143  virtual bool createPorts();
144 
145 protected:
146 
148 
151 
153 
154  DtTrigonometricSmoother* myLeaderSmoother;
155 
157 
159 
161 
164 };
165 
virtual void stop(bool success=true)
Set port values for stopping, and mark the task complete.
UUID is a unique ID wrapper class.
Definition: uuid.h:59
#define DT_DLL_vrfmodel
This file is used to determine how to build.
Definition: vrfmodelDefines.h:24
virtual void registerTaskMsgCallbacks()
Overridden to register interest in move to and set location commands.
Instances of DtStringOutputPort are output ports through which data producers can send a DtString obj...
Definition: stringIOPort.h:52
DtTrigonometricSmoother * myLeaderSmoother
Definition: groundFollowEntityController.h:154
DtVector myNavInterfaceCurrentDestination
Definition: groundFollowEntityController.h:160
virtual void setupDestinationVector()
Sets up a vector from the current destination location to the entity&#39;s location to use in determining...
DtSimObjectReference myLeaderPointer
Set fresh each frame by setupDestination()
Definition: groundFollowEntityController.h:150
The DtSimObjectReference is a shared pointer that can be used amongst many object for access to the u...
Definition: simObjectReference.h:26
virtual void tick()
Looks at the value on myCollisionAvoidancePort, and if there is a value and the destination point is ...
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
virtual double findDesiredSpeed()
Determines how fast we should go. If the myNearDestination member variable is true (set by nearDestin...
A DtGroundMoveToDescriptor that has the speed ratios to use when at, near, or past the desired locati...
Definition: groundFollowEntityDescriptor.h:30
DtGroundFollowEntityDescriptor * myComponentDescriptor
Definition: groundFollowEntityController.h:147
virtual const char * type() const
Returns a string identifies the class type of component. Type values are defined in compTypes...
DtGroundMoveToDestinationControllerComponent is a controller that provides a kinematics-based model o...
Definition: groundMoveToDestinationControllerComponent.h:39
DtPlatformSimObjectFacade myLeaderPointerSimObjectFacade
Definition: groundFollowEntityController.h:163
const DtGroundMoveToDestinationControllerComponent & operator=(const DtGroundMoveToDestinationControllerComponent &orig)
assignment operator; see comments on copy constructor!
File: simMsg.h.
Definition: simMessage.h:35
double myNavInterfaceDestinationSetTime
Definition: groundFollowEntityController.h:158
DtStringOutputPort * myFollowEntityOutputPort
Definition: groundFollowEntityController.h:152
static DtSimComponent * creator(const DtString &name, DtLocalObject *owner, DtSimulationServices *simManager, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0)
bool myWarnedOnceDestroyed
Definition: groundFollowEntityController.h:162
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:95
The DtSimComponent class is the base class for the entire simulation model component hierarchy...
Definition: simComponent.h:91
virtual bool setupDestination()
This function ensures that the destination stored in the process state matches the member function...
virtual bool passedDestination()
Determines if the entity will pass the destination to which it is moving this frame if it continues a...
virtual double findDesiredHeading()
Determines the desired heading in the following manner: If the myNearDestination member variable is t...
DtVector myPredictedDestination
Definition: groundFollowEntityController.h:156
virtual bool usingNavBot()
Definition: groundFollowEntityController.h:122
virtual bool createPorts()
Overridden to create the automotive ports.
DtGroundFollowEntityController is a controller that models following behavior for ground vehicles...
Definition: groundFollowEntityController.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

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)