#include <cmath>
#include <cstdlib>
using namespace std;
#include "Options.h"
#include "View.h"
#include "xpUtil.h"
#include "libplanet/Planet.h"
#include "libprojection/ProjectionBase.h"
bool
sphericalToPixel(const double lat, const double lon, const double rad,
double &X, double &Y, double &Z, Planet *planet,
View *view, ProjectionBase *projection)
{
bool returnVal = false;
if (view != NULL)
{
if (planet == NULL)
{
RADecToXYZ(lon, lat, X, Y, Z);
}
else
{
planet->PlanetographicToXYZ(X, Y, Z, lat, lon, rad);
}
Options *options = Options::getInstance();
view->XYZToPixel(X, Y, Z, X, Y, Z);
X += options->CenterX();
Y += options->CenterY();
// true if the point is in front of us
returnVal = (Z > 0);
}
else if (projection != NULL)
{
returnVal = projection->sphericalToPixel(lon * planet->Flipped(),
lat, X, Y);
Z = 0;
}
else
{
xpExit("Both view and projection are NULL!\n", __FILE__, __LINE__);
}
return(returnVal);
}
syntax highlighted by Code2HTML, v. 0.9.1