00001
00002
00003
00004 char* series_array_cpp = "$Id: sxy_series_array.cpp,v 1.3 2003/01/17 17:43:13 clinio Exp $";
00005
00006
00007
00008 #include "sxy_series_array.h"
00009
00010
00011
00012 const SXYPoint SXYArraySeries::NIL = SXYPoint();
00013
00014
00018 SXYArraySeries::~SXYArraySeries() {
00019 deallocVector();
00020 }
00021
00022
00027 SXYArraySeries::SXYArraySeries(unsigned int n) {
00028 vector = NULL;
00029 allocVector(n);
00030 }
00031
00032
00036 void SXYArraySeries::deallocVector(void) {
00037 if (vector) delete vector;
00038 vector = NULL;
00039 }
00040
00041
00046 void SXYArraySeries::allocVector(unsigned int n) {
00047 vector = new SXYVector<SXYPoint>(n, SXYArraySeries::NIL);
00048 assert(vector);
00049 }
00050
00051
00056 unsigned int SXYArraySeries::getSize() {
00057 return vector->getAllocSize();
00058 }
00059
00060
00065 unsigned int SXYArraySeries::getNumPoints() {
00066 return vector->getLength();
00067 }
00068
00069
00075 void SXYArraySeries::invalidatePoint(unsigned int n) {
00076 double invalid_number = SXYSeries::getAnInvalidNumber();
00077 writePoint(n, invalid_number, invalid_number);
00078 }
00079
00080
00085 void SXYArraySeries::removePointAt(unsigned int n) {
00086 assert(vector);
00087 vector->removeElementAt(n);
00088 }
00089
00090
00095 void SXYArraySeries::insertHoleAt(unsigned int n) {
00096 assert(vector);
00097 vector->insertElementAt(n, SXYArraySeries::NIL);
00098 }
00099
00100
00107 void SXYArraySeries::insertPointAt(unsigned int n, double x, double y) {
00108 assert(vector);
00109 vector->insertElementAt(n, SXYPoint(x,y));
00110 }
00111
00112
00116 void SXYArraySeries::insertHole(void) {
00117 assert(vector);
00118 vector->insertElement(SXYArraySeries::NIL);
00119 }
00120
00121
00128 void SXYArraySeries::insertPoint(double x, double y) {
00129 assert(vector);
00130 vector->insertElement(SXYPoint(x,y));
00131 }
00132
00133
00141 void SXYArraySeries::writePoint(unsigned int n, double x, double y) {
00142 assert(vector);
00143 assert(n >= 0);
00144 assert(n < vector->getAllocSize());
00145 assert(n < vector->getLength());
00146 (vector->getElementReference(n))->setX(x);
00147 (vector->getElementReference(n))->setY(y);
00148 }
00149
00150
00158 unsigned int SXYArraySeries::getPoint(unsigned int n, double& x, double& y) {
00159 assert(vector);
00160 assert(n >= 0);
00161 assert(n < vector->getAllocSize());
00162 assert(n < vector->getLength());
00163 SXYPoint point = SXYPoint(vector->getElement(n));
00164 x = point.getX();
00165 y = point.getY();
00166 return SXYSeries::isValidNumber(x) && SXYSeries::isValidNumber(y);
00167 }
00168