VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkAssemblyPaths.h 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 =========================================================================*/ 00026 #ifndef __vtkAssemblyPaths_h 00027 #define __vtkAssemblyPaths_h 00028 00029 #include "vtkRenderingCoreModule.h" // For export macro 00030 #include "vtkCollection.h" 00031 00032 #include "vtkAssemblyPath.h" // Needed for inline methods 00033 00034 class vtkProp; 00035 00036 class VTKRENDERINGCORE_EXPORT vtkAssemblyPaths : public vtkCollection 00037 { 00038 public: 00039 static vtkAssemblyPaths *New(); 00040 vtkTypeMacro(vtkAssemblyPaths, vtkCollection); 00041 00043 void AddItem(vtkAssemblyPath *p); 00044 00046 void RemoveItem(vtkAssemblyPath *p); 00047 00050 int IsItemPresent(vtkAssemblyPath *p); 00051 00053 vtkAssemblyPath *GetNextItem(); 00054 00057 virtual unsigned long GetMTime(); 00058 00059 //BTX 00061 00063 vtkAssemblyPath *GetNextPath(vtkCollectionSimpleIterator &cookie) 00064 { return static_cast<vtkAssemblyPath *>(this->GetNextItemAsObject(cookie)); } 00065 //ETX 00067 00068 protected: 00069 vtkAssemblyPaths() {} 00070 ~vtkAssemblyPaths() {} 00071 00072 private: 00073 // hide the standard AddItem from the user and the compiler. 00074 void AddItem(vtkObject *o) 00075 { this->vtkCollection::AddItem(o); } 00076 void RemoveItem(vtkObject *o) 00077 { this->vtkCollection::RemoveItem(o); } 00078 void RemoveItem(int i) 00079 { this->vtkCollection::RemoveItem(i); } 00080 int IsItemPresent(vtkObject *o) 00081 { return this->vtkCollection::IsItemPresent(o); } 00082 private: 00083 vtkAssemblyPaths(const vtkAssemblyPaths&); // Not implemented. 00084 void operator=(const vtkAssemblyPaths&); // Not implemented. 00085 }; 00086 00087 inline void vtkAssemblyPaths::AddItem(vtkAssemblyPath *p) 00088 { 00089 this->vtkCollection::AddItem(p); 00090 } 00091 00092 inline void vtkAssemblyPaths::RemoveItem(vtkAssemblyPath *p) 00093 { 00094 this->vtkCollection::RemoveItem(p); 00095 } 00096 00097 inline int vtkAssemblyPaths::IsItemPresent(vtkAssemblyPath *p) 00098 { 00099 return this->vtkCollection::IsItemPresent(p); 00100 } 00101 00102 inline vtkAssemblyPath *vtkAssemblyPaths::GetNextItem() 00103 { 00104 return static_cast<vtkAssemblyPath *>(this->GetNextItemAsObject()); 00105 } 00106 00107 #endif 00108 // VTK-HeaderTest-Exclude: vtkAssemblyPaths.h