Horizontal and vertical field of view (FOV) halves, allowing a non-centered projection.
More...
#include <fov_hv_halves.hpp>
|
| static FovHVHalves | byFovyRadianAndAspect (const float verticalFov, const float aspect) noexcept |
| | Returns a symmetrical centered FovHVHalves instance in inTangents, using:
|
| |
| static FovHVHalves | byFovyRadianAndAspect (const float verticalFov, const float vertCenterFromTop, const float aspect, const float horizCenterFromLeft) noexcept |
| | Returns a custom symmetry FovHVHalves instance inTangents, via computing the horizontalFov using:
|
| |
| static FovHVHalves | byRadians (const float horizontalFov, const float horizCenterFromLeft, const float verticalFov, const float vertCenterFromTop) noexcept |
| | Returns a custom symmetry FovHVHalves instance inTangents, using:
|
| |
| static FovHVHalves | byRadians (const float horizontalFov, const float verticalFov) noexcept |
| | Returns a symmetrical centered FovHVHalves instance in inTangents, using:
|
| |
|
| float | bottom |
| | Half vertical FOV from center to bottom, either in inTangents or radians.
|
| |
| bool | inTangents |
| | If true, values are in tangent, otherwise radians.
|
| |
| float | left |
| | Half horizontal FOV from center to left, either in inTangents or radians.
|
| |
| float | right |
| | Half horizontal FOV from center to right, either in inTangents or radians.
|
| |
| float | top |
| | Half vertical FOV from center to top, either in inTangents or radians.
|
| |
Horizontal and vertical field of view (FOV) halves, allowing a non-centered projection.
The values might be either in tangent or radians.
Definition at line 35 of file fov_hv_halves.hpp.
◆ FovHVHalves() [1/3]
| jau::math::FovHVHalves::FovHVHalves |
( |
const float | left_, |
|
|
const float | right_, |
|
|
const float | top_, |
|
|
const float | bottom_, |
|
|
const bool | inTangents_ ) |
|
inlineconstexprnoexcept |
Constructor for one FovHVHalves instance.
It is recommended to pass and store values in tangent if used for perspective FOV calculations, since it will avoid conversion to tangent later on.
- Parameters
-
| left_ | half horizontal FOV, left side, in tangent or radians |
| right_ | half horizontal FOV, right side, in tangent or radians |
| top_ | half vertical FOV, top side, in tangent or radians |
| bottom_ | half vertical FOV, bottom side, in tangent or radians |
| inTangents_ | if true, values are in tangent, otherwise radians |
Definition at line 60 of file fov_hv_halves.hpp.
◆ FovHVHalves() [2/3]
| jau::math::FovHVHalves::FovHVHalves |
( |
const FovHVHalves & | o | ) |
|
|
constexprdefaultnoexcept |
◆ FovHVHalves() [3/3]
| jau::math::FovHVHalves::FovHVHalves |
( |
FovHVHalves && | o | ) |
|
|
constexprdefaultnoexcept |
◆ operator=() [1/2]
◆ operator=() [2/2]
◆ byRadians() [1/2]
| static FovHVHalves jau::math::FovHVHalves::byRadians |
( |
const float | horizontalFov, |
|
|
const float | verticalFov ) |
|
inlinestaticnoexcept |
Returns a symmetrical centered FovHVHalves instance in inTangents, using:
halfHorizFovTan = tan( horizontalFov / 2f );
halfVertFovTan = tan( verticalFov / 2f );
- Parameters
-
| horizontalFov | whole horizontal FOV in radians |
| verticalFov | whole vertical FOV in radians |
Definition at line 77 of file fov_hv_halves.hpp.
◆ byFovyRadianAndAspect() [1/2]
| static FovHVHalves jau::math::FovHVHalves::byFovyRadianAndAspect |
( |
const float | verticalFov, |
|
|
const float | aspect ) |
|
inlinestaticnoexcept |
Returns a symmetrical centered FovHVHalves instance in inTangents, using:
top = bottom = tan( verticalFov / 2f );
left = right = aspect * top;
- Parameters
-
| verticalFov | vertical FOV in radians |
| aspect | aspect ration width / height |
Definition at line 93 of file fov_hv_halves.hpp.
◆ byRadians() [2/2]
| static FovHVHalves jau::math::FovHVHalves::byRadians |
( |
const float | horizontalFov, |
|
|
const float | horizCenterFromLeft, |
|
|
const float | verticalFov, |
|
|
const float | vertCenterFromTop ) |
|
inlinestaticnoexcept |
Returns a custom symmetry FovHVHalves instance inTangents, using:
left = tan( horizontalFov * horizCenterFromLeft )
right = tan( horizontalFov * ( 1f - horizCenterFromLeft ) )
top = tan( verticalFov * vertCenterFromTop )
bottom = tan( verticalFov * (1f - vertCenterFromTop ) )
- Parameters
-
| horizontalFov | whole horizontal FOV in radians |
| horizCenterFromLeft | horizontal center from left in [0..1] |
| verticalFov | whole vertical FOV in radians |
| vertCenterFromTop | vertical center from top in [0..1] |
Definition at line 113 of file fov_hv_halves.hpp.
◆ byFovyRadianAndAspect() [2/2]
| static FovHVHalves jau::math::FovHVHalves::byFovyRadianAndAspect |
( |
const float | verticalFov, |
|
|
const float | vertCenterFromTop, |
|
|
const float | aspect, |
|
|
const float | horizCenterFromLeft ) |
|
inlinestaticnoexcept |
Returns a custom symmetry FovHVHalves instance inTangents, via computing the horizontalFov using:
halfVertFovTan = tan( verticalFov / 2f );
halfHorizFovTan = aspect * halfVertFovTan;
horizontalFov = atan( halfHorizFovTan ) * 2f;
return byRadians(horizontalFov, horizCenterFromLeft, verticalFov, vertCenterFromTop)
- Parameters
-
| verticalFov | whole vertical FOV in radians |
| vertCenterFromTop | vertical center from top in [0..1] |
| aspect | aspect ration width / height |
| horizCenterFromLeft | horizontal center from left in [0..1] |
Definition at line 136 of file fov_hv_halves.hpp.
◆ toTangents()
| FovHVHalves jau::math::FovHVHalves::toTangents |
( |
| ) |
const |
|
inlinenoexcept |
Returns this instance in tangent values.
If this instance is inTangents already, method returns a copy of this instance, otherwise a newly created instance w/ converted values to tangent.
Definition at line 151 of file fov_hv_halves.hpp.
◆ horzFov()
| float jau::math::FovHVHalves::horzFov |
( |
| ) |
const |
|
inlinenoexcept |
◆ vertFov()
| float jau::math::FovHVHalves::vertFov |
( |
| ) |
const |
|
inlinenoexcept |
◆ toString()
| std::string jau::math::FovHVHalves::toString |
( |
| ) |
const |
|
inlinenoexcept |
◆ toStringInDegrees()
| std::string jau::math::FovHVHalves::toStringInDegrees |
( |
| ) |
const |
|
inlinenoexcept |
◆ left
| float jau::math::FovHVHalves::left |
◆ right
| float jau::math::FovHVHalves::right |
◆ top
| float jau::math::FovHVHalves::top |
◆ bottom
| float jau::math::FovHVHalves::bottom |
◆ inTangents
| bool jau::math::FovHVHalves::inTangents |
If true, values are in tangent, otherwise radians.
Definition at line 46 of file fov_hv_halves.hpp.
The documentation for this class was generated from the following file: