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,
124 std::vector<unsigned> operator() (
137 const std::vector<unsigned>& feasibles
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
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)
Determine whether a stereopermutation is possibly feasible.
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:96
Shape
Enumeration of all contained symmetry names.
Definition: Shapes.h:28
Definition: FeasiblePermutations.h:51
std::vector< unsigned > operator()(const Abstract &abstract, Shapes::Shape shape, AtomIndex placement, const RankingInformation &ranking) const
Determines the subset of stereopermutations that are feasible in three dimensions.
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.
Definition: FeasiblePermutations.h:123
ConeAngleType coneAngles
Mapping from site index to cone angle optional.
Definition: FeasiblePermutations.h:47