00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkImageContainerInterface_h
00018 #define __itkImageContainerInterface_h
00019
00020 #include "itkObject.h"
00021
00022 namespace itk
00023 {
00024
00052 template <typename TElementIdentifier, typename TElement>
00053 class ITK_EXPORT ImageContainerInterface: public Object
00054 {
00055 public:
00057 typedef ImageContainerInterface Self;
00058 typedef Object Superclass;
00059 typedef SmartPointer<Self> Pointer;
00060 typedef SmartPointer<const Self> ConstPointer;
00061
00063 itkTypeMacro(ImageContainerInterface, Object);
00064
00066 typedef TElementIdentifier ElementIdentifier;
00067 typedef TElement Element;
00068
00070 virtual TElement & operator[](const ElementIdentifier)=0;
00071
00073 virtual const TElement & operator[](const ElementIdentifier) const =0;
00074
00077 virtual TElement *GetBufferPointer()=0;
00078
00080 virtual unsigned long Size(void) const =0;
00081
00086 virtual void Reserve(ElementIdentifier)=0;
00087
00091 virtual void Squeeze(void)=0;
00092
00093 };
00094
00095 }
00096
00097 #endif
00098