PLearn 0.1
|
00001 #ifndef Template_INC 00002 #define Template_INC 00003 00004 #include <plearn/math/TMat_maths.h> 00005 #include <string> 00006 #include "Molecule.h" 00007 00008 namespace PLearn { 00009 00010 class Template; 00011 typedef PP< Template > MoleculeTemplate; 00012 00013 class Template : public Molecule{ 00014 00015 private: 00016 typedef Molecule inherited; 00017 00018 00019 public: 00020 //the properties of the template 00021 PLearn::Mat dev; 00022 00023 Template(); 00024 /* 00025 Template(const Template & t) { 00026 00027 chem.resize(t.chem.length(), t.chem.width() ) ; 00028 chem << t.chem ; 00029 00030 geom.resize(t.geom.length(), t.geom.width() ) ; 00031 geom << t.geom ; 00032 00033 dev.resize(t.dev.length(), t.dev.width() ) ; 00034 dev << t.dev ; 00035 } 00036 */ 00037 // virtual ~Template() {} 00038 00039 private: 00041 void build_(); 00042 00043 protected: 00045 static void declareOptions(OptionList& ol); 00046 00047 public: 00048 // Declares other standard object methods. 00049 PLEARN_DECLARE_OBJECT(Template); 00050 00051 // simply calls inherited::build() then build_() 00052 virtual void build(); 00053 00055 virtual void makeDeepCopyFromShallowCopy(CopiesMap& copies); 00056 00057 00058 00059 }; 00060 // Declares a few other classes and functions related to this class 00061 DECLARE_OBJECT_PTR(Template); 00062 00063 } 00064 #endif