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

#include <gcu/bond.h>

Inheritance diagram for gcu::Bond:
gcu::Object gcp::Bond gcr::Bond

Public Member Functions

 Bond ()
 Bond (Atom *first, Atom *last, unsigned char order)
virtual ~Bond ()
virtual AtomGetAtom (int which) const
virtual AtomGetAtom (Atom *pAtom, int which=0) const
virtual Atom const * GetAtom (Atom const *pAtom, int which=0) const
unsigned char GetOrder () const
void SetOrder (unsigned char Order)
virtual xmlNodePtr Save (xmlDocPtr xml) const
virtual bool Load (xmlNodePtr node)
virtual void IncOrder (int n=1)
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
virtual void AddCycle (Cycle *pCycle)
virtual void RemoveCycle (Cycle *pCycle)
virtual void RemoveAllCycles ()
unsigned IsCyclic ()
CycleGetFirstCycle (std::list< Cycle * >::iterator &i, Cycle *pCycle)
CycleGetNextCycle (std::list< Cycle * >::iterator &i, Cycle *pCycle)
bool IsInCycle (Cycle *pCycle)
double Get2DLength ()
double GetAngle2DRad (Atom *pAtom)
bool ReplaceAtom (Atom *oldAtom, Atom *newAtom)
void OnLoaded ()
std::string Name ()
- 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 bool GetCoords (double *x, double *y, double *z=NULL) const
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
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

unsigned char m_order
Atomm_Begin
Atomm_End
std::list< Cycle * > m_Cycles

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

Definition at line 42 of file gcu/bond.h.

Constructor & Destructor Documentation

gcu::Bond::Bond ( )

The default constructor. Creates a bond with order set to 0.

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

gcu::Bond::Bond ( Atom first,
Atom last,
unsigned char  order 
)
Parameters
firsta pointer to the first Atom instance of the bond.
lasta pointer to the last Atom instance of the bond.
orderthe order of the new bond.

The distinction between first and last is important mostly for stereobonds. The Bond instance is created and adds itself to the two atoms calling Atom::AddBond.

virtual gcu::Bond::~Bond ( )
virtual

The destructor of Bond.

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

Member Function Documentation

virtual void gcu::Bond::AddCycle ( Cycle pCycle)
virtual
Parameters
pCyclea cycle to add to the list.

Reimplemented in gcp::Bond.

double gcu::Bond::Get2DLength ( )
Returns
the length of the bond when projected to the xy plane.
double gcu::Bond::GetAngle2DRad ( Atom pAtom)
Parameters
pAtomone of the atoms of the bond.
Returns
the direction of the bond starting from the atom.
virtual Atom* gcu::Bond::GetAtom ( int  which) const
virtual
Parameters
whichthe index of the Atom instance to be returned.
Returns
a pointer to the Atom instance: first Atom if which is 0, last if which is 1 or NULL.
virtual Atom* gcu::Bond::GetAtom ( Atom pAtom,
int  which = 0 
) const
virtual
Parameters
pAtoma pointer to an Atom instance.
whichan index which might be used for multicentered bonds (not supported); the default value should always be used even if the implementation does not use it in this version.
Returns
the last atom if pAtom is the first, the first if pAtom is the last or NULL if pAtom is not concerned by this Bond.
virtual Atom const* gcu::Bond::GetAtom ( Atom const *  pAtom,
int  which = 0 
) const
virtual
Parameters
pAtoma pointer to a constant Atom instance.
whichan index which might be used for multicentered bonds (not supported); the default value should always be used even if the implementation does not use it in this version.

The const version of the method.

Returns
the last atom if pAtom is the first, the first if pAtom is the last or NULL if pAtom is not concerned by this Bond.
Cycle* gcu::Bond::GetFirstCycle ( std::list< Cycle * >::iterator &  i,
Cycle pCycle 
)
Parameters
ia C++ std::map iterator.
pCyclea cycle.
Returns
the first cycle to which the bond belongs, excluding the one passed as second argument.
Cycle* gcu::Bond::GetNextCycle ( std::list< Cycle * >::iterator &  i,
Cycle pCycle 
)
Parameters
ia C++ std::map iterator initialized by Bond::GetFirstCycle.
pCyclea cycle.
Returns
the next cycle to which the bond belongs, excluding the one passed as second argument.
unsigned char gcu::Bond::GetOrder ( ) const
Returns
the Bond order.
std::string gcu::Bond::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 bonds.

Returns
the value of the property as a string.

Reimplemented from gcu::Object.

Reimplemented in gcp::Bond.

virtual void gcu::Bond::IncOrder ( int  n = 1)
virtual
Parameters
nthe increment to add to the bond order

If the resulting bond order is greater than 4, the remainder of the division by 4 is retained.

Reimplemented in gcp::Bond.

unsigned gcu::Bond::IsCyclic ( )
inline
Returns
the number of cycles to which the bond belongs.

Definition at line 183 of file gcu/bond.h.

References m_Cycles.

bool gcu::Bond::IsInCycle ( Cycle pCycle)
Parameters
pCyclea cycle in which the bond might be.
Returns
true if the bond is in the cycle.
virtual bool gcu::Bond::Load ( xmlNodePtr  node)
virtual
Parameters
nodea pointer to the xmlNode containing the serialized Bond.

Loads a bond from an xmlNode.

Reimplemented from gcu::Object.

Reimplemented in gcr::Bond.

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

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

Reimplemented in gcp::Bond.

virtual void gcu::Bond::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.

Does nothing. Just a slight optimization to avoid execution of Object::Move

Reimplemented from gcu::Object.

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

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

Reimplemented from gcu::Object.

void gcu::Bond::OnLoaded ( )
virtual

This method should be called when a bond has been fully loaded.

Reimplemented from gcu::Object.

Reimplemented in gcp::Bond.

virtual void gcu::Bond::RemoveAllCycles ( )
virtual

Clears the bond cycles list.

Reimplemented in gcp::Bond.

virtual void gcu::Bond::RemoveCycle ( Cycle pCycle)
virtual
Parameters
pCyclea cycle to remove from the list.

Reimplemented in gcp::Bond.

bool gcu::Bond::ReplaceAtom ( Atom oldAtom,
Atom newAtom 
)
Parameters
oldAtomthe atom to replace.
newAtomthe new atom.

To sucess, this needs that the new atom can accept all the bonds from the old one.

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

Reimplemented from gcu::Object.

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

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

Reimplemented in gcp::Bond.

void gcu::Bond::SetOrder ( unsigned char  Order)
Parameters
Orderthe new bond order.

The value used is not checked. Should be a significant value (1 to 3, exceptionally 4).

bool gcu::Bond::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 bonds.

Returns
true on success.

Reimplemented from gcu::Object.

Reimplemented in gcp::Bond.

virtual void gcu::Bond::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.

Does nothing. Just a slight optimization to avoid execution of Object::Transform2D

Reimplemented from gcu::Object.

Reimplemented in gcp::Bond.

Member Data Documentation

Atom* gcu::Bond::m_Begin
protected

A pointer to the first Atom instance of the Bond.

Definition at line 249 of file gcu/bond.h.

std::list<Cycle*> gcu::Bond::m_Cycles
protected

The gcu::Cycle instnces to which the bond pertains.

Definition at line 258 of file gcu/bond.h.

Referenced by IsCyclic().

Atom* gcu::Bond::m_End
protected

A pointer to the last Atom instance of the Bond.

Definition at line 253 of file gcu/bond.h.

unsigned char gcu::Bond::m_order
protected

The order of the bond.

Definition at line 245 of file gcu/bond.h.


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