![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2010 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: railPathControllerPSR.h,v $ $Revision: 1.1 $ $State: Exp $ 00007 ** Created: 5/5/10 MEM 00008 *******************************************************************************/ 00009 00012 00013 #pragma once 00014 00015 #include "vrfobjcore/processSR.h" 00016 #include "vrfutil/rwVector.h" 00017 #include "vrfutil/rwString.h" 00018 #include "vrfutil/rwInt.h" 00019 #include "vrfutil/rwTemplatedList.h" 00020 #include "vrfutil/rwRailSegment.h" 00021 00027 00028 #include "vrfobjcore/vrfobjcoreDefines.h" 00029 class DT_DLL_vrfobjcore DtRailPathControllerPSR : public DtVrfProcessStateRepository 00030 { 00031 public: 00032 enum DtRailPathState 00033 { 00034 DtNoMove = 0, 00035 DtMoveTurningToRail, 00036 DtMoveToRail, 00037 DtMoveAlongRail, 00038 DtMoveFromRail 00039 }; 00040 00042 DtRailPathControllerPSR(DtVrfObject* vrfObject, 00043 const DtString& rwName = DtString::nullString(), 00044 DtReaderWriterRegistry* parentRegistry = 0); 00045 00047 DtRailPathControllerPSR(const DtRailPathControllerPSR& orig, 00048 const DtString& rwName = DtString::nullString(), 00049 DtReaderWriterRegistry* parentRegistry = 0); 00050 00052 virtual ~DtRailPathControllerPSR(); 00053 00055 DtRailPathControllerPSR& operator=(const DtRailPathControllerPSR& orig); 00056 00058 virtual DtVrfProcessStateRepository* clone( 00059 const DtString& rwName = DtString::nullString(), 00060 DtReaderWriterRegistry* parentRegistry = 0) const; 00061 00063 virtual DtString type() const; 00064 00065 virtual void clear(); 00066 00069 virtual void setState(DtRailPathState moving); 00070 virtual DtRailPathState state() const; 00072 00075 virtual const DtRwTemplatedListPtr<DtRwRailSegment>& pathList() const; 00076 virtual DtRwTemplatedListPtr<DtRwRailSegment>& pathList(); 00077 virtual void setPathList(DtRwTemplatedListPtr<DtRwRailSegment>& list); 00078 virtual void addSegmentToPath(const DtRailSegment& seg,bool appendToEnd = true); 00080 00084 virtual void setPathEntryPoint(const DtVector& point); 00085 virtual const DtVector & pathEntryPoint() const; 00087 00090 virtual void setDestinationName(const DtString& destinationName); 00091 virtual DtString destinationName() const; 00093 virtual bool destinationNameSpecified() const; 00095 virtual void unspecifyDestinationName(); 00097 00101 virtual void setDestinationLocation(const DtVector& destinationLocation); 00102 virtual DtVector destinationLocation() const; 00104 virtual bool destinationLocationSpecified() const; 00106 virtual void unspecifyDestinationLocation(); 00108 00111 virtual void setPathName(const DtString& pathName); 00112 virtual DtString pathName() const; 00114 virtual bool pathNameSpecified() const; 00116 virtual void unspecifyPathName(); 00118 00119 public: 00120 00122 static DtVrfProcessStateRepository* creator (const DtString& rwName, 00123 DtVrfObject* vrfObject, DtReaderWriterRegistry* parentRegistry); 00124 00125 protected: 00126 00130 00134 DtRwInt myRailPathState; 00138 DtRwString myPathName; 00141 DtRwString myDestinationName; 00144 DtRwVector myDestinationLocation; 00148 DtRwVector myPathEntryPoint; 00151 DtRwTemplatedListPtr<DtRwRailSegment> myPathList; 00152 }; 00153 00154 00155