![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /********************************************************************* 00002 ** Copyright (c) 2004 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: networkEdgeForwardSegmentConstIter.h,v $ $Revision: 1.4 $ $State: Exp $ 00007 *********************************************************************/ 00008 #ifndef networkEdgeForwardSegmentConstIter_H_ 00009 #define networkEdgeForwardSegmentConstIter_H_ 00010 00011 #include "gdb/gdbDefines.h" 00012 #include "gdb/netwrkEdge.h" 00013 #include "gdb/networkEdgeSegmentConstIter.h" 00014 00015 class DtNetworkSegment; 00016 class DtString; 00017 00018 // 00019 // DtNetworkEdgeForwardSegmentConstIter is a bidirectional const iterator over the segments 00020 // representing a DtNetworkEdge, traversing in the FORWARD direction, 00021 // where forward is defined as the direction the segments comprise the edge in memory. 00022 // INVARIANT: At all times, this iterator must point to a *valid* DtNetworkEdge. 00023 class DT_DLL_gdb DtNetworkEdgeForwardSegmentConstIter : public DtNetworkEdgeSegmentConstIter 00024 { 00025 public: 00026 // constructor 00027 // \param edge The DtNetworkEdge to iterate over 00028 DtNetworkEdgeForwardSegmentConstIter(const DtNetworkEdge& edge); 00029 00030 // Constructs a forward segment iterator starting at the specified 00031 // segment along the edge 00032 // \param edge The DtNetworkEdge to iterate over 00033 // \param segmentIter A segmentIter associated with the specified edge to initialize to. 00034 DtNetworkEdgeForwardSegmentConstIter(const DtNetworkEdge& edge, 00035 const DtNetworkEdge::DtSegmentConstIter& segmentConstIter); 00036 00037 // destructor 00038 virtual ~DtNetworkEdgeForwardSegmentConstIter(); 00039 00040 // assignment operator 00041 DtNetworkEdgeForwardSegmentConstIter& operator=(const DtNetworkEdgeForwardSegmentConstIter& orig); 00042 00043 // copy constructor 00044 DtNetworkEdgeForwardSegmentConstIter(const DtNetworkEdgeForwardSegmentConstIter& orig); 00045 00046 // \return The start or end points of the current segment as defined by the direction 00047 // of traversal. (i.e., this is a forward segment iter, so the actual segments start point 00048 // will also be returned as the start point, etc.) 00049 DtPoint startPoint() const; 00050 DtPoint endPoint() const; 00051 00052 void operator++(); 00053 void operator--(); 00054 const DtNetworkSegment& operator*() const; 00055 const DtNetworkSegment& operator->() const; 00056 00057 bool operator==(const DtNetworkEdgeSegmentConstIter& other) const; 00058 bool operator==(const DtNetworkEdgeForwardSegmentConstIter& other) const; 00059 00060 bool operator!=(const DtNetworkEdgeSegmentConstIter& other) const; 00061 bool operator!=(const DtNetworkEdgeForwardSegmentConstIter& other) const; 00062 00063 virtual const DtString type() const; 00064 00065 protected: 00066 DtNetworkEdge::DtSegmentConstIter mySegmentConstIter; 00067 00068 private: 00069 // default constructor 00070 DtNetworkEdgeForwardSegmentConstIter(); 00071 }; 00072 00073 00074 #endif