quadraticAngleBend.h

Go to the documentation of this file.
00001 // -*- Mode: C++; tab-width: 2; -*-
00002 // vi: set ts=2:
00003 //
00004 // $Id: quadraticAngleBend.h,v 1.19 2005/12/23 17:01:54 amoll Exp $
00005 //
00006  
00007 #ifndef BALL_MOLMEC_PARAMETER_QUADRATICANGLEBEND_H
00008 #define BALL_MOLMEC_PARAMETER_QUADRATICANGLEBEND_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 #ifndef BALL_KERNEL_ATOM_H
00019 # include <BALL/KERNEL/atom.h>
00020 #endif
00021 
00022 namespace BALL 
00023 {
00030   class BALL_EXPORT QuadraticAngleBend 
00031     : public ParameterSection
00032   {
00033     public:
00034 
00035     enum 
00036     {
00037       UNKNOWN
00038     };
00039 
00040     struct BALL_EXPORT Values 
00041     {
00042       float theta0;
00043       float k;
00044     };
00045 
00046     struct BALL_EXPORT Data
00047     {
00048       Atom::StaticAtomAttributes* atom1;
00049       Atom::StaticAtomAttributes* atom2;
00050       Atom::StaticAtomAttributes* atom3;
00051       Values values;
00052     };
00053 
00054 
00057     QuadraticAngleBend();
00058 
00061     virtual ~QuadraticAngleBend() ;
00062 
00065     virtual void clear() ;
00066 
00072     virtual bool extractSection(ForceFieldParameters& parameters, const String& section_name);
00073     virtual bool extractSection(Parameters& parameters, const String& section_name);
00074 
00077     bool hasParameters(Atom::Type I, Atom::Type J, Atom::Type K) const;
00078     
00081     QuadraticAngleBend::Values getParameters
00082       (Atom::Type I, Atom::Type J, Atom::Type K) const;
00083     
00088     bool assignParameters
00089       (QuadraticAngleBend::Values& parameters, 
00090        Atom::Type I, Atom::Type J, Atom::Type K) const;
00091     
00092     protected:
00093 
00094     Size            number_of_atom_types_;
00095 
00096     vector<Values>  values_;
00097 
00098     vector<Index>   value_index_;
00099   };
00100 } // namespace BALL
00101 
00102 #endif // BALL_MOLMEC_PARAMETER_QUADRATICBONDSTRETCH_H