pub struct Vector2<T> {
pub x: T,
pub y: T,
}
Expand description
Generic type for any 2D vector.
Fields§
§x: T
The x coordinate of this vector.
y: T
The y coordinate of this vector.
Trait Implementations§
Source§impl<T> Add<Vector2<T>> for Point2<T>where
T: Number,
impl<T> Add<Vector2<T>> for Point2<T>where
T: Number,
Source§fn add(self, rhs: Vector2<T>) -> Self::Output
fn add(self, rhs: Vector2<T>) -> Self::Output
Implement +
for Point2
§Examples
use pbrt::core::geometry::Point2i;
use pbrt::core::geometry::Vector2i;
let p1: Point2i = [4, 5].into();
let v1: Vector2i = [2, 3].into();
assert_eq!(p1 + v1, Point2i::from([6, 8]));
use pbrt::core::geometry::Point2f;
use pbrt::core::geometry::Vector2f;
let p1: Point2f = [4., 5.].into();
let v1: Vector2f = [2., 3.].into();
assert_eq!(p1 + v1, Point2f::from([6., 8.]));
Source§impl<T> Sub<Vector2<T>> for Point2<T>where
T: Number,
impl<T> Sub<Vector2<T>> for Point2<T>where
T: Number,
Source§fn sub(self, rhs: Vector2<T>) -> Self::Output
fn sub(self, rhs: Vector2<T>) -> Self::Output
Implement -
for Point2
Mathematically a point minus a point is a vector, and a point minus a vector is a point.
§Examples
use pbrt::core::geometry::Point2i;
use pbrt::core::geometry::Vector2i;
let p1: Point2i = [4, 5].into();
let v1: Vector2i = [2, 3].into();
assert_eq!(p1 - v1, Point2i::from([2, 2]));
use pbrt::core::geometry::Point2f;
use pbrt::core::geometry::Vector2f;
let p1: Point2f = [4., 5.].into();
let v1: Vector2f = [2., 3.].into();
assert_eq!(p1 - v1, Point2f::from([2., 2.]));
impl<T: Copy> Copy for Vector2<T>
impl<T> StructuralPartialEq for Vector2<T>
Auto Trait Implementations§
impl<T> Freeze for Vector2<T>where
T: Freeze,
impl<T> RefUnwindSafe for Vector2<T>where
T: RefUnwindSafe,
impl<T> Send for Vector2<T>where
T: Send,
impl<T> Sync for Vector2<T>where
T: Sync,
impl<T> Unpin for Vector2<T>where
T: Unpin,
impl<T> UnwindSafe for Vector2<T>where
T: UnwindSafe,
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