Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

xygrid.h

Go to the documentation of this file.
00001 //* Módulo   : xygrid.h                                                          
00002 // _Desc_    : Declara classe XYGrid.
00003 // _Autores_ : Carlos Henrique Levy e Jaudênia Cavalcante.                       
00004 // _Data_    : 12 mar 96.                                                           
00005 
00006 #ifndef __XYGRID_H
00007 #define __XYGRID_H
00008 
00009 #include "xyax.h"
00010 
00011 //* XYGrid
00012 //    Classe especializada que define um tipo especial de eixo que desenha   
00013 // linhas perpendiculares ao ângulo de rotação em toda a região de desenho   
00014 // das máscaras do gráfico (mask area), começando numa posição específica    
00015 // com intervalo entre as linhas definido pelo usuário.                      
00016 class XYGrid: public XYAxis
00017 {
00018    public:
00019      
00020  //* Construtores e Destrutor
00021    //* Construtor A
00022    XYGrid (
00023         double mn,   // valor mínimo que a grade representa (assume)
00024         double mx,   // valor máximo que a grade representa (assume)
00025         double p,    // ponto inicial, entre mn e mx
00026         long color,  // cor da grade
00027         double rot,  // ângulo, em graus, no sentido anti-horário
00028         double step, // intervalo entre as retas perpendiculares
00029         xybool visible = xytrue);  // visibilidade
00030 
00031    //* Construtor B
00032    XYGrid (
00033         double mn,   // valor mínimo que a grade representa (assume)
00034         double mx,   // valor máximo que a grade representa (assume)
00035         double p,    // ponto inicial, entre mn e mx
00036         long color,  // cor da grade
00037         int style,   // estilo de linha para a grade
00038         double rot,  // ângulo, em graus, no sentido anti-horário
00039         double step, // intervalo entre as retas perpendiculares
00040         xybool visible = xytrue);  // visibilidade
00041 
00042    //* Destrutor da classe XYGrid
00043    virtual ~XYGrid (void) {};
00044 
00045  //* Define/Consulta atributos
00046    //* Define limite da grade, [mn, mx]
00047    virtual void limit (double h);
00048    //* Consulta limite da grade, [mn, mx]
00049    virtual double limit (void) const;
00050 
00051    //* Define estilo da linha da grade
00052    virtual void style (int s);
00053    //* Consulta estilo da linha da grade
00054    virtual int style (void) const;
00055 
00056  //* Métodos de Pick
00057    //* Verifica se ponto está sobre linha da grade
00058    virtual xybool pointInGrid (int px, int py, int x0, int y0, int x1, int y1);
00059 
00060    //* Retorna xytrue se o ponto estiver sobre a grade
00061    virtual xybool pick (int px, int py);
00062 
00063  //* Transformações   
00064    //* Transforma tamanho em coordenadas do mundo para coordenadas inteiras
00065    virtual int worldSize2PixelSize (double w) const;
00066 
00067  //* Métodos de Draw
00068    //* Desenha grade
00069    virtual void draw (void);
00070    //* Desenha grade numa região
00071    virtual void draw (int xmin, int ymin, int xmax, int ymax) const;
00072 
00073  //* BoundingBox
00074    //* Retorna menor retângulo que contém a grade, suas coordenadas são dadas em pixel
00075    virtual void boundingBox (int& xmin, int& ymin, int& xmax, int& ymax) const;
00076 
00077    protected:
00078 
00079    double _limit;  // altura da grade
00080    int    _style;  // estilo da linha da grade
00081 };
00082 
00083 #endif
00084 

XY
Tecgraf / PUC-Rio - Computer Graphics Technology Group