11 #ifndef INCLUDE_MOLASSEMBLER_STEREOPERMUTATIONS_STEREOPERMUTATION_H
12 #define INCLUDE_MOLASSEMBLER_STEREOPERMUTATIONS_STEREOPERMUTATION_H
17 namespace Molassembler {
20 namespace Stereopermutations {
38 using Link = std::pair<Shapes::Vertex, Shapes::Vertex>;
100 std::string toString()
const;
107 return std::tie(characters, links);
112 PURITY_WEAK MASM_EXPORT std::size_t hash_value(
const Stereopermutation& assignment);
std::pair< Shapes::Vertex, Shapes::Vertex > Link
Type used to represent a link between shape vertices.
Definition: Stereopermutation.h:38
Generates all operators using a method returning a tuple.
Definition: OperatorSuppliers.h:84
Represent abstract stereopermutation around atom center.
Definition: Stereopermutation.h:30
#define PURITY_WEAK
Definition: Preprocessor.h:36
Centralizes basic shape data in runtime types.
std::vector< Vertex > Permutation
Representation of a shape vertex permutation.
Definition: Data.h:35
Permutation applyPermutation(const Permutation &occupation, const Permutation &permutation)
Rotates a passed list of indices with a specified rotation vector.
auto tie() const
Yields members tied to tuple for crtp operator suppliers.
Definition: Stereopermutation.h:106
std::vector< char > CharacterOccupation
Character occupations.
Definition: Stereopermutation.h:35
std::vector< Link > OrderedLinks
Unordered type, but kept ordered by member functions.
Definition: Stereopermutation.h:41
CharacterOccupation characters
Abstract representation of ranked substituents.
Definition: Stereopermutation.h:68
OrderedLinks links
Links between characters.
Definition: Stereopermutation.h:70