00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkPropCollection.h,v $ 00005 Language: C++ 00006 00007 Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 00008 All rights reserved. 00009 See Copyright.txt or http://www.kitware.com/Copyright.htm 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 =========================================================================*/ 00046 #ifndef __vtkPropC_h 00047 #define __vtkPropC_h 00048 00049 #include "vtkCollection.h" 00050 00051 #include "vtkProp.h" // Needed for inline methods 00052 00053 class VTK_COMMON_EXPORT vtkPropCollection : public vtkCollection 00054 { 00055 public: 00056 static vtkPropCollection *New(); 00057 vtkTypeRevisionMacro(vtkPropCollection,vtkCollection); 00058 00060 void AddItem(vtkProp *a); 00061 00063 vtkProp *GetNextProp(); 00064 00066 vtkProp *GetLastProp(); 00067 00072 int GetNumberOfPaths(); 00073 00074 protected: 00075 vtkPropCollection() {}; 00076 ~vtkPropCollection() {}; 00077 00078 00079 private: 00080 // hide the standard AddItem from the user and the compiler. 00081 void AddItem(vtkObject *o) { this->vtkCollection::AddItem(o); }; 00082 00083 private: 00084 vtkPropCollection(const vtkPropCollection&); // Not implemented. 00085 void operator=(const vtkPropCollection&); // Not implemented. 00086 }; 00087 00088 inline void vtkPropCollection::AddItem(vtkProp *a) 00089 { 00090 this->vtkCollection::AddItem((vtkObject *)a); 00091 } 00092 00093 inline vtkProp *vtkPropCollection::GetNextProp() 00094 { 00095 return static_cast<vtkProp *>(this->GetNextItemAsObject()); 00096 } 00097 00098 inline vtkProp *vtkPropCollection::GetLastProp() 00099 { 00100 if ( this->Bottom == NULL ) 00101 { 00102 return NULL; 00103 } 00104 else 00105 { 00106 return static_cast<vtkProp *>(this->Bottom->Item); 00107 } 00108 } 00109 00110 #endif 00111 00112 00113 00114 00115