28 #include <libxml/parser.h>
45 Bond (
double X1,
double Y1,
double Z1,
double X2,
double Y2,
double Z2,
double r,
float red,
float green,
float blue,
float alpha);
50 double X1 (
void) {
return m_dx;}
51 double Y1 (
void) {
return m_dy;}
52 double Z1 (
void) {
return m_dz;}
53 double X2 (
void) {
return m_dx2;}
54 double Y2 (
void) {
return m_dy2;}
55 double Z2 (
void) {
return m_dz2;}
62 double Long () {
return m_dl;}
63 void SetPosition (
double x,
double y,
double z,
double x1,
double y1,
double z1);
64 void SetColor (
float red,
float green,
float blue,
float alpha);
65 void GetColor (
double *red,
double *green,
double *blue,
double *alpha);
66 void SetRadius (
double r);
67 double GetRadius () {
return m_dr;};
68 bool operator== (
Bond&);
69 virtual void Move (
double x,
double y,
double z);
70 double ScalProd (
int h,
int k,
int l);
71 void Cleave () {m_nCleave++;}
72 void NetToCartesian (
double a,
double b,
double c,
double alpha,
double beta,
double gamma);
73 double Distance (
double x,
double y,
double z,
bool bFixed);
74 bool IsCleaved () {
return m_nCleave != 0;}
75 void GetRotation (
double& x,
double& y,
double& z,
double& th);
76 virtual xmlNodePtr Save (xmlDocPtr xml);
77 virtual bool Load (xmlNodePtr node);
80 float m_fBlue, m_fRed, m_fGreen, m_fAlpha;
81 double m_dx, m_dy, m_dz, m_dx2, m_dy2, m_dz2, m_dr, m_dl;
82 double m_dxrot, m_dyrot, m_darot;
86 typedef std::list<Bond*> BondList;