Struct lyon::tessellation::math::TypedPoint2D
[−]
[src]
pub struct TypedPoint2D<T, U> { pub x: T, pub y: T, // some fields omitted }
A 2d Point tagged with a unit.
Fields
x: T
y: T
Methods
impl<T, U> TypedPoint2D<T, U> where T: Copy + Zero
fn zero() -> TypedPoint2D<T, U>
Constructor, setting all components to zero.
fn to_3d(&self) -> TypedPoint3D<T, U>
Convert into a 3d point.
impl<T, U> TypedPoint2D<T, U> where T: Copy
fn new(x: T, y: T) -> TypedPoint2D<T, U>
Constructor taking scalar values directly.
fn from_lengths(x: Length<T, U>, y: Length<T, U>) -> TypedPoint2D<T, U>
Constructor taking properly typed Lengths instead of scalar values.
fn x_typed(&self) -> Length<T, U>
Returns self.x as a Length carrying the unit.
fn y_typed(&self) -> Length<T, U>
Returns self.y as a Length carrying the unit.
fn to_untyped(&self) -> TypedPoint2D<T, UnknownUnit>
Drop the units, preserving only the numeric value.
fn from_untyped(p: &TypedPoint2D<T, UnknownUnit>) -> TypedPoint2D<T, U>
Tag a unitless value with units.
fn to_array(&self) -> [T; 2]
impl<T, U> TypedPoint2D<T, U> where T: Mul<T, Output=T> + Add<T, Output=T> + Sub<T, Output=T> + Copy
fn dot(self, other: TypedPoint2D<T, U>) -> T
Dot product.
fn cross(self, other: TypedPoint2D<T, U>) -> T
Returns the norm of the cross product [self.x, self.y, 0] x [other.x, other.y, 0]..
impl<T, U> TypedPoint2D<T, U> where T: Copy + Add<T, Output=T>
fn add_size(&self, other: &TypedSize2D<T, U>) -> TypedPoint2D<T, U>
impl<T, U> TypedPoint2D<T, U> where T: Float
fn min(self, other: TypedPoint2D<T, U>) -> TypedPoint2D<T, U>
fn max(self, other: TypedPoint2D<T, U>) -> TypedPoint2D<T, U>
impl<T, U> TypedPoint2D<T, U> where T: Round
fn round(&self) -> TypedPoint2D<T, U>
Rounds each component to the nearest integer value.
This behavior is preserved for negative values (unlike the basic cast). For example { -0.1, -0.8 }.round() == { 0.0, -1.0 }
impl<T, U> TypedPoint2D<T, U> where T: Ceil
fn ceil(&self) -> TypedPoint2D<T, U>
Rounds each component to the smallest integer equal or greater than the orginal value.
This behavior is preserved for negative values (unlike the basic cast). For example { -0.1, -0.8 }.ceil() == { 0.0, 0.0 }.
impl<T, U> TypedPoint2D<T, U> where T: Floor
fn floor(&self) -> TypedPoint2D<T, U>
Rounds each component to the biggest integer equal or lower than the orginal value.
This behavior is preserved for negative values (unlike the basic cast). For example { -0.1, -0.8 }.floor() == { -1.0, -1.0 }.
impl<T, U> TypedPoint2D<T, U> where T: Copy + NumCast
fn cast<NewT>(&self) -> Option<TypedPoint2D<NewT, U>> where NewT: Copy + NumCast
Cast from one numeric representation to another, preserving the units.
When casting from floating point to integer coordinates, the decimals are truncated as one would expect from a simple cast, but this behavior does not always make sense geometrically. Consider using round(), ceil or floor() before casting.
fn to_f32(&self) -> TypedPoint2D<f32, U>
Cast into an f32 vector.
fn to_uint(&self) -> TypedPoint2D<usize, U>
Cast into an usize point, truncating decimals if any.
When casting from floating point vectors, it is worth considering whether to round(), ceil() or floor() before the cast in order to obtain the desired conversion behavior.
fn to_i32(&self) -> TypedPoint2D<i32, U>
Cast into an i32 point, truncating decimals if any.
When casting from floating point vectors, it is worth considering whether to round(), ceil() or floor() before the cast in order to obtain the desired conversion behavior.
fn to_i64(&self) -> TypedPoint2D<i64, U>
Cast into an i64 point, truncating decimals if any.
When casting from floating point vectors, it is worth considering whether to round(), ceil() or floor() before the cast in order to obtain the desired conversion behavior.
Trait Implementations
impl<T, U> Eq for TypedPoint2D<T, U> where T: Eq
impl<T, U> Deserialize for TypedPoint2D<T, U> where T: Deserialize
fn deserialize<D>(deserializer: &mut D) -> Result<TypedPoint2D<T, U>, D::Error> where D: Deserializer
impl<T, U> HeapSizeOf for TypedPoint2D<T, U> where T: HeapSizeOf
fn heap_size_of_children(&self) -> usize
impl<T, U> Sub<TypedPoint2D<T, U>> for TypedPoint2D<T, U> where T: Copy + Sub<T, Output=T>
type Output = TypedPoint2D<T, U>
fn sub(self, other: TypedPoint2D<T, U>) -> TypedPoint2D<T, U>
impl<T, U> ApproxEq<TypedPoint2D<T, U>> for TypedPoint2D<T, U> where T: Copy + ApproxEq<T>
fn approx_epsilon() -> TypedPoint2D<T, U>
fn approx_eq(&self, other: &TypedPoint2D<T, U>) -> bool
fn approx_eq_eps(&self,
other: &TypedPoint2D<T, U>,
eps: &TypedPoint2D<T, U>)
-> bool
other: &TypedPoint2D<T, U>,
eps: &TypedPoint2D<T, U>)
-> bool
impl<T, U> Clone for TypedPoint2D<T, U> where T: Clone
fn clone(&self) -> TypedPoint2D<T, U>
impl<T, U> Hash for TypedPoint2D<T, U> where T: Hash
impl<T, U> Mul<T> for TypedPoint2D<T, U> where T: Copy + Mul<T, Output=T>
type Output = TypedPoint2D<T, U>
fn mul(self, scale: T) -> TypedPoint2D<T, U>
impl<T, U1, U2> Mul<ScaleFactor<T, U1, U2>> for TypedPoint2D<T, U1> where T: Copy + Mul<T, Output=T>
type Output = TypedPoint2D<T, U2>
fn mul(self, scale: ScaleFactor<T, U1, U2>) -> TypedPoint2D<T, U2>
impl<T, U> Copy for TypedPoint2D<T, U> where T: Copy
impl<T, U> Add<TypedPoint2D<T, U>> for TypedPoint2D<T, U> where T: Copy + Add<T, Output=T>
type Output = TypedPoint2D<T, U>
fn add(self, other: TypedPoint2D<T, U>) -> TypedPoint2D<T, U>
impl<T, U> Add<TypedSize2D<T, U>> for TypedPoint2D<T, U> where T: Copy + Add<T, Output=T>
type Output = TypedPoint2D<T, U>
fn add(self, other: TypedSize2D<T, U>) -> TypedPoint2D<T, U>
impl<T, U> PartialEq<TypedPoint2D<T, U>> for TypedPoint2D<T, U> where T: PartialEq<T>
fn eq(&self, other: &TypedPoint2D<T, U>) -> bool
impl<T, U> Decodable for TypedPoint2D<T, U> where T: Decodable, U: Decodable
fn decode<__DTU>(__arg_0: &mut __DTU)
-> Result<TypedPoint2D<T, U>, __DTU::Error> where __DTU: Decoder
-> Result<TypedPoint2D<T, U>, __DTU::Error> where __DTU: Decoder
impl<T, U> Debug for TypedPoint2D<T, U> where T: Debug
impl<T, U> Display for TypedPoint2D<T, U> where T: Display
impl<T, U> Serialize for TypedPoint2D<T, U> where T: Serialize
fn serialize<S>(&self, serializer: &mut S) -> Result<(), S::Error> where S: Serializer
impl<T, U> Encodable for TypedPoint2D<T, U> where T: Encodable, U: Encodable
impl<T, U> Div<T> for TypedPoint2D<T, U> where T: Copy + Div<T, Output=T>
type Output = TypedPoint2D<T, U>
fn div(self, scale: T) -> TypedPoint2D<T, U>
impl<T, U1, U2> Div<ScaleFactor<T, U1, U2>> for TypedPoint2D<T, U2> where T: Copy + Div<T, Output=T>
type Output = TypedPoint2D<T, U1>
fn div(self, scale: ScaleFactor<T, U1, U2>) -> TypedPoint2D<T, U1>
impl<T, U> Neg for TypedPoint2D<T, U> where T: Copy + Neg<Output=T>
type Output = TypedPoint2D<T, U>
fn neg(self) -> TypedPoint2D<T, U>
impl VertexData for TypedPoint2D<f32, UnknownUnit>
fn interpolate(a: &TypedPoint2D<f32, UnknownUnit>,
b: &TypedPoint2D<f32, UnknownUnit>,
c: &TypedPoint2D<f32, UnknownUnit>,
wa: f32,
wb: f32,
wc: f32)
-> TypedPoint2D<f32, UnknownUnit>
b: &TypedPoint2D<f32, UnknownUnit>,
c: &TypedPoint2D<f32, UnknownUnit>,
wa: f32,
wb: f32,
wc: f32)
-> TypedPoint2D<f32, UnknownUnit>