17 #ifndef INCLUDE_MOLASSEMBLER_ATOM_STEREOPERMUTATOR_H
18 #define INCLUDE_MOLASSEMBLER_ATOM_STEREOPERMUTATOR_H
28 namespace Molassembler {
31 struct RankingInformation;
32 class AngstromPositions;
35 namespace Stereopermutators {
44 namespace DistanceGeometry {
146 static Shapes::
Shape down(Shapes::
Shape shape, Shapes::Vertex removedVertex);
160 void assign(boost::optional<
unsigned> assignment);
178 void assignRandom(Random::Engine& engine);
221 boost::optional<Shapes::
Shape> shapeOption
231 void propagateVertexRemoval(
AtomIndex removedIndex);
272 boost::optional<
unsigned> assigned() const;
288 boost::optional<
unsigned> indexOfPermutation() const;
312 std::
string info() const;
318 std::
string rankInfo() const;
328 std::vector<std::vector<
SiteIndex>> siteGroups() const;
335 MASM_NO_EXPORT const Stereopermutators::Abstract& getAbstract() const;
342 MASM_NO_EXPORT const Stereopermutators::Feasible& getFeasible() const;
354 Shapes::
Shape getShape() const;
361 const
ShapeMap& getShapePositionMap() const;
384 unsigned numAssignments() const;
407 unsigned numStereopermutations() const;
438 std::unique_ptr<Impl> pImpl_;
std::array< boost::optional< SiteIndex >, 4 > MinimalChiralConstraint
Site index sequence defining a chiral constraint. If a site index is None, then it denotes the positi...
Definition: AtomStereopermutator.h:95
Type helper for creating strong index types that are type-level distinct from their fundamental types...
Definition: StrongIndex.h:37
Drives a PRNG.
Definition: Prng.h:24
A wrapper class around Utils' PositionCollection to emphasize that the positions stored therein are i...
Definition: AngstromPositions.h:25
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:57
Class performing spatial modeling of molecules.
Definition: SpatialModel.h:39
Definition: AtomStereopermutatorImpl.h:28
Centralizes basic shape data in runtime types.
Handles the steric permutation of substituents of a non-terminal central atom.
Definition: AtomStereopermutator.h:79
std::tuple< RankingInformation, Stereopermutators::Abstract, Stereopermutators::Feasible, ShapeMap > PropagatedState
Old state dumped upon propagation.
Definition: AtomStereopermutator.h:89
std::size_t AtomIndex
Unsigned integer atom index type. Used to refer to particular atoms.
Definition: Types.h:51
Permutation applyPermutation(const Permutation &occupation, const Permutation &permutation)
Rotates a passed list of indices with a specified rotation vector.
Class to compute the set of abstract permutations from ranking and shape.
Definition: AbstractPermutations.h:24
Shape
Enumeration of all contained symmetry names.
Definition: Shapes.h:28
Definition: FeasiblePermutations.h:24
Data struct representing a chiral constraint.
Definition: DistanceGeometry.h:32
Class for flat maps between strong indices.