Isis 3.0 Application Source Code Reference |
Home |
00001 #ifndef Translate_h 00002 #define Translate_h 00003 00004 #include "Transform.h" 00005 #include <cmath> 00006 #include <iostream> 00007 00008 /** 00009 * @author ????-??-?? Unknown 00010 * 00011 * @internal 00012 */ 00013 class Translate : public Isis::Transform { 00014 private: 00015 int p_outputSamples; 00016 int p_outputLines; 00017 00018 double p_sampleTrans; 00019 double p_lineTrans; 00020 00021 public: 00022 // constructor 00023 Translate(const double inputSamples, const double inputLines, 00024 const double sampleTrans, const double lineTrans) { 00025 // Save off the sample and line translation 00026 p_sampleTrans = sampleTrans; 00027 p_lineTrans = lineTrans; 00028 00029 p_outputSamples = (int) inputSamples; 00030 p_outputLines = (int) inputLines; 00031 } 00032 00033 // destructor 00034 ~Translate() {}; 00035 00036 // Implementations for parent's pure virtual members 00037 // Convert the requested output samp/line to an input samp/line 00038 bool Xform(double &inSample, double &inLine, 00039 const double outSample, const double outLine) { 00040 inSample = outSample - p_sampleTrans; 00041 inLine = outLine - p_lineTrans; 00042 return true; 00043 } 00044 00045 // Return the output number of samples 00046 int OutputSamples() const { 00047 return p_outputSamples; 00048 } 00049 00050 // Return the output number of lines 00051 int OutputLines() const { 00052 return p_outputLines; 00053 } 00054 }; 00055 00056 #endif 00057