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

#include <gcu/atom.h>

Inheritance diagram for gcu::Atom:
gcu::Object gcp::Atom gcr::Atom gcp::FragmentAtom gcp::FragmentResidue

Public Member Functions

 Atom ()
 Atom (int Z, double x, double y, double z=0.)
 Atom (Atom &a)
Atomoperator= (Atom &a)
virtual ~Atom ()
double Distance (Atom *pAtom)
void zoom (double ZoomFactor)
bool GetCoords (double *x, double *y, double *z=NULL) const
void SetCoords (double x, double y, double z=0)
int GetZ () const
virtual void SetZ (int Z)
virtual void SetCharge (char Charge)
char GetCharge ()
virtual const gchar * GetSymbol () const
virtual void AddBond (Bond *pBond)
virtual void RemoveBond (Bond *pBond)
double x () const
double y () const
double z () const
Vector GetVector () const
BondGetFirstBond (std::map< Atom *, Bond * >::iterator &i)
Bond const * GetFirstBond (std::map< Atom *, Bond * >::const_iterator &i) const
BondGetNextBond (std::map< Atom *, Bond * >::iterator &i)
Bond const * GetNextBond (std::map< Atom *, Bond * >::const_iterator &i) const
BondGetBond (Atom *pAtom) const
int GetBondsNumber () const
virtual xmlNodePtr Save (xmlDocPtr xml) const
virtual bool Load (xmlNodePtr node)
virtual bool LoadNode (xmlNodePtr node)
virtual bool SaveNode (xmlDocPtr xml, xmlNodePtr node) const
virtual void Move (double x, double y, double z=0.)
virtual void Transform2D (Matrix2D &m, double x, double y)
bool SetProperty (unsigned property, char const *value)
std::string GetProperty (unsigned property) const
bool IsInCycle (Cycle *pCycle)
virtual bool Match (Atom *atom, AtomMatchState &state)
std::string Name ()
void NetToCartesian (double a, double b, double c, double alpha, double beta, double gamma)
- 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)
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 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

int m_Z
double m_x
double m_y
double m_z
char m_Charge
std::map< Atom *, Bond * > m_Bonds

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 atoms.

Definition at line 46 of file gcu/atom.h.

Constructor & Destructor Documentation

gcu::Atom::Atom ( )

The default constructor. Creates an atom with atomic number set to 0.

Reimplemented in gcp::Atom, and gcr::Atom.

gcu::Atom::Atom ( int  Z,
double  x,
double  y,
double  z = 0. 
)
Parameters
Zthe atomic number of the new atom.
xthe x coordinate of the new atom.
ythe y coordinate of the new atom.
zthe z coordinate of the new atom.

Creates an atom.

Reimplemented in gcp::Atom, and gcr::Atom.

gcu::Atom::Atom ( Atom a)
Parameters
athe Atom to duplicate.

Creates a new atom identical to a without any bond.

virtual gcu::Atom::~Atom ( )
virtual

The destructor of Atom. It removes bonds but do not delete the associated Bond instances.

Reimplemented in gcp::Atom, and gcr::Atom.

Member Function Documentation

virtual void gcu::Atom::AddBond ( Bond pBond)
virtual
Parameters
pBonda pointer to the new Bond to this Atom.

Adds a Bond.

Reimplemented in gcp::Atom.

double gcu::Atom::Distance ( Atom pAtom)
Parameters
pAtoma pointer to an Atom.
Returns
the distance between the Atom at pAtom and this Atom.
Bond* gcu::Atom::GetBond ( Atom pAtom) const
Parameters
pAtoma pointer to an Atom instance.
Returns
a pointer to the Bond shared by pAtom and this Atom if it exists or NULL.
int gcu::Atom::GetBondsNumber ( ) const
inline
Returns
the number of Bond instances shared by this Atom. It does not take multiplicity of bonds into account.

Definition at line 200 of file gcu/atom.h.

References m_Bonds.

char gcu::Atom::GetCharge ( )
inline
Returns
the formal charge of this Atom.

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

References m_Charge.

bool gcu::Atom::GetCoords ( double *  x,
double *  y,
double *  z = NULL 
) const
virtual
Parameters
xa pointer to the double value which will receive the x coordinate of the Atom.
ya pointer to the double value which will receive the y coordinate of the Atom.
za pointer to the double value which will receive the z coordinate of the Atom or NULL for 2D representations.

Retrieves the coordinates of this Atom.

Returns
true if successful and false if an error occurs (if x or y is NULL).

Reimplemented from gcu::Object.

Bond* gcu::Atom::GetFirstBond ( std::map< Atom *, Bond * >::iterator &  i)
Parameters
ia C++ std::map iterator.

Use this function to retrieve the first Bond of this Atom and initialize the iterator.

Returns
the first Bond of this Atom or NULL if the Atom has is not bonded.
Bond const* gcu::Atom::GetFirstBond ( std::map< Atom *, Bond * >::const_iterator &  i) const
Parameters
ia C++ std::map constant iterator.

Use this function to retrieve the first Bond of this constant Atom and initialize the iterator.

Returns
the first Bond of this Atom or NULL if the Atom has is not bonded.
Bond* gcu::Atom::GetNextBond ( std::map< Atom *, Bond * >::iterator &  i)
Parameters
ia C++ std::map iterator initialized by Atom::GetFirstBond.

Use this method to iterate through the list of Bond instances of this Atom.

Returns
the next Bond of this Atom or NULL.
Bond const* gcu::Atom::GetNextBond ( std::map< Atom *, Bond * >::const_iterator &  i) const
Parameters
ia C++ std::map constant iterator initialized by Atom::GetFirstBond(std::map< Atom *, Bond * >::const_iterator&).

Use this method to iterate through the list of Bond instances of this Atom.

Returns
the next Bond of this Atom or NULL.
std::string gcu::Atom::GetProperty ( unsigned  property) const
virtual
Parameters
propertythe identity of the property as defined in objprops.h.

Used by the gcu::Loader mechanism to retrieve properties of atoms.

Returns
the value of the property as a string.

Reimplemented from gcu::Object.

Reimplemented in gcr::Atom.

virtual const gchar* gcu::Atom::GetSymbol ( ) const
virtual
Returns
the atomic symbol of this Atom or NULL if the element is unknown.

Reimplemented in gcp::FragmentResidue.

Vector gcu::Atom::GetVector ( ) const
Returns
a Vector with the three Atom space coordinates.
int gcu::Atom::GetZ ( ) const
inline
Returns
the atomic number of the atom.

Definition at line 111 of file gcu/atom.h.

References m_Z.

bool gcu::Atom::IsInCycle ( Cycle pCycle)
Parameters
pCyclea cycle in which the atom might be.
Returns
true if the atom lies in the cycle, false otherwise.
virtual bool gcu::Atom::Load ( xmlNodePtr  node)
virtual
Parameters
nodea pointer to the xmlNode containing the serialized Atom.

Loads an atom from an xmlNode.

Reimplemented from gcu::Object.

Reimplemented in gcp::Atom, gcp::FragmentAtom, and gcp::FragmentResidue.

virtual bool gcu::Atom::LoadNode ( xmlNodePtr  node)
virtual
Parameters
nodea pointer to the xmlNode containing the serialized Atom.

This virtual method is called at the end of the Atom::Load method. The default behavior is to do nothing. It might be overrided for derived class when it is not convenient to override the Atom::Load method.

Reimplemented in gcp::Atom, and gcr::Atom.

virtual bool gcu::Atom::Match ( Atom atom,
AtomMatchState state 
)
virtual
Parameters
atomthe atom to which the this instance is to be compared.
statethe AtomMatchState representing the current comparison state.

Try to match atoms from two molecules which are compared. This function calls itself recursively until all atoms from the two molecules have been matched or until an difference is found. Overriden methods should call this base function and return its result.

Returns
true if the atoms match, false otherwise.

Reimplemented in gcp::Atom, and gcp::FragmentAtom.

virtual void gcu::Atom::Move ( double  x,
double  y,
double  z = 0. 
)
virtual
Parameters
xthe x component of the transation vector.
ythe y component of the transation vector.
zthe z component of the transation vector.

Used to move an Atom.

Reimplemented from gcu::Object.

Reimplemented in gcp::Atom.

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

Reimplemented from gcu::Object.

void gcu::Atom::NetToCartesian ( double  a,
double  b,
double  c,
double  alpha,
double  beta,
double  gamma 
)
Parameters
a,:the a parameter of the unit cell.
b,:the b parameter of the unit cell.
c,:the c parameter of the unit cell.
alpha,:the alpha angle of the unit cell.
beta,:the beta angle of the unit cell.
gamma,:the gamma angle of the unit cell.

Converts the coordinates of the atom from net related ones to cartesian. Initially, atoms are defined by their position relative to the unit cell and the coordinates must be transformed to the cartesian ones before displaying the atom.

Atom& gcu::Atom::operator= ( Atom a)
Parameters
athe Atom to copy.
Returns
an Atom identical to a without any bond.
virtual void gcu::Atom::RemoveBond ( Bond pBond)
virtual
Parameters
pBonda pointer to the Bond to remove from this Atom.

Removes a Bond.

Reimplemented in gcp::Atom.

virtual xmlNodePtr gcu::Atom::Save ( xmlDocPtr  xml) const
virtual
Parameters
xmlthe xmlDoc used to save the document.
Returns
a pointer to the xmlNode representing this Atom or NULL if an error occured.

Reimplemented from gcu::Object.

Reimplemented in gcp::Atom, gcp::FragmentAtom, and gcp::FragmentResidue.

virtual bool gcu::Atom::SaveNode ( xmlDocPtr  xml,
xmlNodePtr  node 
) const
virtual
Parameters
xmlthe xmlDoc used to save the document.
nodea pointer to the xmlNode to which this Atom is serialized.

This virtual method is called at the end of the Atom::Save method. The default behavior is to do nothing. It might be overrided for derived class when it is not convenient to override the Atom::Save method.

Reimplemented in gcr::Atom.

virtual void gcu::Atom::SetCharge ( char  Charge)
inlinevirtual
Parameters
Chargethe new formal charge of the Atom.

Changes the formal charge of this Atom.

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

References m_Charge.

void gcu::Atom::SetCoords ( double  x,
double  y,
double  z = 0 
)
inline
Parameters
xthe new x coordinate of the Atom.
ythe new y coordinate of the Atom.
zthe new z coordinate of the Atom.

Changes the position of this Atom.

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

References m_x, m_y, m_z, x(), y(), and z().

bool gcu::Atom::SetProperty ( unsigned  property,
char const *  value 
)
virtual
Parameters
propertythe identity of the property as defined in objprops.h.
valuethe value of the property as a string.

Used by the gcu::Loader mechanism to load properties of atoms.

Returns
true on success.

Reimplemented from gcu::Object.

Reimplemented in gcp::Atom, and gcr::Atom.

virtual void gcu::Atom::SetZ ( int  Z)
virtual
Parameters
Zthe new atomic number of the Atom.

This method might be overrided by derived class since changing the atomic number generally changes most properties. The default behavior is just to change the atomic number and nothing else.

Reimplemented in gcp::Atom, and gcp::FragmentAtom.

virtual void gcu::Atom::Transform2D ( Matrix2D m,
double  x,
double  y 
)
virtual
Parameters
mthe 2D Matrix of the transformation.
xthe x component of the center of the transformation.
ythe y component of the center of the transformation.

Used to move and/or transform an atom.

Reimplemented from gcu::Object.

Reimplemented in gcp::Atom.

double gcu::Atom::x ( ) const
inline
Returns
the x coordinate of this Atom.

Definition at line 148 of file gcu/atom.h.

References m_x.

Referenced by SetCoords().

double gcu::Atom::y ( ) const
inline
Returns
the y coordinate of this Atom.

Definition at line 153 of file gcu/atom.h.

References m_y.

Referenced by SetCoords().

double gcu::Atom::z ( ) const
inline
Returns
the z coordinate of this Atom.

Definition at line 158 of file gcu/atom.h.

References m_z.

Referenced by SetCoords().

void gcu::Atom::zoom ( double  ZoomFactor)
Parameters
ZoomFactorthe zoom factor.

Multiplies all three coordinates of this Atom by ZoomFactor.

Member Data Documentation

std::map<Atom*, Bond*> gcu::Atom::m_Bonds
protected

The Bond instances of the Atom. The index of the map is a pointer to the other end of the Bond.

Definition at line 323 of file gcu/atom.h.

Referenced by GetBondsNumber().

char gcu::Atom::m_Charge
protected

The charge of the Atom.

Definition at line 319 of file gcu/atom.h.

Referenced by GetCharge(), gcp::Atom::GetCharge(), and SetCharge().

double gcu::Atom::m_x
protected

The x coordinate of the Atom.

Definition at line 307 of file gcu/atom.h.

Referenced by SetCoords(), and x().

double gcu::Atom::m_y
protected

The x coordinate of the Atom.

Definition at line 311 of file gcu/atom.h.

Referenced by SetCoords(), and y().

int gcu::Atom::m_Z
protected

The atomic number of the Atom.

Definition at line 303 of file gcu/atom.h.

Referenced by GetZ().

double gcu::Atom::m_z
protected

The x coordinate of the Atom.

Definition at line 315 of file gcu/atom.h.

Referenced by SetCoords(), and z().


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