25 #ifndef GCHEMPAINT_ATOM_H
26 #define GCHEMPAINT_ATOM_H
67 #define POSITION_SW 16
79 #define POSITION_W 128
128 Atom (
int Z,
double x,
double y,
double z);
135 Atom (OpenBabel::OBAtom* atom);
147 virtual void SetZ (
int Z);
219 virtual bool GetPosition (
double angle,
double& x,
double& y);
226 virtual xmlNodePtr
Save (xmlDocPtr xml)
const;
233 virtual bool Load (xmlNodePtr node);
239 virtual bool LoadNode (xmlNodePtr node);
326 void SetChargePosition (
unsigned char Pos,
bool def,
double angle = 0.,
double distance = 0.);
372 void GetSymbolGeometry (
double &width,
double &height,
double &angle,
bool up)
const;
398 void UpdateAvailablePositions ();
404 int m_ValenceOrbitals;
407 double m_width, m_height;
408 double m_length, m_text_height;
414 unsigned char m_AvailPos;
415 unsigned char m_OccupiedPos;
416 bool m_AvailPosCached;
417 unsigned char m_ChargePos;
418 bool m_ChargeAutoPos;
419 double m_ChargeAngle;
421 double m_ChargeWidth, m_ChargeTWidth, m_ChargeXOffset, m_ChargeYOffset;
422 std::list<double> m_AngleList;
423 std::map<double, double> m_InterBonds;
425 PangoLayout *m_Layout, *m_ChargeLayout, *m_HLayout;
426 double m_xHOffs, m_yHOffs;
428 std::string m_FontName;
429 double m_SWidth, m_SHeightH, m_SHeightL, m_SAngleH, m_SAngleL;
431 double m_xROffs, m_yROffs;
492 #endif // GCHEMPAINT_ATOM_H