Stellarium 0.11.4 | |||
Home · All Namespaces · All Classes · Functions · Coding Style · Scripting · Plugins · File Structure |
Public Member Functions | |
StelProjectorMercator (ModelViewTranformP func) | |
virtual QString | getNameI18 () const |
Get a human-readable name for this projection type. | |
virtual QString | getDescriptionI18 () const |
Get a human-readable short description for this projection type. | |
virtual float | getMaxFov () const |
Get the maximum FOV apperture in degree. | |
bool | forward (Vec3f &win) const |
Apply the transformation in the forward direction in place. | |
bool | backward (Vec3d &v) const |
Apply the transformation in the backward projection in place. | |
float | fovToViewScalingFactor (float fov) const |
Convert a Field Of View radius value in radians in ViewScalingFactor (used internally). | |
float | viewScalingFactorToFov (float vsf) const |
Convert a ViewScalingFactor value (used internally) in Field Of View radius in radians. | |
float | deltaZoom (float fov) const |
Return the small zoom increment to use at the given FOV for nice movements. | |
Protected Member Functions | |
virtual bool | hasDiscontinuity () const |
Return whether the projection presents discontinuities. Used for optimization. | |
virtual bool | intersectViewportDiscontinuityInternal (const Vec3d &p1, const Vec3d &p2) const |
Determine whether a great circle connection p1 and p2 intersects with a projection discontinuity. | |
virtual bool | intersectViewportDiscontinuityInternal (const Vec3d &capN, double capD) const |
Determine whether a cap intersects with a projection discontinuity. |
bool StelProjectorMercator::backward | ( | Vec3d & | v | ) | const [virtual] |
Apply the transformation in the backward projection in place.
Implements StelProjector.
float StelProjectorMercator::deltaZoom | ( | float | fov | ) | const [virtual] |
Return the small zoom increment to use at the given FOV for nice movements.
Implements StelProjector.
bool StelProjectorMercator::forward | ( | Vec3f & | v | ) | const [virtual] |
Apply the transformation in the forward direction in place.
After transformation v[2] will always contain the length of the original v: sqrt(v[0]*v[0]+v[1]*v[1]+v[2]*v[2]) regardless of the projection type. This makes it possible to implement depth buffer testing in a way independent of the projection type. I would like to return the squared length instead of the length because of performance reasons. But then far away objects are not textured any more, perhaps because of a depth buffer overflow although the depth test is disabled?
Implements StelProjector.
float StelProjectorMercator::fovToViewScalingFactor | ( | float | fov | ) | const [virtual] |
Convert a Field Of View radius value in radians in ViewScalingFactor (used internally).
Implements StelProjector.
virtual QString StelProjectorMercator::getDescriptionI18 | ( | ) | const [virtual] |
Get a human-readable short description for this projection type.
Reimplemented from StelProjector.
virtual float StelProjectorMercator::getMaxFov | ( | ) | const [inline, virtual] |
Get the maximum FOV apperture in degree.
Implements StelProjector.
virtual QString StelProjectorMercator::getNameI18 | ( | ) | const [virtual] |
Get a human-readable name for this projection type.
Implements StelProjector.
virtual bool StelProjectorMercator::hasDiscontinuity | ( | ) | const [inline, protected, virtual] |
Return whether the projection presents discontinuities. Used for optimization.
Implements StelProjector.
virtual bool StelProjectorMercator::intersectViewportDiscontinuityInternal | ( | const Vec3d & | capN, | |
double | capD | |||
) | const [inline, protected, virtual] |
Determine whether a cap intersects with a projection discontinuity.
Implements StelProjector.
virtual bool StelProjectorMercator::intersectViewportDiscontinuityInternal | ( | const Vec3d & | p1, | |
const Vec3d & | p2 | |||
) | const [inline, protected, virtual] |
Determine whether a great circle connection p1 and p2 intersects with a projection discontinuity.
For many projections without discontinuity, this should return always false, but for other like cylindrical projection it will return true if the line cuts the wrap-around line (i.e. at lon=180 if the observer look at lon=0).
Implements StelProjector.
float StelProjectorMercator::viewScalingFactorToFov | ( | float | vsf | ) | const [virtual] |
Convert a ViewScalingFactor value (used internally) in Field Of View radius in radians.
Implements StelProjector.