The Gnome Chemistry Utils  0.14.0
Public Member Functions | Protected Attributes | List of all members
gcu::Chain Class Reference

#include <gcu/chain.h>

Inheritance diagram for gcu::Chain:
gcu::Object gcu::Cycle

Public Member Functions

 Chain (Bond *pBond, Atom *pAtom=NULL, TypeId Type=ChainType)
 Chain (Molecule *molecule, Bond *pBond, TypeId Type=ChainType)
 Chain (Molecule *molecule, Atom *pAtom, TypeId Type=ChainType)
virtual ~Chain ()
void FindCycles (Atom *pAtom)
bool FindCycle (Atom *pAtom, Bond *pBond)
virtual void Erase (Atom *pAtom1, Atom *pAtom2)
virtual void Insert (Atom *pAtom1, Atom *pAtom2, Chain &chain)
void Extract (Atom *pAtom1, Atom *pAtom2, Chain &chain)
void Reverse ()
void AddBond (Atom *start, Atom *end)
unsigned GetUnsaturations ()
unsigned GetHeteroatoms ()
bool Contains (Atom *pAtom)
bool Contains (Bond *pBond)
unsigned GetLength ()
double GetMeanBondLength ()
AtomGetNextAtom (Atom *pAtom)
std::string Name ()
unsigned BuildLength (unsigned *cycle_size=NULL, unsigned *cycle_pos=NULL)
- Public Member Functions inherited from gcu::Object
 Object (TypeId Id=OtherType)
virtual ~Object ()
TypeId GetType () const
void SetId (gchar const *Id)
char const * GetId () const
virtual void AddChild (Object *object)
ObjectGetMolecule () const
ObjectGetReaction () const
ObjectGetGroup () const
DocumentGetDocument () const
ApplicationGetApplication () const
ObjectGetParentOfType (TypeId Id) const
ObjectGetChild (const gchar *Id) const
ObjectGetFirstChild (std::map< std::string, Object * >::iterator &i)
ObjectGetNextChild (std::map< std::string, Object * >::iterator &i)
ObjectGetDescendant (const char *Id) const
ObjectGetParent () const
void SetParent (Object *Parent)
virtual xmlNodePtr Save (xmlDocPtr xml) const
virtual bool Load (xmlNodePtr node)
virtual bool GetCoords (double *x, double *y, double *z=NULL) const
virtual void Move (double x, double y, double z=0.)
virtual void Transform2D (Matrix2D &m, double x, double y)
bool SaveChildren (xmlDocPtr xml, xmlNodePtr node) const
void SaveId (xmlNodePtr node) const
xmlNodePtr GetNodeByProp (xmlNodePtr node, char const *Property, char const *Id)
xmlNodePtr GetNextNodeByProp (xmlNodePtr node, char const *Property, char const *Id)
xmlNodePtr GetNodeByName (xmlNodePtr node, char const *Name)
xmlNodePtr GetNextNodeByName (xmlNodePtr node, char const *Name)
bool HasChildren () const
unsigned GetChildrenNumber () const
virtual ObjectGetAtomAt (double x, double y, double z=0.)
virtual bool Build (std::set< Object * > const &Children) throw (std::invalid_argument)
virtual double GetYAlign ()
virtual bool BuildContextualMenu (UIManager *uim, Object *object, double x, double y)
void EmitSignal (SignalId Signal)
virtual bool OnSignal (SignalId Signal, Object *Child)
void Lock (bool state=true)
bool IsLocked ()
ObjectGetFirstLink (std::set< Object * >::iterator &i)
ObjectGetNextLink (std::set< Object * >::iterator &i)
void Link (Object *object)
void Unlink (Object *object)
virtual void OnUnlink (Object *object)
void GetPossibleAncestorTypes (std::set< TypeId > &types) const
virtual bool SetProperty (unsigned property, char const *value)
virtual std::string GetProperty (unsigned property) const
virtual void OnLoaded ()
void SetDirty (bool dirty=true)
virtual void Clear ()
std::string Identity ()
virtual char const * HasPropertiesDialog () const
virtual bool CanSelect () const
virtual void NotifyEmpty ()
void ShowPropertiesDialog ()
bool GetDirty (void) const

Protected Attributes

std::map< Atom *, ChainEltm_Bonds
Moleculem_Molecule

Additional Inherited Members

- Static Public Member Functions inherited from gcu::Object
static TypeId AddType (std::string TypeName, Object *(*CreateFunc)(), TypeId id=OtherType)
static void AddAlias (TypeId id, std::string TypeName)
static ObjectCreateObject (const std::string &TypeName, Object *parent=NULL)
static TypeId GetTypeId (const std::string &Name)
static std::string GetTypeName (TypeId Id)
static void AddMenuCallback (TypeId Id, BuildMenuCb cb)
static void AddRule (TypeId type1, RuleId rule, TypeId type2)
static void AddRule (const std::string &type1, RuleId rule, const std::string &type2)
static const std::set< TypeId > & GetRules (TypeId type, RuleId rule)
static const std::set< TypeId > & GetRules (const std::string &type, RuleId rule)
static void SetCreationLabel (TypeId Id, std::string Label)
static const std::string & GetCreationLabel (TypeId Id)
static const std::string & GetCreationLabel (const std::string &TypeName)
static SignalId CreateNewSignalId ()
- Protected Member Functions inherited from gcu::Object
virtual DialogBuildPropertiesDialog ()

Detailed Description

This class is used to represent chains of atoms.

Definition at line 59 of file chain.h.

Constructor & Destructor Documentation

gcu::Chain::Chain ( Bond pBond,
Atom pAtom = NULL,
TypeId  Type = ChainType 
)
Parameters
pBonda bond.
pAtoman atom.
Typean optional type id used when constructing a derived type (i. e. a cycle).

Constructs a Chain starting from a bond and an optional atom. Choosing the atom forces the direction of the chain, otherwise, the first atom will be the first atom of the bond.

gcu::Chain::Chain ( Molecule molecule,
Bond pBond,
TypeId  Type = ChainType 
)
Parameters
moleculea molecule.
pBonda bond in the molecule or NULL.
Typean optional type id used when constructing a derived type

Explores a molecule and find all cycles, starting from pBond or an empty chain if pBond is NULL.

gcu::Chain::Chain ( Molecule molecule,
Atom pAtom,
TypeId  Type = ChainType 
)
Parameters
moleculea molecule.
pAtoman atom in the molecule.
Typean optional type id used when constructing a derived type

Explores a molecule and find all cycles, starting from pAtom or an empty chain if pAtom is NULL.

virtual gcu::Chain::~Chain ( )
virtual

The destructor.

Member Function Documentation

void gcu::Chain::AddBond ( Atom start,
Atom end 
)
Parameters
startan atom.
endan atom.

Adds the two atoms and the bond between them to the chain. The two atoms must be bonded.

unsigned gcu::Chain::BuildLength ( unsigned *  cycle_size = NULL,
unsigned *  cycle_pos = NULL 
)
Parameters
cycle_sizewhere to store a cycle size if a cycle is encountered
cycle_poswhere to store a cycle position if a cycle is encountered

Finds the longest chani starting from first bond and ending when a cycle is found or at the chain end.

Returns
the evaluated chain length.
bool gcu::Chain::Contains ( Atom pAtom)
Parameters
pAtoman atom.
Returns
true if pAtom is in the chain.
bool gcu::Chain::Contains ( Bond pBond)
Parameters
pBonda bond.
Returns
true if pBond is in the chain.
virtual void gcu::Chain::Erase ( Atom pAtom1,
Atom pAtom2 
)
virtual
Parameters
pAtom1an atom in the source chain.
pAtom2an atom in the source chain.

Erases a sub-chain. One of the atoms must already be one of the chain ends.

Reimplemented in gcu::Cycle.

void gcu::Chain::Extract ( Atom pAtom1,
Atom pAtom2,
Chain chain 
)
Parameters
pAtom1an atom in the chain.
pAtom2an atom in the chain.
chainthe target chain.

Extracts a sub-chain to the chain variable which should be empty before the call.

bool gcu::Chain::FindCycle ( Atom pAtom,
Bond pBond 
)
Parameters
pAtoman atom.
pBonda bond.

Searches for a cycle containing the atom pAtom and the bond pBond. pAtom must be one of the ends of pBond. If a cycle is found, it is added to the molecule cycles list.

Returns
true on success, false otherwise.
void gcu::Chain::FindCycles ( Atom pAtom)
Parameters
pAtoman atom.

Searches all cycles in a molecule starting from Atom pAtom. Found cycles are added to the molecule cycles list.

unsigned gcu::Chain::GetHeteroatoms ( )
Returns
the number of heteroatoms in the chain.
unsigned gcu::Chain::GetLength ( )
Returns
the number of bonds in the chain
double gcu::Chain::GetMeanBondLength ( )
Returns
the mean bond length in the chain.
Atom* gcu::Chain::GetNextAtom ( Atom pAtom)
Parameters
pAtoman atom in the chain.
Returns
the next atom in the chain or NULL if pAtom is the last one.
unsigned gcu::Chain::GetUnsaturations ( )
Returns
the number of multiple bonds in the chain so not really the unsaturations number.
virtual void gcu::Chain::Insert ( Atom pAtom1,
Atom pAtom2,
Chain chain 
)
virtual
Parameters
pAtom1an atom in the source chain.
pAtom2an atom in the source chain.
chainthe source chain.

Inserts a chain. One of the atoms must already be in the target chain.

Reimplemented in gcu::Cycle.

std::string gcu::Chain::Name ( )
virtual
Returns
the localized object generic name.

Reimplemented from gcu::Object.

Reimplemented in gcu::Cycle.

void gcu::Chain::Reverse ( )

Reverses the chain order.

Member Data Documentation

std::map<Atom*, ChainElt> gcu::Chain::m_Bonds
protected

The gcu::ChainElt elements in the chain indexed by their common atom.

Definition at line 201 of file chain.h.

Molecule* gcu::Chain::m_Molecule
protected

The molecule which owns the chain.

Definition at line 205 of file chain.h.


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