00001 //* Módulo : xyrgrid.h 00002 // _Desc_ : Declara classe XYRadialGrid. 00003 // _Autores_ : Camilo da Fonseca Freire. 00004 // _Data_ : 11 jul 96. 00005 00006 #ifndef __XYRADIALGRID_H 00007 #define __XYRADIALGRID_H 00008 00009 #include "xyax.h" 00010 00011 //* XYRadialGrid 00012 // Classe que define um tipo especial de eixo que desenha circulos concêntricos, 00013 // centrados na origem do eixo, com raios definidos pelo usuário. 00014 class XYRadialGrid: public XYAxis 00015 { 00016 public: 00017 00018 //* Construtores e Destrutor 00019 //* Construtor da classe XYRadialGrid 00020 XYRadialGrid ( 00021 double mn, // valor mínimo que a grade representa (assume) 00022 double mx, // valor máximo que a grade representa (assume) 00023 double p, // ponto inicial, entre mn e mx 00024 long color, // cor da grade 00025 double step, // intervalo entre os círculos 00026 xybool visible = xytrue); // visibilidade 00027 00028 //* Destrutor da classe XYRadialGrid 00029 virtual ~XYRadialGrid (void) {}; 00030 00031 //* Define/Consulta atributos 00032 //* Define primeiro círculo na grade, [mn, mx] 00033 virtual void first (double f); 00034 //* Consulta primeiro círculo na grade, [mn, mx] 00035 virtual double first (void) const; 00036 00037 //* Define estilo de linha da grade 00038 virtual void style (int s); 00039 //* Consulta estilo de linha da grade 00040 virtual int style (void) const; 00041 00042 //* Métodos de Pick 00043 //* Retorna xytrue se o ponto estiver sobre a grade 00044 virtual xybool pick (int px, int py); 00045 00046 //* Métodos de Draw 00047 //* Desenha grade 00048 virtual void draw (void); 00049 //* Desenha uma região da grade 00050 virtual void draw (int xmin, int ymin, int xmax, int ymax) const; 00051 00052 //* BoundingBox 00053 //* Retorna menor retângulo que contém a grade, suas coordenadas estão em pixels 00054 virtual void boundingBox (int& xmin, int& ymin, int& xmax, int& ymax) const; 00055 00056 private: 00057 00058 double _first; // primeiro círculo na grade, [mn, mx] 00059 int _style; // estilo de linha da grade 00060 }; 00061 00062 #endif 00063