16#ifndef _RBTELEMENTFILESOURCE_H_
17#define _RBTELEMENTFILESOURCE_H_
19#include "rxdock/BaseFileSource.h"
21#include <nlohmann/json.hpp>
23using json = nlohmann::json;
31 : atomicNo(0), element(
""), minVal(0), maxVal(0), commonVal(0), mass(0.0),
35 friend void to_json(json &j,
const ElementData &e) {
36 j = json{{
"atomic-number", e.atomicNo}, {
"element-name", e.element},
37 {
"minimum-value", e.minVal}, {
"maximum-value", e.maxVal},
38 {
"common-value", e.commonVal}, {
"atomic-mass", e.mass},
39 {
"vdw-radius", e.vdwRadius}};
42 friend void from_json(
const json &j,
ElementData &e) {
43 j.at(
"atomic-number").get_to(e.atomicNo);
44 j.at(
"element-name").get_to(e.element);
45 j.at(
"minimum-value").get_to(e.minVal);
46 j.at(
"maximum-value").get_to(e.maxVal);
47 j.at(
"common-value").get_to(e.commonVal);
48 j.at(
"atomic-mass").get_to(e.mass);
49 j.at(
"vdw-radius").get_to(e.vdwRadius);
62typedef std::map<std::string, ElementData> StringElementDataMap;
63typedef StringElementDataMap::iterator StringElementDataMapIter;
64typedef StringElementDataMap::const_iterator StringElementDataMapConstIter;
66typedef std::map<int, ElementData> IntElementDataMap;
67typedef IntElementDataMap::iterator IntElementDataMapIter;
68typedef IntElementDataMap::const_iterator IntElementDataMapConstIter;
81 RBTDLL_EXPORT std::string GetTitle();
82 std::string GetVersion();
83 unsigned int GetNumElements();
84 std::vector<std::string> GetElementNameList();
85 std::vector<int> GetAtomicNumberList();
87 ElementData GetElementData(
const std::string &strElementName);
91 bool isElementNamePresent(
const std::string &strElementName);
93 bool isAtomicNumberPresent(
int nAtomicNumber);
96 double GetHBondRadiusIncr();
98 double GetImplicitRadiusIncr();
112 virtual void Parse();
113 void ClearElementDataCache();
120 std::string m_inputFileName;
121 std::string m_strTitle;
122 std::string m_strVersion;
123 double m_dHBondRadiusIncr;
125 double m_dImplicitRadiusIncr;
127 StringElementDataMap m_elementNameMap;
128 IntElementDataMap m_atomicNumberMap;
Definition BaseFileSource.h:36
Definition ElementFileSource.h:28
Definition ElementFileSource.h:70
Definition SmartPointer.h:48