00001 // -*- Mode: C++; tab-width: 2; -*- 00002 // vi: set ts=2: 00003 // 00004 00005 #ifndef BALL_MOLMEC_PARAMETER_POTENTIAL1210_H 00006 #define BALL_MOLMEC_PARAMETER_POTENTIAL1210_H 00007 00008 #ifndef BALL_FORMAT_PARAMETERSECTION_H 00009 # include <BALL/FORMAT/parameterSection.h> 00010 #endif 00011 00012 #ifndef BALL_MOLMEC_PARAMETER_ATOMTYPES_H 00013 # include <BALL/MOLMEC/PARAMETER/atomTypes.h> 00014 #endif 00015 00016 namespace BALL 00017 { 00025 class BALL_EXPORT Potential1210 00026 : public ParameterSection 00027 { 00028 public: 00029 00030 enum 00031 { 00032 UNKNOWN 00033 }; 00034 00035 struct BALL_EXPORT Values 00036 { 00037 float A; 00038 float B; 00039 }; 00040 00041 struct BALL_EXPORT Data 00042 { 00043 Atom* atom1; 00044 Atom* atom2; 00045 Values values; 00046 }; 00047 00048 00052 00055 Potential1210() ; 00056 00059 Potential1210(const Potential1210& pot1210) ; 00060 00063 virtual ~Potential1210() ; 00064 00067 virtual void clear() ; 00068 00070 00073 00079 virtual bool extractSection(ForceFieldParameters& parameters, 00080 const String& section_name) ; 00081 00083 virtual bool extractSection(Parameters& parameters, 00084 const String& section_name) ; 00085 00088 bool hasParameters(Atom::Type I, Atom::Type J) const ; 00089 00092 Potential1210::Values getParameters 00093 (Atom::Type I, Atom::Type J) const ; 00094 00099 bool assignParameters 00100 (Potential1210::Values& parameters, 00101 Atom::Type I, Atom::Type J) const ; 00102 00104 00107 00110 const Potential1210& operator = (const Potential1210& pot1210) ; 00111 00113 00116 00119 bool operator == (const Potential1210& pot1210) const ; 00120 00122 00123 protected: 00124 00125 Size number_of_atom_types_; 00126 00127 std::vector<float> A_; 00128 00129 std::vector<float> B_; 00130 00131 std::vector<bool> is_defined_; 00132 00133 std::vector<String> names_; 00134 }; 00135 } // namespace BALL 00136 00137 #endif // BALL_MOLMEC_PARAMETER_POTENTIAL1210_H