00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
#ifndef GCU_BOND_H
00028
#define GCU_BOND_H
00029
00030
#include <list>
00031
#include "object.h"
00032
00033
using namespace std;
00034
00035
namespace gcu
00036 {
00037
00038
class Atom;
00039
00044 class Bond:
public Object
00045 {
00046
public:
00050
Bond ();
00059
Bond (
Atom* first,
Atom* last,
unsigned char order);
00063
virtual ~Bond ();
00064
00070
virtual Atom*
GetAtom (
int which);
00077
virtual Atom*
GetAtom (
Atom* pAtom,
int which = 0);
00078
00082
unsigned char GetOrder ();
00088
void SetOrder (
unsigned char Order);
00093
virtual xmlNodePtr
Save (xmlDocPtr xml);
00099
virtual bool Load (xmlNodePtr node);
00105
virtual void IncOrder (
int n = 1);
00112
virtual bool LoadNode (xmlNodePtr node);
00120
virtual bool SaveNode (xmlDocPtr xml, xmlNodePtr node);
00128
virtual void Move (
double x,
double y,
double z = 0.);
00136
virtual void Transform2D (
Matrix2D& m,
double x,
double y);
00137
00138
protected:
00142 unsigned char m_order;
00146 Atom *
m_Begin;
00150 Atom *
m_End;
00151 };
00152
00153 }
00154
00155
#endif // GCU_BOND_H