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

xymk.h

Go to the documentation of this file.
00001 //* Módulo   : xymk.h                                                            
00002 // _Desc_    : Declara classe XYMarker.
00003 // _Autores_ : Carlos Henrique Levy e Jaudênia Cavalcante.                       
00004 // _Data_    : 12 nov 96.                                                           
00005 
00006 #ifndef __XYMARKER_H
00007 #define __XYMARKER_H
00008 
00009 #include "xyobj.h"
00010 #include "xymath.h"
00011 #include "xyax.h"
00012 
00013 class XYGraph;
00014 
00015 //* XYMarker 
00016 //    Classe abstrata que marca uma determinada posição sobre a graduação de 
00017 // um eixo com um traço perpendicular a esse eixo, começando nele e          
00018 // atravessando toda a área útil de um gráfico.                              
00019 class XYMarker : public XYObject
00020 {
00021    public:
00022 
00023  //* Construtores e Destrutor
00024    //* Construtor da classe XYMarker
00025    XYMarker (
00026         const XYAxis* axis,   // eixo de referência
00027         double pos,           // posição para o marcador
00028         long color,           // cor do marcador
00029         int width,            // espessura do marcador
00030         LineStyle style,      // estilo do marcador
00031         xybool visible = xytrue); // visibilidade
00032 
00033    //* Destrutor da classe XYMarker
00034    virtual ~XYMarker (void) {};
00035 
00036  //* Define/Consulta atributos
00037    //* Define o eixo de referência
00038    virtual void axis (const XYAxis* ax);
00039    //* Consulta o eixo de referência
00040    virtual const XYAxis* axis (void) const;
00041 
00042    //* Define posição do marcador em relação a graduação do eixo de referência
00043    virtual void pos (double ps);
00044    //* Consulta posição do marcador em relação a graduação do eixo de referência
00045    virtual double pos (void) const;
00046 
00047    //* Define cor do marcador
00048    virtual void color (long c);
00049    //* Consulta cor do marcador
00050    virtual long color (void) const;
00051 
00052    //* Define espessura do marcador
00053    virtual void width (int w);
00054    //* Consulta espessura do marcador
00055    virtual int width (void) const;
00056 
00057    //* Define estilo do marcador
00058    virtual void style (XYObject::LineStyle st);
00059    //* Consulta estilo do marcador
00060    virtual int style (void) const;
00061 
00062    //* Define limite do marcador
00063    virtual void limit (double h);
00064    //* Consulta limite do marcador
00065    virtual double limit (void) const;
00066 
00067    //* Retorna posição de referência sobre o eixo considerado
00068    virtual void scaleValue(double x1, double y1, double* pos);
00069 
00070    //* Acao realizado quando da insercao de uma mascara no grafico
00071    virtual void insertAction (XYGraph *g);
00072 
00073    //* Acao realizado quando da romcao de uma mascara no grafico
00074    virtual void removeAction (XYGraph *g);
00075 
00076  //* Métodos de Pick
00077    //* Retorna xytrue se o ponto estiver sobre o marcador
00078    virtual xybool pick (int px, int py) = 0;
00079 
00080    //* Retorna xytrue se o marcador estiver interior a região de "fence"
00081    virtual xybool fence (int x0, int y0, int x1, int y1) = 0;
00082 
00083  //* Métodos de Draw
00084    //* Desenha marcador
00085    virtual void draw (void) = 0;
00086    //* Desenha marcador numa região
00087    virtual void draw (int xmin, int ymin, int xmax, int ymax) const = 0;
00088 
00089  //* BoundingBox
00090    //* Retorna menor retângulo que contém um marcador, suas coordenadas são dadas em pixel
00091    virtual void boundingBox (int& bxmin, int& bymin, int& bxmax, int& bymax) const = 0;
00092 
00093    protected:
00094 
00095    const  XYAxis* _axis; // eixo de referência
00096    double _pos;          // posição para o marcador
00097    double _limit;        // limite de desenho do marcador
00098    long   _color;        // cor para o marcador
00099    int    _width;        // espessura do marcador
00100    LineStyle _style;     // estilo do marcador
00101 };
00102 
00103 #endif
00104 

XY
Tecgraf / PUC-Rio - Computer Graphics Technology Group