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

#include <gcr/atom.h>

Inheritance diagram for gcr::Atom:
gcu::Atom gcu::Object

Public Member Functions

virtual ~Atom ()
 
 Atom (Atom &caAtom)
 
void SetColor (float red, float green, float blue, float alpha)
 
void SetDefaultColor ()
 
bool HasCustomColor ()
 
void GetColor (double *red, double *green, double *blue, double *alpha)
 
void SetSize (double r)
 
double GetSize ()
 
bool operator== (Atom &caAtom)
 
void Cleave ()
 
double ScalProd (int h, int k, int l)
 
double Distance (double x, double y, double z, bool bFixed)
 
double r ()
 
const GcuAtomicRadiusGetRadius ()
 
void SetRadius (const GcuAtomicRadius &r)
 
bool IsCleaved ()
 
virtual bool SaveNode (xmlDocPtr xml, xmlNodePtr node) const
 
virtual bool LoadNode (xmlNodePtr node)
 
- Public Member Functions inherited from gcu::Atom
 Atom ()
 
 Atom (int Z, double x, double y, double z=0.)
 
 Atom (Atom &a)
 
Atomoperator= (Atom &a)
 
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 void Move (double x, double y, double z=0.)
 
virtual void Transform2D (Matrix2D &m, double x, double y)
 
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 Member Functions

bool SetProperty (unsigned property, char const *value)
 
std::string GetProperty (unsigned property) const
 
- Protected Member Functions inherited from gcu::Object
virtual DialogBuildPropertiesDialog ()
 

Protected Attributes

float m_fBlue
 
float m_fRed
 
float m_fGreen
 
float m_fAlpha
 
bool m_bCustomColor
 
GcuAtomicRadius m_Radius
 
int m_nCleave
 
- Protected Attributes inherited from gcu::Atom
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 ()
 

Detailed Description

Used to represent atoms in a crystal.

Definition at line 45 of file gcr/atom.h.

Constructor & Destructor Documentation

virtual gcr::Atom::~Atom ( )
virtual

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

Reimplemented from gcu::Atom.

gcr::Atom::Atom ( Atom caAtom)
Parameters
caAtomthe Atom to duplicate.

Creates a new Atom identical to caAtom.

Member Function Documentation

void gcr::Atom::Cleave ( )
inline

Method used to cleave an atom. The inverse operation does not exist since the whole crystal must be recalculated after a change in the definition.

Definition at line 127 of file gcr/atom.h.

References m_nCleave.

double gcr::Atom::Distance ( double  x,
double  y,
double  z,
bool  bFixed 
)
Parameters
xthe x coordinate of the center.
ythe y coordinate of the center.
zthe z coordinate of the center.
bFixedtells if cleaved atoms are taken into account.

This helper method is called when searching for the size of the crystal. When some cleavages are defined, the procedure cn take into account atoms cleaved to get the same position in the view for the cleaved crystal than for the whole crystal. If bFixed is true, all atoms are taken into account.

Returns
the distance of the atom to the center of the view or 0 if bFixed is false and the atom cleaved.
void gcr::Atom::GetColor ( double *  red,
double *  green,
double *  blue,
double *  alpha 
)
Parameters
reda pointer to the red component.
greena pointer to the green component.
bluea pointer to the blue component.
alphaa pointer to the alpha component.

Used to retrieve the color used in the representation of the atom. Mainly useful for user defined colors.

std::string gcr::Atom::GetProperty ( unsigned  property) const
protectedvirtual
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::Atom.

const GcuAtomicRadius& gcr::Atom::GetRadius ( void  )
inline
Returns
the GcuAtomicRadius containing the caracteristics of the atom radius.

Definition at line 157 of file gcr/atom.h.

References m_Radius.

double gcr::Atom::GetSize ( )
Returns
the value of the radius (in pm).
bool gcr::Atom::HasCustomColor ( )
inline
Returns
: true if the color is user defined and false if it is the default color.

Definition at line 96 of file gcr/atom.h.

References m_bCustomColor.

bool gcr::Atom::IsCleaved ( )
inline
Returns
true if the atom is cleaved by at least one cleavage or false if the atom is not cleaved at all.

Definition at line 165 of file gcr/atom.h.

References m_nCleave.

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

Loads the color and the radius of the atom.

Reimplemented from gcu::Atom.

bool gcr::Atom::operator== ( Atom caAtom)
Parameters
caAtoma Atom instance.
Returns
true if the atoms are at the same position and false if their positions are different.
double gcr::Atom::r ( )
inline
Returns
the value of the radius (in pm).

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

References m_Radius, GcuDimensionalValue::value, and GcuAtomicRadius::value.

virtual bool gcr::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.

Saves the color and the radius of the atom.

Reimplemented from gcu::Atom.

double gcr::Atom::ScalProd ( int  h,
int  k,
int  l 
)
Parameters
hthe h Miller index of a plane.
kthe k Miller index of a plane.
lthe l Miller index of a plane.
Returns
the product hx+ky+lz where x, y and z are the coordinates of the atom. This makes sense only if coordinates are related to the net and are not the cartesian coordinates. This method should not be called after NetToCartesian().
void gcr::Atom::SetColor ( float  red,
float  green,
float  blue,
float  alpha 
)
Parameters
redthe red component of the color.
greenthe green component of the color.
bluethe blue component of the color.
alphathe alpha component of the color.

Sets a custom color to the atom.

void gcr::Atom::SetDefaultColor ( )

Gives the atom the default color.

bool gcr::Atom::SetProperty ( unsigned  property,
char const *  value 
)
protectedvirtual
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::Atom.

void gcr::Atom::SetRadius ( const GcuAtomicRadius r)
Parameters
ra GcuAtomicRadius with the caracteristics of the atom radius.
void gcr::Atom::SetSize ( double  r)
Parameters
rthe new value of the atomic radius.

Sets the value of the radius (in pm).

Member Data Documentation

bool gcr::Atom::m_bCustomColor
protected

False if the color used is the default color and true if it is a user defined color.

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

Referenced by HasCustomColor().

float gcr::Atom::m_fAlpha
protected

The alpha component of the color of the sphere representing the atom.

Definition at line 196 of file gcr/atom.h.

float gcr::Atom::m_fBlue
protected

The blue component of the color of the sphere representing the atom.

Definition at line 184 of file gcr/atom.h.

float gcr::Atom::m_fGreen
protected

The green component of the color of the sphere representing the atom.

Definition at line 192 of file gcr/atom.h.

float gcr::Atom::m_fRed
protected

The red component of the color of the sphere representing the atom.

Definition at line 188 of file gcr/atom.h.

int gcr::Atom::m_nCleave
protected

When cleavages (see gcr::Cleavage class documentation) are defined, the atom might be cleaved. m_nCleave is the number of gcr::Cleavage instances which remove the atom. If this member is not 0, the atom will not be displayed.

Definition at line 210 of file gcr/atom.h.

Referenced by Cleave(), and IsCleaved().

GcuAtomicRadius gcr::Atom::m_Radius
protected

The GcuAtomicRadius containing the radius caracteristics of the atom.

Definition at line 204 of file gcr/atom.h.

Referenced by GetRadius(), and r().


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