Isis 3.0 Application Source Code Reference |
Home |
00001 #ifndef Stereo_h 00002 #define Stereo_h 00003 00004 /** 00005 * @file 00006 * $Revision: 1.1 $ 00007 * $Date: 2009/09/09 23:42:41 $ 00008 * 00009 * Unless noted otherwise, the portions of Isis written by the USGS are 00010 * public domain. See individual third-party library and package descriptions 00011 * for intellectual property information, user agreements, and related 00012 * information. 00013 * 00014 * Although Isis has been used by the USGS, no warranty, expressed or 00015 * implied, is made by the USGS as to the accuracy and functioning of such 00016 * software and related material nor shall the fact of distribution 00017 * constitute any such warranty, and no responsibility is assumed by the 00018 * USGS in connection therewith. 00019 * 00020 * For additional information, launch 00021 * $ISISROOT/doc//documents/Disclaimers/Disclaimers.html 00022 * in a browser or see the Privacy & Disclaimers page on the Isis website, 00023 * http://isis.astrogeology.usgs.gov, and the USGS privacy and disclaimers on 00024 * http://www.usgs.gov/privacy.html. 00025 */ 00026 00027 #include "Camera.h" 00028 00029 namespace Isis { 00030 00031 /** 00032 * @brief Provide stereo information/data for a point or relationship 00033 * 00034 * @author 2009-09-11 Kris Becker 00035 * 00036 * @internal 00037 */ 00038 class Stereo { 00039 public: 00040 00041 /** 00042 * @brief Construct a Stereo object 00043 */ 00044 Stereo () { } 00045 00046 /** Destructor for Stereo */ 00047 virtual ~Stereo() {} 00048 00049 static bool Elevation(Camera &cam1, Camera &cam2, double &radius, 00050 double &latitude, double &longitude, 00051 double &sepang, double &error); 00052 00053 static void Spherical(const double latitude, const double longitude, 00054 const double radius, double &x, double &y, 00055 double &z); 00056 00057 static void Rectangular(const double x, const double y, const double z, 00058 double &latitude, double &longitude, 00059 double &radius); 00060 00061 private: 00062 static std::vector<double> Array2StdVec(const double d[3]); 00063 static double *StdVec2Array(const std::vector<double> &v, double *d = 0); 00064 static void TargetToSpacecraft(Camera &camera, double TP[3]); 00065 static void TargetToSurface(Camera &camera, double TC[3]); 00066 00067 }; 00068 }; 00069 00070 #endif