![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /********************************************************************* 00002 ** Copyright (c) 2004 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: networkEdgeForwardSegmentIter.h,v $ $Revision: 1.4 $ $State: Exp $ 00007 *********************************************************************/ 00008 #ifndef networkEdgeForwardSegmentIter_H_ 00009 #define networkEdgeForwardSegmentIter_H_ 00010 00011 #include "gdb/gdbDefines.h" 00012 #include "gdb/netwrkEdge.h" 00013 #include "gdb/networkEdgeSegmentIter.h" 00014 00015 class DtNetworkSegment; 00016 class DtString; 00017 00018 // 00019 // DtNetworkEdgeForwardSegmentIter is a bidirectional 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 DtNetworkEdgeForwardSegmentIter : public DtNetworkEdgeSegmentIter 00024 { 00025 public: 00026 // constructor 00027 // \param edge The DtNetworkEdge to iterate over 00028 DtNetworkEdgeForwardSegmentIter(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 DtNetworkEdgeForwardSegmentIter(DtNetworkEdge& edge, 00035 DtNetworkEdge::DtSegmentIter segmentIter); 00036 00037 // destructor 00038 virtual ~DtNetworkEdgeForwardSegmentIter(); 00039 00040 // assignment operator 00041 DtNetworkEdgeForwardSegmentIter& operator=(const DtNetworkEdgeForwardSegmentIter& orig); 00042 00043 // copy constructor 00044 DtNetworkEdgeForwardSegmentIter(const DtNetworkEdgeForwardSegmentIter& 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 DtNetworkSegment& operator*() const; 00055 DtNetworkSegment& operator->() const; 00056 00057 bool operator==(const DtNetworkEdgeSegmentIter& other) const; 00058 bool operator==(const DtNetworkEdgeForwardSegmentIter& other) const; 00059 00060 bool operator!=(const DtNetworkEdgeSegmentIter& other) const; 00061 bool operator!=(const DtNetworkEdgeForwardSegmentIter& other) const; 00062 00063 // \return The DtString "DtNetworkEdgeForwardSegmentIter" 00064 virtual const DtString type() const; 00065 00066 protected: 00067 DtNetworkEdge::DtSegmentConstIter mySegmentIter; 00068 00069 private: 00070 // default constructor 00071 DtNetworkEdgeForwardSegmentIter(); 00072 }; 00073 00074 00075 #endif