Public Types | |
using | AtomMapType = std::unordered_map< AtomIndex, AtomStereopermutator > |
using | BondMapType = std::unordered_map< BondIndex, BondStereopermutator, boost::hash< BondIndex >> |
Public Member Functions | |
Modification | |
AtomStereopermutator & | at (AtomIndex index) |
Access atom stereopermutator at an atom. More... | |
BondStereopermutator & | at (const BondIndex &index) |
Access bond stereopermutator at a bond. More... | |
AtomStereopermutator & | add (AtomStereopermutator stereopermutator) |
Add a new AtomStereopermutator to the list. More... | |
BondStereopermutator & | add (BondStereopermutator stereopermutator) |
Add a new BondStereopermutator to the list. More... | |
void | applyPermutation (const std::vector< AtomIndex > &permutation) |
Apply an index mapping to the list of stereopermutators. More... | |
void | clear () |
Remove all stereopermutators. More... | |
void | clearBonds () |
Remove all stereopermutators on bonds. More... | |
boost::optional < AtomStereopermutator & > | option (AtomIndex index) |
Fetch a reference-option to an AtomStereopermutator. More... | |
boost::optional < BondStereopermutator & > | option (const BondIndex &edge) |
Fetch a reference-option to a BondStereopermutator. More... | |
void | propagateVertexRemoval (AtomIndex removedIndex) |
Communicates the removal of a vertex index to all stereopermutators in the list. More... | |
void | remove (AtomIndex index) |
Removes the AtomStereopermutator on a specified index. More... | |
void | remove (const BondIndex &edge) |
Removes the BondStereopermutator on a specified edge. More... | |
void | try_remove (AtomIndex index) |
Removes the AtomStereopermutator on a specified index, if present. More... | |
void | try_remove (const BondIndex &edge) |
Removes the BondStereopermutator on a specified edge, if present. More... | |
Information | |
const AtomStereopermutator & | at (AtomIndex index) const |
Access atom stereopermutator at an atom. More... | |
const BondStereopermutator & | at (const BondIndex &index) const |
Access bond stereopermutator at a bond. More... | |
bool | compare (const Impl &other, AtomEnvironmentComponents componentBitmask) const |
Modular comparison with another StereopermutatorList using a bitmask. More... | |
bool | empty () const |
Returns true if there are no stereopermutators. More... | |
bool | hasZeroAssignmentStereopermutators () const |
Returns true if there are any stereopermutators with zero possible assignments. More... | |
bool | hasUnassignedStereopermutators () const |
Returns true if there are unassigned stereopermutators. More... | |
boost::optional< const AtomStereopermutator & > | option (AtomIndex index) const |
Fetch a const ref-option to an AtomStereopermutator, if present. More... | |
boost::optional< const BondStereopermutator & > | option (const BondIndex &edge) const |
Fetch a const ref-option to a BondStereopermutator, if present. More... | |
unsigned | A () const |
Returns the number of AtomStereopermutators. More... | |
unsigned | B () const |
Returns the number of BondStereopermutators. More... | |
unsigned | size () const |
Combined size of atom and bond-stereopermutator lists. More... | |
Operators | |
bool | operator== (const Impl &other) const |
Strict equality comparison. More... | |
Data Fields | |
AtomMapType | atomStereopermutators |
The underlying storage for atom stereopermutators. | |
BondMapType | bondStereopermutators |
The underlying storage for bond stereopermutators. | |
unsigned Scine::Molassembler::StereopermutatorList::Impl::A | ( | ) | const |
Returns the number of AtomStereopermutators.
Complexity \(\Theta(1)\)
AtomStereopermutator& Scine::Molassembler::StereopermutatorList::Impl::add | ( | AtomStereopermutator | stereopermutator | ) |
Add a new AtomStereopermutator to the list.
Complexity \(\Theta(1)\) amortized
BondStereopermutator& Scine::Molassembler::StereopermutatorList::Impl::add | ( | BondStereopermutator | stereopermutator | ) |
Add a new BondStereopermutator to the list.
Complexity \(\Theta(1)\) amortized
void Scine::Molassembler::StereopermutatorList::Impl::applyPermutation | ( | const std::vector< AtomIndex > & | permutation | ) |
Apply an index mapping to the list of stereopermutators.
Applies the permutation to its maps, transforming the keys (atom and bond indices) and all stereopermutators.
Complexity \(\Theta(A + B)\)
AtomStereopermutator& Scine::Molassembler::StereopermutatorList::Impl::at | ( | AtomIndex | index | ) |
Access atom stereopermutator at an atom.
std::out_of_range | If there is no atom stereopermutator on the passed atom |
Complexity \(\Theta(1)\)
BondStereopermutator& Scine::Molassembler::StereopermutatorList::Impl::at | ( | const BondIndex & | index | ) |
Access bond stereopermutator at a bond.
std::out_of_range | If there is no bond stereopermutator on the passed bond |
Complexity \(\Theta(1)\)
const AtomStereopermutator& Scine::Molassembler::StereopermutatorList::Impl::at | ( | AtomIndex | index | ) | const |
Access atom stereopermutator at an atom.
std::out_of_range | If there is no atom stereopermutator on the passed atom |
Complexity \(\Theta(1)\)
const BondStereopermutator& Scine::Molassembler::StereopermutatorList::Impl::at | ( | const BondIndex & | index | ) | const |
Access bond stereopermutator at a bond.
std::out_of_range | If there is no bond stereopermutator on the passed bond |
Complexity \(\Theta(1)\)
unsigned Scine::Molassembler::StereopermutatorList::Impl::B | ( | ) | const |
Returns the number of BondStereopermutators.
Complexity \(\Theta(1)\)
void Scine::Molassembler::StereopermutatorList::Impl::clear | ( | ) |
Remove all stereopermutators.
Complexity \(\Theta(1)\)
void Scine::Molassembler::StereopermutatorList::Impl::clearBonds | ( | ) |
Remove all stereopermutators on bonds.
Complexity \(\Theta(1)\)
bool Scine::Molassembler::StereopermutatorList::Impl::compare | ( | const Impl & | other, |
AtomEnvironmentComponents | componentBitmask | ||
) | const |
Modular comparison with another StereopermutatorList using a bitmask.
Complexity \(O(A + B)\)
bool Scine::Molassembler::StereopermutatorList::Impl::empty | ( | ) | const |
Returns true if there are no stereopermutators.
Complexity \(\Theta(1)\)
bool Scine::Molassembler::StereopermutatorList::Impl::hasUnassignedStereopermutators | ( | ) | const |
Returns true if there are unassigned stereopermutators.
Complexity \(O(A + B)\)
bool Scine::Molassembler::StereopermutatorList::Impl::hasZeroAssignmentStereopermutators | ( | ) | const |
Returns true if there are any stereopermutators with zero possible assignments.
Complexity \(O(A + B)\)
bool Scine::Molassembler::StereopermutatorList::Impl::operator== | ( | const Impl & | other | ) | const |
Strict equality comparison.
Complexity \(O(A + B)\)
boost::optional<AtomStereopermutator&> Scine::Molassembler::StereopermutatorList::Impl::option | ( | AtomIndex | index | ) |
Fetch a reference-option to an AtomStereopermutator.
Complexity \(\Theta(1)\)
boost::optional<BondStereopermutator&> Scine::Molassembler::StereopermutatorList::Impl::option | ( | const BondIndex & | edge | ) |
Fetch a reference-option to a BondStereopermutator.
Complexity \(\Theta(1)\)
boost::optional<const AtomStereopermutator&> Scine::Molassembler::StereopermutatorList::Impl::option | ( | AtomIndex | index | ) | const |
Fetch a const ref-option to an AtomStereopermutator, if present.
Complexity \(\Theta(1)\)
boost::optional<const BondStereopermutator&> Scine::Molassembler::StereopermutatorList::Impl::option | ( | const BondIndex & | edge | ) | const |
Fetch a const ref-option to a BondStereopermutator, if present.
Complexity \(\Theta(1)\)
void Scine::Molassembler::StereopermutatorList::Impl::propagateVertexRemoval | ( | AtomIndex | removedIndex | ) |
Communicates the removal of a vertex index to all stereopermutators in the list.
Removing a vertex invalidates some vertex descriptors, which are used liberally in the stereopermutator classes. This function ensures that vertex descriptors are valid throughout.
Complexity \(\Theta(A + B)\)
void Scine::Molassembler::StereopermutatorList::Impl::remove | ( | AtomIndex | index | ) |
Removes the AtomStereopermutator on a specified index.
Complexity \(\Theta(1)\)
void Scine::Molassembler::StereopermutatorList::Impl::remove | ( | const BondIndex & | edge | ) |
Removes the BondStereopermutator on a specified edge.
Complexity \(\Theta(1)\)
unsigned Scine::Molassembler::StereopermutatorList::Impl::size | ( | ) | const |
Combined size of atom and bond-stereopermutator lists.
Complexity \(\Theta(1)\)
void Scine::Molassembler::StereopermutatorList::Impl::try_remove | ( | AtomIndex | index | ) |
Removes the AtomStereopermutator on a specified index, if present.
Complexity \(\Theta(1)\)
void Scine::Molassembler::StereopermutatorList::Impl::try_remove | ( | const BondIndex & | edge | ) |
Removes the BondStereopermutator on a specified edge, if present.
Complexity \(\Theta(1)\)