8 #ifndef INCLUDE_MOLASSEMBLER_STEREOPERMUTATIONS_FEASIBLE_PERMUTATIONS_H
9 #define INCLUDE_MOLASSEMBLER_STEREOPERMUTATIONS_FEASIBLE_PERMUTATIONS_H
18 namespace Molassembler {
22 namespace Stereopermutators {
30 using ConeAngleType = std::vector<
31 boost::optional<DistanceGeometry::ValueBounds>
54 using ConeAngleType = std::vector<
55 boost::optional<DistanceGeometry::ValueBounds>
71 const ConeAngleType& cones,
90 const ConeAngleType& coneAngles,
94 std::vector<std::vector<SiteIndex>> siteGroups = {}
120 std::vector<std::vector<SiteIndex>> siteGroups = {}
127 std::vector<unsigned> operator() (
132 std::vector<std::vector<SiteIndex>> siteGroups
141 const std::vector<unsigned>& feasibles
std::vector< unsigned > operator()(const Abstract &abstract, Shapes::Shape shape, AtomIndex placement, const RankingInformation &ranking, std::vector< std::vector< SiteIndex >> siteGroups={}) const
Determines the subset of stereopermutations that are feasible in three dimensions.
Definition: FeasiblePermutations.h:27
std::vector< DistanceGeometry::ValueBounds > siteDistances
Mapping from site index to modeled site plane distance.
Definition: FeasiblePermutations.h:44
Represent abstract stereopermutation around atom center.
Definition: Stereopermutation.h:36
Base class to describe substituent arrangements in shapes.
ShapeResult shape(const PositionCollection &normalizedPositions, Shape shape)
Forwarding function to calculate the continuous shape measure.
Represents the connectivity of atoms of a molecule.
Definition: Graph.h:54
std::size_t AtomIndex
Unsigned integer atom index type. Used to refer to particular atoms.
Definition: Types.h:51
Data struct for storing a numeric interval.
Library internal graph class wrapping BGL types.
Definition: PrivateGraph.h:26
Centralizes the main customization points of the library's behavior.
Class to compute the set of abstract permutations from ranking and shape.
Definition: AbstractPermutations.h:24
Definition: FeasiblePermutations.h:97
Shape
Enumeration of all contained symmetry names.
Definition: Shapes.h:28
Definition: FeasiblePermutations.h:51
static boost::optional< unsigned > findRotationallySuperposableAssignment(const Stereopermutations::Stereopermutation &permutation, Shapes::Shape shape, const Abstract &abstract, const std::vector< unsigned > &feasibles)
Find a rotationally superposable assignment to a permutation.
Calculate shape position maps.
static bool linkPossiblyFeasible(const RankingInformation::Link &link, AtomIndex placement, const ConeAngleType &cones, const RankingInformation &ranking, Shapes::Shape shape, const SiteToShapeVertexMap &shapeVertexMap, const Graph &graph)
Determine whether a link is possibly feasible.
static bool possiblyFeasible(const Stereopermutations::Stereopermutation &stereopermutation, AtomIndex placement, const RankingInformation::RankedSitesType &canonicalSites, const ConeAngleType &coneAngles, const RankingInformation &ranking, Shapes::Shape shape, const Graph &graph, std::vector< std::vector< SiteIndex >> siteGroups={})
Determine whether a stereopermutation is possibly feasible.
Definition: FeasiblePermutations.h:126
ConeAngleType coneAngles
Mapping from site index to cone angle optional.
Definition: FeasiblePermutations.h:47