pub struct ExactPoint3 {
pub x_num: [f64; 512],
pub x_num_len: usize,
pub y_num: [f64; 512],
pub y_num_len: usize,
pub z_num: [f64; 512],
pub z_num_len: usize,
pub den: [f64; 128],
pub den_len: usize,
}Expand description
An exact point in 3-D, stored as a rational vector with a shared
denominator: x = x_num/den, y = y_num/den, z = z_num/den, den > 0.
Every field is a stack-allocated expansion (zero-heap). The denominator is normalized to be strictly positive by construction, which makes sign reasoning in predicates a matter of cross-multiplication with no case split.
Fields§
§x_num: [f64; 512]Numerator of the x-coordinate.
x_num_len: usize§y_num: [f64; 512]Numerator of the y-coordinate.
y_num_len: usize§z_num: [f64; 512]Numerator of the z-coordinate.
z_num_len: usize§den: [f64; 128]Shared denominator. Always strictly positive after construction.
den_len: usizeImplementations§
Source§impl ExactPoint3
impl ExactPoint3
Sourcepub fn from_point3(p: Point3) -> Self
pub fn from_point3(p: Point3) -> Self
Create an exact point from a plain f64 point (denominator = 1).
Sourcepub fn to_point3(&self) -> Point3
pub fn to_point3(&self) -> Point3
Convert to a rounded Point3 (for comparison with the filtered path).
This does round — use orient_3d_exact_3 for exact predicates.
Trait Implementations§
Source§impl Clone for ExactPoint3
impl Clone for ExactPoint3
Source§fn clone(&self) -> ExactPoint3
fn clone(&self) -> ExactPoint3
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 moreAuto Trait Implementations§
impl Freeze for ExactPoint3
impl RefUnwindSafe for ExactPoint3
impl Send for ExactPoint3
impl Sync for ExactPoint3
impl Unpin for ExactPoint3
impl UnsafeUnpin for ExactPoint3
impl UnwindSafe for ExactPoint3
Blanket Implementations§
§impl<S, A> Aggregate<Result<S, Error>> for Awhere
A: Aggregate<S>,
impl<S, A> Aggregate<Result<S, Error>> for Awhere
A: Aggregate<S>,
Aggregate shares in an MPC protocol.
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,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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