// SOURCE: CATMULL-ROM CUBIC SPLINE // AUTHOR: SEAN M. KESSLER (Adopted from Numerical Recipes in 'C') // DATE: 12/28/1993 #include CatmullRom::CatmullRom(void) { } CatmullRom::CatmullRom(const CatmullRom &someCatmullRom) { // no implementation *this=someCatmullRom; } inline CatmullRom::~CatmullRom() { } inline CatmullRom &CatmullRom::operator=(const CatmullRom &/*someCatmullRom*/) { // no implementation return *this; } BOOL CatmullRom::performSpline(GlobalData &sourcePairs,GlobalData &destPairs) { double a0,a1,a2,a3; double dx,dx1,dx2; double dy,dy1,dy2; double endPointOne,endPointTwo,resamplingPos; double xPoint; short clampOne,clampTwo; short direction; short destSize((short)destPairs.size()); short sourceSize((short)sourcePairs.size()); short inputIndex,index; if(sourceSize<2||destSize<2)return FALSE; if(sourcePairs[0].column()sourcePairs[sourceSize-1].column())direction=0; else direction=1; } else { if(destPairs[0].column()>sourcePairs[0].column()|| destPairs[destSize-1].column()endPointTwo)||(-1==direction&&resamplingPossourcePairs[inputIndex].column();inputIndex++); if(resamplingPos