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

vtkObjectBaseSet.h

Go to the documentation of this file.
00001 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
00002  *
00003  * $Id: vtkObjectBaseSet.h,v 1.5 2005/06/24 23:17:16 xpxqx Exp $
00004  *
00005  * Copyright (c) 2005 Sean McInerney
00006  * All rights reserved.
00007  *
00008  * See Copyright.txt or http://vtkcontainers.sourceforge.net/Copyright.html
00009  * for details.
00010  *
00011  *    This software is distributed WITHOUT ANY WARRANTY; without even 
00012  *    the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
00013  *    PURPOSE.  See the above copyright notice for more information.
00014  *
00015  */
00016 #ifndef VTK_OBJECT_BASE_SET_H_
00017 #  define VTK_OBJECT_BASE_SET_H_
00018 #  include "vtkContainer.h"
00019 #  include "vtkObjectBaseSetIterator.h" // Covariant return type.
00020 
00021 class vtkObjectBaseSetInternal;
00022 
00043 class VTK_CONTAINERS_EXPORT vtkObjectBaseSet
00044   : public vtkContainer
00045 {
00046 public:
00047   static vtkObjectBaseSet* New (void);
00048   vtkTypeRevisionMacro (vtkObjectBaseSet, vtkContainer);
00049   void PrintSelf (ostream&, vtkIndent);
00050 
00051   virtual vtkIdType     GetSize (void) const;
00052   virtual int           IsEmpty (void) const;
00053   virtual vtkIdType     GetMaxSize (void) const;
00054   virtual int           Clear (void);
00055 
00060   virtual int           Swap (vtkObjectBaseSet* container);
00061 
00066   virtual int           Copy (vtkObjectBaseSet* container);
00067 
00069   vtkIdType             GetCapacity (void) const;
00070 
00075   virtual int           Find (vtkObjectBase*    item) const;
00076 
00081   virtual int           Insert (vtkIdType       position,
00082                                 vtkObjectBase*  item);
00083 
00088   virtual int           Erase (vtkIdType position);
00089 
00094   virtual int           Erase (vtkIdType pos1, vtkIdType pos2);
00095 
00100   virtual int           Erase (vtkObjectBase*   item);
00101 
00119   virtual int   CreateUnion (vtkObjectBaseSet* source,
00120                              vtkObjectBaseSet* destination);
00121 
00136   virtual int   CreateIntersection (vtkObjectBaseSet* source,
00137                                     vtkObjectBaseSet* destination);
00138 
00153   virtual int   CreateDifference (vtkObjectBaseSet* source,
00154                                   vtkObjectBaseSet* destination);
00155 
00171   virtual int   CreateSymmetricDifference (vtkObjectBaseSet* source,
00172                                            vtkObjectBaseSet* destination);
00181   vtkObjectBase*        Front (void) const;
00182 
00187   vtkObjectBase*        Back (void) const;
00191   vtkObjectBaseSetIterator* CreateIterator (void);
00192 
00193 protected:
00194   vtkObjectBaseSet (void);
00195   ~vtkObjectBaseSet();
00196 
00197   void  ReportReferences (vtkGarbageCollector*);
00198 
00199 private:
00200   //BTX
00201   vtkObjectBaseSetInternal* Internal;
00202 
00203   friend class vtkObjectBaseSetIterator;
00204 
00207   int Swap (vtkContainer* a)
00208     { return this->Swap(static_cast<vtkObjectBaseSet*>(a)); }
00209   int Copy (vtkContainer* a)
00210     { return this->Copy(static_cast<vtkObjectBaseSet*>(a)); }
00212   //ETX
00213 
00214 private:
00220   vtkObjectBaseSet (const vtkObjectBaseSet&);
00221   void operator= (const vtkObjectBaseSet&);
00223 };
00224 
00225 #endif /* VTK_OBJECT_BASE_SET_H_ */
00226 /* 
00227  * End of: $Id: vtkObjectBaseSet.h,v 1.5 2005/06/24 23:17:16 xpxqx Exp $.
00228  * 
00229  */

Generated on Thu Jul 14 14:39:38 2005 for vtkContainers by doxygen 1.3.6