00001 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- 00002 * 00003 * $Id: vtkExtensionsObjectStack.h,v 1.2 2004/06/03 18:58:28 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_EXTENSIONS_OBJECT_STACK_H_ 00017 # define VTK_EXTENSIONS_OBJECT_STACK_H_ 00018 # include "vtkObjectStack.h" 00019 // (Covarient return from some virtual methods) 00020 # include "vtkExtensionsObjectStackIterator.h" 00021 00022 VTK_EXTENSIONS_CONTAINERS_NAMESPACE_BEGIN 00023 00037 class VTK_EXTENSIONS_CONTAINERS_EXPORT vtkExtensionsObjectStack 00038 : public vtkObjectStack 00039 { 00040 public: 00041 static vtkExtensionsObjectStack* New (void); 00042 vtkTypeRevisionMacro (vtkExtensionsObjectStack, vtkObjectStack); 00043 00050 virtual vtkExtensionsObject* Top (void) const 00051 { return static_cast<vtkExtensionsObject*>(this->Superclass::Top()); } 00052 00062 virtual int Push (vtkExtensionsObject* object) 00063 { return this->Superclass::Push(object); } 00064 00066 vtkExtensionsObjectStackIterator* CreateIterator (void); 00067 00068 protected: 00069 vtkExtensionsObjectStack (void) {} 00070 ~vtkExtensionsObjectStack() {} 00071 00072 private: 00073 //BTX 00074 friend class vtkExtensionsObjectStackIterator; 00075 00078 int Push (vtkObject* object) 00079 { return this->Superclass::Push(object); } 00081 //ETX 00082 00083 private: 00089 vtkExtensionsObjectStack (const vtkExtensionsObjectStack&); 00090 void operator= (const vtkExtensionsObjectStack&); 00092 }; 00093 00094 VTK_EXTENSIONS_CONTAINERS_NAMESPACE_END 00095 00096 #endif /* VTK_EXTENSIONS_OBJECT_STACK_H_ */ 00097 /* 00098 * End of: $Id: vtkExtensionsObjectStack.h,v 1.2 2004/06/03 18:58:28 xpxqx Exp $. 00099 * 00100 */