no need to specialize set_fovy
This commit is contained in:
parent
0634a0a74e
commit
900f466e43
|
@ -254,6 +254,15 @@ impl<S: System, N: RealField> Perspective3<S, N> {
|
||||||
);
|
);
|
||||||
self.matrix[(0, 0)] = self.matrix[(1, 1)] / aspect;
|
self.matrix[(0, 0)] = self.matrix[(1, 1)] / aspect;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Updates this perspective with a new y field of view of the view frustum.
|
||||||
|
#[inline]
|
||||||
|
pub fn set_fovy(&mut self, fovy: N) {
|
||||||
|
let old_m22 = self.matrix[(1, 1)];
|
||||||
|
let f = N::one() / (fovy / crate::convert(2.0)).tan();
|
||||||
|
self.matrix[(1, 1)] = f;
|
||||||
|
self.matrix[(0, 0)] *= f / old_m22;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// OpenGL specialization
|
// OpenGL specialization
|
||||||
|
@ -284,13 +293,6 @@ impl<N: RealField> Perspective3<OpenGL, N> {
|
||||||
|
|
||||||
res
|
res
|
||||||
}
|
}
|
||||||
/// Updates this perspective with a new y field of view of the view frustum.
|
|
||||||
#[inline]
|
|
||||||
pub fn set_fovy(&mut self, fovy: N) {
|
|
||||||
let old_m22 = self.matrix[(1, 1)];
|
|
||||||
self.matrix[(1, 1)] = N::one() / (fovy / crate::convert(2.0)).tan();
|
|
||||||
self.matrix[(0, 0)] = self.matrix[(0, 0)] * (self.matrix[(1, 1)] / old_m22);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Updates this perspective matrix with a new near plane offset of the view frustum.
|
/// Updates this perspective matrix with a new near plane offset of the view frustum.
|
||||||
/// Implementation note: set_znear() must be specialized because it calls other specialized functions.
|
/// Implementation note: set_znear() must be specialized because it calls other specialized functions.
|
||||||
|
@ -343,15 +345,6 @@ impl<N: RealField> Perspective3<Vulkan, N> {
|
||||||
res
|
res
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Updates this perspective with a new y field of view of the view frustum.
|
|
||||||
#[inline]
|
|
||||||
pub fn set_fovy(&mut self, fovy: N) {
|
|
||||||
let old_m22 = self.matrix[(1, 1)];
|
|
||||||
let f = N::one() / (fovy / crate::convert(2.0)).tan();
|
|
||||||
self.matrix[(1, 1)] = -f;
|
|
||||||
self.matrix[(0, 0)] *= f / old_m22;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Updates this perspective matrix with a new near plane offset of the view frustum.
|
/// Updates this perspective matrix with a new near plane offset of the view frustum.
|
||||||
/// Implementation note: set_znear() must be specialized because it calls other specialized functions.
|
/// Implementation note: set_znear() must be specialized because it calls other specialized functions.
|
||||||
#[inline]
|
#[inline]
|
||||||
|
@ -371,8 +364,8 @@ impl<N: RealField> Perspective3<Vulkan, N> {
|
||||||
/// Updates this perspective matrix with new near and far plane offsets of the view frustum.
|
/// Updates this perspective matrix with new near and far plane offsets of the view frustum.
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn set_znear_and_zfar(&mut self, znear: N, zfar: N) {
|
pub fn set_znear_and_zfar(&mut self, znear: N, zfar: N) {
|
||||||
self.matrix[(2, 2)] = -zfar / (zfar - znear);
|
self.matrix[(2, 2)] = zfar / (znear - zfar);
|
||||||
self.matrix[(2, 3)] = -(zfar * znear) / (zfar - znear);
|
self.matrix[(2, 3)] = (zfar * znear) / (znear - zfar);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue