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

sxy_curve.h

Go to the documentation of this file.
00001 
00002 #ifndef curve_h
00003 #define curve_h
00004 
00005 // =======================================================================
00006 
00007 #include <xy.h>
00008 
00009 #include "sxy_vector.h"
00010 #include "sxy_axis.h"
00011 #include "sxy_series_null.h"
00012 
00013 // =======================================================================
00014 //* Define o conjunto de máscaras e séries xy que definem um curva
00015 //  a ser desenhada em um chart.
00016 
00017 class SXYCurve {
00018 
00019    SXYAxis* x_axis;
00020    SXYAxis* y_axis;
00021 
00022    long int color;
00023    char* title;
00024 
00025    SXYVector<XYCartesianMask*> *masks_vector;
00026    SXYVector<SXYSeries*> *series_vector;
00027 
00028    SXYNullSeries* null_series;
00029 
00030    XYRasterText* xy_legend_text;
00031    XYCartesianMask* xy_legend_mask;
00032 
00033    void insertMask(XYCartesianMask* mask);
00034    void insertSeries(SXYSeries* series);
00035    void removeMask(XYCartesianMask* mask);
00036    void removeSeries(SXYSeries* series);
00037 
00038    void detachMask(XYCartesianMask* mask);
00039    void attachMask(XYCartesianMask* mask);
00040    void checkAxesConsistency(void);
00041 
00042    void createLegend(void);
00043    void createSeries(void);
00044    void createMasks(void);
00045    void destroyLegend(void);
00046    void destroySeries(void);
00047    void destroyMasks(void);
00048 
00049 
00050  public:
00051 
00052    virtual void setColorCallback(void);
00053    virtual void setTitleCallback(void);
00054 
00055    virtual void destroySeriesCallback(unsigned int s, SXYSeries* srs) = 0;
00056    virtual void destroyMaskCallback(unsigned int m, XYCartesianMask* msk) = 0;
00057    virtual SXYSeries* createSeriesCallback(unsigned int s) = 0;
00058    virtual XYCartesianMask* createMaskCallback(unsigned int m) = 0;
00059    virtual unsigned int getNumMasksCallback(void) = 0;
00060    virtual unsigned int getNumSeriesCallback(void) = 0;
00061    virtual unsigned int mapMaskToSeriesCallback(unsigned int m) = 0;
00062 
00063    virtual unsigned int tryPointEditionCallback(
00064            unsigned int mask, unsigned int series, unsigned int n);
00065 
00066    virtual void movingPointCallback(
00067            unsigned int mask, unsigned int series, unsigned int n,
00068            double x, double y);
00069 
00070    virtual unsigned int editedPointCallback(
00071            unsigned int mask, unsigned int series, unsigned int n,
00072            double x, double y);
00073 
00074    SXYChart* getChart();
00075    SXYAxis* getHorizontalAxis(void);
00076    SXYAxis* getVerticalAxis(void);
00077    void setAxis(SXYAxis* x, SXYAxis* y);
00078    void unsetAxis(void);
00079 
00080    void remountCurve(void);
00081 
00082    unsigned int getNumMasks(void);
00083    unsigned int getNumSeries(void);
00084 
00085    SXYSeries* getSeries(unsigned int s);
00086    XYCartesianMask* getMask(unsigned int m);
00087 
00088    void setTitle(const char* txt);
00089    char* getTitle(void);
00090 
00091    long int getColor(void);
00092    void setColor(long int col);
00093 
00094    void setMaskVisibility(unsigned int m, int flag);
00095    int  getMaskVisibility(unsigned int m);
00096 
00097    void getLimits(double& xmin, double& xmax, double& ymin, double& ymax); 
00098    unsigned int getPointFromSeries(unsigned int s, unsigned int n,
00099             double& x, double& y);
00100 
00101    SXYCurve(void);
00102    virtual ~SXYCurve();
00103 };
00104 
00105 
00106 #endif
00107 

SXY
Tecgraf / PUC-Rio - Computer Graphics Technology Group