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

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)