pub struct GlineFrustum {
pub vd0: f32,
pub vd1: f32,
pub vz0: f32,
pub vx1: f32,
pub vy1: f32,
pub vz1: f32,
pub gixy: [i32; 2],
pub gpz: [i32; 2],
pub gdz: [i32; 2],
}Expand description
Per-scanline frustum data — what the grouscan ray-walker
consumes (R4.3c+). Values match voxlap’s globals one-to-one.
Fields§
§vd0: f32Left ray’s projected world (x, y). Voxlap’s vd0 then
rescales it to ground-plane principal-axis units; this struct
holds the rescaled value.
vd1: f32Magnitude of the right ray’s ground-plane vector
(sqrt(vx1² + vy1²)). Voxlap’s vd1.
vz0: f32Left ray’s projected world z.
vx1: f32Right ray’s projected world (x, y, z).
vy1: f32§vz1: f32§gixy: [i32; 2]Voxel-column step in the ray’s direction.
gixy[0] = ±1 (x step), gixy[1] = ±vsid (y step).
gpz: [i32; 2]Distance to next voxel-grid line in PREC-fixed-point.
Lane with smaller value is the next-to-cross.
gdz: [i32; 2]Per-column-step delta added to gpz after a column advance.
Trait Implementations§
Source§impl Clone for GlineFrustum
impl Clone for GlineFrustum
Source§fn clone(&self) -> GlineFrustum
fn clone(&self) -> GlineFrustum
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for GlineFrustum
impl Debug for GlineFrustum
impl Copy for GlineFrustum
Auto Trait Implementations§
impl Freeze for GlineFrustum
impl RefUnwindSafe for GlineFrustum
impl Send for GlineFrustum
impl Sync for GlineFrustum
impl Unpin for GlineFrustum
impl UnsafeUnpin for GlineFrustum
impl UnwindSafe for GlineFrustum
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more