24 #include <boost/shared_ptr.hpp>
29 #define CONVOY_CONTROLLER_MAKE_FIRST_SEGMENT 0
72 virtual const char*
type()
const;
78 virtual void resetTask();
87 static void convoyTaskCallback(
DtSimMessage * msg,
void * usr);
95 static void destinationChangedCallback(
const DtVrfObject* obj,
void* usr);
98 static void objectAboutToBeRemovedCallback(
const DtVrfObject* obj,
void* usr);
114 virtual bool createPSR();
125 void onObjectAboutToBeRemoved(
const DtVrfObject* obj);
130 virtual void onModifyVrfObject(
const DtVrfObject* obj);
146 virtual void sendTaskToSubordinate(
const DtSimTask& task,
147 const DtUUID& subordinate);
154 const DtUUID& subordinate);
174 #if CONVOY_CONTROLLER_MAKE_FIRST_SEGMENT
191 virtual bool setupSubordinates(
const DtVrfObject* aggregate,
bool clearSubs,
bool& leaderSet);
197 virtual void setupLeadOnDistance(
int numberOfEntities,
float distanceBetween);
219 virtual void setLeaderSpeed(
const float speed);
224 virtual void resettingPhaseTick(
bool retask =
true);
228 virtual void startingPhaseTick();
233 virtual void assemblingPhaseTick();
237 virtual void convoyingPhaseTick();
242 virtual void finishingPhaseTick();
250 virtual DtVector findIntersectionOfLineAndCircle(
const DtVector& centerPoint,
261 virtual bool taskEntityToMoveToAssemblyPt(
const DtVrfObject* entity,
const DtVector& assemblyPoint,
265 virtual bool getEntityPathToEntry(
const DtVrfObject* entity,
const DtVector& assemblyPoint,
278 const double& radius,
290 virtual bool isPointWithinRadius(
const DtVector& center,
double radius,
300 virtual bool findPointOnRailOutsideSphere(
const DtVector& center,
const double& radius,
304 virtual void registerDestinationChangedCallback();
307 virtual void unregisterDestinationChangedCallback();
317 virtual bool updateConvoySubordinates(
const DtVrfObject* aggregate,
318 std::vector<DtUUID>& tempList,
319 bool recursive =
false);
322 virtual bool isEntityPartOfConvoy(
const DtUUID& entity)
const;
324 virtual bool isEntityIndependentlyTasked(
const DtVrfObject* entity)
const;
326 virtual void setConvoyFollowing();
328 virtual void destroyedPhaseTick();
331 virtual void sendClearTask(
const DtUUID& recipientName,
341 virtual bool startPathPlan(
const DtVrfObject* leadEntity,
346 virtual bool pathPlanFinished();
353 virtual DtVector groundClamp(
const DtVector& point, DtGeodeticCoord& lastPoint)
const;
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
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
Definition: boolSetting.h:30
std::list< DtRailSegment * > DtRailSegmentList
Definition: railSegment.h:197
virtual void registerTaskMsgCallbacks()
virtual void preFirstTickInit()
This function can be overridden to initialize a component before it is ticked for the first time...
DtRailSegment are segments entities can follow when using the rail movement system.
Definition: railSegment.h:23
This class provides a base class for all controllers that are capable of executing a DtSimTask...
Definition: singleTaskControllerComponent.h:20
A DtComponentDescriptor that has parameters that indicate the distances at which the entity is consid...
Definition: convoyDescriptor.h:25
boost::shared_ptr< DtAsyncJobMapEntry > myPathJobEntry
Token for asynchronous path plan task.
Definition: convoyTaskController.h:361
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
This is a process state repository for the DtConvoyController that stores the list of the names of cu...
Definition: convoyPSR.h:29
virtual const char * type() const =0
Returns a string identifies the class type of component.
virtual bool init()
Calls setRadio()
virtual void clearTask()
If component is currently tasked, calls clearPendingSubtasks(), sets the tasked flag to false...
Definition: settingsObject.h:27
virtual void updateTaskVisualizations()
Called to update task visualizations after every tick.
Definition: simComponent.h:485
DtSetDataRequest is an abstract base class from which real setDataRequests can derive.
Definition: setDataRequest.h:40
Definition: coordSystem.h:54
DT_DLL_VRVCORE double distance(const makVrv::DtCoordinateSystem &, const DtVector &from, const DtVector &to)
Returns the distance from the two points.
File: simMsg.h.
Definition: simMessage.h:35
virtual void tick()
This gives the thread of control to the component.
behavior for a ground vehicle aggregate entity to drive and follow each other on and off roads and ro...
Definition: convoyTaskController.h:53
The base class for all messages to/from a specific DtVrfObject.
Definition: vrfObjectMessage.h:30
Handle to async job.
Definition: asyncJobMapEntry.h:29
The DtSimComponent class is the base class for the entire simulation model component hierarchy...
Definition: simComponent.h:67
const DtTaskControllerComponent & operator=(const DtTaskControllerComponent &orig)
assignment operator
DtSimTask is an abstract base class from which real tasks can derive.
Definition: simTask.h:33
bool myDestinationChangedCallbackRegistered
Definition: convoyTaskController.h:365
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:102
DtConvoyPSR * myProcessState
Definition: convoyTaskController.h:364
const DtConvoyDescriptor * myDescriptor
Definition: convoyTaskController.h:363
Definition: rwRailSegment.h:27
If you use a list of object names to archive which objects are part of a controller (or any object) u...
Definition: vrfObjectReference.h:305
bool myDrivingOnLeft
Definition: convoyTaskController.h:366