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

xygraca.h

Go to the documentation of this file.
00001 //* Módulo   : xygraca.h                                                          
00002 // _Desc_    : Declara classe XYCartesian.
00003 // _Autores_ : Carlos Henrique Levy e Jaudênia Cavalcante.                       
00004 // _Data_    : 07 mar 96.                                                           
00005 
00006 #ifndef __XYCARTESIAN_H
00007 #define __XYCARTESIAN_H
00008 
00009 #include "xygra.h"
00010 #include "xygrid.h"
00011 
00012 //* XYCartesian 
00013 //    Classe especializada responsável pelo desenho de gráficos do tipo  
00014 // cartesiano que tem como principal característica pelo menos dois eixos, um   
00015 // na direção x (rotação 0) e outro na direção y (rotação 90).               
00016 class XYCartesian : public XYGraph
00017 {
00018    public:
00019 
00020  //* Construtores e Destrutor
00021 #ifndef NOIUP
00022    //* Construtor da classe XYCartesian que recebe canvas IUP
00023    XYCartesian (
00024         Ihandle* canvas,    // indica o canvas IUP onde o canvas CD será
00025                             // mapeado
00026         // definição do canvas CD será feita automaticamente
00027         // as coordenadas a seguir são normalizadas em relação ao canvas do CD
00028         XYCoordinate x,     // referência para a coordenada x
00029         XYCoordinate y,     // referência para a coordenada y
00030         double width,       // largura da região ocupada pelo gráfico
00031         double height,      // altura da região ocupada pelo gráfico
00032         XYGrid* gridh,      // grade horizontal
00033         XYGrid* gridv,      // grade vertical
00034         xybool visible = xytrue);  // visibilidade
00035 #endif
00036 
00037    //* Construtor da classe XYCartesian que recebe canvas CD
00038    XYCartesian (
00039         cdCanvas* cdcanvas, // define o canvas CD onde o gráfico será
00040                             // desenhado
00041         // as coordenadas a seguir são normalizadas em relação ao canvas do CD
00042         XYCoordinate x,     // referência para a coordenada x
00043         XYCoordinate y,     // referência para a coordenada y
00044         double width,       // largura da região ocupada pelo gráfico
00045         double height,      // altura da região ocupada pelo gráfico
00046         XYGrid* gridh,      // grade horizontal
00047         XYGrid* gridv,      // grade vertical
00048         xybool visible = xytrue);  // visibilidade
00049 
00050    //* Destrutor da classe XYCartesian
00051    virtual ~XYCartesian (void);
00052 
00053  //* Mask Area
00054    //* Calcula região de desenho das máscaras dependendo da orientação dos eixos
00055    virtual void calcMaskArea (void);
00056 
00057    //* Atualiza a "mask area" desenhando os objetos que estão contidos nela
00058    virtual void drawMaskArea (void) const;
00059    virtual void drawMaskArea (int xmin, int ymin, int xmax, int ymax) const;
00060 
00061  //* Métodos de Pick
00062    //* Verifica se o ponto (x, y) está sobre um elemento do gráfico
00063    virtual XYObject* pick (int x, int y);
00064 
00065    //* Retorna lista de elementos do gráfico que estão totalmente dentro da região de "fence"
00066    virtual XYList<XYObject>* fence (int x0, int y0, int x1, int y1);
00067  
00068  //* Métodos de Draw
00069    //* Desenha gráfico cartesiano
00070    virtual void draw (void);
00071    //* Desenha gráfico cartesiano numa região
00072    virtual void draw (int xmin, int ymin, int xmax, int ymax) const;
00073 
00074  //* Define/Consulta atributos
00075    //* Define grade horizontal
00076    virtual void setGridH (XYGrid *gridh);
00077    //* Consulta grade horizontal
00078    virtual XYGrid* getGridH (void) const;
00079 
00080    //* Cria um marcador como novo elemento pertencente ao gráfico cartesiano
00081    virtual XYObject* markerCreate(int x0, int y0, const XYAxis* master);
00082 
00083    //* Define grade vertical
00084    virtual void setGridV (XYGrid *gridv);
00085    //* Consulta grade vertical
00086    virtual XYGrid* getGridV (void) const;
00087 
00088    protected:
00089 
00090    // Define, em pixel, a região de desenho dos elementos componentes do gráfico
00091    virtual void propagateViewport (void) const;
00092 
00093    private:
00094 
00095    XYGrid* _gridh;  // grade horizontal
00096    XYGrid* _gridv;  // grade vertical
00097 };
00098 
00099 #endif
00100 

XY
Tecgraf / PUC-Rio - Computer Graphics Technology Group