8 #ifndef INCLUDE_MOLASSEMBLER_STEREOPERMUTATION_MANIPULATION_H
9 #define INCLUDE_MOLASSEMBLER_STEREOPERMUTATION_MANIPULATION_H
12 #include <unordered_set>
15 namespace Molassembler {
16 namespace Stereopermutations {
18 using UnorderedStereopermutations = std::unordered_set<Stereopermutation, boost::hash<Stereopermutation>>;
39 const Stereopermutation& b,
56 const Stereopermutation& a,
57 const Stereopermutation& b,
66 const Stereopermutation& s,
71 std::vector<Stereopermutation> list;
72 std::vector<unsigned> weights;
96 bool removeTransSpanningGroups =
false
Uniques uniques(const Stereopermutation &base, Shapes::Shape shape, bool removeTransSpanningGroups=false)
Generate the set of rotationally unique stereopermutations for a given stereopermutation.
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.
bool rotationallySuperimposable(Stereopermutation a, const Stereopermutation &b, Shapes::Shape shape)
whether this Stereopermutation is rotationally superimposable with another.
Definition: Manipulation.h:70
std::vector< Stereopermutation > generateAllRotations(Stereopermutation s, Shapes::Shape shape)
Generate all superimposable rotations of a stereopermutation.
bool hasTransArrangedLinks(const Stereopermutation &s, Shapes::Shape shape)
Whether a stereopermutation has trans arranged linked substituents.
Shape
Enumeration of all contained symmetry names.
Definition: Shapes.h:28
boost::optional< bool > enantiomer(const Stereopermutation &a, const Stereopermutation &b, Shapes::Shape shape)
Checks whether a stereopermutation is a mirror image of another within a particular shape...