Enum rgeometry::Orientation [−][src]
pub enum Orientation { CounterClockWise, ClockWise, CoLinear, }
Variants
Implementations
Determine the direction you have to turn if you walk from p1
to p2
to p3
.
For fixed-precision types (i8,i16,i32,i64,etc), this function is guaranteed to work for any input and never cause any arithmetic overflows.
Polymorphism
This function works with both Points and Vectors. You should prefer to use Point::orient when possible.
Examples
let p1 = Point::new([ 0, 0 ]); let p2 = Point::new([ 0, 1 ]); // One unit above p1. // (0,0) -> (0,1) -> (0,2) == Orientation::CoLinear assert!(Orientation::new(&p1, &p2, &Point::new([ 0, 2 ])).is_colinear()); // (0,0) -> (0,1) -> (-1,2) == Orientation::CounterClockWise assert!(Orientation::new(&p1, &p2, &Point::new([ -1, 2 ])).is_ccw()); // (0,0) -> (0,1) -> (1,2) == Orientation::ClockWise assert!(Orientation::new(&p1, &p2, &Point::new([ 1, 2 ])).is_cw());Run
Locate p2
in relation to the line determined by the point p1
and the direction
vector.
For fixed-precision types (i8,i16,i32,i64,etc), this function is guaranteed to work for any input and never cause any arithmetic overflows.
This function is identical to Orientation::new
(p1, p1+v, p2)
but will never
cause arithmetic overflows even if p+v
would overflow.
Examples
let v = Vector([ 1, 1 ]); // Vector pointing to the top-right corner. let p1 = Point::new([ 5, 5 ]); assert!(Orientation::along_vector(&p1, &v, &Point::new([ 6, 6 ])).is_colinear()); assert!(Orientation::along_vector(&p1, &v, &Point::new([ 7, 8 ])).is_ccw()); assert!(Orientation::along_vector(&p1, &v, &Point::new([ 8, 7 ])).is_cw());Run
Trait Implementations
This method returns an ordering between self
and other
values if one exists. Read more
This method tests less than (for self
and other
) and is used by the <
operator. Read more
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
Auto Trait Implementations
impl RefUnwindSafe for Orientation
impl Send for Orientation
impl Sync for Orientation
impl Unpin for Orientation
impl UnwindSafe for Orientation
Blanket Implementations
Mutably borrows from an owned value. Read more
pub fn vzip(self) -> V