fragment-atom.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_FRAGMENT_ATOM_H
00026 #define GCHEMPAINT_FRAGMENT_ATOM_H
00027
00028 #include "atom.h"
00029 #include <gcu/macros.h>
00030
00032 namespace gcp {
00033
00034 class Fragment;
00035
00039 class FragmentAtom: public Atom
00040 {
00041 public:
00045 FragmentAtom ();
00053 FragmentAtom (Fragment *fragment, int Z);
00057 virtual ~FragmentAtom ();
00058
00064 void SetZ (int Z);
00072 bool AcceptNewBonds (int nb);
00078 void Add (GtkWidget* w) const;
00082 void Update ();
00088 void Update (GtkWidget* w) const;
00096 void SetSelected (GtkWidget* w, int state);
00103 xmlNodePtr Save (xmlDocPtr xml) const;
00111 bool Load (xmlNodePtr node);
00129 int GetChargePosition (unsigned char& Pos, double Angle, double& x, double& y);
00139 int GetAvailablePosition (double& x, double& y);
00149 bool GetPosition (double angle, double& x, double& y);
00156 bool AcceptCharge (int charge);
00157
00163 void AddToMolecule (Molecule* Mol);
00174 bool Match (gcu::Atom *atom, gcu::AtomMatchState &state);
00180 void DoBuildSymbolGeometry (View *pView);
00181
00182 GCU_RO_POINTER_PROP (Fragment, Fragment)
00183 };
00184
00185 }
00186
00187 #endif // GCHEMPAINT_FRAGMENT_ATOM_H