Class Avogadro::QtGui::Molecule

class Avogadro::QtGui::Molecule : public QObject, public Molecule

A QObject derived molecule object with signals/slots.

Unnamed Group

Index atomUniqueId(const AtomType &atom) const

Get the unique ID of the atom, this will uniquely reference the atom as long as it exists.

Parameters

atom – The atom to obtain the unique ID of.

Returns

The unique identifier for the atom, MaxIndex if the atom is invalid or does not belong to this molecule.

Index atomUniqueId(Index atom) const

Get the unique ID of the atom, this will uniquely reference the atom as long as it exists.

Parameters

atom – The atom to obtain the unique ID of.

Returns

The unique identifier for the atom, MaxIndex if the atom is invalid or does not belong to this molecule.

Unnamed Group

virtual bool removeBond(const AtomType &atom1, const AtomType &atom2) override

Remove the specified bond.

Parameters
  • atom1 – One atom in the bond.

  • atom2 – The other atom in the bond.

Returns

True on success, false if the bond was not found. This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

virtual bool removeBond(Index atom1, Index atom2) override

Remove the specified bond.

Parameters
  • atom1 – One atom in the bond.

  • atom2 – The other atom in the bond.

Returns

True on success, false if the bond was not found. This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Unnamed Group

Index bondUniqueId(const BondType &bond) const

Get the unique ID of the bond, this will uniquely reference the bond as long as it exists.

Parameters

bond – The bond to obtain the unique ID of.

Returns

The unique identifier for the bond, MaxIndex if the bond is invalid or does not belong to this molecule.

Index bondUniqueId(Index bond) const

Get the unique ID of the bond, this will uniquely reference the bond as long as it exists.

Parameters

bond – The bond to obtain the unique ID of.

Returns

The unique identifier for the bond, MaxIndex if the bond is invalid or does not belong to this molecule.

Public Types

enum MoleculeChange

Enumeration of change types that can be given.

Values:

enumerator NoChange

Useful for initializing MoleculeChange variables.

enumerator Atoms

Object types that can be changed.

enumerator Bonds
enumerator UnitCell
enumerator Added

Operations that can affect the above types.

enumerator Removed
enumerator Modified
typedef Core::Molecule::AtomType AtomType

Typedef for Atom class.

typedef PersistentAtom<Molecule> PersistentAtomType

Typedef for PersistentAtom class.

typedef Core::Molecule::BondType BondType

Typedef for Bond class.

typedef PersistentBond<Molecule> PersistentBondType

Typedef for PersistentBond class.

Public Functions

Molecule(QObject *parent_ = nullptr)
virtual ~Molecule() override

Destroys the molecule object.

Molecule(const Molecule &other)

copy constructor

Molecule(const Core::Molecule &other)

copy constructor to copy data from base instance

Molecule &operator=(const Molecule &other)

Assignment operator

Molecule &operator=(const Core::Molecule &other)

Assignment operator to copy data from base instance

virtual AtomType addAtom(unsigned char atomicNumber) override

Add an atom with atomicNumber to the molecule.

Returns

The atom created.

virtual AtomType addAtom(unsigned char atomicNumber, Index uniqueId)

Add an atom with atomicNumber and uniqueId to the molecule.

Returns

The atom created. This can be invalid if the unique ID was already in use.

virtual bool removeAtom(Index index) override

Remove the specified atom from the molecule.

Parameters

index – The index of the atom to be removed.

Returns

True on success, false if the atom was not found.

virtual bool removeAtom(const AtomType &atom) override

Remove the specified atom from the molecule.

Parameters

atom – The atom to be removed.

Returns

True on success, false if the atom was not found. This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

AtomType atomByUniqueId(Index uniqueId)

Get the atom referenced by the uniqueId, the isValid method should be queried to ensure the id still referenced a valid atom.

Parameters

uniqueId – The unique identifier for the atom.

Returns

An Atom object, check it is valid before using it.

inline Core::Array<Index> &atomUniqueIds()
virtual BondType addBond(const AtomType &a, const AtomType &b, unsigned char bondOrder = 1) override

Add a bond between the specified atoms.

Parameters
  • a – The first atom in the bond.

  • b – The second atom in the bond.

  • bondOrder – The order of the bond.

Returns

The bond created.

virtual BondType addBond(Index atomId1, Index atomId2, unsigned char bondOrder = 1) override

Add a bond between the specified atoms.

Parameters
  • atomId1 – The index of the first atom in the bond.

  • atomId2 – The index of the second atom in the bond.

  • bondOrder – The order of the bond.

Returns

The bond created.

virtual BondType addBond(const AtomType &a, const AtomType &b, unsigned char bondOrder, Index uniqueId)

Add a bond between the specified atoms.

Parameters
  • a – The first atom in the bond.

  • b – The second atom in the bond.

  • bondOrder – The order of the bond.

  • uniqueId – The unique ID to use for the bond.

Returns

The bond created. This can be invalid if the unique ID was already in use.

virtual bool removeBond(Index index) override

Remove the specified bond.

Parameters

index – The index of the bond to be removed.

Returns

True on success, false if the bond was not found.

virtual bool removeBond(const BondType &bond) override

Remove the specified bond.

Parameters

bond – The bond to be removed.

Returns

True on success, false if the bond was not found. This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BondType bondByUniqueId(Index uniqueId)

Get the bond referenced by the uniqueId, the isValid method should be queried to ensure the id still referenced a valid bond.

Parameters

uniqueId – The unique identifier for the bond.

Returns

A Bond object, check it is valid before using it.

inline Core::Array<Index> &bondUniqueIds()
Index findAtomUniqueId(Index index) const
Index findBondUniqueId(Index index) const
RWMolecule *undoMolecule()

Public Slots

void emitChanged(unsigned int change)

Force the molecule to emit the changed() signal.

Parameters

change – See changed().

Signals

void changed(unsigned int change)

Indicates that the molecule has changed.

The change variable indicates what has changed, i.e. if change & Atoms == true then atoms were changed in some way, and if change & Removed == true then one or more atoms were removed.

Parameters

change – Use the MoleculeChange enum to check what has changed.