Select Git revision
UsgsAstroLsSensorModel.h
UsgsAstroLsSensorModel.h 44.73 KiB
//----------------------------------------------------------------------------
//
// UNCLASSIFIED
//
// Copyright © 1989-2017 BAE Systems Information and Electronic Systems Integration Inc.
// ALL RIGHTS RESERVED
// Use of this software product is governed by the terms of a license
// agreement. The license agreement is found in the installation directory.
//
// For support, please visit http://www.baesystems.com/gxp
//
// Description:
// The Astro Line Scanner sensor model implements the CSM 3.0.3 API.
// Since it supports a sensor used on non-Earth bodies (Moon, Mars), the
// ellipsoid is made settable based on the support data. This ellipsoid
// is reported using the methods in the SettableEllipsoid class from which
// this model inherits.
//
// Revision History:
// Date Name Description
// ----------- ------------ -----------------------------------------------
// 13-Nov-2015 BAE Systems Initial Implementation
// 16-OCT-2017 BAE Systems Update for CSM 3.0.3
//
//-----------------------------------------------------------------------------
#ifndef __USGS_ASTRO_LINE_SCANNER_SENSORMODEL_H
#define __USGS_ASTRO_LINE_SCANNER_SENSORMODEL_H
#include <RasterGM.h>
#include <SettableEllipsoid.h>
#include <CorrelationModel.h>
class UsgsAstroLsSensorModel : public csm::RasterGM, virtual public csm::SettableEllipsoid
{
public:
// Initializes the class from state data as formatted
// in a string by the toString() method
void setState(const std::string &state);
virtual void replaceModelState(const std::string& argState);
//> This method attempts to initialize the current model with the state
// given by argState. The argState argument can be a string previously
// retrieved from the getModelState method.
//
// If argState contains a valid state for the current model,
// the internal state of the model is updated.
//
// If the model cannot be updated to the given state, a csm::Error is
// thrown and the internal state of the model is undefined.
//
// If the argument state string is empty, the model remains unchanged.
//<
// This method checks to see if the model name is recognized
// in the input state string.
static std::string getModelNameFromModelState(
const std::string& model_state);
std::string constructStateFromIsd(const std::string imageSupportData, csm::WarningList *list) const;
// State data elements;
std::string m_imageIdentifier; // 1
std::string m_sensorType; // 2
int m_totalLines; // 3
int m_totalSamples; // 4
double m_offsetLines; // 5