12#ifndef RDKIT_SYNTHONSHAPEINPUT_H
13#define RDKIT_SYNTHONSHAPEINPUT_H
20#ifdef RDK_USE_BOOST_SERIALIZATION
21#include <boost/archive/text_oarchive.hpp>
22#include <boost/archive/text_iarchive.hpp>
23#include <boost/serialization/unique_ptr.hpp>
24#include <boost/serialization/utility.hpp>
25#include <boost/serialization/vector.hpp>
26#include <boost/serialization/split_member.hpp>
41#ifndef RDK_USE_BOOST_SERIALIZATION
44 std::stringstream ss(str);
45 boost::archive::text_iarchive ia(ss);
61#ifndef RDK_USE_BOOST_SERIALIZATION
65 boost::archive::text_oarchive oa(ss);
76 return d_dummyAtomsAndNbrs.size();
78 const std::vector<std::pair<unsigned int, unsigned int>> &
80 return d_dummyAtomsAndNbrs;
83#ifdef RDK_USE_BOOST_SERIALIZATION
84 template <
class Archive>
85 void serialize(Archive &ar,
const unsigned int) {
86 if (Archive::is_saving::value) {
87 std::string shape = d_shapes->toString();
95 ar & d_dummyAtomsAndNbrs;
100 std::unique_ptr<GaussianShape::ShapeInput> d_shapes;
106 std::vector<std::pair<unsigned int, unsigned int>> d_dummyAtomsAndNbrs;
108 void buildDummyAtomsAndNbrs();
109 void calculateDummyVols(
const GaussianShape::ShapeOverlayOptions &opts);
#define PRECONDITION(expr, mess)
Defines the editable molecule class RWMol.