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

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)