00001 // -*- Mode: C++; tab-width: 2; -*- 00002 // vi: set ts=2: 00003 // 00004 // $Id: potential1210.h,v 1.18 2005/12/23 17:01:54 amoll Exp $ 00005 // 00006 00007 #ifndef BALL_MOLMEC_PARAMETER_POTENTIAL1210_H 00008 #define BALL_MOLMEC_PARAMETER_POTENTIAL1210_H 00009 00010 #ifndef BALL_FORMAT_PARAMETERSECTION_H 00011 # include <BALL/FORMAT/parameterSection.h> 00012 #endif 00013 00014 #ifndef BALL_MOLMEC_PARAMETER_ATOMTYPES_H 00015 # include <BALL/MOLMEC/PARAMETER/atomTypes.h> 00016 #endif 00017 00018 namespace BALL 00019 { 00027 class BALL_EXPORT Potential1210 00028 : public ParameterSection 00029 { 00030 public: 00031 00032 enum 00033 { 00034 UNKNOWN 00035 }; 00036 00037 struct BALL_EXPORT Values 00038 { 00039 float A; 00040 float B; 00041 }; 00042 00043 struct BALL_EXPORT Data 00044 { 00045 Atom* atom1; 00046 Atom* atom2; 00047 Values values; 00048 }; 00049 00050 00054 00057 Potential1210() ; 00058 00061 Potential1210(const Potential1210& pot1210) ; 00062 00065 virtual ~Potential1210() ; 00066 00069 virtual void clear() ; 00070 00072 00075 00081 virtual bool extractSection(ForceFieldParameters& parameters, 00082 const String& section_name) ; 00083 00085 virtual bool extractSection(Parameters& parameters, 00086 const String& section_name) ; 00087 00090 bool hasParameters(Atom::Type I, Atom::Type J) const ; 00091 00094 Potential1210::Values getParameters 00095 (Atom::Type I, Atom::Type J) const ; 00096 00101 bool assignParameters 00102 (Potential1210::Values& parameters, 00103 Atom::Type I, Atom::Type J) const ; 00104 00106 00109 00112 const Potential1210& operator = (const Potential1210& pot1210) ; 00113 00115 00118 00121 bool operator == (const Potential1210& pot1210) const ; 00122 00124 00125 protected: 00126 00127 Size number_of_atom_types_; 00128 00129 std::vector<float> A_; 00130 00131 std::vector<float> B_; 00132 00133 std::vector<bool> is_defined_; 00134 00135 std::vector<String> names_; 00136 }; 00137 } // namespace BALL 00138 00139 #endif // BALL_MOLMEC_PARAMETER_POTENTIAL1210_H