gcu::Atom Class Reference

#include <gcu/atom.h>

Inheritance diagram for gcu::Atom:

gcu::Object gcp::Atom gcu::CrystalAtom gcp::FragmentAtom gcp::FragmentResidue

List of all members.

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)
virtual 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)
BondGetNextBond (std::map< Atom *, Bond * >::iterator &i)
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 ()

Protected Attributes

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


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.

gcu::Atom::Atom ( int  Z,
double  x,
double  y,
double  z = 0. 
)

Parameters:
Z the atomic number of the new atom.
x the x coordinate of the new atom.
y the y coordinate of the new atom.
z the z coordinate of the new atom.
Creates an atom.

Reimplemented in gcp::Atom.

gcu::Atom::Atom ( Atom a  ) 

Parameters:
a the 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.


Member Function Documentation

virtual void gcu::Atom::AddBond ( Bond pBond  )  [virtual]

Parameters:
pBond a pointer to the new Bond to this Atom.
Adds a Bond.

Reimplemented in gcp::Atom.

double gcu::Atom::Distance ( Atom pAtom  ) 

Parameters:
pAtom a pointer to an Atom.
Returns:
the distance between the Atom at pAtom and this Atom.

Bond* gcu::Atom::GetBond ( Atom pAtom  )  const

Parameters:
pAtom a 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 183 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.

virtual bool gcu::Atom::GetCoords ( double *  x,
double *  y,
double *  z = NULL 
) const [virtual]

Parameters:
x a pointer to the double value which will receive the x coordinate of the Atom.
y a pointer to the double value which will receive the y coordinate of the Atom.
z a 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).

Bond* gcu::Atom::GetFirstBond ( std::map< Atom *, Bond * >::iterator &  i  ) 

Parameters:
i a 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* gcu::Atom::GetNextBond ( std::map< Atom *, Bond * >::iterator &  i  ) 

Parameters:
i a 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.

std::string gcu::Atom::GetProperty ( unsigned  property  )  const [virtual]

Parameters:
property the 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 gcu::CrystalAtom.

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:
pCycle a 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:
node a 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:
node a 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 gcu::CrystalAtom, and gcp::Atom.

virtual bool gcu::Atom::Match ( Atom atom,
AtomMatchState state 
) [virtual]

Parameters:
atom the atom to which the this instance is to be compared.
state the 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:
x the x component of the transation vector.
y the y component of the transation vector.
z the z component of the transation vector.
Used to move an Atom.

Reimplemented from gcu::Object.

std::string gcu::Atom::Name (  )  [virtual]

Returns:
the localized object generic name.

Reimplemented from gcu::Object.

Atom& gcu::Atom::operator= ( Atom a  ) 

Parameters:
a the Atom to copy.
Returns:
an Atom identical to a without any bond.

virtual void gcu::Atom::RemoveBond ( Bond pBond  )  [virtual]

Parameters:
pBond a 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:
xml the 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:
xml the xmlDoc used to save the document.
node a 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 gcu::CrystalAtom.

virtual void gcu::Atom::SetCharge ( char  Charge  )  [inline, virtual]

Parameters:
Charge the 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:
x the new x coordinate of the Atom.
y the new y coordinate of the Atom.
z the 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, and z().

bool gcu::Atom::SetProperty ( unsigned  property,
char const *  value 
) [virtual]

Parameters:
property the identity of the property as defined in objprops.h.
value the 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 gcu::CrystalAtom.

virtual void gcu::Atom::SetZ ( int  Z  )  [virtual]

Parameters:
Z the 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:
m the 2D Matrix of the transformation.
x the x component of the center of the transformation.
y the 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.

double gcu::Atom::y (  )  const [inline]

Returns:
the y coordinate of this Atom.

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

References m_y.

double gcu::Atom::z (  )  const [inline]

Returns:
the z coordinate of this Atom.

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

References m_z.

Referenced by SetCoords().

void gcu::Atom::zoom ( double  ZoomFactor  ) 

Parameters:
ZoomFactor the 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 292 of file gcu/atom.h.

Referenced by GetBondsNumber().

char gcu::Atom::m_Charge [protected]

The charge of the Atom.

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

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

double gcu::Atom::m_x [protected]

The x coordinate of the Atom.

Definition at line 276 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 280 of file gcu/atom.h.

Referenced by SetCoords(), and y().

double gcu::Atom::m_z [protected]

The x coordinate of the Atom.

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

Referenced by SetCoords(), and z().

int gcu::Atom::m_Z [protected]

The atomic number of the Atom.

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

Referenced by GetZ().


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

Generated on Fri Sep 24 15:58:46 2010 for The Gnome Chemistry Utils by  doxygen 1.5.9