Avara3D 0.2.0
C++ API reference
OrthographicCamera.h
1//
2// OrthographicCamera.h
3// avara3d
4//
5// Created by Morgan Davis on 10/22/23.
6// Copyright © 2026 Morgan K Davis. All rights reserved.
7//
8
9#ifndef AVARA3D_VISUAL_CAMERA_ORTHOGRAPHICCAMERA_H
10#define AVARA3D_VISUAL_CAMERA_ORTHOGRAPHICCAMERA_H
11
12#include <string>
13
14#include "a3d/Math.h"
15#include "a3d/visual/camera/Camera.h"
16
17namespace a3d {
18
20 class OrthographicCamera : public Camera {
21
22 public:
23 // [Public Lifecycle Functions]
24
27
29 OrthographicCamera(float zNear, float zFar, float ySize);
30
32 OrthographicCamera(const std::string& name, float zNear, float zFar, float ySize);
33
34 OrthographicCamera(const OrthographicCamera&) = default;
35 OrthographicCamera& operator=(const OrthographicCamera&) = default;
36
37 OrthographicCamera(OrthographicCamera&&) noexcept = default;
38 OrthographicCamera& operator=(OrthographicCamera&&) noexcept = default;
39
40 ~OrthographicCamera() override;
41
42 // [Public Member Functions]
43
45 float zNear() const;
46
48 void zNear(float zNear);
49
51 float zFar() const;
52
54 void zFar(float zFar);
55
57 float ySize() const;
58
60 void ySize(float ySize);
61
62 // [Camera Internal Member Functions]
63
64 math::mat4 projection(const math::uvec2& viewportSize) const override;
65
66 private:
67 // [Private Member Variables]
68
69 float _zNear;
70 float _zFar;
71 float _ySize;
72 };
73
74}
75
76#endif // AVARA3D_VISUAL_CAMERA_ORTHOGRAPHICCAMERA_H
Base class for camera projection models used by VisualWorld.
Definition: Camera.h:26
const std::optional< std::string > & name() const
Returns the optional camera name.
Camera using a centered orthographic projection with a fixed vertical size.
OrthographicCamera(const std::string &name, float zNear, float zFar, float ySize)
Creates a named orthographic camera with the supplied clipping distances and vertical size.
OrthographicCamera(float zNear, float zFar, float ySize)
Creates an unnamed orthographic camera with the supplied clipping distances and vertical size.
float zNear() const
Returns the near clipping distance.
OrthographicCamera()
Creates an unnamed camera with a 0.1 near plane, 1000 far plane, and vertical size of 2.
float ySize() const
Returns the vertical size of the projection in scene units.
float zFar() const
Returns the far clipping distance.