]> Creatis software - clitk.git/blob - vv/nkitkXDRImageIOFactory.h
Initial revision
[clitk.git] / vv / nkitkXDRImageIOFactory.h
1 #ifndef NKITKXDRIMAGEIOFACTORY_H
2 #define NKITKXDRIMAGEIOFACTORY_H
3
4 /**
5  * @file   nkitkXDRImageIOFactory.h
6  * @author Simon Rit <simon.rit@gmail.com>
7  * @date   Sun Jun  1 22:09:56 2008
8  *
9  * @brief
10  *
11  *
12  */
13
14 // nkitk include
15 #include "nkitkXDRImageIO.h"
16
17 // itk include
18 #include "itkImageIOBase.h"
19 #include "itkObjectFactoryBase.h"
20 #include "itkVersion.h"
21
22 namespace nkitk {
23
24 //====================================================================
25 // Factory for reading XDR Image file format
26 class XDRImageIOFactory: public itk::ObjectFactoryBase
27 {
28 public:
29     /** Standard class typedefs. */
30     typedef XDRImageIOFactory              Self;
31     typedef itk::ObjectFactoryBase         Superclass;
32     typedef itk::SmartPointer<Self>        Pointer;
33     typedef itk::SmartPointer<const Self>  ConstPointer;
34
35     /** Class methods used to interface with the registered factories. */
36     const char* GetITKSourceVersion(void) const {
37         return ITK_SOURCE_VERSION;
38     }
39
40     const char* GetDescription(void) const {
41         return "XDR ImageIO Factory, allows the loading of XDR images into insight";
42     }
43
44     /** Method for class instantiation. */
45     itkFactorylessNewMacro(Self);
46
47     /** Run-time type information (and related methods). */
48     itkTypeMacro(XDRImageIOFactory, ObjectFactoryBase);
49
50     /** Register one factory of this type  */
51     static void RegisterOneFactory(void) {
52         ObjectFactoryBase::RegisterFactory( Self::New() );
53     }
54
55 protected:
56     XDRImageIOFactory();
57     ~XDRImageIOFactory() {};
58     typedef XDRImageIOFactory myProductType;
59     const myProductType* m_MyProduct;
60
61 private:
62     XDRImageIOFactory(const Self&); //purposely not implemented
63     void operator=(const Self&); //purposely not implemented
64 };
65
66 } // end namespace
67
68 #endif /* end #define NKITKXDRIMAGEIOFACTORY_H */
69