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