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

xysl.h

Go to the documentation of this file.
00001 //* Módulo   : xysl.h                                                         
00002 // _Desc_    : Declara classe XYSlice.
00003 // _Autores_ : Carlos Henrique Levy e Jaudênia Cavalcante.                       
00004 // _Data_    : 12 mai 97.                                                           
00005 
00006 #ifndef __XYSLICE_H
00007 #define __XYSLICE_H
00008 
00009 #include "xyobj.h"
00010 #include "xymath.h"
00011 #include "xyax.h"
00012 #include "xymk.h"
00013 
00014 class XYGraph;
00015 
00016 //* XYSlice 
00017 //    Classe abstrata que evidencia uma área num gráfico através de traços   
00018 // verticais e mudança na cor de fundo da região por eles delimitada.        
00019 class XYSlice : public XYObject
00020 {
00021    public:
00022 
00023  //* Construtor e Destrutor
00024    //* Construtor da classe XYSlice
00025    XYSlice (
00026         const XYAxis* axis,    // eixo de referência
00027         // posição em relação a graduação do eixo de referência para:
00028         double begin,          // o marcador inicial
00029         double end,            // o marcador final
00030         xybool visible = xytrue);  // visibilidade
00031 
00032    //* Destrutor da classe XYSlice
00033    virtual ~XYSlice (void) {};
00034 
00035  //* Define/Consulta atributos
00036    //* Define o marcador de início de fronteira
00037    virtual void beginMarker (XYMarker* b);
00038    //* Consulta o marcador de início de fronteira
00039    virtual XYMarker* beginMarker (void) const;
00040 
00041    //* Define o marcador de final de fronteira
00042    virtual void endMarker (XYMarker* e);
00043    //* Consulta o marcador de final de fronteira
00044    virtual XYMarker* endMarker (void) const;
00045 
00046    //* Define o eixo de referência
00047    virtual void axis (const XYAxis* ax);
00048    //* Consulta o eixo de referência
00049    virtual const XYAxis* axis (void) const;
00050 
00051    //* Define posição do marcador inicial em relação a graduação do eixo de referência
00052    virtual void begin (double bm);
00053    //* Consulta posição do marcador inicial em relação a graduação do eixo de referência
00054    virtual double begin (void) const;
00055 
00056    //* Define posição do marcador final em relação a graduação do eixo de referência
00057    virtual void end (double em);
00058    //* Consulta posição do marcador final em relação a graduação do eixo de referência
00059    virtual double end (void) const;
00060 
00061    //* Define cor para os marcadores
00062    virtual void color (long c);
00063    //* Consulta cor dos marcadores
00064    virtual long color (void) const;
00065 
00066    //* Define cor de fundo para a região
00067    virtual void backgroundColor (long bc);
00068    //* Consulta cor de fundo da região
00069    virtual long backgroundColor (void) const;
00070 
00071    //* Acao realizado quando da insercao de uma mascara no grafico
00072    virtual void insertAction (XYGraph *g);
00073 
00074    //* Acao realizado quando da romcao de uma mascara no grafico
00075    virtual void removeAction (XYGraph *g);
00076 
00077  //* Métodos de Pick
00078    //* Retorna xytrue se o ponto estiver sobre o "slice"
00079    virtual xybool pick (int px, int py) = 0;
00080 
00081    //* Retorna xytrue se o "slice" for interior a região de "fence"
00082    virtual xybool fence (int x0, int y0, int x1, int y1) = 0;
00083 
00084  //* Métodos de Draw
00085    //* Desenha "slice"
00086    virtual void draw (void) = 0;
00087    //* Desenha "slice" numa região
00088    virtual void draw (int xmin, int ymin, int xmax, int ymax) const = 0;
00089 
00090  //* BoundingBox
00091    //* Retorna menor retângulo que contém um "slice", suas coordenadas são dadas em pixel
00092    virtual void boundingBox (int& bxmin, int& bymin, int& bxmax, int& bymax) const = 0;
00093 
00094    protected:
00095 
00096    // clareia ou escurece a cor dada de acordo com as taxas fornecidas
00097    // se taxas positivas: clareia, se negativas: escurece
00098    long changeColor(long color, int tr, int tg, int tb);
00099 
00100    const XYAxis* _axis;     // eixo de referência
00101    XYMarker* _beginMarker;  // fronteira inicial da região
00102    XYMarker* _endMarker;    // fronteira final da região
00103    // posição em relação a graduação do eixo de referência para:
00104    double _begin;           // o marcador inicial
00105    double _end;             // o marcador final
00106    long   _color;           // cor dos marcadores
00107    long   _backgroundColor; // cor de fund da região
00108 };
00109 
00110 #endif
00111 
00112  

XY
Tecgraf / PUC-Rio - Computer Graphics Technology Group