00001
00002
00003
00004
00005
00006 #ifndef __XYMARKER_H
00007 #define __XYMARKER_H
00008
00009 #include "xyobj.h"
00010 #include "xymath.h"
00011 #include "xyax.h"
00012
00013 class XYGraph;
00014
00015
00016
00017
00018
00019 class XYMarker : public XYObject
00020 {
00021 public:
00022
00023
00024
00025 XYMarker (
00026 const XYAxis* axis,
00027 double pos,
00028 long color,
00029 int width,
00030 LineStyle style,
00031 xybool visible = xytrue);
00032
00033
00034 virtual ~XYMarker (void) {};
00035
00036
00037
00038 virtual void axis (const XYAxis* ax);
00039
00040 virtual const XYAxis* axis (void) const;
00041
00042
00043 virtual void pos (double ps);
00044
00045 virtual double pos (void) const;
00046
00047
00048 virtual void color (long c);
00049
00050 virtual long color (void) const;
00051
00052
00053 virtual void width (int w);
00054
00055 virtual int width (void) const;
00056
00057
00058 virtual void style (XYObject::LineStyle st);
00059
00060 virtual int style (void) const;
00061
00062
00063 virtual void limit (double h);
00064
00065 virtual double limit (void) const;
00066
00067
00068 virtual void scaleValue(double x1, double y1, double* pos);
00069
00070
00071 virtual void insertAction (XYGraph *g);
00072
00073
00074 virtual void removeAction (XYGraph *g);
00075
00076
00077
00078 virtual xybool pick (int px, int py) = 0;
00079
00080
00081 virtual xybool fence (int x0, int y0, int x1, int y1) = 0;
00082
00083
00084
00085 virtual void draw (void) = 0;
00086
00087 virtual void draw (int xmin, int ymin, int xmax, int ymax) const = 0;
00088
00089
00090
00091 virtual void boundingBox (int& bxmin, int& bymin, int& bxmax, int& bymax) const = 0;
00092
00093 protected:
00094
00095 const XYAxis* _axis;
00096 double _pos;
00097 double _limit;
00098 long _color;
00099 int _width;
00100 LineStyle _style;
00101 };
00102
00103 #endif
00104