00001 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- 00002 * 00003 * $Id: vtkObjectStack.h,v 1.6 2004/06/03 18:58:29 xpxqx Exp $ 00004 * 00005 * Copyright (c) 2004 Sean McInerney 00006 * All rights reserved. 00007 * 00008 * See Copyright.txt or http://vtkextensions.sourceforge.net/Copyright.html 00009 * for details. 00010 * 00011 * This software is distributed WITHOUT ANY WARRANTY; without even 00012 * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00013 * PURPOSE. See the above copyright notice for more information. 00014 * 00015 */ 00016 #ifndef VTK_OBJECT_STACK_H_ 00017 # define VTK_OBJECT_STACK_H_ 00018 # include "vtkObjectBaseStack.h" 00019 # include "vtkObjectStackIterator.h" 00020 00021 VTK_EXTENSIONS_CONTAINERS_NAMESPACE_BEGIN 00022 00036 class VTK_EXTENSIONS_CONTAINERS_EXPORT vtkObjectStack 00037 : public vtkObjectBaseStack 00038 { 00039 public: 00040 static vtkObjectStack* New (void); 00041 vtkTypeRevisionMacro (vtkObjectStack, vtkObjectBaseStack); 00042 00049 virtual vtkObject* Top (void) const 00050 { return static_cast<vtkObject*>(this->Superclass::Top()); } 00051 00061 virtual int Push (vtkObject* object) 00062 { return this->Superclass::Push(object); } 00063 00065 vtkObjectStackIterator* CreateIterator (void); 00066 00067 protected: 00068 vtkObjectStack (void) {} 00069 ~vtkObjectStack() {} 00070 00071 private: 00072 //BTX 00073 friend class vtkObjectStackIterator; 00074 00077 int Push (vtkObjectBase* object) 00078 { return this->Superclass::Push(object); } 00080 //ETX 00081 00082 private: 00088 vtkObjectStack (const vtkObjectStack&); 00089 void operator= (const vtkObjectStack&); 00091 }; 00092 00093 VTK_EXTENSIONS_CONTAINERS_NAMESPACE_END 00094 00095 #endif /* VTK_OBJECT_STACK_H_ */ 00096 /* 00097 * End of: $Id: vtkObjectStack.h,v 1.6 2004/06/03 18:58:29 xpxqx Exp $. 00098 * 00099 */