25 #include <boost/shared_ptr.hpp>
30 #define CONVOY_CONTROLLER_MAKE_FIRST_SEGMENT 0
73 virtual const char*
type()
const;
79 virtual void resetTask();
88 static void convoyTaskCallback(
DtSimMessage * msg,
void * usr);
109 virtual bool createPSR();
120 virtual void onModifyVrfObject();
136 virtual void sendTaskToSubordinate(
const DtSimTask& task,
137 const DtUUID& subordinate);
144 const DtUUID& subordinate);
164 #if CONVOY_CONTROLLER_MAKE_FIRST_SEGMENT
181 virtual bool setupSubordinates(
const DtSimObject* aggregate,
bool clearSubs,
bool& leaderSet,
double initialOrderedSpeed);
182 virtual bool setupSubordinates(
const DtLocalObject* aggregate,
bool clearSubs,
bool& leaderSet,
double initialOrderedSpeed);
183 virtual bool setupSubordinates(
const std::list<DtSimObjectReference>& list,
bool clearSubs,
bool& leaderSet,
184 double initialOrderedSpeed);
190 virtual void setupLeadOnDistance(
int numberOfEntities,
float distanceBetween);
212 virtual void setLeaderSpeed(
const float speed);
217 virtual void resettingPhaseTick(
bool retask =
true);
221 virtual void startingPhaseTick();
226 virtual void assemblingPhaseTick();
230 virtual void convoyingPhaseTick();
235 virtual void finishingPhaseTick();
243 virtual DtVector findIntersectionOfLineAndCircle(
const DtVector& centerPoint,
254 virtual bool taskEntityToMoveToAssemblyPt(
const DtSimObject* entity,
const DtVector& assemblyPoint,
258 virtual bool getEntityPathToEntry(
const DtSimObject* entity,
const DtVector& assemblyPoint,
271 const double& radius,
283 virtual bool isPointWithinRadius(
const DtVector& center,
double radius,
293 virtual bool findPointOnRailOutsideSphere(
const DtVector& center,
const double& radius,
304 virtual bool updateConvoySubordinates(
const DtSimObject* aggregate,
305 std::vector<DtUUID>& tempList,
bool recursive =
false);
306 virtual bool updateConvoySubordinates(
const DtLocalObject* aggregate,
307 std::vector<DtUUID>& tempList,
bool recursive =
false);
308 virtual bool updateConvoySubordinates(
const std::list<DtSimObjectReference>&,
309 std::vector<DtUUID>& tempList,
bool recursive =
false);
312 virtual bool isEntityPartOfConvoy(
const DtUUID& entity)
const;
314 virtual bool isEntityIndependentlyTasked(
const DtSimObject* entity)
const;
316 virtual void setConvoyFollowing();
318 virtual void destroyedPhaseTick();
321 virtual void sendClearTask(
const DtUUID& recipientName,
331 virtual bool startPathPlan(
const DtSimObject* leadEntity,
336 virtual bool pathPlanFinished();
343 virtual DtVector groundClamp(
const DtVector& point, DtGeodeticCoord& lastPoint)
const;
UUID is a unique ID wrapper class.
Definition: rwUUID.h:226
#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:115
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
DtSimObjectReference myDestination
Definition: convoyTaskController.h:357
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
The DtSimObjectReference is a shared pointer that can be used amongst many object for access to the u...
Definition: simObjectReference.h:26
boost::shared_ptr< DtAsyncJobMapEntry > myPathJobEntry
Token for asynchronous path plan task.
Definition: convoyTaskController.h:351
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
virtual const char * type() const =0
Returns a string identifies the class type of component. Type values are defined in compTypes...
virtual bool init()
Calls setRadio()
DtAggregateLocalObjectFacade myAggregateLocalObjectFacade
Definition: convoyTaskController.h:358
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. Implemented by subclasses. ...
Definition: simComponent.h:436
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:54
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:89
The DtSimComponent class is the base class for the entire simulation model component hierarchy...
Definition: simComponent.h:70
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:79
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
DtConvoyPSR * myProcessState
Definition: convoyTaskController.h:354
const DtConvoyDescriptor * myDescriptor
Definition: convoyTaskController.h:353
Definition: rwRailSegment.h:27
bool myDrivingOnLeft
Definition: convoyTaskController.h:355
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