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