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

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)