12 #ifndef INCLUDE_MOLASSEMBLER_LOCAL_GEOMETRY_MODEL_H
13 #define INCLUDE_MOLASSEMBLER_LOCAL_GEOMETRY_MODEL_H
15 #include "boost/optional/optional_fwd.hpp"
25 namespace Molassembler {
33 namespace ShapeInference {
41 std::vector<Utils::ElementType> elements;
52 std::vector<Utils::ElementType> passElements,
54 ) : L(passL), X(passX), elements(std::move(passElements)), bondType(passBondType) {}
95 boost::optional<Shapes::Shape>
vsepr(
96 Utils::ElementType centerAtomType,
97 const std::vector<BindingSite>&
sites,
111 const Graph& molGraph,
Shapes::Shape firstOfSize(unsigned size)
Yields the first shape of required size.
std::vector< BindingSite > reduceToSiteInformation(const Graph &molGraph, AtomIndex index, const RankingInformation &ranking)
Reduces a ranking to binding site information.
boost::optional< Shapes::Shape > vsepr(Utils::ElementType centerAtomType, const std::vector< BindingSite > &sites, int formalCharge)
Applies very basic VSEPR theory to derive a shape based on graph information.
unsigned size(Shape shape)
Fetch the number of vertices of a shape.
Represents the connectivity of atoms of a molecule.
Definition: Graph.h:54
boost::optional< Shapes::Shape > inferShape(const Graph &graph, AtomIndex index, const RankingInformation &ranking)
Forwards inference to appropriate model depending on environment.
int formalCharge(const Graph &graph, AtomIndex index)
Calculates the formal charge on a main group-element atom.
std::size_t AtomIndex
Unsigned integer atom index type. Used to refer to particular atoms.
Definition: Types.h:51
std::vector< std::vector< AtomIndex >> sites(const PrivateGraph &graph, AtomIndex placement, const std::vector< AtomIndex > &excludeAdjacents={})
Differentiate adjacent vertices of a central index into sites.
BondType
Discrete bond type numeration.
Definition: Types.h:26
double bondWeight(BondType bond)
Map bond type to a floating-point weight.
Defines symmetry names and total count.
Shape
Enumeration of all contained symmetry names.
Definition: Shapes.h:28
Type used to represent minimal binding site information.
Definition: ShapeInference.h:38