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

Common/KWCommon/vtkContainer.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Module:    $RCSfile: vtkContainer.h,v $
00004 
00005   Copyright (c) Kitware, Inc.
00006   All rights reserved.
00007   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00008 
00009      This software is distributed WITHOUT ANY WARRANTY; without even
00010      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00011      PURPOSE.  See the above copyright notice for more information.
00012 
00013 =========================================================================*/
00053 #include "vtkObjectBase.h"
00054 
00055 #include "vtkSetGet.h" // For vtkTypeMacro.
00056 
00057 #ifndef __vtkContainer_h
00058 #define __vtkContainer_h
00059 
00060 class VTK_EXPORT vtkContainer : public vtkObjectBase
00061 {
00062 public:
00063   vtkTypeMacro(vtkContainer, vtkObjectBase);
00064 protected:
00065   //vtkIdType ReferenceCount;   
00066   vtkContainer();
00067   virtual ~vtkContainer();
00068 
00069 private:
00070   vtkContainer(const vtkContainer&); // Not implemented
00071   void operator=(const vtkContainer&); // Not implemented
00072 };
00073 
00074 //BTX
00076 
00086 template<class DType>
00087 int vtkContainerDefaultCompare(DType& k1, DType& k2)
00089 {
00090   return ( k1 < k2 ) ? ( -1 ) : ( ( k1 == k2 ) ? ( 0 ) : ( 1 ) );
00091 }
00092 
00093 static inline int vtkContainerCompareMethod(vtkObjectBase* d1, vtkObjectBase* d2)
00094 { return vtkContainerDefaultCompare(d1,d2); }
00095 static inline int vtkContainerCompareMethod(char d1, char d2) 
00096 { return vtkContainerDefaultCompare(d1,d2); }
00097 static inline int vtkContainerCompareMethod(short d1, short d2)
00098 { return vtkContainerDefaultCompare(d1,d2); }
00099 static inline int vtkContainerCompareMethod(int d1, int d2)
00100 { return vtkContainerDefaultCompare(d1,d2); }
00101 static inline int vtkContainerCompareMethod(long d1, long d2)
00102 { return vtkContainerDefaultCompare(d1,d2); }
00103 static inline int vtkContainerCompareMethod(unsigned char d1, unsigned char d2)
00104 { return vtkContainerDefaultCompare(d1,d2); }
00105 static inline int vtkContainerCompareMethod(unsigned short d1, unsigned short d2)
00106 { return vtkContainerDefaultCompare(d1,d2); }
00107 static inline int vtkContainerCompareMethod(unsigned int d1, unsigned int d2)
00108 { return vtkContainerDefaultCompare(d1,d2); }
00109 static inline int vtkContainerCompareMethod(unsigned long d1, unsigned long d2)
00110 { return vtkContainerDefaultCompare(d1,d2); }
00111 #if defined(VTK_TYPE_USE_LONG_LONG)
00112 static inline int vtkContainerCompareMethod(long long d1, long long d2)
00113 { return vtkContainerDefaultCompare(d1,d2); }
00114 static inline int vtkContainerCompareMethod(unsigned long long d1,
00115                                             unsigned long long d2)
00116 { return vtkContainerDefaultCompare(d1,d2); }
00117 #endif
00118 #if defined(VTK_TYPE_USE___INT64)
00119 static inline int vtkContainerCompareMethod(__int64 d1, __int64 d2)
00120 { return vtkContainerDefaultCompare(d1,d2); }
00121 static inline int vtkContainerCompareMethod(unsigned __int64 d1,
00122                                             unsigned __int64 d2)
00123 { return vtkContainerDefaultCompare(d1,d2); }
00124 #endif
00125 static inline int vtkContainerCompareMethod(float d1, float d2)
00126 { return vtkContainerDefaultCompare(d1,d2); }
00127 static inline int vtkContainerCompareMethod(double d1, double d2)
00128 { return vtkContainerDefaultCompare(d1,d2); }
00129 VTK_EXPORT int vtkContainerCompareMethod(const char* d1, const char* d2);
00130 VTK_EXPORT int vtkContainerCompareMethod(char* d1, char* d2);
00131 static inline int vtkContainerCompareMethod(void* d1, void* d2)
00132 { return vtkContainerDefaultCompare(d1,d2); }
00133 
00134 template<class DType>
00135 DType vtkContainerDefaultCreate(DType k2) { return k2; }
00136 
00137 static inline vtkObjectBase* vtkContainerCreateMethod(vtkObjectBase* d1)
00138 { if ( d1) { d1->Register(0); } return d1; }
00139 static inline char vtkContainerCreateMethod(char d1) 
00140 { return vtkContainerDefaultCreate(d1); }
00141 static inline short vtkContainerCreateMethod(short d1)
00142 { return vtkContainerDefaultCreate(d1); }
00143 static inline int vtkContainerCreateMethod(int d1)
00144 { return vtkContainerDefaultCreate(d1); }
00145 static inline long vtkContainerCreateMethod(long d1)
00146 { return vtkContainerDefaultCreate(d1); }
00147 static inline unsigned char vtkContainerCreateMethod(unsigned char d1)
00148 { return vtkContainerDefaultCreate(d1); }
00149 static inline unsigned short vtkContainerCreateMethod(unsigned short d1)
00150 { return vtkContainerDefaultCreate(d1); }
00151 static inline unsigned int vtkContainerCreateMethod(unsigned int d1)
00152 { return vtkContainerDefaultCreate(d1); }
00153 static inline unsigned long vtkContainerCreateMethod(unsigned long d1)
00154 { return vtkContainerDefaultCreate(d1); }
00155 #if defined(VTK_TYPE_USE_LONG_LONG)
00156 static inline long long vtkContainerCreateMethod(long long d1)
00157 { return vtkContainerDefaultCreate(d1); }
00158 static inline unsigned long long vtkContainerCreateMethod(unsigned long long d1)
00159 { return vtkContainerDefaultCreate(d1); }
00160 #endif
00161 #if defined(VTK_TYPE_USE___INT64)
00162 static inline __int64 vtkContainerCreateMethod(__int64 d1)
00163 { return vtkContainerDefaultCreate(d1); }
00164 static inline unsigned __int64 vtkContainerCreateMethod(unsigned __int64 d1)
00165 { return vtkContainerDefaultCreate(d1); }
00166 #endif
00167 static inline float vtkContainerCreateMethod(float d1)
00168 { return vtkContainerDefaultCreate(d1); }
00169 static inline double vtkContainerCreateMethod(double d1)
00170 { return vtkContainerDefaultCreate(d1); }
00171 VTK_EXPORT const char  * vtkContainerCreateMethod(const char* d1);
00172 VTK_EXPORT char* vtkContainerCreateMethod(char* d1);
00173 static inline void* vtkContainerCreateMethod(void* d1)
00174 { return vtkContainerDefaultCreate(d1); }
00175 
00176 static inline void vtkContainerDeleteMethod(vtkObjectBase* d1) 
00177 { if ( d1 ) { d1->UnRegister(0); } /* cout << "UR(d1)" << endl; */ }
00178 static inline void vtkContainerDeleteMethod(char) {}
00179 static inline void vtkContainerDeleteMethod(short) {}
00180 static inline void vtkContainerDeleteMethod(int) {}
00181 static inline void vtkContainerDeleteMethod(long) {}
00182 static inline void vtkContainerDeleteMethod(unsigned char) {}
00183 static inline void vtkContainerDeleteMethod(unsigned short) {}
00184 static inline void vtkContainerDeleteMethod(unsigned int) {}
00185 static inline void vtkContainerDeleteMethod(unsigned long) {}
00186 #if defined(VTK_TYPE_USE_LONG_LONG)
00187 static inline void vtkContainerDeleteMethod(long long) {}
00188 static inline void vtkContainerDeleteMethod(unsigned long long) {}
00189 #endif
00190 #if defined(VTK_TYPE_USE___INT64)
00191 static inline void vtkContainerDeleteMethod(__int64) {}
00192 static inline void vtkContainerDeleteMethod(unsigned __int64) {}
00193 #endif
00194 static inline void vtkContainerDeleteMethod(float) {}
00195 static inline void vtkContainerDeleteMethod(double) {}
00196 static inline void vtkContainerDeleteMethod(const char* d1) 
00197 { char *ch = const_cast<char*>(d1); delete [] ch; } 
00198 static inline void vtkContainerDeleteMethod(char* d1) { delete [] d1; }
00199 static inline void vtkContainerDeleteMethod(void*) {}
00200 //ETX
00201 
00202 #endif 
00203 
00204 
00205 

Generated on Tue May 30 12:31:37 2006 for ParaView by doxygen 1.3.5