VR-Forces 4.0.4 Class Documentation
include/vrfobjcore/convoyPSR.h
Go to the documentation of this file.
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

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)