|
Isis 3 Programmer Reference
|
9 #ifndef CUBE_CALCULATOR_H_
10 #define CUBE_CALCULATOR_H_
12 #include "Calculator.h"
16 template<
class T>
class QVector;
213 QVector<double> *radiusBuffer(
int currentLine,
int ns,
int currentBand);
223 void loadBuffers(
int currentLine,
int ns,
int currentBand);
int lastPushToCubeStats(QVector< Cube * > &inCubes)
Creates statistics internally for the last cube data pushed to the data definitions.
int m_lastLine
The number of the last line loaded into the enabled camera buffers.
double constant()
Accesses the constant value of the DataValue.
void enableInaBuffer()
Enables the incidence angle buffer for use.
void enablePhaBuffer()
Enables the phase angle buffer for use.
@ PhacData
Center phase camera data.
@ Line
Current line number.
QVector< CameraBuffers * > * m_cameraBuffers
Stores the camera buffers that are enabled for camera related calculations.
@ CallNextMethod
The calculation requires calling one of the methods.
void enableLatBuffer()
Enables the latitude buffer for use.
QVector< double > * m_radiusBuffer
Radius buffer.
QVector< double > * m_lonBuffer
Longitude buffer.
int m_cubeIndex
The index of the associated cube.
void enablePhalBuffer()
Enables the local phase angle buffer for use.
void enablePhacBuffer()
Enables the center phase angle buffer for use.
QVector< double > * m_inalBuffer
Local incidence angle buffer.
QVector< double > * m_emalBuffer
Local emission angle buffer.
QVector< double > runCalculations(QVector< Buffer * > &cubeData, int line, int band)
This method will execute the calculations built up when PrepareCalculations was called.
DataValueType type()
Accesses the type of the DataValue.
QVector< double > * m_phaBuffer
Phase angle buffer.
@ PhalData
Local phase camera data.
~CubeCalculator()
Destroys the CubeCalculator object.
void addMethodCall(void(Calculator::*method)(void))
This is a conveinience method for PrepareCalculations(...).
QVector< double > * m_emaBuffer
Emission angle buffer.
CubeCalculator()
Constructs a CubeCalculator.
QVector< double > * m_phalBuffer
Local phase angle buffer.
@ InaData
Incidence camera data.
QVector< Camera * > * m_cubeCameras
Stores the cameras for the input cubes.
QVector< double > * m_inaBuffer
Incidence angle buffer.
@ ResData
Pixel resolution camera data.
@ Constant
A single constant value.
void enableEmaBuffer()
Enables the emission angle buffer for use.
CameraBuffers(Camera *camera)
Constructs a CameraBuffers object.
@ EmalData
Local emission camera data.
void enableInalBuffer()
Enables the local incidence angle buffer for use.
QVector< double > * m_inacBuffer
Center incidence angle buffer.
@ InacData
Center incidence camera data.
int m_outputSamples
Number of samples in the output cube.
void enableEmalBuffer()
Enables the local emission angle buffer for use.
QVector< Statistics * > * m_cubeStats
Stores the cube statistics for the input cubes.
Camera * m_camera
Camera to obtain camera-related information from.
void enableRadiusBuffer()
Enables the radius buffer for use.
@ Sample
Current sample number.
void enableEmacBuffer()
Enables the center emission angle buffer for use.
@ LonData
Longitude camera data.
void enableInacBuffer()
Enables the center incidence angle buffer for use.
@ InalData
Local incidence camera data.
void prepareCalculations(QString equation, QVector< Cube * > &inCubes, Cube *outCube)
This method builds a list of actions to perform based on the postfix expression.
DataValueType
This is used to tell what kind of data to push onto the RPN calculator.
int lastPushToCubeCameras(QVector< Cube * > &inCubes)
Creates internal camera for the last pushed cube data.
IO Handler for Isis Cubes.
int cubeIndex()
Accesses the cube index of the DataValue.
@ PushNextData
The calculation requires input data.
@ Band
Current band number.
@ EmacData
Center emission camera data.
void enableLonBuffer()
Enables the longitude buffer for use.
QVector< double > * m_phacBuffer
Center phase angle buffer.
@ CubeData
A brick of cube data.
@ PhaData
Phase camera data.
Calculations
This is used to define the overall action to perform in RunCalculations(..).
This class is used to define what kind of data is being pushed onto the cube calculator.
~CameraBuffers()
Destroys the CameraBuffers.
QVector< DataValue > * m_dataDefinitions
This defines what kind of data RunCalculations(...) will push onto the calculator.
DataValueType m_type
Type of data stored.
This is free and unencumbered software released into the public domain.
double m_constantValue
Stored constant value.
@ EmaData
Emission camera data.
void Clear()
This method completely resets the calculator.
QVector< double > * m_resBuffer
Resolution buffer.
QVector< double > * m_emacBuffer
Center emission angle buffer.
@ LatData
Latitude camera data.
QVector< double > * m_latBuffer
Latitude buffer.
QVector< void(Calculator::*)(void)> * m_methods
This stores the addresses to the methods RunCalculations(...) will call.
This is free and unencumbered software released into the public domain.
void enableResBuffer()
Enables the resolution buffer for use.
This class is used to manage buffers for calculating camera related information, such as angles,...
QVector< Calculations > * m_calculations
This is what RunCalculations(...) will loop over.
DataValue()
Constructs a default DataValue.