# gcu::Bond Class Reference

`#include <gcu/bond.h>`

Inheritance diagram for gcu::Bond:

List of all members.

## Public Member Functions

| Bond ()
| Bond (Atom *first, Atom *last, unsigned char order)
virtual | ~Bond ()
virtual Atom * | GetAtom (int which)
virtual Atom * | GetAtom (Atom *pAtom, int which=0)
unsigned char | GetOrder ()
void | SetOrder (unsigned char Order)
virtual xmlNodePtr | Save (xmlDocPtr xml)
virtual bool | Load (xmlNodePtr node)
virtual void | IncOrder (int n=1)
virtual bool | LoadNode (xmlNodePtr node)
virtual bool | SaveNode (xmlDocPtr xml, xmlNodePtr node)
virtual void | Move (double x, double y, double z=0.)
virtual void | Transform2D (Matrix2D &m, double x, double y)

## Protected Attributes

unsigned char | m_order
Atom * | m_Begin
Atom * | m_End

## Detailed Description

This class is used to represent bonds.

Definition at line 42 of file bond.h.

## Constructor & Destructor Documentation

gcu::Bond::Bond | ( |  | ) |

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

gcu::Bond::Bond | ( | Atom * | first,
|  | Atom * | last,
|  | unsigned char | order |
| ) |  |  |

Parameters:

  | first,: | a pointer to the first Atom instance of the bond.
  | last,: | a pointer to the last Atom instance of the bond.
  | order,: | the 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.

## Member Function Documentation

virtual Atom* gcu::Bond::GetAtom | ( | int | which | ) | `[virtual]`

Parameters:

  | which,: | the 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` |
| ) |  |  | `[virtual]`

Parameters:

  | pAtom,: | a pointer to an Atom instance.
  | which,: | an 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.

unsigned char gcu::Bond::GetOrder | ( |  | ) |

Returns:
  the Bond order.

void gcu::Bond::SetOrder | ( | unsigned char | Order | ) |

Parameters:

  | Order,: | the new bond order.

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

virtual xmlNodePtr gcu::Bond::Save | ( | xmlDocPtr | xml | ) | `[virtual]`

Parameters:

  | xml,: | the 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::Load | ( | xmlNodePtr | node | ) | `[virtual]`

Parameters:

  | node,: | a pointer to the xmlNode containing the serialized Bond.

Loads a bond from an xmlNode.

Reimplemented from gcu::Object.

virtual void gcu::Bond::IncOrder | ( | int | n = `1` | ) | `[virtual]`

Parameters:

  | n,: | the 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.

virtual bool gcu::Bond::LoadNode | ( | xmlNodePtr | node | ) | `[virtual]`

Parameters:

  | node,: | a 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.

virtual bool gcu::Bond::SaveNode | ( | xmlDocPtr | xml,
|  | xmlNodePtr | node |
| ) |  |  | `[virtual]`

Parameters:

  | xml,: | the xmlDoc used to save the document.
  | node,: | a 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.

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

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

Reimplemented from gcu::Object.

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

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

Reimplemented from gcu::Object.

## Member Data Documentation

unsigned char gcu::Bond::m_order`[protected]`

The order of the bond.

Definition at line 140 of file bond.h.

Atom* gcu::Bond::m_Begin`[protected]`

A pointer to the first Atom instance of the Bond.

Definition at line 144 of file bond.h.

Atom* gcu::Bond::m_End`[protected]`

A pointer to the last Atom instance of the Bond.

Definition at line 148 of file bond.h.

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

- bond.h