29 #define CONVOY_CONTROLLER_MAKE_FIRST_SEGMENT 0
68 virtual bool init()
override;
72 virtual const char*
type()
const override;
78 virtual void resetTask();
87 static void convoyTaskCallback(
DtSimMessage * msg,
void * usr);
106 virtual void tick()
override;
108 virtual bool createPSR();
119 virtual void onModifyVrfObject();
135 virtual void sendTaskToSubordinate(
const DtSimTask& task,
136 const DtUUID& subordinate);
143 const DtUUID& subordinate);
160 virtual DtVector findAssemblyPoint(
const DtSimObject* aggregate,
const DtVector& destination,
163 #if CONVOY_CONTROLLER_MAKE_FIRST_SEGMENT
180 virtual bool setupSubordinates(
const DtSimObject* aggregate,
bool clearSubs,
bool& leaderSet,
double initialOrderedSpeed);
181 virtual bool setupSubordinates(
const DtLocalObject* aggregate,
bool clearSubs,
bool& leaderSet,
double initialOrderedSpeed);
182 virtual bool setupSubordinates(
const std::list<DtSimObjectReference>& list,
bool clearSubs,
bool& leaderSet,
183 double initialOrderedSpeed);
189 virtual void setupLeadOnDistance(
int numberOfEntities,
float distanceBetween);
211 virtual void setLeaderSpeed(
const float speed);
216 virtual void resettingPhaseTick(
bool retask =
true);
220 virtual void startingPhaseTick();
225 virtual void assemblingPhaseTick();
229 virtual void convoyingPhaseTick();
234 virtual void finishingPhaseTick();
242 virtual DtVector findIntersectionOfLineAndCircle(
const DtVector& centerPoint,
243 const DtVector& endPoint,
double radius,
const Coordinate_System* coordSys)
const;
253 virtual bool taskEntityToMoveToAssemblyPt(
const DtSimObject* entity,
const DtVector& assemblyPoint,
257 virtual bool getEntityPathToEntry(
const DtSimObject* entity,
const DtVector& assemblyPoint,
270 const double& radius,
282 virtual bool isPointWithinRadius(
const DtVector& center,
double radius,
292 virtual bool findPointOnRailOutsideSphere(
const DtVector& center,
const double& radius,
303 virtual bool updateConvoySubordinates(
const DtSimObject* aggregate,
304 std::vector<DtUUID>& tempList,
bool recursive =
false);
305 virtual bool updateConvoySubordinates(
const DtLocalObject* aggregate,
306 std::vector<DtUUID>& tempList,
bool recursive =
false);
307 virtual bool updateConvoySubordinates(
const std::list<DtSimObjectReference>&,
308 std::vector<DtUUID>& tempList,
bool recursive =
false);
311 virtual bool isEntityPartOfConvoy(
const DtUUID& entity)
const;
313 virtual bool isEntityIndependentlyTasked(
const DtSimObject* entity)
const;
315 virtual void setConvoyFollowing();
317 virtual void destroyedPhaseTick();
320 virtual void sendClearTask(
const DtUUID& recipientName,
330 virtual bool startPathPlan(
const DtSimObject* leadEntity,
335 virtual bool pathPlanFinished();
342 virtual DtVector groundClamp(
const DtVector& point, DtGeodeticCoord& lastPoint)
const;
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
If you use a list of object names to archive which objects are part of a controller (or any object) u...
Definition: simObjectReferenceList.h:120
Definition: boolSetting.h:30
std::list< DtRailSegment * > DtRailSegmentList
Definition: railSegment.h:194
virtual const char * type() const override=0
Returns a string identifies the class type of component. Type values are defined in compTypes...
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:20
DtSimObjectReference myDestination
Definition: convoyTaskController.h:356
This class provides a base class for all controllers that are capable of executing a DtSimTask...
Definition: singleTaskControllerComponent.h:22
A DtComponentDescriptor that has parameters that indicate the distances at which the entity is consid...
Definition: convoyDescriptor.h:25
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
This is a process state repository for the DtConvoyController that stores the list of the names of cu...
Definition: convoyPSR.h:29
DtAggregateLocalObjectFacade myAggregateLocalObjectFacade
Definition: convoyTaskController.h:357
Definition: settingsObject.h:27
virtual void updateTaskVisualizations()
Called to update task visualizations after every tick. Implemented by subclasses. ...
Definition: simComponent.h:443
virtual bool init() override
Calls setRadio()
DtSetDataRequest is an abstract base class from which real setDataRequests can derive. It manages the read/write capability; derived classes need only use and register read/writatble data types for derived information.
Definition: setDataRequest.h:41
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. Coordinates are in local database coordinates The coordinat...
File: simMsg.h.
Definition: simMessage.h:35
virtual void tick()
This gives the thread of control to the component. The component is ticked once each simulation from ...
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. Various subclasses of this class will...
Definition: vrfObjectMessage.h:30
Handle to async job.
Definition: asyncJobMapEntry.h:29
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:96
The DtSimComponent class is the base class for the entire simulation model component hierarchy...
Definition: simComponent.h:89
Represents a single simulation object in the exercise. Object may be VRF simulation, or non-VRF simulated, and may be simulated by the local sim engine, or by a remote sim engine. Only public (external) state of the object is available. All data is read-only. All access to data of the object is thread safe within the simulation frame.
Definition: simObject.h:80
const DtTaskControllerComponent & operator=(const DtTaskControllerComponent &orig)
assignment operator
DtSimTask is an abstract base class from which real tasks can derive. It manages the read/write capab...
Definition: simTask.h:30
virtual void clearTask() override
If component is currently tasked, calls clearPendingSubtasks(), sets the tasked flag to false...
std::shared_ptr< DtAsyncJobMapEntry > myPathJobEntry
Token for asynchronous path plan task.
Definition: convoyTaskController.h:350
DtConvoyPSR * myProcessState
Definition: convoyTaskController.h:353
const DtConvoyDescriptor * myDescriptor
Definition: convoyTaskController.h:352
Definition: rwRailSegment.h:27
bool myDrivingOnLeft
Definition: convoyTaskController.h:354
A locally simulated VRF object.
Definition: localObject.h:98