electron.h
Go to the documentation of this file.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 #ifndef GCHEMPAINT_ELECTRON_H
00026 #define GCHEMPAINT_ELECTRON_H
00027
00028 #include <gcu/object.h>
00029
00031 namespace gcp {
00032
00033 class Atom;
00034
00038 extern gcu::TypeId ElectronType;
00039
00043 class Electron: public gcu::Object
00044 {
00045 public:
00052 Electron (Atom *pAtom, bool IsPair);
00056 ~Electron ();
00057
00061 bool IsPair () {return m_IsPair;}
00069 char GetPosition (double *angle, double *distance);
00077 void SetPosition (unsigned char Pos, double angle = 0., double distance = 0.);
00083 void Add(GtkWidget* w) const;
00089 void Update(GtkWidget* w) const;
00098 void SetSelected(GtkWidget* w, int state);
00105 xmlNodePtr Save (xmlDocPtr xml) const;
00112 bool Load (xmlNodePtr node);
00124 bool OnSignal (gcu::SignalId Signal, gcu::Object *Child);
00132 void Transform2D (gcu::Matrix2D& m, double x, double y);
00133
00134 private:
00135 Atom* m_pAtom;
00136 bool m_IsPair;
00137 unsigned char m_Pos;
00138 double m_Angle, m_Dist;
00139 };
00140
00141 }
00142
00143 #endif // GCHEMPAINT_ELECTRON_H