00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkAssemblyPaths.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 =========================================================================*/ 00037 #ifndef __vtkAssemblyPaths_h 00038 #define __vtkAssemblyPaths_h 00039 00040 #include "vtkCollection.h" 00041 00042 #include "vtkAssemblyPath.h" // Needed for inline methods 00043 00044 class vtkProp; 00045 00046 class VTK_COMMON_EXPORT vtkAssemblyPaths : public vtkCollection 00047 { 00048 public: 00049 static vtkAssemblyPaths *New(); 00050 vtkTypeRevisionMacro(vtkAssemblyPaths,vtkCollection); 00051 00053 void AddItem(vtkAssemblyPath *p); 00054 00056 void RemoveItem(vtkAssemblyPath *p); 00057 00060 int IsItemPresent(vtkAssemblyPath *p); 00061 00063 vtkAssemblyPath *GetNextItem(); 00064 00067 virtual unsigned long GetMTime(); 00068 00069 //BTX 00071 00073 vtkAssemblyPath *GetNextPath(vtkCollectionSimpleIterator &cookie) { 00074 return static_cast<vtkAssemblyPath *>(this->GetNextItemAsObject(cookie));}; 00075 //ETX 00077 00078 protected: 00079 vtkAssemblyPaths() {}; 00080 ~vtkAssemblyPaths() {}; 00081 00082 private: 00083 // hide the standard AddItem from the user and the compiler. 00084 void AddItem(vtkObject *o) { this->vtkCollection::AddItem(o); }; 00085 void RemoveItem(vtkObject *o) { this->vtkCollection::RemoveItem(o); }; 00086 void RemoveItem(int i) { this->vtkCollection::RemoveItem(i); }; 00087 int IsItemPresent(vtkObject *o) 00088 { return this->vtkCollection::IsItemPresent(o);}; 00089 private: 00090 vtkAssemblyPaths(const vtkAssemblyPaths&); // Not implemented. 00091 void operator=(const vtkAssemblyPaths&); // Not implemented. 00092 }; 00093 00094 inline void vtkAssemblyPaths::AddItem(vtkAssemblyPath *p) 00095 { 00096 this->vtkCollection::AddItem((vtkObject *)p); 00097 } 00098 00099 inline void vtkAssemblyPaths::RemoveItem(vtkAssemblyPath *p) 00100 { 00101 this->vtkCollection::RemoveItem((vtkObject *)p); 00102 } 00103 00104 inline int vtkAssemblyPaths::IsItemPresent(vtkAssemblyPath *p) 00105 { 00106 return this->vtkCollection::IsItemPresent((vtkObject *)p); 00107 } 00108 00109 inline vtkAssemblyPath *vtkAssemblyPaths::GetNextItem() 00110 { 00111 return (vtkAssemblyPath *)(this->GetNextItemAsObject()); 00112 } 00113 00114 #endif