00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef _TransformFactory_H_
00013 #define _TransformFactory_H_
00014
00015 #include "pattern/Factory.h"
00016
00017 namespace hippodraw {
00018
00019 class TransformBase;
00020
00028 class MDL_HIPPOPLOT_API TransformFactory : public Factory < TransformBase >
00029 {
00030
00031 private:
00032
00034 static TransformFactory * s_instance;
00035
00037 TransformFactory( const TransformFactory & );
00038
00040 TransformFactory();
00041
00043 void initialize ();
00044
00047 TransformBase * createXY ( const std::string & x_trans,
00048 const std::string & y_trans,
00049 const std::string & z_trans );
00050
00051 public:
00052
00054 static TransformFactory * instance ();
00055
00072 TransformBase * createTransform ( const std::string & name );
00073
00076 TransformBase * createXYZ ( const std::string & x_trans,
00077 const std::string & y_trans,
00078 const std::string & z_trans );
00079
00080 };
00081
00082 }
00083
00084 #endif // _TransformFactory_H_