# gcu::Molecule Class Reference

`#include <gcu/molecule.h>`

Inheritance diagram for gcu::Molecule:

List of all members.

## Public Member Functions

| Molecule (TypeId Type=MoleculeType)
| Molecule (Atom *pAtom)
virtual | ~Molecule ()
void | AddChild (Object *object)
virtual void | AddAtom (Atom *pAtom)
virtual void | AddBond (Bond *pBond)
virtual void | Remove (gcu::Object *pObject)
void | UpdateCycles (Bond *pBond)
void | UpdateCycles ()
bool | operator== (Molecule const &molecule) const
virtual unsigned | GetAtomsNumber () const

## Static Public Member Functions

static Molecule * | MoleculeFromFormula (Document *Doc, Formula const &formula, bool add_pseudo=true)

## Protected Attributes

std::list< Cycle * > | m_Cycles
std::list< Chain * > | m_Chains
std::list< Atom * > | m_Atoms
std::list< Bond * > | m_Bonds

## Detailed Description

Represents molecules.

Definition at line 42 of file gcu/molecule.h.

## Constructor & Destructor Documentation

gcu::Molecule::Molecule | ( | TypeId | Type = `MoleculeType` | ) |

Parameters:

  | Type | the type id of a derived class

The constructor. The type id may be changed in derived classes, otherwise the argument is not needed, since the default value is enough.

Reimplemented in gcp::Molecule.

gcu::Molecule::Molecule | ( | Atom * | pAtom | ) |

Parameters:

  | pAtom | Builds a molecule from an atom. If the atom has bonds, the connectivity will be explored and all atoms and bonds found will be added to the molecule.

virtual gcu::Molecule::~Molecule | ( |  | ) | `[virtual]`

The destructor.

Reimplemented in gcp::Molecule.

## Member Function Documentation

void gcu::Molecule::AddChild | ( | Object * | object | ) | `[virtual]`

Parameters:

  | object | an object, generally an atom or a bond.

Adds an object (which might be an atom or a bond) to the molecule.

Reimplemented from gcu::Object.

Reimplemented in gcp::Molecule.

virtual void gcu::Molecule::AddAtom | ( | Atom * | pAtom | ) | `[virtual]`

Parameters:

  | pAtom | an atom.

Adds an atom to the molecule.

Reimplemented in gcp::Molecule.

virtual void gcu::Molecule::AddBond | ( | Bond * | pBond | ) | `[virtual]`

Parameters:

  | pBond | a bond.

Adds a bond to the molecule.

Reimplemented in gcp::Molecule.

virtual void gcu::Molecule::Remove | ( | gcu::Object * | pObject | ) | `[virtual]`

Parameters:

  | pObject | an atom or a bond in the molecule.

Removes an atom or a bond from a molecule.

Reimplemented in gcp::Molecule.

void gcu::Molecule::UpdateCycles | ( | Bond * | pBond | ) |

Parameters:

  | pBond | a bond in the molecule.

Updates the cycles list after a change, starting the exploration from pBond.

void gcu::Molecule::UpdateCycles | ( |  | ) |

Updates the cycles list after a change.

bool gcu::Molecule::operator== | ( | Molecule const & | molecule | ) | const

Parameters:

  | molecule | a molecule.

Returns:
  true if the molecules have identical atoms and the connection framework between the atoms.

virtual unsigned gcu::Molecule::GetAtomsNumber | ( |  | ) | const`[inline, virtual]`

Returns:
  the number of atoms in the molecule.

Reimplemented in gcp::Molecule.

Definition at line 107 of file gcu/molecule.h.

References m_Atoms.

static Molecule* gcu::Molecule::MoleculeFromFormula | ( | Document * | Doc,
|  | Formula const & | formula,
|  | bool | add_pseudo = `true` |
| ) |  |  | `[static]`

Parameters:

  | Doc | a document.
  | formula | a formula
  | add_pseudo | tells if a pseudo atom (with Z = 0) has to be added (used when building a gcu::Residue instance).

Tries to build a molecule from a formula, adding bonds between atoms. Atoms coordinates are not calculated.

Returns:
  a molecule on success or NULL.

## Member Data Documentation

std::list<Cycle*> gcu::Molecule::m_Cycles `[protected]`

The cycles contained in the molecules.

Definition at line 124 of file gcu/molecule.h.

std::list<Chain*> gcu::Molecule::m_Chains `[protected]`

The non cyclic chains contained in the molecules (not used at the moment).

Definition at line 128 of file gcu/molecule.h.

std::list<Atom*> gcu::Molecule::m_Atoms `[protected]`

The atoms in the molecule.

Definition at line 132 of file gcu/molecule.h.

Referenced by GetAtomsNumber().

std::list<Bond*> gcu::Molecule::m_Bonds `[protected]`

The bonds in the molecule.

Definition at line 136 of file gcu/molecule.h.

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

- gcu/molecule.h