Desc : Declara classe XYGraph.
Autores : Carlos Henrique Levy e Jaudênia Cavalcante.
Data : 26 fev 96.
Classe abstrata que manipula de forma única um conjunto de eixos,
(XYAxis), marcadores (XYMarker), regiões (XYSlice), curvas (XYMask),
legenda (XYLegend) e títulos (XYText) numa área de um canvas do CD.
O layout básico de um gráfico é os títulos, um embaixo do outro começando
pelo topo da área gerenciada pelo gráfico, a legenda e os eixos limitando
uma região (mask area) onde curvas, marcadores e regiões são desenhados.
class XYGraph : public XYObject
Construtores e Destrutor
XYGraph ( Ihandle* canvas, // indica o canvas IUP onde o canvas CD será // mapeado // as coordenadas a seguir são normalizadas em relação ao canvas do CD XYCoordinate x, // referência para a coordenada x XYCoordinate y, // referência para a coordenada y double width, // largura da região ocupada pelo gráfico double height, // altura da região ocupada pelo gráfico bool visible = true); // visibilidade
XYGraph ( cdCanvas* cdcanvas, // define o canvas CD onde o gráfico será // desenhado // as coordenadas a seguir são normalizadas em relação ao canvas do CD XYCoordinate x, // referência para a coordenada x XYCoordinate y, // referência para a coordenada y double width, // largura da região ocupada pelo gráfico double height, // altura da região ocupada pelo gráfico bool visible = true); // visibilidade
virtual ~XYGraph (void);
Define/Consulta atributos
virtual void position (double x, double y); virtual void position (int xp, int yp);
virtual void position (double* x, double* y) const; virtual void position (int* xp, int* yp) const; virtual XYCoordinate* position (void);
virtual void setCdCanvas (cdCanvas* c);
virtual cdCanvas* getCdCanvas (void) const;
virtual cdCanvas* canvasImage (cdCanvas*);
virtual cdCanvas* canvasImage (void);
virtual void createImage (int w, int h);
virtual void insert (XYText* text);
virtual void insert (XYAxis* axis);
virtual void insert (XYMask* mask);
virtual void insert (XYMarker* marker);
virtual void insert (XYSlice* slice);
virtual void remove (XYText* text);
virtual void remove (XYAxis* axis);
virtual void remove (XYMask* mask);
virtual void remove (XYMarker* marker);
virtual void remove (XYSlice* slice);
virtual XYList<XYText>& text (void);
virtual XYList<XYAxis>& axis (void);
virtual XYList<XYMask>& mask (void);
virtual XYList<XYMarker>& marker (void);
virtual XYList<XYSlice>& slice (void);
virtual XYMask& mask(unsigned m);
virtual void legend (XYLegend* leg);
virtual XYLegend* legend (void) const;
virtual XYObject* markerCreate(int x0, int y0, const XYAxis* master) = 0;
virtual void backgroundColor(long color);
virtual long backgroundColor(void) const;
virtual void width (double w);
virtual double width (void) const;
virtual void height (double h);
virtual double height (void) const;
virtual void distortion (bool d);
virtual bool distortion (void) const;
virtual bool doubleBuffering (bool on);
virtual bool doubleBuffering (void) const;
Mask Area
virtual void maskAreaColor(long color);
virtual long maskAreaColor(void) const;
virtual void setMaskArea (double xmin, double ymin, double xmax, double ymax);
virtual void getMaskArea (double& xmn, double& ymn, double& xmx, double& ymx) const; virtual void getMaskArea (int& xmn, int& ymn, int& xmx, int& ymx) const;
virtual void calcMaskArea (void) = 0;
Métodos de Pick
virtual bool contains(const XYObject* obj);
virtual XYObject* pick (int x, int y);
virtual XYText* pickText (int x, int y);
virtual XYAxis* pickAxis (int x, int y);
virtual XYMask* pickMask (int x, int y);
virtual XYMarker* pickMarker (int x, int y);
virtual XYSlice* pickSlice (int x, int y);
virtual XYLegend* pickLegend (int x, int y);
virtual XYList<XYObject>* fence (int x0, int y0, int x1, int y1);
Métodos de Draw
virtual void print (void);
virtual void flush (void) const;
virtual void scroll (int dx, int dy);
virtual void clear (void);
virtual void clear (int xmin, int ymin, int xmax, int ymax) const;
virtual void maskAreaClear (void) const;
virtual void draw (void);
virtual void draw (int xmin, int ymin, int xmax, int ymax) const;
virtual void drawMaskArea (void) const = 0; virtual void drawMaskArea (int xmin, int ymin, int xmax, int ymax) const;
virtual int activateCanvas (void) const;
BoundingBox
virtual void boundingBox (int& /*bxmin*/, int& /*bymin*/, int& /*bxmax*/, int& /*bymax*/) const {};