0024645: Pointer to the last is wrong for a tree node
[occt.git] / src / PCollection / PCollection_SetIterator.gxx
CommitLineData
b311480e 1// Copyright (c) 1998-1999 Matra Datavision
973c2be1 2// Copyright (c) 1999-2014 OPEN CASCADE SAS
b311480e 3//
973c2be1 4// This file is part of Open CASCADE Technology software library.
b311480e 5//
d5f74e42 6// This library is free software; you can redistribute it and/or modify it under
7// the terms of the GNU Lesser General Public License version 2.1 as published
973c2be1 8// by the Free Software Foundation, with special exception defined in the file
9// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
10// distribution for complete text of the license and disclaimer of any warranty.
b311480e 11//
973c2be1 12// Alternatively, this file may be used under the terms of Open CASCADE
13// commercial license or contractual agreement.
b311480e 14
7fd59977 15#include <Standard_NoSuchObject.hxx>
16#include <Standard_NoMoreObject.hxx>
17
18// --------------------------------
19// constructor of SetIterator
20// --------------------------------
21PCollection_SetIterator::PCollection_SetIterator
22 (const Handle(PCollection_HSet)& S)
23{
24 TheIterator = S->Last();
25}
26
27// -----------------------------------
28// More : returns Standard_True if there
29// are other items
30// -----------------------------------
31Standard_Boolean PCollection_SetIterator::More() const
32{
33 return ! ( TheIterator->IsEmpty() ) ;
34}
35
36// -----------------------------------------
37// Next : set the iterator to the next item
38// -----------------------------------------
39void PCollection_SetIterator::Next()
40{
41 if (TheIterator->IsEmpty()) Standard_NoMoreObject::Raise();
42 TheIterator = TheIterator->Tail();
43}
44
45// ---------------------------------------
46// Value : returns the current item value
47// of the iterator
48// ---------------------------------------
49Item PCollection_SetIterator::Value() const
50{
51 if (TheIterator->IsEmpty()) Standard_NoSuchObject::Raise();
52 return TheIterator->Value();
53}