9#ifndef CUBE_CALCULATOR_H_
10#define CUBE_CALCULATOR_H_
88 void addMethodCall(
void (
Calculator::*method)(
void));
161 DataValueType
type();
167 double m_constantValue;
169 DataValueType m_type;
223 void loadBuffers(
int currentLine,
int ns,
int currentBand);
Calculator()
The code that performs math operations is designed to call a function and use the result.
Definition Calculator.cpp:32
This class is used to manage buffers for calculating camera related information, such as angles,...
Definition CubeCalculator.h:187
void enableLonBuffer()
Enables the longitude buffer for use.
Definition CubeCalculator.cpp:1012
void enableLatBuffer()
Enables the latitude buffer for use.
Definition CubeCalculator.cpp:1006
QVector< double > * inalBuffer(int currentLine, int ns, int currentBand)
Definition CubeCalculator.cpp:1113
void enablePhalBuffer()
Enables the local phase angle buffer for use.
Definition CubeCalculator.cpp:1030
void enableResBuffer()
Enables the resolution buffer for use.
Definition CubeCalculator.cpp:1018
QVector< double > * emalBuffer(int currentLine, int ns, int currentBand)
Definition CubeCalculator.cpp:1119
QVector< double > * emaBuffer(int currentLine, int ns, int currentBand)
Definition CubeCalculator.cpp:1077
void enablePhaBuffer()
Enables the phase angle buffer for use.
Definition CubeCalculator.cpp:988
void enableRadiusBuffer()
Enables the radius buffer for use.
Definition CubeCalculator.cpp:1024
CameraBuffers(Camera *camera)
Constructs a CameraBuffers object.
Definition CubeCalculator.cpp:933
QVector< double > * phacBuffer(int currentLine, int ns, int currentBand)
Definition CubeCalculator.cpp:1125
void enableInalBuffer()
Enables the local incidence angle buffer for use.
Definition CubeCalculator.cpp:1036
QVector< double > * emacBuffer(int currentLine, int ns, int currentBand)
Definition CubeCalculator.cpp:1137
QVector< double > * latBuffer(int currentLine, int ns, int currentBand)
Definition CubeCalculator.cpp:1083
void enableInaBuffer()
Enables the incidence angle buffer for use.
Definition CubeCalculator.cpp:994
void enableEmalBuffer()
Enables the local emission angle buffer for use.
Definition CubeCalculator.cpp:1042
QVector< double > * inacBuffer(int currentLine, int ns, int currentBand)
Definition CubeCalculator.cpp:1131
QVector< double > * inaBuffer(int currentLine, int ns, int currentBand)
Definition CubeCalculator.cpp:1071
~CameraBuffers()
Destroys the CameraBuffers.
Definition CubeCalculator.cpp:956
void enableEmacBuffer()
Enables the center emission angle buffer for use.
Definition CubeCalculator.cpp:1060
void enableInacBuffer()
Enables the center incidence angle buffer for use.
Definition CubeCalculator.cpp:1054
void enableEmaBuffer()
Enables the emission angle buffer for use.
Definition CubeCalculator.cpp:1000
QVector< double > * radiusBuffer(int currentLine, int ns, int currentBand)
Definition CubeCalculator.cpp:1101
QVector< double > * resBuffer(int currentLine, int ns, int currentBand)
Definition CubeCalculator.cpp:1095
QVector< double > * phaBuffer(int currentLine, int ns, int currentBand)
Definition CubeCalculator.cpp:1065
QVector< double > * lonBuffer(int currentLine, int ns, int currentBand)
Definition CubeCalculator.cpp:1089
QVector< double > * phalBuffer(int currentLine, int ns, int currentBand)
Definition CubeCalculator.cpp:1107
void enablePhacBuffer()
Enables the center phase angle buffer for use.
Definition CubeCalculator.cpp:1048
~CubeCalculator()
Destroys the CubeCalculator object.
Definition CubeCalculator.cpp:42
CubeCalculator()
Constructs a CubeCalculator.
Definition CubeCalculator.cpp:22
void Clear()
This method completely resets the calculator.
Definition CubeCalculator.cpp:64
QVector< double > runCalculations(QVector< Buffer * > &cubeData, int line, int band)
This method will execute the calculations built up when PrepareCalculations was called.
Definition CubeCalculator.cpp:114
void prepareCalculations(QString equation, QVector< Cube * > &inCubes, Cube *outCube)
This method builds a list of actions to perform based on the postfix expression.
Definition CubeCalculator.cpp:249
IO Handler for Isis Cubes.
Definition Cube.h:168
This class is used to define what kind of data is being pushed onto the cube calculator.
Definition CubeCalculator.h:132
int cubeIndex()
Accesses the cube index of the DataValue.
Definition CubeCalculator.cpp:913
double constant()
Accesses the constant value of the DataValue.
Definition CubeCalculator.cpp:923
DataValue()
Constructs a default DataValue.
Definition CubeCalculator.cpp:840
DataValueType
This is used to tell what kind of data to push onto the RPN calculator.
Definition CubeCalculator.h:135
@ InaData
Incidence camera data.
Definition CubeCalculator.h:141
@ PhacData
Center phase camera data.
Definition CubeCalculator.h:153
@ EmalData
Local emission camera data.
Definition CubeCalculator.h:149
@ PhaData
Phase camera data.
Definition CubeCalculator.h:143
@ InalData
Local incidence camera data.
Definition CubeCalculator.h:148
@ EmaData
Emission camera data.
Definition CubeCalculator.h:142
@ LatData
Latitude camera data.
Definition CubeCalculator.h:144
@ Sample
Current sample number.
Definition CubeCalculator.h:137
@ Band
Current band number.
Definition CubeCalculator.h:139
@ ResData
Pixel resolution camera data.
Definition CubeCalculator.h:146
@ Constant
A single constant value.
Definition CubeCalculator.h:136
@ InacData
Center incidence camera data.
Definition CubeCalculator.h:151
@ PhalData
Local phase camera data.
Definition CubeCalculator.h:150
@ Line
Current line number.
Definition CubeCalculator.h:138
@ RadiusData
DEM radius.
Definition CubeCalculator.h:147
@ LonData
Longitude camera data.
Definition CubeCalculator.h:145
@ CubeData
A brick of cube data.
Definition CubeCalculator.h:140
@ EmacData
Center emission camera data.
Definition CubeCalculator.h:152
DataValueType type()
Accesses the type of the DataValue.
Definition CubeCalculator.cpp:903
This is free and unencumbered software released into the public domain.
Definition Calculator.h:18
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16