00001 /* -*- mode: c++ -*- 00002 * 00003 * HippoPlot TransformFactory class interface 00004 * 00005 * Copyright (C) 2000, 2001, 2003 The Board of Trustees of The Leland 00006 * Stanford Junior University. All Rights Reserved. 00007 * 00008 * $Id: TransformFactory.h,v 1.15 2003/04/08 23:20:59 sanket Exp $ 00009 * 00010 */ 00011 00012 #ifndef _TransformFactory_H_ 00013 #define _TransformFactory_H_ 00014 00015 #include "pattern/Factory.h" 00016 00017 class TransformBase; 00018 00026 class MDL_HIPPOPLOT_API TransformFactory : public Factory < TransformBase > 00027 { 00028 00029 private: 00030 00032 static TransformFactory * s_instance; 00033 00035 TransformFactory( const TransformFactory & ); 00036 00038 TransformFactory(); 00039 00041 void initialize (); 00042 00045 TransformBase * createXY ( const std::string & x_trans, 00046 const std::string & y_trans, 00047 const std::string & z_trans ); 00048 00049 public: 00050 00052 static TransformFactory * instance (); 00053 00070 TransformBase * createTransform ( const std::string & name ); 00071 00074 TransformBase * createXYZ ( const std::string & x_trans, 00075 const std::string & y_trans, 00076 const std::string & z_trans ); 00077 00078 }; 00079 00080 #endif // _TransformFactory_H_