gcp/arrow.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_ARROW_H
00026 #define GCHEMPAINT_ARROW_H
00027
00028 #include <gcu/object.h>
00029 #include <gccv/item-client.h>
00030
00032 namespace gcp {
00033
00037 enum ArrowTypes
00038 {
00042 SimpleArrow,
00046 ReversibleArrow,
00050 FullReversibleArrow,
00051 };
00052
00055 class Arrow: public gcu::Object, public gccv::ItemClient
00056 {
00057 public:
00064 Arrow(gcu::TypeId Type);
00068 virtual ~Arrow();
00069
00078 bool Load (xmlNodePtr node);
00086 void SetSelected (int state);
00095 void SetCoords (double xstart, double ystart, double xend, double yend);
00104 bool GetCoords (double* xstart, double* ystart, double* xend, double* yend) const;
00113 bool GetCoords (double *x, double *y, double *z = NULL) const;
00121 void Move (double x, double y, double z = 0);
00129 void Transform2D (gcu::Matrix2D& m, double x, double y);
00134 double GetYAlign ();
00144 bool SetProperty (unsigned property, char const *value);
00145
00146 protected:
00154 bool Save (xmlDocPtr xml, xmlNodePtr node) const;
00155
00156 std::string Name ();
00157
00158 protected:
00162 double m_x;
00166 double m_y;
00170 double m_width;
00174 double m_height;
00175 };
00176
00177 }
00178
00179 #endif //GCHEMPAINT_ARROW_H