00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkPlaneCollection.h,v $ 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00038 #ifndef __vtkPlaneCollection_h 00039 #define __vtkPlaneCollection_h 00040 00041 #include "vtkCollection.h" 00042 00043 #include "vtkPlane.h" // Needed for inline methods 00044 00045 class VTK_COMMON_EXPORT vtkPlaneCollection : public vtkCollection 00046 { 00047 public: 00048 vtkTypeRevisionMacro(vtkPlaneCollection,vtkCollection); 00049 static vtkPlaneCollection *New(); 00050 00052 void AddItem(vtkPlane *); 00053 00055 vtkPlane *GetNextItem(); 00056 00057 //BTX 00059 00061 vtkPlane *GetNextPlane(vtkCollectionSimpleIterator &cookie); 00062 //ETX 00064 00065 protected: 00066 vtkPlaneCollection() {}; 00067 ~vtkPlaneCollection() {}; 00068 00069 00070 private: 00071 // hide the standard AddItem from the user and the compiler. 00072 void AddItem(vtkObject *o) { this->vtkCollection::AddItem(o); }; 00073 00074 private: 00075 vtkPlaneCollection(const vtkPlaneCollection&); // Not implemented. 00076 void operator=(const vtkPlaneCollection&); // Not implemented. 00077 }; 00078 00079 inline void vtkPlaneCollection::AddItem(vtkPlane *f) 00080 { 00081 this->vtkCollection::AddItem((vtkObject *)f); 00082 } 00083 00084 inline vtkPlane *vtkPlaneCollection::GetNextItem() 00085 { 00086 return static_cast<vtkPlane *>(this->GetNextItemAsObject()); 00087 } 00088 00089 #endif