![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2010 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 00008 00010 00011 #ifndef DtConvoyPSR_H_ 00012 #define DtConvoyPSR_H_ 00013 00014 #include "vrfobjcore/vrfobjcoreDefines.h" 00015 #include "vrfobjcore/processSR.h" 00016 #include "vrfutil/rwReal.h" 00017 #include "vrfutil/rwString.h" 00018 #include "vrfobjcore/promotionIdObjectNameInfo.h" 00019 #include "vrfutil/railSegment.h" 00020 #include "vrfutil/rwRailSegment.h" 00021 #include "vrfutil/rwVector.h" 00022 #include <set> 00023 #include "vrftasks/railMoveAlongTask.h" 00024 #include "vrftasks/moveToLocTask.h" 00025 #include "vrfutil/rwReal.h" 00026 #include "vrfutil/rwBoolean.h" 00027 00028 00031 class DT_DLL_vrfobjcore DtConvoyPSR : public DtVrfProcessStateRepository 00032 { 00033 00034 public: 00035 typedef DtRwTemplatedListPtr<DtRwString> DtRwSubordinateList; 00036 00038 DtConvoyPSR(DtVrfObject* vrfObject, 00039 const DtString& rwName = DtString::nullString(), 00040 DtReaderWriterRegistry* parentRegistry = 0); 00041 00043 DtConvoyPSR(const DtConvoyPSR& orig, 00044 const DtString& rwName = DtString::nullString(), 00045 DtReaderWriterRegistry* parentRegistry = 0); 00046 00048 virtual ~DtConvoyPSR(); 00049 00051 DtConvoyPSR& operator=(const DtConvoyPSR& orig); 00052 00054 virtual DtVrfProcessStateRepository* clone( 00055 const DtString& rwName = DtString::nullString(), 00056 DtReaderWriterRegistry* parentRegistry = 0) const; 00057 00060 virtual DtString type() const; 00061 00063 static DtVrfProcessStateRepository* creator (const DtString& rwName, 00064 DtVrfObject* vrfObject, DtReaderWriterRegistry* parentRegistry); 00065 00067 virtual void setPathPlanFlag(bool flag); 00068 virtual bool pathPlanFlag() const; 00069 00070 virtual void setConvoyPhase(const DtString& phase); 00071 virtual const DtString& convoyPhase() const; 00072 00073 virtual void setDestination(const DtString& destinationObjectName); 00074 virtual const DtString& destination() const; 00075 00076 virtual const DtRwSubordinateList& subordinates() const; 00077 virtual void addSubordinate(const DtString& objectName); 00078 virtual void removeSubordinate(const DtString& objectName); 00079 virtual bool isASubordinate(const DtString& objectName) const; 00080 virtual bool isSubordinatesEmpty() const; 00081 virtual void clearSubordinates(); 00082 00083 virtual void addAwaitingTaskSubordinate(const DtString& objectName); 00084 virtual void removeAwaitingTaskSubordinate(const DtString& objectName); 00085 virtual const DtString& lastTaskedSubordinate() const; 00086 virtual const DtString& firstAwaitingTaskSubordinate() const; 00087 virtual void clearAwaitingTaskSubordinates(); 00088 virtual bool isAwaitingTaskSubordinatesEmpty() const; 00089 00090 virtual void setAssemblyPoint(const DtVector& assemblyPoint); 00091 virtual const DtVector& assemblyPoint() const; 00092 00093 virtual void setConvoyLeader(const DtString& name); 00094 virtual const DtString& convoyLeader() const; 00095 00096 virtual void setLeadOnDistance(const float distance); 00097 virtual const float leadOnDistance() const; 00098 00099 virtual void setFollowDistance(const float distance); 00100 virtual const float followDistance() const; 00101 00102 virtual void setLastGeneratedEntryRail(const DtRwRailSegment& entryRail); 00103 virtual DtRwRailSegment* lastGeneratedEntryRail(); 00104 00105 virtual void setLastOrderedSpeed(const float speed); 00106 virtual const float lastOrderedSpeed() const; 00107 00108 virtual void addRailSegment(const DtRailSegment& railSegment); 00109 virtual void addRailSegment(const DtRwRailSegment& railSegment); 00110 virtual void addRailSegment(const DtRwRailSegment* railSegment); 00111 virtual void addRailSegmentToFront(const DtRwRailSegment* railSegment); 00112 virtual DtRwRailSegment* removeRailSegmentFromFront(bool autoDelete = true); 00113 virtual void setRailSegments(const DtRwRailSegmentList& segments); 00114 virtual void setRailSegments(const DtRailSegmentList& segments); 00115 virtual const DtRwRailSegmentList& railSegmentList() const; 00116 virtual void clearRailSegments(); 00117 00118 virtual DtRailSegmentList* railSegments(); 00119 00120 protected: 00123 void clearTempRailList(); 00124 00125 protected: 00126 DtRwBoolean myPathPlanFlag; 00127 DtRwString myConvoyPhase; 00128 DtRwString myDestination; 00129 DtRwVector myAssemblyPoint; 00130 DtRwString myConvoyLeader; 00131 DtRwString myLastTaskedSubordinate; 00132 DtRwReal myLeadOnDistance; 00133 DtRwReal myFollowDistance; 00134 DtRwReal myLastOrderedSpeed; 00135 DtRwSubordinateList mySubordinates; 00136 DtRwSubordinateList myAwaitingTaskSubordinates; 00137 DtRwRailSegmentList myRailSegments; 00138 DtRwRailSegment myLastGeneratedEntryRail; 00139 DtRailSegmentList* myTempListPtr; 00140 bool myRegenerateTempRailList; 00141 }; 00142 00143 #endif