BALL
1.4.1
|
00001 // -*- Mode: C++; tab-width: 2; -*- 00002 // vi: set ts=2: 00003 // 00004 00005 #ifndef BALL_MOLMEC_PARAMETER_ATOMTYPES_H 00006 #define BALL_MOLMEC_PARAMETER_ATOMTYPES_H 00007 00008 #ifndef BALL_FORMAT_PARAMETERSECTION_H 00009 # include <BALL/FORMAT/parameterSection.h> 00010 #endif 00011 00012 #ifndef BALL_KERNEL_ATOM_H 00013 # include <BALL/KERNEL/atom.h> 00014 #endif 00015 00016 #define BALL_ATOM_WILDCARD_NAME "*" 00017 #define BALL_ATOM_UNKNOWN_NAME "?" 00018 00019 namespace BALL 00020 { 00021 class ForceFieldParameters; 00022 00028 class BALL_EXPORT AtomTypes 00029 : public ParameterSection 00030 { 00031 public: 00032 00036 00039 AtomTypes() ; 00040 00043 AtomTypes(const AtomTypes& atom_types) ; 00044 00047 virtual ~AtomTypes() ; 00048 00050 00053 00059 virtual bool extractSection(Parameters& parameters, 00060 const String& section_name = "AtomTypes") ; 00061 00064 Atom::Type getType(const String& name) const ; 00065 00068 bool hasType(const String& name) const ; 00069 00072 String getTypeName(Atom::Type type) const ; 00073 00076 Size getNumberOfTypes() const ; 00077 00079 00082 00085 virtual void clear() ; 00086 00090 AtomTypes& operator = (const AtomTypes& atom_types) ; 00091 00093 00096 00099 bool operator == (const AtomTypes& atom_types) const ; 00100 00102 00103 protected: 00104 00105 /*_ Contains the numeric types for each atom type string. 00106 */ 00107 StringHashMap<Atom::Type> type_map_; 00108 00109 /*_ Contains the symbolic names of the atom types. 00110 */ 00111 vector<String> names_; 00112 }; 00113 } // namespace BALL 00114 00115 #endif // BALL_MOLMEC_PARAMETER_ATOMTYPES_H