BALL  1.4.1
atomTypes.h
Go to the documentation of this file.
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
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines