Molassembler  1.0.0
Molecule graph and conformer library
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Scine::Molassembler::StereopermutatorList Class Reference

Manages all stereopermutators that are part of a Molecule. More...

#include <StereopermutatorList.h>

Data Structures

struct  Impl
 
class  iterator
 

Public Types

Public types
using AtomStereopermutatorIterator = iterator< AtomStereopermutator >
 
using AtomStereopermutatorConstIterator = iterator< const AtomStereopermutator >
 
using BondStereopermutatorIterator = iterator< BondStereopermutator >
 
using BondStereopermutatorConstIterator = iterator< const BondStereopermutator >
 

Public Member Functions

Special member functions
 StereopermutatorList ()
 
 StereopermutatorList (StereopermutatorList &&other) noexcept
 
StereopermutatorListoperator= (StereopermutatorList &&other) noexcept
 
 StereopermutatorList (const StereopermutatorList &other)
 
StereopermutatorListoperator= (const StereopermutatorList &other)
 
 ~StereopermutatorList ()
 
Modification
AtomStereopermutatorat (AtomIndex index)
 Access atom stereopermutator at an atom. More...
 
BondStereopermutatorat (const BondIndex &index)
 Access bond stereopermutator at a bond. More...
 
AtomStereopermutatoradd (AtomStereopermutator stereopermutator)
 Add a new AtomStereopermutator to the list. More...
 
BondStereopermutatoradd (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 AtomStereopermutatorat (AtomIndex index) const
 Access atom stereopermutator at an atom. More...
 
const BondStereopermutatorat (const BondIndex &index) const
 Access bond stereopermutator at a bond. More...
 
bool compare (const StereopermutatorList &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...
 
Ranges (not thread-safe)
IteratorRange
< AtomStereopermutatorIterator
atomStereopermutators ()
 Returns an iterable object with modifiable atom stereopermutator references. More...
 
IteratorRange
< AtomStereopermutatorConstIterator
atomStereopermutators () const
 Returns an iterable object with unmodifiable atom stereopermutator references. More...
 
IteratorRange
< BondStereopermutatorIterator
bondStereopermutators ()
 Returns an iterable object with modifiable bond stereopermutator references. More...
 
IteratorRange
< BondStereopermutatorConstIterator
bondStereopermutators () const
 Returns an iterable object with unmodifiable bond stereopermutator references. More...
 
Operators
bool operator== (const StereopermutatorList &other) const
 Strict equality comparison. More...
 
bool operator!= (const StereopermutatorList &other) const
 Inverts operator ==.
 

Private Attributes

std::unique_ptr< Implimpl_
 

Detailed Description

Manages all stereopermutators that are part of a Molecule.

Member Function Documentation

unsigned Scine::Molassembler::StereopermutatorList::A ( ) const

Returns the number of AtomStereopermutators.

Complexity \(\Theta(1)\)

AtomStereopermutator& Scine::Molassembler::StereopermutatorList::add ( AtomStereopermutator  stereopermutator)

Add a new AtomStereopermutator to the list.

Complexity \(\Theta(1)\) amortized

Returns
An iterator pointing to the added stereopermutator
BondStereopermutator& Scine::Molassembler::StereopermutatorList::add ( BondStereopermutator  stereopermutator)

Add a new BondStereopermutator to the list.

Complexity \(\Theta(1)\) amortized

Returns
An iterator pointing to the added stereopermutator
void Scine::Molassembler::StereopermutatorList::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::at ( AtomIndex  index)

Access atom stereopermutator at an atom.

Exceptions
std::out_of_rangeIf there is no atom stereopermutator on the passed atom

Complexity \(\Theta(1)\)

BondStereopermutator& Scine::Molassembler::StereopermutatorList::at ( const BondIndex index)

Access bond stereopermutator at a bond.

Exceptions
std::out_of_rangeIf there is no bond stereopermutator on the passed bond

Complexity \(\Theta(1)\)

const AtomStereopermutator& Scine::Molassembler::StereopermutatorList::at ( AtomIndex  index) const

Access atom stereopermutator at an atom.

Exceptions
std::out_of_rangeIf there is no atom stereopermutator on the passed atom

Complexity \(\Theta(1)\)

const BondStereopermutator& Scine::Molassembler::StereopermutatorList::at ( const BondIndex index) const

Access bond stereopermutator at a bond.

Exceptions
std::out_of_rangeIf there is no bond stereopermutator on the passed bond

Complexity \(\Theta(1)\)

IteratorRange<AtomStereopermutatorIterator> Scine::Molassembler::StereopermutatorList::atomStereopermutators ( )

Returns an iterable object with modifiable atom stereopermutator references.

Complexity \(\Theta(1)\)

IteratorRange<AtomStereopermutatorConstIterator> Scine::Molassembler::StereopermutatorList::atomStereopermutators ( ) const

Returns an iterable object with unmodifiable atom stereopermutator references.

Complexity \(\Theta(1)\)

unsigned Scine::Molassembler::StereopermutatorList::B ( ) const

Returns the number of BondStereopermutators.

Complexity \(\Theta(1)\)

IteratorRange<BondStereopermutatorIterator> Scine::Molassembler::StereopermutatorList::bondStereopermutators ( )

Returns an iterable object with modifiable bond stereopermutator references.

Complexity \(\Theta(1)\)

IteratorRange<BondStereopermutatorConstIterator> Scine::Molassembler::StereopermutatorList::bondStereopermutators ( ) const

Returns an iterable object with unmodifiable bond stereopermutator references.

Complexity \(\Theta(1)\)

void Scine::Molassembler::StereopermutatorList::clear ( )

Remove all stereopermutators.

Complexity \(\Theta(1)\)

void Scine::Molassembler::StereopermutatorList::clearBonds ( )

Remove all stereopermutators on bonds.

Complexity \(\Theta(1)\)

bool Scine::Molassembler::StereopermutatorList::compare ( const StereopermutatorList other,
AtomEnvironmentComponents  componentBitmask 
) const

Modular comparison with another StereopermutatorList using a bitmask.

Complexity \(O(A + B)\)

bool Scine::Molassembler::StereopermutatorList::empty ( ) const

Returns true if there are no stereopermutators.

Complexity \(\Theta(1)\)

bool Scine::Molassembler::StereopermutatorList::hasUnassignedStereopermutators ( ) const

Returns true if there are unassigned stereopermutators.

Complexity \(O(A + B)\)

bool Scine::Molassembler::StereopermutatorList::hasZeroAssignmentStereopermutators ( ) const

Returns true if there are any stereopermutators with zero possible assignments.

Complexity \(O(A + B)\)

bool Scine::Molassembler::StereopermutatorList::operator== ( const StereopermutatorList other) const

Strict equality comparison.

Complexity \(O(A + B)\)

boost::optional<AtomStereopermutator&> Scine::Molassembler::StereopermutatorList::option ( AtomIndex  index)

Fetch a reference-option to an AtomStereopermutator.

Complexity \(\Theta(1)\)

boost::optional<BondStereopermutator&> Scine::Molassembler::StereopermutatorList::option ( const BondIndex edge)

Fetch a reference-option to a BondStereopermutator.

Complexity \(\Theta(1)\)

boost::optional<const AtomStereopermutator&> Scine::Molassembler::StereopermutatorList::option ( AtomIndex  index) const

Fetch a const ref-option to an AtomStereopermutator, if present.

Complexity \(\Theta(1)\)

boost::optional<const BondStereopermutator&> Scine::Molassembler::StereopermutatorList::option ( const BondIndex edge) const

Fetch a const ref-option to a BondStereopermutator, if present.

Complexity \(\Theta(1)\)

void Scine::Molassembler::StereopermutatorList::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::remove ( AtomIndex  index)

Removes the AtomStereopermutator on a specified index.

Complexity \(\Theta(1)\)

void Scine::Molassembler::StereopermutatorList::remove ( const BondIndex edge)

Removes the BondStereopermutator on a specified edge.

Complexity \(\Theta(1)\)

unsigned Scine::Molassembler::StereopermutatorList::size ( ) const

Combined size of atom and bond-stereopermutator lists.

Complexity \(\Theta(1)\)

void Scine::Molassembler::StereopermutatorList::try_remove ( AtomIndex  index)

Removes the AtomStereopermutator on a specified index, if present.

Complexity \(\Theta(1)\)

void Scine::Molassembler::StereopermutatorList::try_remove ( const BondIndex edge)

Removes the BondStereopermutator on a specified edge, if present.

Complexity \(\Theta(1)\)


The documentation for this class was generated from the following file: