Class SoTransformProjection

All Implemented Interfaces:
SafeDisposable

public class SoTransformProjection extends SoProjection
Scale/recenter projection node. This property node is a specific SoProjection which applies a scale and recenter to a geometry.

The computation is done on the CPU before the transfer to OpenGL. The main purpose of this feature is to transform the vertex coordinates before sending them to OpenGL in order to avoid single precision issues, especially with the depth buffer.

Essentially this is a convenience node that automatically creates an SbTransformProjection and calls the setProjection() method for you.

The result of a bounding box action is the coordinates of the bounding box after the projection because we need this version of the bounding box for rendering/clipping.

See SoProjection for important limitations of projection nodes.

File format/default:

TransformProjection {

    parameters ""
    matrix identity
    isOn true
    floatParameters 1
    projTypeId 0

    scaleFactor 1.0
    centerPosition 0.0 0.0 0.0
}

See Also:
  • Field Details

    • scaleFactor

      public final SoSFFloat scaleFactor
      Scale factor applied to the geometry.
      Note: Each coordinate is multiplied by this value.
    • centerPosition

      public final SoSFVec3f centerPosition
      Translation applied to the geometry.
      Note: This value is subtracted from each coordinate.
  • Constructor Details

    • SoTransformProjection

      public SoTransformProjection()
      Constructor.