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

xygrapl.h

Go to the documentation of this file.
00001 //* Módulo   : xygrapl.h                                                         
00002 // _Desc_    : Declara classe XYPolar.
00003 // _Autores_ : Camilo da Fonseca Freire.                                         
00004 // _Data_    : 11 jul 96.                                                           
00005 
00006                  
00007 #ifndef __XYPOLAR_H
00008 #define __XYPOLAR_H
00009 
00010 #include "xygra.h"
00011 #include "xyrgrid.h"
00012 #include "xyagrid.h"
00013 
00014 //* XYPolar 
00015 //    Classe especializada, responsável pelo desenho de gráficos do tipo    
00016 // polar que tem como principal característica um eixo polar (XYPolarAxis). 
00017 class XYPolar : public XYGraph
00018 {
00019    public:
00020 
00021  //* Construtores e Destrutor
00022 #ifndef NOIUP
00023    //* Construtor da classe XYPolar que recebe um canvas IUP
00024    XYPolar (
00025         Ihandle* canvas,    // indica o canvas IUP onde o canvas CD será
00026                             // mapeado
00027         // definição do canvas CD usado será feita automaticamente
00028         // as coordenadas a seguir são normalizadas em relação ao canvas do CD
00029         XYCoordinate x,     // referência para a coordenada x
00030         XYCoordinate y,     // referência para a coordenada y
00031         double width,       // largura da região ocupada pelo gráfico
00032         double height,      // altura da região ocupada pelo gráfico
00033         XYRadialGrid* gridr,  // grade radial
00034         XYAngGrid* grida,     // grade angular
00035         xybool visible = xytrue); // visibilidade
00036 #endif
00037 
00038    //* Construtor da classe XYPolar que recebe um canvas CD
00039    XYPolar (
00040         cdCanvas* cdcanvas, // define o canvas CD onde o gráfico será
00041                             // desenhado
00042         // as coordenadas a seguir são normalizadas em relação ao canvas do CD
00043         XYCoordinate x,     // referência para a coordenada x
00044         XYCoordinate y,     // referência para a coordenada y
00045         double width,       // largura da região ocupada pelo gráfico
00046         double height,      // altura da região ocupada pelo gráfico
00047         XYRadialGrid* gridr,  // grade radial
00048         XYAngGrid* grida,     // grade angular
00049         xybool visible = xytrue); // visibilidade
00050 
00051    //* Destrutor da classe XYPolar
00052    virtual ~XYPolar (void);
00053 
00054  //* Define/Consulta atributos
00055    //* Inicializa grade radial
00056    virtual void setGridR (XYRadialGrid *gridr);
00057    //* Consulta grade radial
00058    virtual XYRadialGrid* getGridR (void) const;
00059 
00060    //* Inicializa grade angular
00061    virtual void setGridA (XYAngGrid *grida);
00062    //* Consulta grade angular
00063    virtual XYAngGrid* getGridA (void) const;
00064 
00065    //* Cria um marcador como novo elemento pertencente ao gráfico
00066    virtual XYObject* markerCreate(int, int, const XYAxis*) {return NULL;};
00067 
00068  //* Métodos de Pick
00069    //* Verifica se o ponto (x, y) está sobre um elemento do gráfico
00070    virtual XYObject* pick (int x, int y);
00071 
00072    //* Retorna lista de elementos do gráfico que estão totalmente dentro da região de "fence"
00073    virtual XYList<XYObject>* fence (int x0, int y0, int x1, int y1);
00074 
00075  //* Mask Area
00076    //* Desenha a grade e a "mask area"
00077    virtual void drawMaskArea (void) const;
00078    virtual void drawMaskArea (int xmin, int ymin, int xmax, int ymax) const;
00079 
00080    //* Calcula região de desenho das máscaras tendo como ponto central a posição inicial de desenho do eixo polar
00081    virtual void calcMaskArea (void);
00082 
00083  //* Métodos de Draw
00084    //* Desenha gráfico polar
00085    virtual void draw (void);
00086    //* Desenha gráfico polar numa região
00087    virtual void draw (int xmin, int ymin, int xmax, int ymax) const;
00088 
00089    protected:
00090 
00091    // define, em pixel, a região de desenho dos elementos componentes do
00092    // gráfico
00093    virtual void propagateViewport (void) const;
00094 
00095    private:
00096 
00097    XYRadialGrid* _gridr; // grade radial
00098    XYAngGrid*    _grida; // grade angular
00099 };
00100 
00101 #endif
00102 

XY
Tecgraf / PUC-Rio - Computer Graphics Technology Group