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 #include <gccv/item-client.h>
00030
00032 namespace gcp {
00033
00034 class Atom;
00035
00039 extern gcu::TypeId ElectronType;
00040
00044 class Electron: public gcu::Object, public gccv::ItemClient
00045 {
00046 public:
00053 Electron (Atom *pAtom, bool IsPair);
00057 ~Electron ();
00058
00062 bool IsPair () {return m_IsPair;}
00070 char GetPosition (double *angle, double *distance);
00078 void SetPosition (unsigned char Pos, double angle = 0., double distance = 0.);
00082 void AddItem ();
00090 void SetSelected (int state);
00097 xmlNodePtr Save (xmlDocPtr xml) const;
00104 bool Load (xmlNodePtr node);
00116 bool OnSignal (gcu::SignalId Signal, gcu::Object *Child);
00124 void Transform2D (gcu::Matrix2D& m, double x, double y);
00125
00129 std::string Name ();
00130
00131 private:
00132 Atom* m_pAtom;
00133 bool m_IsPair;
00134 unsigned char m_Pos;
00135 double m_Angle, m_Dist;
00136 };
00137
00138 }
00139
00140 #endif // GCHEMPAINT_ELECTRON_H