VTK
dox/Rendering/vtkProp3DCollection.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkProp3DCollection.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 =========================================================================*/
00029 #ifndef __vtkProp3DCollection_h
00030 #define __vtkProp3DCollection_h
00031 
00032 #include "vtkPropCollection.h"
00033 #include "vtkProp3D.h" // Needed for inline methods
00034 
00035 class VTK_RENDERING_EXPORT vtkProp3DCollection : public vtkPropCollection
00036 {
00037 public:
00038   static vtkProp3DCollection *New();
00039   vtkTypeMacro(vtkProp3DCollection,vtkPropCollection);
00040   virtual void PrintSelf(ostream& os, vtkIndent indent);
00041 
00043   void AddItem(vtkProp3D *p);
00044 
00046   vtkProp3D *GetNextProp3D();
00047 
00049   vtkProp3D *GetLastProp3D();
00050 
00051   //BTX
00053 
00055   vtkProp3D *GetNextProp3D(vtkCollectionSimpleIterator &cookie)
00056     {
00057       return static_cast<vtkProp3D *>(this->GetNextItemAsObject(cookie));
00058     }
00059   //ETX
00061   
00062 protected:
00063   vtkProp3DCollection() {};
00064   ~vtkProp3DCollection() {};
00065     
00066 
00067 private:
00068   // hide the standard AddItem from the user and the compiler.
00069   void AddItem(vtkObject *o)
00070     {
00071       this->vtkCollection::AddItem(o);
00072     }
00073   void AddItem(vtkProp *o)
00074     {
00075       this->vtkPropCollection::AddItem(o);
00076     }
00077 
00078 private:
00079   vtkProp3DCollection(const vtkProp3DCollection&);  // Not implemented.
00080   void operator=(const vtkProp3DCollection&);  // Not implemented.
00081 };
00082 
00083 inline void vtkProp3DCollection::AddItem(vtkProp3D *a) 
00084 {
00085   this->vtkCollection::AddItem(a);
00086 }
00087 
00088 inline vtkProp3D *vtkProp3DCollection::GetNextProp3D() 
00089 { 
00090   return static_cast<vtkProp3D *>(this->GetNextItemAsObject());
00091 }
00092 
00093 inline vtkProp3D *vtkProp3DCollection::GetLastProp3D() 
00094 { 
00095   if ( this->Bottom == NULL )
00096     {
00097     return NULL;
00098     }
00099   else
00100     {
00101     return static_cast<vtkProp3D *>(this->Bottom->Item);
00102     }
00103 }
00104 
00105 #endif
00106 
00107 
00108 
00109 
00110