Stellarium 0.11.3
Home · All Namespaces · All Classes · Functions · Coding Style · Scripting · Plugins · File Structure

StelProjectorFisheye Class Reference

List of all members.

Public Member Functions

 StelProjectorFisheye (ModelViewTranformP func)
virtual QString getNameI18 () const
virtual QString getDescriptionI18 () const
virtual float getMaxFov () const
bool forward (Vec3f &v) const
bool backward (Vec3d &v) const
float fovToViewScalingFactor (float fov) const
float viewScalingFactorToFov (float vsf) const
float deltaZoom (float fov) const

Protected Member Functions

virtual bool hasDiscontinuity () const
virtual bool intersectViewportDiscontinuityInternal (const Vec3d &, const Vec3d &) const
virtual bool intersectViewportDiscontinuityInternal (const Vec3d &, double) const

Member Function Documentation

bool StelProjectorFisheye::forward ( Vec3f v  )  const [inline, 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.

virtual bool StelProjectorFisheye::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.

Generated on Thu May 31 10:37:22 2012 for Stellarium by  doxygen 1.6.3