Home · All Namespaces · All Classes · Functions · Coding Style · Scripting · Plugins · File Structure
Public Member Functions | Protected Member Functions

StelProjector2d Class Reference

List of all members.

Public Member Functions

virtual QString getNameI18 () const
virtual QString getDescriptionI18 () const
virtual float getMaxFov () const
bool forward (Vec3f &win) 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
virtual void computeBoundingCap ()

Member Function Documentation

bool StelProjector2d::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.

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