VTK
dox/Rendering/Core/vtkAssemblyPaths.h
Go to the documentation of this file.
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