00001 // -*- Mode: C++; tab-width: 2; -*- 00002 // vi: set ts=2: 00003 // 00004 // Molecular Mechanics: general force field parameter class 00005 00006 #ifndef BALL_MOLMEC_FORCEFIELDPARAMETERS_H 00007 #define BALL_MOLMEC_FORCEFIELDPARAMETERS_H 00008 00009 #ifndef BALL_COMMON_H 00010 # include <BALL/common.h> 00011 #endif 00012 00013 #ifndef BALL_FORMAT_PARAMETERS_H 00014 # include <BALL/FORMAT/parameters.h> 00015 #endif 00016 00017 #ifndef BALL_MOLMEC_PARAMETER_ATOMTYPES_H 00018 # include <BALL/MOLMEC/PARAMETER/atomTypes.h> 00019 #endif 00020 00021 namespace BALL 00022 { 00023 class AtomTypes; 00024 00029 class BALL_EXPORT ForceFieldParameters 00030 : public Parameters 00031 { 00032 public: 00033 00034 BALL_CREATE(ForceFieldParameters) 00035 00036 friend class ForceField; 00037 00041 00044 ForceFieldParameters(); 00045 00048 ForceFieldParameters(const String& filename); 00049 00052 ForceFieldParameters(const ForceFieldParameters& force_field_parameter); 00053 00056 virtual ~ForceFieldParameters() 00057 ; 00058 00060 00063 00066 virtual void clear() 00067 ; 00068 00071 const ForceFieldParameters& operator = (const ForceFieldParameters& param); 00072 00074 00077 00080 AtomTypes& getAtomTypes(); 00081 00084 virtual bool init(); 00085 00087 00090 00097 virtual bool isValid() const; 00098 00101 bool operator == (const ForceFieldParameters& param) const; 00102 00104 00105 protected: 00106 00107 /*_@name Protected Members 00108 */ 00109 //_@{ 00110 00111 /*_ the atom types section 00112 */ 00113 AtomTypes atom_types_; 00114 00115 //_@} 00116 }; 00117 } // namespace BALL 00118 00119 #endif // BALL_MOLMEC_FORCEFIELDPARAMETERS_H