Skip to content

OrthographicCamera

Represents a camera that uses orthographic projection.

In this projection mode, an object's size in the rendered image stays constant regardless of its distance from the camera. This can be useful for rendering 2D scenes and UI elements, amongst other things.

Although multiple cameras can be added to the scene graph and inherit transformations from their parent objects, only one camera can be active at a time. The active camera is managed by the application’s runtime object:

cpp
class MyApp : public vglx::Application {
public:
  auto Configure() -> void override {}

  auto Setup() -> void override {
    SetCamera(vglx::OrthographicCamera::Create({
      .left = 0.0f,
      .right = 1024.0f,
      .top = 0.0f,
      .bottom = 768.0f,
      .near = 0.1f,
      .far = 100.0f
    }));
  }

  auto Update(float delta) -> bool override {
    return true;
  }
}

INFO

Derives from Camera and inherits all public properties and methods.

Construction

Constructors


OrthographicCamera()

cpp
vglx::OrthographicCamera::OrthographicCamera(const Parameters &params)
ParameterDescription
paramsOrthographicCamera::Parameters

Constructs an OrthographicCamera object.

Factories preferred


OrthographicCamera::Create() std::shared_ptr<OrthographicCamera>

cpp
static std::shared_ptr< OrthographicCamera > vglx::OrthographicCamera::Create(const Parameters &params)
ParameterDescription
paramsOrthographicCamera::Parameters

Creates a shared pointer to OrthographicCamera object.

Types

OrthographicCamera::ResizePolicy scoped enum

Defines how the orthographic projection should adapt on window resize.

ValueDescription
PixelSpaceProjection matches framebuffer dimensions.
FixedVerticalVertical extent remains constant, horizontal adjusted.
FixedHorizontalHorizontal extent remains constant, vertical adjusted.

OrthographicCamera::Parameters struct

Parameters for constructing an OrthographicCamera object.

NameTypeDescription
bottomfloatBottom clipping plane.
farfloatFar clipping plane.
leftfloatLeft clipping plane.
nearfloatNear clipping plane.
rightfloatRight clipping plane.
topfloatTop clipping plane.

Properties

resize_policy ResizePolicy

cpp
ResizePolicy resize_policy { ResizePolicy::PixelSpace }

The current resize policy for this camera.

Functions

Resize() void virtual

cpp
void vglx::OrthographicCamera::Resize(int width, int height) override
ParameterDescription
widthViewport width in pixels.
heightViewport height in pixels.

Updates the projection transform to match the new viewport size.

Released under the MIT License.