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

xycoord.h

Go to the documentation of this file.
00001 //* Módulo   : xycoord.h                                                         
00002 // _Desc_    : Declara classe XYCoordinate.
00003 // _Autores_ : Carlos Henrique Levy e Jaudênia Cavalcante.                       
00004 // _Data_    : 24 mar 97.                                                           
00005 
00006 #ifndef __XYCOORD_H
00007 #define __XYCOORD_H
00008 
00009 class XYObject;
00010 
00011 //* XYCoordinate
00012 //    Classe que define os tipos de coordenadas usadas pelos objetos membros 
00013 //  do pacote XY++.                                                           
00014 class XYCoordinate
00015 {
00016    public:
00017 
00018  //* enum TypesCoordinates  #TypesCoordinates#  
00019    //* Indica os possíveis tipos de coordenadas usadas
00020    enum TypesCoordinates  {
00021       pixel = 0,
00022       world,
00023       relative
00024    };
00025                     
00026  //* enum Where #Where#
00027    //* Indica se a posição do objeto atual é antes ou depois do objeto de referência
00028    enum Where    {                      
00029       before = 0,
00030       left   = before,
00031       bottom = before,
00032       after  = 1,
00033       right  = after,
00034       top    = after
00035    };
00036 
00037  //* Construtores e Destrutor
00038    //* Construtor A
00039    XYCoordinate (
00040         double p)  // coordenada dada entre [0.0, 1.0]
00041       : _p(p),
00042         _type(world),
00043         _ref(0),
00044         _dir(before),
00045         _gap(0) {};
00046 
00047    //* Construtor B
00048    XYCoordinate (
00049         int p)     // coordenada dada em pixel
00050         : _pp(p),
00051           _type(pixel),
00052           _ref(0),
00053           _dir(before),
00054           _gap(0) {};
00055 
00056    //* Construtor C
00057    XYCoordinate (
00058         const XYObject* r, // objeto de referência para a coordenada
00059         Where d,           // antes ou depois do objeto de referência
00060         int g)             // espaço em pixel entre os objetos
00061       : _p(0),
00062           _type(relative),
00063           _ref(r),
00064         _dir(d),
00065         _gap(g) {};
00066 
00067    //* Construtor D
00068    XYCoordinate () // Construtor sem parametros para lua
00069       : _p(0.0),
00070         _pp(0),
00071         _type(world),
00072         _ref(0),
00073         _dir(before),
00074         _gap(0) {};
00075 
00076    //* Destrutor
00077    virtual ~XYCoordinate () {} 
00078 
00079  //* Define/Consulta coordenadas
00080    //* Define as coordenadas
00081    virtual void set (const XYObject* r, Where d, int g);
00082    virtual void set (double p);
00083    virtual void set (int p);
00084 
00085    //* Consulta as coordenadas
00086    virtual void get (double* p) const;
00087    virtual void get (int* pp) const;
00088 
00089    //* Define o tipo de coordenada
00090    virtual void type (int t);
00091    //* Consulta o tipo de coordenada
00092    virtual int type (void) const;
00093 
00094    //* Define objeto de referência
00095    virtual void reference (const XYObject* obj);
00096    //* Consulta objeto de referência
00097    virtual const XYObject* reference (void) const;
00098 
00099    //* Define a posição em relação a um outro objeto
00100    virtual void direction (Where d);
00101    //* Consulta a posição em relação a um outro objeto
00102    virtual int direction (void) const;
00103  
00104    //* Define o espaço entre os objetos
00105    virtual void gap (int g);
00106    //* Consulta o espaço entre os objetos
00107    virtual int gap (void) const;
00108 
00109    private:
00110 
00111    double _p;     // valor para a coordenada, entre [0.0, 1.0]
00112    int    _pp;    // valor para a coordenada, em pixel
00113    int    _type;  // pixel, world e relative
00114    const XYObject* _ref; // objeto de referência
00115    Where  _dir;   // antes ou depois do objeto de referência
00116    int    _gap;   // espaço entre os objetos
00117 };
00118 
00119 #endif
00120 

XY
Tecgraf / PUC-Rio - Computer Graphics Technology Group