Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

Common/vtkAssemblyPaths.h

Go to the documentation of this file.
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 =========================================================================*/
00026 #ifndef __vtkAssemblyPaths_h
00027 #define __vtkAssemblyPaths_h
00028 
00029 #include "vtkCollection.h"
00030 
00031 #include "vtkAssemblyPath.h" // Needed for inline methods
00032 
00033 class vtkProp;
00034 
00035 class VTK_COMMON_EXPORT vtkAssemblyPaths : public vtkCollection
00036 {
00037 public:
00038   static vtkAssemblyPaths *New();
00039   vtkTypeRevisionMacro(vtkAssemblyPaths,vtkCollection);
00040 
00042   void AddItem(vtkAssemblyPath *p);
00043 
00045   void RemoveItem(vtkAssemblyPath *p);
00046 
00049   int IsItemPresent(vtkAssemblyPath *p);
00050 
00052   vtkAssemblyPath *GetNextItem();
00053 
00056   virtual unsigned long GetMTime();
00057 
00058 protected:
00059   vtkAssemblyPaths() {};
00060   ~vtkAssemblyPaths() {};
00061   
00062 private:
00063   // hide the standard AddItem from the user and the compiler.
00064   void AddItem(vtkObject *o) { this->vtkCollection::AddItem(o); };
00065   void RemoveItem(vtkObject *o) { this->vtkCollection::RemoveItem(o); };
00066   void RemoveItem(int i) { this->vtkCollection::RemoveItem(i); };
00067   int  IsItemPresent(vtkObject *o) 
00068     { return this->vtkCollection::IsItemPresent(o);};
00069 private:
00070   vtkAssemblyPaths(const vtkAssemblyPaths&);  // Not implemented.
00071   void operator=(const vtkAssemblyPaths&);  // Not implemented.
00072 };
00073 
00074 inline void vtkAssemblyPaths::AddItem(vtkAssemblyPath *p) 
00075 {
00076   this->vtkCollection::AddItem((vtkObject *)p);
00077 }
00078 
00079 inline void vtkAssemblyPaths::RemoveItem(vtkAssemblyPath *p) 
00080 {
00081   this->vtkCollection::RemoveItem((vtkObject *)p);
00082 }
00083 
00084 inline int vtkAssemblyPaths::IsItemPresent(vtkAssemblyPath *p) 
00085 {
00086   return this->vtkCollection::IsItemPresent((vtkObject *)p);
00087 }
00088 
00089 inline vtkAssemblyPath *vtkAssemblyPaths::GetNextItem() 
00090 { 
00091   return (vtkAssemblyPath *)(this->GetNextItemAsObject());
00092 }
00093 
00094 #endif