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

xyar.h

Go to the documentation of this file.
00001 //* Módulo   : xyar.h                                                         
00002 // _Desc_    : Declara classe XYArea.
00003 
00004 #ifndef __XYAREA_H
00005 #define __XYAREA_H
00006 
00007 #include "xyobj.h"
00008 #include "xymath.h"
00009 #include "xyax.h"
00010 #include "xymk.h"
00011 
00012 class XYGraph;
00013 
00014 //* XYArea 
00015 //    Classe abstrata que evidencia uma área num gráfico através de 
00016 //    um quadrado e mudança na cor de fundo da região por ele delimitada.        
00017 class XYArea : public XYObject
00018 {
00019    public:
00020 
00021  //* Construtor e Destrutor
00022    //* Construtor da classe XYArea
00023    XYArea (
00024         const XYAxis* axis1,    // eixo de referência
00025         const XYAxis* axis2,    // eixo de referência
00026         // posição em relação a graduação do eixo de referência para:
00027         double begin1,          // o marcador inicial
00028         double end1,            // o marcador final
00029 
00030         double begin2,          // o marcador inicial
00031         double end2,            // o marcador final
00032         xybool visible = xytrue);  // visibilidade
00033 
00034    //* Destrutor da classe XYArea
00035    virtual ~XYArea (void) {};
00036 
00037  //* Define/Consulta atributos
00038    //* Define o eixo de referência
00039    virtual void axis1 (const XYAxis* ax);
00040    //* Consulta o eixo de referência
00041    virtual const XYAxis* axis1 (void) const;
00042    //* Define o eixo de referência
00043    virtual void axis2 (const XYAxis* ax);
00044    //* Consulta o eixo de referência
00045    virtual const XYAxis* axis2 (void) const;
00046 
00047    //* Define posição do marcador inicial em relação a 
00048    //  graduação do eixo de referência
00049    virtual void begin1 (double bm);
00050    //* Consulta posição do marcador inicial em relação a 
00051    //  graduação do eixo de referência
00052    virtual double begin1 (void) const;
00053 
00054    //* Define posição do marcador final em relação a graduação do 
00055    //  eixo de referência
00056    virtual void end1 (double em);
00057    //* Consulta posição do marcador final em relação a graduação do 
00058    //  eixo de referência
00059    virtual double end1 (void) const;
00060 
00061    //* Define posição do marcador inicial em relação a 
00062    //  graduação do eixo de referência
00063    virtual void begin2 (double bm);
00064    //* Consulta posição do marcador inicial em relação a 
00065    //  graduação do eixo de referência
00066    virtual double begin2 (void) const;
00067 
00068    //* Define posição do marcador final em relação a graduação do 
00069    //  eixo de referência
00070    virtual void end2 (double em);
00071    //* Consulta posição do marcador final em relação a graduação do 
00072    //  eixo de referência
00073    virtual double end2 (void) const;
00074 
00075    //* Define cor para os marcadores
00076    virtual void color (long c);
00077    //* Consulta cor dos marcadores
00078    virtual long color (void) const;
00079 
00080    //* Define espessura do marcador
00081    virtual void width (int w);
00082    //* Consulta espessura do marcador
00083    virtual int width (void) const;
00084    
00085    //* Define estilo do marcador
00086    virtual void style (XYObject::LineStyle st);
00087    //* Consulta estilo do marcador
00088    virtual int style (void) const;
00089 
00090    //* Texto interior a caixa
00091    char* text( void );
00092    //* Texto interior a caixa
00093    void text( char* txt );
00094    
00095    //* Define cor de texto para a região
00096    virtual void textColor (long tc);
00097    //* Consulta cor de texto da região
00098    virtual long textColor (void) const;
00099 
00100    //* Define tam. do texto para a região
00101    void textSize (int ts);
00102    //* Consulta o tam. de texto da região
00103    int textSize (void) const;
00104 
00105    //* Define cor de fundo para a região
00106    virtual void backgroundColor (long bc);
00107    //* Consulta cor de fundo da região
00108    virtual long backgroundColor (void) const;
00109 
00110    //* Define o desenho do texto forçadamente
00111    virtual void forcedText (xybool flg);
00112    //* Consulta o atrributo de desenho do texto forçado
00113    virtual xybool forcedText (void) const;
00114 
00115    //* Acao realizado quando da insercao de uma mascara no grafico
00116    virtual void insertAction (XYGraph *g);
00117 
00118    //* Acao realizado quando da romcao de uma mascara no grafico
00119    virtual void removeAction (XYGraph *g);
00120 
00121  //* Métodos de Pick
00122    //* Retorna xytrue se o ponto estiver sobre o "slice"
00123    virtual xybool pick (int px, int py) = 0;
00124 
00125    //* Retorna xytrue se o "slice" for interior a região de "fence"
00126    virtual xybool fence (int x0, int y0, int x1, int y1) = 0;
00127 
00128  //* Métodos de Draw
00129    //* Desenha "slice"
00130    virtual void draw (void) = 0;
00131    //* Desenha "slice" numa região
00132    virtual void draw (int xmin, int ymin, int xmax, int ymax) const = 0;
00133 
00134  //* BoundingBox
00135    //* Retorna menor retângulo (suas coordenadas são dadas em pixel)
00136    virtual void boundingBox (int& bxmin, int& bymin, 
00137          int& bxmax, int& bymax) const = 0;
00138 
00139    protected:
00140 
00141    xybool _forced_text;
00142    char* _text;              // texto exibição
00143 
00144    const XYAxis* _axis1;     // eixo de referência
00145    const XYAxis* _axis2;     // eixo de referência
00146 
00147    double _begin1;           // o marcador inicial
00148    double _end1;             // o marcador final
00149    double _begin2;           // o marcador inicial
00150    double _end2;             // o marcador final
00151    long   _color;            // cor dos marcadores
00152    long   _backgroundColor;  // cor de fund da região
00153    long   _textColor;        // cor de texto da região
00154    int    _textSize;         // tam. de texto da região
00155    int    _width;            // espessura do marcador
00156    LineStyle _style;         // estilo do marcador
00157 };
00158 
00159 #endif
00160 
00161  

XY
Tecgraf / PUC-Rio - Computer Graphics Technology Group