22 #include "terrainCS/coordSystem.h"
24 #include <boost/shared_ptr.hpp>
77 static void convoyTaskCallback(
DtSimMessage * msg,
void * usr);
85 static void destinationChangedCallback(
DtVrfObject* obj,
void* usr);
88 static void objectAboutToBeRemovedCallback(
DtVrfObject* obj,
void* usr);
101 virtual bool createPSR();
129 const DtString& subordinateObjectName);
136 const DtString& subordinateObjectName);
154 bool haveRails,
const Coordinate_System* coordSys);
163 const DtVector& assemblyPoint,
const Coordinate_System* coordSys)
const;
171 virtual bool setupSubordinates(
const DtVrfObject* aggregate,
bool clearSubs,
bool leaderSet =
false);
177 virtual void setupLeadOnDistance(
int numberOfEntities,
float distanceBetween);
194 const float distance,
const float tolerance,
const Coordinate_System* coordSys);
199 virtual void setLeaderSpeed(
const float speed);
204 virtual void resettingPhaseTick(
bool retask =
true);
208 virtual void startingPhaseTick();
213 virtual void assemblingPhaseTick();
217 virtual void convoyingPhaseTick();
222 virtual void finishingPhaseTick();
230 virtual DtVector findIntersectionOfLineAndCircle(
const DtVector& centerPoint,
231 const DtVector& endPoint,
double radius,
const Coordinate_System* coordSys)
const;
241 virtual bool taskEntityToMoveToAssemblyPt(
const DtVrfObject* entity,
const DtVector& assemblyPoint,
242 const Coordinate_System* coordSys);
245 virtual bool getEntityPathToEntry(
const DtVrfObject* entity,
const DtVector& assemblyPoint,
246 const Coordinate_System* coordSys);
258 const double& radius,
261 const Coordinate_System* coordSys)
const;
270 virtual bool isPointWithinRadius(
const DtVector& center,
double radius,
271 const DtVector&
point,
const Coordinate_System* coordSys)
const;
280 virtual bool findPointOnRailOutsideSphere(
const DtVector& center,
const double& radius,
284 virtual void registerDestinationChangedCallback();
287 virtual void unregisterDestinationChangedCallback();
297 virtual bool updateConvoySubordinates(
DtVrfObject* aggregate,
298 std::vector<DtString>& tempList,
299 bool recursive =
false);
302 virtual bool isEntityPartOfConvoy(
const DtString& name)
const;
304 virtual bool isEntityIndependentlyTasked(
const DtVrfObject* entity)
const;
306 virtual void setConvoyFollowing();
308 virtual void destroyedPhaseTick();
310 double maxSearchRadius(
const DtPoint& start,
const DtPoint& end);
317 virtual bool startPathPlan(
const DtVrfObject* leadEntity,
322 virtual bool pathPlanFinished();
329 virtual DtVector groundClamp(
const DtVector& point, DtGeodeticCoord& lastPoint)
const;