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(
DtVrfObject* obj,
void* usr);
98 static void objectAboutToBeRemovedCallback(
DtVrfObject* obj,
void* usr);
114 virtual bool createPSR();
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(
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();
337 virtual bool startPathPlan(
const DtVrfObject* leadEntity,
342 virtual bool pathPlanFinished();
349 virtual DtVector groundClamp(
const DtVector& point, DtGeodeticCoord& lastPoint)
const;