28package com.jogamp.math;
43 public final float top;
79 final float halfHorizFovTan =
FloatUtil.
tan(horizontalFov/2f);
80 final float halfVertFovTan =
FloatUtil.
tan(verticalFov/2f);
81 return new FovHVHalves(halfHorizFovTan, halfHorizFovTan, halfVertFovTan, halfVertFovTan,
true);
95 final float halfVertFovTan =
FloatUtil.
tan(verticalFov/2f);
96 final float halfHorizFovTan = aspect * halfVertFovTan;
97 return new FovHVHalves(halfHorizFovTan, halfHorizFovTan,
98 halfVertFovTan, halfVertFovTan,
true);
115 final float verticalFov,
final float vertCenterFromTop) {
117 FloatUtil.
tan(horizontalFov * ( 1f - horizCenterFromLeft )),
138 final float aspect,
final float horizCenterFromLeft) {
139 final float halfVertFovTan =
FloatUtil.
tan(verticalFov/2f);
140 final float halfHorizFovTan = aspect * halfVertFovTan;
141 final float horizontalFov =
FloatUtil.
atan(halfHorizFovTan) * 2f;
142 return byRadians(horizontalFov, horizCenterFromLeft, verticalFov, vertCenterFromTop);
171 final String storedAs =
inTangents?
"tangents":
"radians";
177 return "FovHVH[degrees: "+aleft*f+
" l, "+aright*f+
" r, "+atop*f+
" t, "+abottom*f+
" b, stored-as: "+storedAs+
"]";
179 return "FovHVH[degrees: "+
left*f+
" l, "+
right*f+
" r, "+
top*f+
" t, "+
bottom*f+
" b, stored-as: "+storedAs+
"]";
Basic Float math utility functions.
static float atan(final float a)
static final float PI
The value PI, i.e.
static float tan(final float a)
Horizontal and vertical field of view (FOV) halves, allowing a non-centered projection.
final float left
Half horizontal FOV from center to left, either in inTangents or radians.
static FovHVHalves byFovyRadianAndAspect(final float verticalFov, final float aspect)
Returns a symmetrical centered FovHVHalves instance in inTangents, using:
final String toStringInDegrees()
final float right
Half horizontal FOV from center to right, either in inTangents or radians.
final float horzFov()
Returns the full horizontal FOV, i.e.
final FovHVHalves toTangents()
Returns this instance in tangent values.
final boolean inTangents
If true, values are in tangent, otherwise radians.
final float top
Half vertical FOV from center to top, either in inTangents or radians.
final float vertFov()
Returns the full vertical FOV, i.e.
static FovHVHalves byRadians(final float horizontalFov, final float horizCenterFromLeft, final float verticalFov, final float vertCenterFromTop)
Returns a custom symmetry FovHVHalves instance inTangents, using:
static FovHVHalves byRadians(final float horizontalFov, final float verticalFov)
Returns a symmetrical centered FovHVHalves instance in inTangents, using:
FovHVHalves(final float left, final float right, final float top, final float bottom, final boolean inTangents)
Constructor for one FovHVHalves instance.
final float bottom
Half vertical FOV from center to bottom, either in inTangents or radians.
static FovHVHalves byFovyRadianAndAspect(final float verticalFov, final float vertCenterFromTop, final float aspect, final float horizCenterFromLeft)
Returns a custom symmetry FovHVHalves instance inTangents, via computing the horizontalFov using: