Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef OB_CHARGEMODEL_H
00021 #define OB_CHARGEMODEL_H
00022
00023 #include <openbabel/babelconfig.h>
00024 #include <openbabel/plugin.h>
00025 #include <openbabel/math/vector3.h>
00026
00027 namespace OpenBabel
00028 {
00029 class OBMol;
00030
00031
00032 class OBAPI OBChargeModel : public OBPlugin
00033 {
00034 MAKE_PLUGIN(OBChargeModel)
00035
00036 public:
00037 const char* TypeID(){return "charges";};
00038
00041 virtual bool ComputeCharges(OBMol &) { return false; }
00042
00048 const std::vector<double> & GetFormalCharges() const
00049 { return m_formalCharges; }
00050
00053 const std::vector<double> & GetPartialCharges() const
00054 { return m_partialCharges; }
00055
00057 vector3 GetDipoleMoment(OBMol &);
00058
00059 protected:
00060 std::vector<double> m_partialCharges;
00061 std::vector<double> m_formalCharges;
00062
00064 void FillChargeVectors(OBMol &mol);
00065
00067 virtual double DipoleScalingFactor() { return 1.0; }
00068 };
00069
00123 }
00124 #endif
00125