Chemical Data Processing Library C++ API - Version 1.4.0
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
CDPL::Chem::Molecule Class Referenceabstract

Abstract base class representing a mutable molecular graph that owns and manages its atoms and bonds. More...

#include <Molecule.hpp>

+ Inheritance diagram for CDPL::Chem::Molecule:

Public Types

typedef std::shared_ptr< MoleculeSharedPointer
 A reference-counted smart pointer [SHPTR] for dynamically allocated Molecule instances. More...
 
typedef AtomContainer::ConstAtomIterator ConstAtomIterator
 A constant random access iterator used to iterate over the stored const Chem::Atom objects. More...
 
typedef AtomContainer::AtomIterator AtomIterator
 A mutable random access iterator used to iterate over the stored Chem::Atom objects. More...
 
typedef BondContainer::ConstBondIterator ConstBondIterator
 A constant random access iterator used to iterate over the stored const Chem::Bond objects. More...
 
typedef BondContainer::BondIterator BondIterator
 A mutable random access iterator used to iterate over the stored Chem::Bond objects. More...
 
typedef std::function< void(Molecule &, const MolecularGraph &)> CopyPostprocessingFunction
 Type of function invoked after a molecule has been altered due to copying/appending a source molecular graph. More...
 
- Public Types inherited from CDPL::Chem::MolecularGraph
typedef std::shared_ptr< MolecularGraphSharedPointer
 A reference-counted smart pointer [SHPTR] for dynamically allocated MolecularGraph instances. More...
 
- Public Types inherited from CDPL::Chem::AtomContainer
typedef Util::IndexedElementIterator< const Atom, ConstAtomAccessor > ConstAtomIterator
 A constant random access iterator used to iterate over the stored const Chem::Atom objects. More...
 
typedef Util::IndexedElementIterator< Atom, AtomAccessor > AtomIterator
 A mutable random access iterator used to iterate over the stored Chem::Atom objects. More...
 
- Public Types inherited from CDPL::Chem::Entity3DContainer
typedef Util::IndexedElementIterator< const Entity3D, ConstEntityAccessor > ConstEntityIterator
 A constant random access iterator used to iterate over the stored const Chem::Entity3D objects. More...
 
typedef Util::IndexedElementIterator< Entity3D, EntityAccessor > EntityIterator
 A mutable random access iterator used to iterate over the stored Chem::Entity3D objects. More...
 
- Public Types inherited from CDPL::Chem::BondContainer
typedef Util::IndexedElementIterator< const Bond, ConstBondAccessor > ConstBondIterator
 A constant random access iterator used to iterate over the stored const Chem::Bond objects. More...
 
typedef Util::IndexedElementIterator< Bond, BondAccessor > BondIterator
 A mutable random access iterator used to iterate over the stored Chem::Bond objects. More...
 
- Public Types inherited from CDPL::Base::PropertyContainer
typedef PropertyMap::value_type PropertyEntry
 A Base::LookupKey / Base::Any pair that stores the property value for a given property key. More...
 
typedef PropertyMap::const_iterator ConstPropertyIterator
 A constant iterator used to iterate over the property entries. More...
 

Public Member Functions

virtual ~Molecule ()
 Virtual destructor. More...
 
virtual void clear ()=0
 Removes all atoms and bonds and clears all properties of the molecule. More...
 
virtual AtomaddAtom ()=0
 Creates a new atom and adds it to the molecule. More...
 
virtual void removeAtom (std::size_t idx)=0
 Removes the atom at the specified index. More...
 
AtomIterator removeAtom (const AtomIterator &it)
 Removes the atom specified by the iterator it. More...
 
virtual BondaddBond (std::size_t atom1_idx, std::size_t atom2_idx)=0
 Creates a new or returns an already existing bond between the atoms specified by atom1_idx and atom2_idx. More...
 
virtual void removeBond (std::size_t idx)=0
 Removes the bond at the specified index. More...
 
BondIterator removeBond (const BondIterator &it)
 Removes the bond specified by the iterator it. More...
 
virtual void copy (const Molecule &mol)=0
 Replaces the current set of atoms, bonds and properties by a copy of the atoms, bonds and properties of the molecule mol. More...
 
virtual void copy (const MolecularGraph &molgraph)=0
 Replaces the current set of atoms, bonds and properties by a copy of the atoms, bonds and properties of the molecular graph molgraph. More...
 
virtual void append (const Molecule &mol)=0
 Extends the current set of atoms and bonds by a copy of the atoms and bonds of the molecule mol. More...
 
virtual void append (const MolecularGraph &molgraph)=0
 Extends the current set of atoms and bonds by a copy of the atoms and bonds of the molecular graph molgraph. More...
 
virtual void remove (const MolecularGraph &molgraph)=0
 Removes atoms and bonds referenced by the molecular graph molgraph that are part of this Molecule instance. More...
 
virtual void reserveMemoryForAtoms (std::size_t num_atoms)
 Reserves memory for num_atoms atoms. More...
 
virtual void reserveMemoryForBonds (std::size_t num_bonds)
 Reserves memory for num_bonds bonds. More...
 
Moleculeoperator= (const Molecule &mol)
 Replaces the current set of atoms, bonds and properties by a copy of the atoms, bonds and properties of the molecule mol. More...
 
Moleculeoperator= (const MolecularGraph &molgraph)
 Replaces the current set of atoms, bonds and properties by a copy of the atoms, bonds and properties of the molecular graph molgraph. More...
 
Moleculeoperator+= (const Molecule &mol)
 Extends the current set of atoms and bonds by a copy of the atoms and bonds of the molecule mol. More...
 
Moleculeoperator+= (const MolecularGraph &molgraph)
 Extends the current set of atoms and bonds by a copy of the atoms and bonds of the molecular graph molgraph. More...
 
Moleculeoperator-= (const MolecularGraph &molgraph)
 Removes atoms and bonds referenced by the molecular graph molgraph that are part of this Molecule instance. More...
 
ConstAtomIterator getAtomsBegin () const
 Returns a constant iterator pointing to the beginning of the stored const Chem::Atom objects. More...
 
AtomIterator getAtomsBegin ()
 Returns a mutable iterator pointing to the beginning of the stored Chem::Atom objects. More...
 
ConstAtomIterator getAtomsEnd () const
 Returns a constant iterator pointing to the end of the stored const Chem::Atom objects. More...
 
AtomIterator getAtomsEnd ()
 Returns a mutable iterator pointing to the end of the stored Chem::Atom objects. More...
 
ConstBondIterator getBondsBegin () const
 Returns a constant iterator pointing to the beginning of the stored const Chem::Bond objects. More...
 
BondIterator getBondsBegin ()
 Returns a mutable iterator pointing to the beginning of the stored Chem::Bond objects. More...
 
ConstBondIterator getBondsEnd () const
 Returns a constant iterator pointing to the end of the stored const Chem::Bond objects. More...
 
BondIterator getBondsEnd ()
 Returns a mutable iterator pointing to the end of the stored Chem::Bond objects. More...
 
- Public Member Functions inherited from CDPL::Chem::MolecularGraph
virtual ~MolecularGraph ()
 Virtual destructor. More...
 
virtual SharedPointer clone () const =0
 Creates a deep copy of the molecular graph. More...
 
- Public Member Functions inherited from CDPL::Chem::AtomContainer
virtual std::size_t getNumAtoms () const =0
 Returns the number of atoms. More...
 
virtual const AtomgetAtom (std::size_t idx) const =0
 Returns a const reference to the atom at index idx. More...
 
virtual AtomgetAtom (std::size_t idx)=0
 Returns a non-const reference to the atom at index idx. More...
 
ConstAtomIterator getAtomsBegin () const
 Returns a constant iterator pointing to the beginning of the stored const Chem::Atom objects. More...
 
ConstAtomIterator getAtomsEnd () const
 Returns a constant iterator pointing to the end of the stored const Chem::Atom objects. More...
 
AtomIterator getAtomsBegin ()
 Returns a mutable iterator pointing to the beginning of the stored Chem::Atom objects. More...
 
AtomIterator getAtomsEnd ()
 Returns a mutable iterator pointing to the end of the stored Chem::Atom objects. More...
 
ConstAtomIterator begin () const
 Returns a constant iterator pointing to the beginning of the stored const Chem::Atom objects. More...
 
ConstAtomIterator end () const
 Returns a constant iterator pointing to the end of the stored const Chem::Atom objects. More...
 
AtomIterator begin ()
 Returns a mutable iterator pointing to the beginning of the stored Chem::Atom objects. More...
 
AtomIterator end ()
 Returns a mutable iterator pointing to the end of the stored Chem::Atom objects. More...
 
virtual bool containsAtom (const Atom &atom) const =0
 Tells whether the specified atom is part of the atom sequence. More...
 
virtual std::size_t getAtomIndex (const Atom &atom) const =0
 Returns the index of the specified atom. More...
 
virtual std::size_t getNumEntities () const
 Returns the number of stored Chem::Entity3D objects. More...
 
virtual const Chem::Entity3DgetEntity (std::size_t idx) const
 Returns a const reference to the entity at index idx. More...
 
virtual Chem::Entity3DgetEntity (std::size_t idx)
 Returns a non-const reference to the entity at index idx. More...
 
virtual void orderAtoms (const AtomCompareFunction &func)=0
 Orders the atoms according to criteria implemented by the provided atom comparison function. More...
 
const AtomContainergetAtoms () const
 Returns a const reference to itself. More...
 
AtomContainergetAtoms ()
 Returns a reference to itself. More...
 
- Public Member Functions inherited from CDPL::Chem::Entity3DContainer
ConstEntityIterator getEntitiesBegin () const
 Returns a constant iterator pointing to the beginning of the stored const Chem::Entity3D objects. More...
 
ConstEntityIterator getEntitiesEnd () const
 Returns a constant iterator pointing to the end of the stored const Chem::Entity3D objects. More...
 
EntityIterator getEntitiesBegin ()
 Returns a mutable iterator pointing to the beginning of the stored Chem::Entity3D objects. More...
 
EntityIterator getEntitiesEnd ()
 Returns a mutable iterator pointing to the end of the stored Chem::Entity3D objects. More...
 
ConstEntityIterator begin () const
 Returns a constant iterator pointing to the beginning of the stored const Chem::Entity3D objects. More...
 
ConstEntityIterator end () const
 Returns a constant iterator pointing to the end of the stored const Chem::Entity3D objects. More...
 
EntityIterator begin ()
 Returns a mutable iterator pointing to the beginning of the stored Chem::Entity3D objects. More...
 
EntityIterator end ()
 Returns a mutable iterator pointing to the end of the stored Chem::Entity3D objects. More...
 
const Entity3DContainergetEntities () const
 Returns a const reference to itself. More...
 
Entity3DContainergetEntities ()
 Returns a reference to itself. More...
 
- Public Member Functions inherited from CDPL::Chem::BondContainer
virtual std::size_t getNumBonds () const =0
 Returns the number of bonds. More...
 
virtual const BondgetBond (std::size_t idx) const =0
 Returns a const reference to the bond at index idx. More...
 
virtual BondgetBond (std::size_t idx)=0
 Returns a non-const reference to the bond at index idx. More...
 
ConstBondIterator getBondsBegin () const
 Returns a constant iterator pointing to the beginning of the stored const Chem::Bond objects. More...
 
ConstBondIterator getBondsEnd () const
 Returns a constant iterator pointing to the end of the stored const Chem::Bond objects. More...
 
BondIterator getBondsBegin ()
 Returns a mutable iterator pointing to the beginning of the stored Chem::Bond objects. More...
 
BondIterator getBondsEnd ()
 Returns a mutable iterator pointing to the end of the stored Chem::Bond objects. More...
 
ConstBondIterator begin () const
 Returns a constant iterator pointing to the beginning of the stored const Chem::Bond objects. More...
 
ConstBondIterator end () const
 Returns a constant iterator pointing to the end of the stored const Chem::Bond objects. More...
 
BondIterator begin ()
 Returns a mutable iterator pointing to the beginning of the stored Chem::Bond objects. More...
 
BondIterator end ()
 Returns a mutable iterator pointing to the end of the stored Chem::Bond objects. More...
 
virtual bool containsBond (const Bond &bond) const =0
 Tells whether the specified bond is part of the bond sequence. More...
 
virtual std::size_t getBondIndex (const Bond &bond) const =0
 Returns the index of the specified bond. More...
 
virtual void orderBonds (const BondCompareFunction &func)=0
 Orders the bonds according to criteria implemented by the provided bond comparison function. More...
 
const BondContainergetBonds () const
 Returns a const reference to itself. More...
 
BondContainergetBonds ()
 Returns a reference to itself. More...
 
- Public Member Functions inherited from CDPL::Base::PropertyContainer
std::size_t getNumProperties () const
 Returns the number of property entries. More...
 
template<typename T >
void setProperty (const LookupKey &key, T &&val)
 Sets the value of the property specified by key to val. More...
 
template<typename T >
const T & getProperty (const LookupKey &key) const
 Returns the value of the property specified by key as a const reference to an object of type T. More...
 
template<typename T >
const T & getPropertyOrDefault (const LookupKey &key, const T &def_val) const
 Returns the value of the property specified by key as a const reference to an object of type T, or the default value def_val if a stored value does not exist. More...
 
const AnygetProperty (const LookupKey &key, bool throw_=false) const
 Returns the value of the property specified by key. More...
 
bool isPropertySet (const LookupKey &key) const
 Tells whether or not a value has been assigned to the property specified by key. More...
 
ConstPropertyIterator getPropertiesBegin () const
 Returns a constant iterator pointing to the beginning of the property entries. More...
 
ConstPropertyIterator getPropertiesEnd () const
 Returns a constant iterator pointing to the end of the property entries. More...
 
ConstPropertyIterator begin () const
 Returns a constant iterator pointing to the beginning of the property entries. More...
 
ConstPropertyIterator end () const
 Returns a constant iterator pointing to the end of the property entries. More...
 
bool removeProperty (const LookupKey &key)
 Clears the value of the property specified by key. More...
 
void clearProperties ()
 Clears all property values. More...
 
void addProperties (const PropertyContainer &cntnr)
 Adds the property value entries in the PropertyContainer instance cntnr. More...
 
void copyProperties (const PropertyContainer &cntnr)
 Replaces the current set of properties by a copy of the entries in cntnr. More...
 
void swap (PropertyContainer &cntnr)
 Exchanges the properties of this container with the properties of the container cntnr. More...
 
const PropertyContainergetProperties () const
 Returns a const reference to itself. More...
 

Static Public Member Functions

static void registerCopyPostprocessingFunction (const CopyPostprocessingFunction &func)
 Registers a new copy postprocessing function in the global registry. More...
 

Protected Member Functions

void invokeCopyPostprocessingFunctions (const MolecularGraph &src_molgraph)
 Invokes all registered copy postprocessing functions on this molecule with src_molgraph as the source molecular graph. More...
 
- Protected Member Functions inherited from CDPL::Chem::MolecularGraph
MolecularGraphoperator= (const MolecularGraph &molgraph)
 Assignment operator. More...
 
- Protected Member Functions inherited from CDPL::Chem::AtomContainer
virtual ~AtomContainer ()
 Virtual destructor. More...
 
AtomContaineroperator= (const AtomContainer &cntnr)
 Replaces the current set of properties by a copy of the properties of the container cntnr. More...
 
- Protected Member Functions inherited from CDPL::Chem::Entity3DContainer
virtual ~Entity3DContainer ()
 Virtual destructor. More...
 
Entity3DContaineroperator= (const Entity3DContainer &cntnr)
 Assignment operator. More...
 
- Protected Member Functions inherited from CDPL::Chem::BondContainer
virtual ~BondContainer ()
 Virtual destructor. More...
 
BondContaineroperator= (const BondContainer &cntnr)
 Replaces the current set of properties by a copy of the properties of the container cntnr. More...
 
- Protected Member Functions inherited from CDPL::Base::PropertyContainer
 PropertyContainer ()
 Constructs an empty PropertyContainer instance. More...
 
 PropertyContainer (const PropertyContainer &cntnr)
 Constructs a copy of the PropertyContainer instance cntnr. More...
 
virtual ~PropertyContainer ()
 Virtual destructor. More...
 
PropertyContaineroperator= (const PropertyContainer &cntnr)
 Assignment operator. More...
 

Detailed Description

Abstract base class representing a mutable molecular graph that owns and manages its atoms and bonds.

Extends the Chem::MolecularGraph interface with editing methods (addAtom(), addBond(), removeAtom(), removeBond(), copy(), append(), remove()) and supports a global registry of copy postprocessing functions invoked after copying/append operations to properly transform properties referencing atoms and bonds of the source molecular graph.

Member Typedef Documentation

◆ SharedPointer

A reference-counted smart pointer [SHPTR] for dynamically allocated Molecule instances.

◆ ConstAtomIterator

A constant random access iterator used to iterate over the stored const Chem::Atom objects.

◆ AtomIterator

A mutable random access iterator used to iterate over the stored Chem::Atom objects.

◆ ConstBondIterator

A constant random access iterator used to iterate over the stored const Chem::Bond objects.

◆ BondIterator

A mutable random access iterator used to iterate over the stored Chem::Bond objects.

◆ CopyPostprocessingFunction

Type of function invoked after a molecule has been altered due to copying/appending a source molecular graph.

First argument: the modified destination molecule, second argument: the source molecular graph.

Constructor & Destructor Documentation

◆ ~Molecule()

virtual CDPL::Chem::Molecule::~Molecule ( )
inlinevirtual

Virtual destructor.

Destroys the Molecule instance and frees all allocated resources.

Member Function Documentation

◆ clear()

virtual void CDPL::Chem::Molecule::clear ( )
pure virtual

Removes all atoms and bonds and clears all properties of the molecule.

Implemented in CDPL::Chem::BasicMolecule.

◆ addAtom()

virtual Atom& CDPL::Chem::Molecule::addAtom ( )
pure virtual

Creates a new atom and adds it to the molecule.

Note that this method does not create any bonds - the returned atom is always unconnected.

Returns
A reference to the newly created atom.

Implemented in CDPL::Chem::BasicMolecule.

◆ removeAtom() [1/2]

virtual void CDPL::Chem::Molecule::removeAtom ( std::size_t  idx)
pure virtual

Removes the atom at the specified index.

If the specified atom is connected to any other atoms of the molecule then the connecting bonds will also be removed.

Parameters
idxThe index of the atom to remove.
Exceptions
Base::IndexErrorif idx is not in the range [0, getNumAtoms()).

Implemented in CDPL::Chem::BasicMolecule.

◆ removeAtom() [2/2]

AtomIterator CDPL::Chem::Molecule::removeAtom ( const AtomIterator it)

Removes the atom specified by the iterator it.

If the specified atom is connected to any other atoms of the molecule then the connecting bonds will also be removed.

Parameters
itAn iterator that specifies the atom to remove.
Returns
A mutable iterator pointing to the next atom in the list.
Exceptions
Base::RangeErrorif it is not in the range [getAtomsBegin(), getAtomsEnd()).

◆ addBond()

virtual Bond& CDPL::Chem::Molecule::addBond ( std::size_t  atom1_idx,
std::size_t  atom2_idx 
)
pure virtual

Creates a new or returns an already existing bond between the atoms specified by atom1_idx and atom2_idx.

If a bond between the specified atoms already exists then the existing bond will be returned. If a bond does not yet exist, a new bond will be created. The atom specified by atom1_idx becomes the start atom and the atom specified by atom2_idx the end atom of the newly created bond.

Parameters
atom1_idxThe zero-based index of the first atom of the bond.
atom2_idxThe zero-based index of the second atom of the bond.
Returns
A reference to the newly created or already existing bond between the specified atoms.
Exceptions
Base::IndexErrorif atom1_idx and/or atom2_idx is not in the range [0, getNumAtoms()).

Implemented in CDPL::Chem::BasicMolecule.

◆ removeBond() [1/2]

virtual void CDPL::Chem::Molecule::removeBond ( std::size_t  idx)
pure virtual

Removes the bond at the specified index.

Parameters
idxThe zero-based index of the bond to remove.
Exceptions
Base::IndexErrorif idx is not in the range [0, getNumBonds()).

Implemented in CDPL::Chem::BasicMolecule.

◆ removeBond() [2/2]

BondIterator CDPL::Chem::Molecule::removeBond ( const BondIterator it)

Removes the bond specified by the iterator it.

Parameters
itAn iterator that specifies the bond to remove.
Returns
A mutable iterator pointing to the next bond in the list.
Exceptions
Base::RangeErrorif it is not in the range [getBondsBegin(), getBondsEnd()).

◆ copy() [1/2]

virtual void CDPL::Chem::Molecule::copy ( const Molecule mol)
pure virtual

Replaces the current set of atoms, bonds and properties by a copy of the atoms, bonds and properties of the molecule mol.

Parameters
molThe molecule to copy.

Implemented in CDPL::Chem::BasicMolecule.

◆ copy() [2/2]

virtual void CDPL::Chem::Molecule::copy ( const MolecularGraph molgraph)
pure virtual

Replaces the current set of atoms, bonds and properties by a copy of the atoms, bonds and properties of the molecular graph molgraph.

Parameters
molgraphThe molecular graph providing the atoms, bonds and properties to copy.

Implemented in CDPL::Chem::BasicMolecule.

◆ append() [1/2]

virtual void CDPL::Chem::Molecule::append ( const Molecule mol)
pure virtual

Extends the current set of atoms and bonds by a copy of the atoms and bonds of the molecule mol.

Parameters
molThe molecule providing the atoms and bonds to append.
Note
Does not affect any properties.

Implemented in CDPL::Chem::BasicMolecule.

◆ append() [2/2]

virtual void CDPL::Chem::Molecule::append ( const MolecularGraph molgraph)
pure virtual

Extends the current set of atoms and bonds by a copy of the atoms and bonds of the molecular graph molgraph.

Parameters
molgraphThe molecular graph providing the atoms and bonds to append.
Note
Does not affect any properties.

Implemented in CDPL::Chem::BasicMolecule.

◆ remove()

virtual void CDPL::Chem::Molecule::remove ( const MolecularGraph molgraph)
pure virtual

Removes atoms and bonds referenced by the molecular graph molgraph that are part of this Molecule instance.

Parameters
molgraphThe molecular graph specifying the atoms and bonds to remove.
Note
Does not affect any properties if this != &molgraph.

Implemented in CDPL::Chem::BasicMolecule.

◆ reserveMemoryForAtoms()

virtual void CDPL::Chem::Molecule::reserveMemoryForAtoms ( std::size_t  num_atoms)
inlinevirtual

Reserves memory for num_atoms atoms.

Allows implementors to speed up the creation of molecules with a known large number of atoms.

Parameters
num_atomsThe expected number of atoms for which memory shall be allocated in advance.

Reimplemented in CDPL::Chem::BasicMolecule.

◆ reserveMemoryForBonds()

virtual void CDPL::Chem::Molecule::reserveMemoryForBonds ( std::size_t  num_bonds)
inlinevirtual

Reserves memory for num_bonds bonds.

Allows implementors to speed up the creation of molecules with a known large number of bonds.

Parameters
num_bondsThe expected number of bonds for which memory shall be allocated in advance.

Reimplemented in CDPL::Chem::BasicMolecule.

◆ operator=() [1/2]

Molecule& CDPL::Chem::Molecule::operator= ( const Molecule mol)

Replaces the current set of atoms, bonds and properties by a copy of the atoms, bonds and properties of the molecule mol.

Internally calls copy() to perform the actual work.

Parameters
molThe molecule to copy.
Returns
A reference to itself.

◆ operator=() [2/2]

Molecule& CDPL::Chem::Molecule::operator= ( const MolecularGraph molgraph)

Replaces the current set of atoms, bonds and properties by a copy of the atoms, bonds and properties of the molecular graph molgraph.

Internally calls copy() to perform the actual work.

Parameters
molgraphThe Chem::MolecularGraph instance providing the atoms and bonds to copy.
Returns
A reference to itself.

◆ operator+=() [1/2]

Molecule& CDPL::Chem::Molecule::operator+= ( const Molecule mol)

Extends the current set of atoms and bonds by a copy of the atoms and bonds of the molecule mol.

Internally calls append() to perform the actual work.

Parameters
molThe molecule providing the atoms and bonds to append.
Returns
A reference to itself.

◆ operator+=() [2/2]

Molecule& CDPL::Chem::Molecule::operator+= ( const MolecularGraph molgraph)

Extends the current set of atoms and bonds by a copy of the atoms and bonds of the molecular graph molgraph.

Internally calls append() to perform the actual work.

Parameters
molgraphThe Chem::MolecularGraph instance providing the atoms and bonds to append.
Returns
A reference to itself.

◆ operator-=()

Molecule& CDPL::Chem::Molecule::operator-= ( const MolecularGraph molgraph)

Removes atoms and bonds referenced by the molecular graph molgraph that are part of this Molecule instance.

Internally calls remove() to perform the actual work.

Parameters
molgraphThe Chem::MolecularGraph instance specifying the atoms and bonds to remove.
Returns
A reference to itself.

◆ registerCopyPostprocessingFunction()

static void CDPL::Chem::Molecule::registerCopyPostprocessingFunction ( const CopyPostprocessingFunction func)
static

Registers a new copy postprocessing function in the global registry.

Registered functions are invoked in registration order typically after copy/append operations that populate a Chem::Molecule instance with atoms and bonds from a source Chem::MolecularGraph instance.

Parameters
funcThe callback function to register.

◆ invokeCopyPostprocessingFunctions()

void CDPL::Chem::Molecule::invokeCopyPostprocessingFunctions ( const MolecularGraph src_molgraph)
protected

Invokes all registered copy postprocessing functions on this molecule with src_molgraph as the source molecular graph.

Parameters
src_molgraphThe source molecular graph that provided the copied atoms and bonds.

◆ getAtomsBegin() [1/2]

ConstAtomIterator CDPL::Chem::AtomContainer::getAtomsBegin

Returns a constant iterator pointing to the beginning of the stored const Chem::Atom objects.

Returns
A constant iterator pointing to the beginning of the stored const Chem::Atom objects.

◆ getAtomsBegin() [2/2]

AtomIterator CDPL::Chem::AtomContainer::getAtomsBegin

Returns a mutable iterator pointing to the beginning of the stored Chem::Atom objects.

Returns
A mutable iterator pointing to the beginning of the stored Chem::Atom objects.

◆ getAtomsEnd() [1/2]

ConstAtomIterator CDPL::Chem::AtomContainer::getAtomsEnd

Returns a constant iterator pointing to the end of the stored const Chem::Atom objects.

Returns
A constant iterator pointing to the end of the stored const Chem::Atom objects.

◆ getAtomsEnd() [2/2]

AtomIterator CDPL::Chem::AtomContainer::getAtomsEnd

Returns a mutable iterator pointing to the end of the stored Chem::Atom objects.

Returns
A mutable iterator pointing to the end of the stored Chem::Atom objects.

◆ getBondsBegin() [1/2]

ConstBondIterator CDPL::Chem::BondContainer::getBondsBegin

Returns a constant iterator pointing to the beginning of the stored const Chem::Bond objects.

Returns
A constant iterator pointing to the beginning of the stored const Chem::Bond objects.

◆ getBondsBegin() [2/2]

BondIterator CDPL::Chem::BondContainer::getBondsBegin

Returns a mutable iterator pointing to the beginning of the stored Chem::Bond objects.

Returns
A mutable iterator pointing to the beginning of the stored Chem::Bond objects.

◆ getBondsEnd() [1/2]

ConstBondIterator CDPL::Chem::BondContainer::getBondsEnd

Returns a constant iterator pointing to the end of the stored const Chem::Bond objects.

Returns
A constant iterator pointing to the end of the stored const Chem::Bond objects.

◆ getBondsEnd() [2/2]

BondIterator CDPL::Chem::BondContainer::getBondsEnd

Returns a mutable iterator pointing to the end of the stored Chem::Bond objects.

Returns
A mutable iterator pointing to the end of the stored Chem::Bond objects.

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