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

sxy_curve_simple.cpp

Go to the documentation of this file.
00001 
00002 // =======================================================================
00003 
00004 char* curve_simple_cpp = "$Id: sxy_curve_simple.cpp,v 1.2 2003/01/06 22:06:48 clinio Exp $";
00005 
00006 // =======================================================================
00007 
00008 #include <float.h>
00009 #include "sxy_mask.h"
00010 #include "sxy_series.h"
00011 #include "sxy_curve_simple.h"
00012 #include "sxy_series_linear.h"
00013 #include "sxy_series_parabolic.h"
00014 
00015 // =======================================================================
00016 
00017 // .......................................................................
00018 
00019 SXYSeries* SXYSimpleCurve::getOriginalSeries(void) {
00020    return original_series;
00021 }
00022 
00023 // .......................................................................
00024 
00025 unsigned int SXYSimpleCurve::getNumSeriesCallback(void) {
00026    return (unsigned int)(SIMPLE_CURVE_LAST_SERIES);
00027 }
00028 
00029 // .......................................................................
00030 
00031 unsigned int SXYSimpleCurve::getNumMasksCallback(void) {
00032    return (unsigned int)(SIMPLE_CURVE_LAST_MASK);
00033 }
00034 
00035 // .......................................................................
00036 
00037 XYCartesianMask* SXYSimpleCurve::createMaskCallback(unsigned int m) {
00038   switch(m) {
00039     case SIMPLE_CURVE_MARK_MASK:
00040       return SXYMask::createMarkMask(SXYMask::PLUS_MARK,8);
00041 
00042     case SIMPLE_CURVE_LINE_MASK:
00043       return SXYMask::createLineMask(SXYMask::CONTINOUS_LINE,1);
00044 
00045     case SIMPLE_CURVE_LINEAR_MASK:
00046     case SIMPLE_CURVE_PARABOLIC_MASK:
00047       return SXYMask::createLineMask(SXYMask::DASH_DOT_LINE,2);
00048   }
00049   return NULL;
00050 }
00051 
00052 // .......................................................................
00053 
00054 void SXYSimpleCurve::destroyMaskCallback(unsigned int m, 
00055 XYCartesianMask* msk) {
00056   assert(msk);
00057   if (msk != NULL) delete(msk);
00058 }
00059 
00060 // .......................................................................
00061 
00062 void SXYSimpleCurve::destroySeriesCallback(unsigned int s, SXYSeries* srs) {
00063   assert(srs);
00064   if (s == (unsigned int)SIMPLE_CURVE_ORIGINAL_SERIES) return;
00065   if (srs != NULL) delete srs;
00066 }
00067 
00068 // .......................................................................
00069 
00070 SXYSeries* SXYSimpleCurve::createSeriesCallback(unsigned int s) {
00071   switch(s) {
00072     case SIMPLE_CURVE_ORIGINAL_SERIES:
00073       return original_series;
00074 
00075     case SIMPLE_CURVE_LINEAR_SERIES:
00076     { SXYLinearSeries* srs = new SXYLinearSeries();
00077       srs->insertParameter( getSeries(0) );
00078       return srs;
00079     }
00080 
00081     case SIMPLE_CURVE_PARABOLIC_SERIES:
00082     { SXYParabolicSeries* srs = new SXYParabolicSeries();
00083       srs->insertParameter( getSeries(0) );
00084       return srs;
00085     }
00086   }
00087   return NULL;
00088 }
00089 
00090 // .......................................................................
00091 
00092 unsigned int SXYSimpleCurve::mapMaskToSeriesCallback(unsigned int m) {
00093   switch(m) {
00094     case SIMPLE_CURVE_MARK_MASK:
00095     case SIMPLE_CURVE_LINE_MASK:
00096       return (unsigned int)SIMPLE_CURVE_ORIGINAL_SERIES;
00097 
00098 
00099     case SIMPLE_CURVE_LINEAR_MASK:
00100       return (unsigned int)SIMPLE_CURVE_LINEAR_SERIES;
00101     case SIMPLE_CURVE_PARABOLIC_MASK:
00102       return (unsigned int)SIMPLE_CURVE_PARABOLIC_SERIES;
00103   }
00104   assert(0);
00105   return 99999;
00106 }
00107 
00108 // .......................................................................
00109 
00110 unsigned int SXYSimpleCurve::tryPointEditionCallback(unsigned int m, 
00111 unsigned int s, unsigned int n) {
00112    return (m == (unsigned int)SIMPLE_CURVE_MARK_MASK);
00113 }
00114 
00115 // .......................................................................
00116 
00117 void SXYSimpleCurve::movingPointCallback(unsigned int m, unsigned int s,
00118 unsigned int n, double x, double y) {
00119   assert(m == (unsigned int)SIMPLE_CURVE_MARK_MASK);
00120   double ox, oy;
00121   getPointFromSeries(s, n, ox, oy);
00122   // printf( "(%f,%f) -> (%f,%f)\n", ox, oy, x, y); fflush(stdout);
00123 }
00124  
00125 // .......................................................................
00126 
00127 unsigned int SXYSimpleCurve::editedPointCallback(unsigned int m, 
00128 unsigned int s, unsigned int n, double x, double y) {
00129   assert(m == (unsigned int)SIMPLE_CURVE_MARK_MASK);
00130   return 1;
00131 }
00132 
00133 // .......................................................................
00134 
00135 unsigned int SXYSimpleCurve::getCurveNumPoints() {
00136    if (original_series) return original_series->getNumPoints();
00137    return 0;
00138 }
00139 
00140 // .......................................................................
00141 
00142 unsigned int SXYSimpleCurve::getCurvePoint(unsigned int n, 
00143 double& x, double& y) {
00144    if (original_series) return original_series->getPoint(n, x, y);
00145    return 0;
00146 }
00147 
00148 // .......................................................................
00149 
00150 SXYSimpleCurve::SXYSimpleCurve(SXYSeries* series) : SXYCurve() {
00151    assert(series);
00152    original_series = series;
00153 }
00154 
00155 // .......................................................................
00156 
00157 SXYSimpleCurve::~SXYSimpleCurve() {
00158    original_series = NULL;
00159 }
00160 

SXY
Tecgraf / PUC-Rio - Computer Graphics Technology Group