pub struct Triangle<T = f64>(pub Coord<T>, pub Coord<T>, pub Coord<T>)
where
T: CoordNum;Expand description
A bounded 2D area whose three vertices are defined by
Coords. The semantics and validity are that of
the equivalent Polygon; in addition, the three
vertices must not be collinear and they must be distinct.
§Notes
Irrespective of input order the resulting geometry has ccw order and its vertices are yielded in ccw order by iterators
Tuple Fields§
§0: Coord<T>1: Coord<T>2: Coord<T>Implementations§
Source§impl<T> Triangle<T>where
T: CoordNum,
impl<T> Triangle<T>where
T: CoordNum,
Sourcepub fn new(v1: Coord<T>, v2: Coord<T>, v3: Coord<T>) -> Triangle<T>
pub fn new(v1: Coord<T>, v2: Coord<T>, v3: Coord<T>) -> Triangle<T>
Create a new Triangle, enforcing default (counter clockwise) winding order.
If the vertices are given in clockwise order, they will be reversed. Degenerate triangles (collinear or identical vertices) are stored as-is.
Sourcepub fn unchecked_winding(
v1: Coord<T>,
v2: Coord<T>,
v3: Coord<T>,
) -> Triangle<T>
pub fn unchecked_winding( v1: Coord<T>, v2: Coord<T>, v3: Coord<T>, ) -> Triangle<T>
Create a Triangle without normalising the winding order.
Use this when the caller has already verified CCW winding, or when the calling code does not depend on a particular winding order (e.g. inside tight loops where the orientation check would be wasteful).
Unlike Triangle::new, vertices are stored in the order given.
pub fn to_array(&self) -> [Coord<T>; 3]
pub fn to_lines(&self) -> [Line<T>; 3]
Sourcepub fn to_polygon(self) -> Polygon<T>
pub fn to_polygon(self) -> Polygon<T>
Create a Polygon from the Triangle.
§Examples
use geo_types::{coord, Triangle, polygon};
// Input is CW
let triangle = Triangle::new(
coord! { x: 0., y: 0. },
coord! { x: 10., y: 20. },
coord! { x: 20., y: -10. },
);
// Output is CCW
assert_eq!(
triangle.to_polygon(),
polygon![
(x: 20., y: -10.),
(x: 10., y: 20.),
(x: 0., y: 0.),
(x: 20., y: -10.),
],
);Trait Implementations§
Source§impl<T> AbsDiffEq for Triangle<T>
impl<T> AbsDiffEq for Triangle<T>
Source§fn abs_diff_eq(
&self,
other: &Triangle<T>,
epsilon: <Triangle<T> as AbsDiffEq>::Epsilon,
) -> bool
fn abs_diff_eq( &self, other: &Triangle<T>, epsilon: <Triangle<T> as AbsDiffEq>::Epsilon, ) -> bool
Equality assertion with an absolute limit.
§Examples
use geo_types::{point, Triangle};
let a = Triangle::new((0.0, 0.0).into(), (10.0, 10.0).into(), (0.0, 5.0).into());
let b = Triangle::new((0.0, 0.0).into(), (10.01, 10.0).into(), (0.0, 5.0).into());
approx::abs_diff_eq!(a, b, epsilon=0.1);
approx::abs_diff_ne!(a, b, epsilon=0.001);Source§fn default_epsilon() -> <Triangle<T> as AbsDiffEq>::Epsilon
fn default_epsilon() -> <Triangle<T> as AbsDiffEq>::Epsilon
Source§fn abs_diff_ne(&self, other: &Rhs, epsilon: Self::Epsilon) -> bool
fn abs_diff_ne(&self, other: &Rhs, epsilon: Self::Epsilon) -> bool
AbsDiffEq::abs_diff_eq.Source§impl<T> Area<T> for Triangle<T>where
T: CoordFloat,
impl<T> Area<T> for Triangle<T>where
T: CoordFloat,
fn signed_area(&self) -> T
fn unsigned_area(&self) -> T
Source§impl<T> BoundingRect<T> for Triangle<T>where
T: CoordNum,
impl<T> BoundingRect<T> for Triangle<T>where
T: CoordNum,
Source§impl<T> Centroid for Triangle<T>where
T: GeoFloat,
impl<T> Centroid for Triangle<T>where
T: GeoFloat,
Source§impl<T> ChamberlainDuquetteArea<T> for Triangle<T>where
T: CoordFloat,
impl<T> ChamberlainDuquetteArea<T> for Triangle<T>where
T: CoordFloat,
fn chamberlain_duquette_signed_area(&self) -> T
fn chamberlain_duquette_unsigned_area(&self) -> T
Source§impl<F: GeoFloat> ClosestPoint<F> for Triangle<F>
impl<F: GeoFloat> ClosestPoint<F> for Triangle<F>
Source§fn closest_point(&self, p: &Point<F>) -> Closest<F>
fn closest_point(&self, p: &Point<F>) -> Closest<F>
self and p.Source§impl<T> Contains<GeometryCollection<T>> for Triangle<T>where
T: GeoFloat,
impl<T> Contains<GeometryCollection<T>> for Triangle<T>where
T: GeoFloat,
fn contains(&self, target: &GeometryCollection<T>) -> bool
Source§impl<T> Contains<LineString<T>> for Triangle<T>where
T: GeoFloat,
impl<T> Contains<LineString<T>> for Triangle<T>where
T: GeoFloat,
fn contains(&self, target: &LineString<T>) -> bool
Source§impl<T> Contains<MultiLineString<T>> for Triangle<T>where
T: GeoFloat,
impl<T> Contains<MultiLineString<T>> for Triangle<T>where
T: GeoFloat,
fn contains(&self, target: &MultiLineString<T>) -> bool
Source§impl<T> Contains<MultiPoint<T>> for Triangle<T>where
T: GeoFloat,
impl<T> Contains<MultiPoint<T>> for Triangle<T>where
T: GeoFloat,
fn contains(&self, target: &MultiPoint<T>) -> bool
Source§impl<T> Contains<MultiPolygon<T>> for Triangle<T>where
T: GeoFloat,
impl<T> Contains<MultiPolygon<T>> for Triangle<T>where
T: GeoFloat,
fn contains(&self, target: &MultiPolygon<T>) -> bool
Source§impl<T> CoordinatePosition for Triangle<T>where
T: GeoNum,
impl<T> CoordinatePosition for Triangle<T>where
T: GeoNum,
Source§impl<'a, T: CoordNum + 'a> CoordsIter<'a> for Triangle<T>
impl<'a, T: CoordNum + 'a> CoordsIter<'a> for Triangle<T>
Source§fn coords_count(&'a self) -> usize
fn coords_count(&'a self) -> usize
Return the number of coordinates in the Triangle.
type Iter = Chain<Chain<Once<Coord<T>>, Once<Coord<T>>>, Once<Coord<T>>>
type ExteriorIter = <Triangle<T> as CoordsIter<'a>>::Iter
type Scalar = T
Source§fn coords_iter(&'a self) -> Self::Iter
fn coords_iter(&'a self) -> Self::Iter
Source§fn exterior_coords_iter(&'a self) -> Self::ExteriorIter
fn exterior_coords_iter(&'a self) -> Self::ExteriorIter
Source§impl<T> EuclideanDistance<T, Point<T>> for Triangle<T>where
T: GeoFloat,
impl<T> EuclideanDistance<T, Point<T>> for Triangle<T>where
T: GeoFloat,
Source§fn euclidean_distance(&self, point: &Point<T>) -> T
fn euclidean_distance(&self, point: &Point<T>) -> T
Source§impl GeodesicArea<f64> for Triangle
impl GeodesicArea<f64> for Triangle
Source§fn geodesic_perimeter(&self) -> f64
fn geodesic_perimeter(&self) -> f64
Source§fn geodesic_area_signed(&self) -> f64
fn geodesic_area_signed(&self) -> f64
Source§fn geodesic_area_unsigned(&self) -> f64
fn geodesic_area_unsigned(&self) -> f64
Source§impl<C: GeoNum> HasDimensions for Triangle<C>
impl<C: GeoNum> HasDimensions for Triangle<C>
Source§fn dimensions(&self) -> Dimensions
fn dimensions(&self) -> Dimensions
Rects are 2-dimensional, but it’s possible to create degenerate Rects which
have either 1 or 0 dimensions. Read moreSource§fn boundary_dimensions(&self) -> Dimensions
fn boundary_dimensions(&self) -> Dimensions
Geometry’s boundary, as used by OGC-SFA. Read moreSource§impl<T> InteriorPoint for Triangle<T>where
T: GeoFloat,
impl<T> InteriorPoint for Triangle<T>where
T: GeoFloat,
Source§impl<T, G> Intersects<G> for Triangle<T>
impl<T, G> Intersects<G> for Triangle<T>
fn intersects(&self, rhs: &G) -> bool
Source§impl<T> Intersects<Triangle<T>> for Coord<T>
impl<T> Intersects<Triangle<T>> for Coord<T>
fn intersects(&self, rhs: &Triangle<T>) -> bool
Source§impl<T> Intersects<Triangle<T>> for Line<T>
impl<T> Intersects<Triangle<T>> for Line<T>
fn intersects(&self, rhs: &Triangle<T>) -> bool
Source§impl<T> Intersects<Triangle<T>> for Polygon<T>
impl<T> Intersects<Triangle<T>> for Polygon<T>
fn intersects(&self, rhs: &Triangle<T>) -> bool
Source§impl<T> Intersects<Triangle<T>> for Rect<T>
impl<T> Intersects<Triangle<T>> for Rect<T>
fn intersects(&self, rhs: &Triangle<T>) -> bool
Source§impl<T: CoordNum, NT: CoordNum> MapCoords<T, NT> for Triangle<T>
impl<T: CoordNum, NT: CoordNum> MapCoords<T, NT> for Triangle<T>
Source§impl<T: CoordNum> MapCoordsInPlace<T> for Triangle<T>
impl<T: CoordNum> MapCoordsInPlace<T> for Triangle<T>
Source§impl<T: CoordNum> MapCoordsInplace<T> for Triangle<T>
impl<T: CoordNum> MapCoordsInplace<T> for Triangle<T>
Source§fn map_coords_inplace(&mut self, func: impl Fn((T, T)) -> (T, T) + Copy)where
T: CoordNum,
👎Deprecated since 0.21.0: use MapCoordsInPlace::map_coords_in_place instead which takes a Coord instead of an (x,y) tuple
fn map_coords_inplace(&mut self, func: impl Fn((T, T)) -> (T, T) + Copy)where
T: CoordNum,
MapCoordsInPlace::map_coords_in_place instead which takes a Coord instead of an (x,y) tupleApply a function to all the coordinates in a geometric object, in place
§Examples
#[allow(deprecated)]
use geo::MapCoordsInplace;
use geo::Point;
use approx::assert_relative_eq;
let mut p = Point::new(10., 20.);
#[allow(deprecated)]
p.map_coords_inplace(|(x, y)| (x + 1000., y * 2.));
assert_relative_eq!(p, Point::new(1010., 40.), epsilon = 1e-6);Source§impl<T> RTreeObject for Triangle<T>
impl<T> RTreeObject for Triangle<T>
Source§impl<F: GeoFloat> Relate<F, GeometryCollection<F>> for Triangle<F>
impl<F: GeoFloat> Relate<F, GeometryCollection<F>> for Triangle<F>
fn relate(&self, other: &GeometryCollection<F>) -> IntersectionMatrix
Source§impl<F: GeoFloat> Relate<F, Line<F>> for Triangle<F>
impl<F: GeoFloat> Relate<F, Line<F>> for Triangle<F>
fn relate(&self, other: &Line<F>) -> IntersectionMatrix
Source§impl<F: GeoFloat> Relate<F, LineString<F>> for Triangle<F>
impl<F: GeoFloat> Relate<F, LineString<F>> for Triangle<F>
fn relate(&self, other: &LineString<F>) -> IntersectionMatrix
Source§impl<F: GeoFloat> Relate<F, MultiLineString<F>> for Triangle<F>
impl<F: GeoFloat> Relate<F, MultiLineString<F>> for Triangle<F>
fn relate(&self, other: &MultiLineString<F>) -> IntersectionMatrix
Source§impl<F: GeoFloat> Relate<F, MultiPoint<F>> for Triangle<F>
impl<F: GeoFloat> Relate<F, MultiPoint<F>> for Triangle<F>
fn relate(&self, other: &MultiPoint<F>) -> IntersectionMatrix
Source§impl<F: GeoFloat> Relate<F, MultiPolygon<F>> for Triangle<F>
impl<F: GeoFloat> Relate<F, MultiPolygon<F>> for Triangle<F>
fn relate(&self, other: &MultiPolygon<F>) -> IntersectionMatrix
Source§impl<F: GeoFloat> Relate<F, Point<F>> for Triangle<F>
impl<F: GeoFloat> Relate<F, Point<F>> for Triangle<F>
fn relate(&self, other: &Point<F>) -> IntersectionMatrix
Source§impl<F: GeoFloat> Relate<F, Polygon<F>> for Triangle<F>
impl<F: GeoFloat> Relate<F, Polygon<F>> for Triangle<F>
fn relate(&self, other: &Polygon<F>) -> IntersectionMatrix
Source§impl<F: GeoFloat> Relate<F, Rect<F>> for Triangle<F>
impl<F: GeoFloat> Relate<F, Rect<F>> for Triangle<F>
fn relate(&self, other: &Rect<F>) -> IntersectionMatrix
Source§impl<F: GeoFloat> Relate<F, Triangle<F>> for GeometryCollection<F>
impl<F: GeoFloat> Relate<F, Triangle<F>> for GeometryCollection<F>
fn relate(&self, other: &Triangle<F>) -> IntersectionMatrix
Source§impl<F: GeoFloat> Relate<F, Triangle<F>> for Line<F>
impl<F: GeoFloat> Relate<F, Triangle<F>> for Line<F>
fn relate(&self, other: &Triangle<F>) -> IntersectionMatrix
Source§impl<F: GeoFloat> Relate<F, Triangle<F>> for LineString<F>
impl<F: GeoFloat> Relate<F, Triangle<F>> for LineString<F>
fn relate(&self, other: &Triangle<F>) -> IntersectionMatrix
Source§impl<F: GeoFloat> Relate<F, Triangle<F>> for MultiLineString<F>
impl<F: GeoFloat> Relate<F, Triangle<F>> for MultiLineString<F>
fn relate(&self, other: &Triangle<F>) -> IntersectionMatrix
Source§impl<F: GeoFloat> Relate<F, Triangle<F>> for MultiPoint<F>
impl<F: GeoFloat> Relate<F, Triangle<F>> for MultiPoint<F>
fn relate(&self, other: &Triangle<F>) -> IntersectionMatrix
Source§impl<F: GeoFloat> Relate<F, Triangle<F>> for MultiPolygon<F>
impl<F: GeoFloat> Relate<F, Triangle<F>> for MultiPolygon<F>
fn relate(&self, other: &Triangle<F>) -> IntersectionMatrix
Source§impl<F: GeoFloat> Relate<F, Triangle<F>> for Point<F>
impl<F: GeoFloat> Relate<F, Triangle<F>> for Point<F>
fn relate(&self, other: &Triangle<F>) -> IntersectionMatrix
Source§impl<F: GeoFloat> Relate<F, Triangle<F>> for Polygon<F>
impl<F: GeoFloat> Relate<F, Triangle<F>> for Polygon<F>
fn relate(&self, other: &Triangle<F>) -> IntersectionMatrix
Source§impl<F: GeoFloat> Relate<F, Triangle<F>> for Rect<F>
impl<F: GeoFloat> Relate<F, Triangle<F>> for Rect<F>
fn relate(&self, other: &Triangle<F>) -> IntersectionMatrix
Source§impl<F: GeoFloat> Relate<F, Triangle<F>> for Triangle<F>
impl<F: GeoFloat> Relate<F, Triangle<F>> for Triangle<F>
fn relate(&self, other: &Triangle<F>) -> IntersectionMatrix
Source§impl<T> RelativeEq for Triangle<T>where
T: CoordNum + RelativeEq<Epsilon = T>,
impl<T> RelativeEq for Triangle<T>where
T: CoordNum + RelativeEq<Epsilon = T>,
Source§fn relative_eq(
&self,
other: &Triangle<T>,
epsilon: <Triangle<T> as AbsDiffEq>::Epsilon,
max_relative: <Triangle<T> as AbsDiffEq>::Epsilon,
) -> bool
fn relative_eq( &self, other: &Triangle<T>, epsilon: <Triangle<T> as AbsDiffEq>::Epsilon, max_relative: <Triangle<T> as AbsDiffEq>::Epsilon, ) -> bool
Equality assertion within a relative limit.
§Examples
use geo_types::{point, Triangle};
let a = Triangle::new((0.0, 0.0).into(), (10.0, 10.0).into(), (0.0, 5.0).into());
let b = Triangle::new((0.0, 0.0).into(), (10.01, 10.0).into(), (0.0, 5.0).into());
approx::assert_relative_eq!(a, b, max_relative=0.1);
approx::assert_relative_ne!(a, b, max_relative=0.0001);Source§fn default_max_relative() -> <Triangle<T> as AbsDiffEq>::Epsilon
fn default_max_relative() -> <Triangle<T> as AbsDiffEq>::Epsilon
Source§fn relative_ne(
&self,
other: &Rhs,
epsilon: Self::Epsilon,
max_relative: Self::Epsilon,
) -> bool
fn relative_ne( &self, other: &Rhs, epsilon: Self::Epsilon, max_relative: Self::Epsilon, ) -> bool
RelativeEq::relative_eq.Source§impl<T> RemoveRepeatedPoints<T> for Triangle<T>where
T: CoordNum + FromPrimitive,
impl<T> RemoveRepeatedPoints<T> for Triangle<T>where
T: CoordNum + FromPrimitive,
Source§fn remove_repeated_points(&self) -> Self
fn remove_repeated_points(&self) -> Self
Source§fn remove_repeated_points_mut(&mut self)
fn remove_repeated_points_mut(&mut self)
Source§impl<T> TryFrom<Geometry<T>> for Triangle<T>where
T: CoordNum,
Convert a Geometry enum into its inner type.
impl<T> TryFrom<Geometry<T>> for Triangle<T>where
T: CoordNum,
Convert a Geometry enum into its inner type.
Fails if the enum case does not match the type you are trying to convert it to.
Source§impl<T: CoordNum, NT: CoordNum, E> TryMapCoords<T, NT, E> for Triangle<T>
impl<T: CoordNum, NT: CoordNum, E> TryMapCoords<T, NT, E> for Triangle<T>
Source§type Output = Triangle<NT>
type Output = Triangle<NT>
MapCoords::try_map_coords which takes a Coord instead of an (x,y) tupleSource§fn try_map_coords(
&self,
func: impl Fn((T, T)) -> Result<(NT, NT), E> + Copy,
) -> Result<Self::Output, E>
fn try_map_coords( &self, func: impl Fn((T, T)) -> Result<(NT, NT), E> + Copy, ) -> Result<Self::Output, E>
MapCoords::try_map_coords which takes a Coord instead of an (x,y) tupleSource§impl<T: CoordNum, E> TryMapCoordsInplace<T, E> for Triangle<T>
impl<T: CoordNum, E> TryMapCoordsInplace<T, E> for Triangle<T>
Source§fn try_map_coords_inplace(
&mut self,
func: impl Fn((T, T)) -> Result<(T, T), E>,
) -> Result<(), E>
fn try_map_coords_inplace( &mut self, func: impl Fn((T, T)) -> Result<(T, T), E>, ) -> Result<(), E>
MapCoordsInPlace::try_map_coords_in_place which takes a Coord instead of an (x,y) tupleResult. Read moreSource§impl<T> UlpsEq for Triangle<T>
impl<T> UlpsEq for Triangle<T>
Source§fn default_max_ulps() -> u32
fn default_max_ulps() -> u32
impl<T> Copy for Triangle<T>
impl<T> Eq for Triangle<T>
impl<T> StructuralPartialEq for Triangle<T>where
T: CoordNum,
Auto Trait Implementations§
impl<T> Freeze for Triangle<T>where
T: Freeze,
impl<T> RefUnwindSafe for Triangle<T>where
T: RefUnwindSafe,
impl<T> Send for Triangle<T>where
T: Send,
impl<T> Sync for Triangle<T>where
T: Sync,
impl<T> Unpin for Triangle<T>where
T: Unpin,
impl<T> UnwindSafe for Triangle<T>where
T: UnwindSafe,
Blanket Implementations§
Source§impl<T, M> AffineOps<T> for M
impl<T, M> AffineOps<T> for M
Source§fn affine_transform(&self, transform: &AffineTransform<T>) -> M
fn affine_transform(&self, transform: &AffineTransform<T>) -> M
transform immutably, outputting a new geometry.Source§fn affine_transform_mut(&mut self, transform: &AffineTransform<T>)
fn affine_transform_mut(&mut self, transform: &AffineTransform<T>)
transform to mutate self.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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<'a, T, G> ConvexHull<'a, T> for Gwhere
T: GeoNum,
G: CoordsIter<'a, Scalar = T>,
impl<'a, T, G> ConvexHull<'a, T> for Gwhere
T: GeoNum,
G: CoordsIter<'a, Scalar = T>,
Source§impl<'a, T, G> Extremes<'a, T> for Gwhere
G: CoordsIter<'a, Scalar = T>,
T: CoordNum,
impl<'a, T, G> Extremes<'a, T> for Gwhere
G: CoordsIter<'a, Scalar = T>,
T: CoordNum,
Source§impl<'a, T, G> MinimumRotatedRect<'a, T> for G
impl<'a, T, G> MinimumRotatedRect<'a, T> for G
type Scalar = T
fn minimum_rotated_rect( &'a self, ) -> Option<Polygon<<G as MinimumRotatedRect<'a, T>>::Scalar>>
Source§impl<G, IP, IR, T> Rotate<T> for G
impl<G, IP, IR, T> Rotate<T> for G
Source§fn rotate_around_centroid(&self, degrees: T) -> G
fn rotate_around_centroid(&self, degrees: T) -> G
Source§fn rotate_around_centroid_mut(&mut self, degrees: T)
fn rotate_around_centroid_mut(&mut self, degrees: T)
Self::rotate_around_centroidSource§fn rotate_around_center(&self, degrees: T) -> G
fn rotate_around_center(&self, degrees: T) -> G
Source§fn rotate_around_center_mut(&mut self, degrees: T)
fn rotate_around_center_mut(&mut self, degrees: T)
Self::rotate_around_centerSource§fn rotate_around_point(&self, degrees: T, point: Point<T>) -> G
fn rotate_around_point(&self, degrees: T, point: Point<T>) -> G
Source§fn rotate_around_point_mut(&mut self, degrees: T, point: Point<T>)
fn rotate_around_point_mut(&mut self, degrees: T, point: Point<T>)
Self::rotate_around_pointSource§impl<T, IR, G> Scale<T> for Gwhere
T: CoordFloat,
IR: Into<Option<Rect<T>>>,
G: Clone + AffineOps<T> + BoundingRect<T, Output = IR>,
impl<T, IR, G> Scale<T> for Gwhere
T: CoordFloat,
IR: Into<Option<Rect<T>>>,
G: Clone + AffineOps<T> + BoundingRect<T, Output = IR>,
Source§fn scale(&self, scale_factor: T) -> G
fn scale(&self, scale_factor: T) -> G
Source§fn scale_xy(&self, x_factor: T, y_factor: T) -> G
fn scale_xy(&self, x_factor: T, y_factor: T) -> G
x_factor and
y_factor to distort the geometry’s aspect ratio. Read moreSource§fn scale_xy_mut(&mut self, x_factor: T, y_factor: T)
fn scale_xy_mut(&mut self, x_factor: T, y_factor: T)
scale_xy.Source§fn scale_around_point(
&self,
x_factor: T,
y_factor: T,
origin: impl Into<Coord<T>>,
) -> G
fn scale_around_point( &self, x_factor: T, y_factor: T, origin: impl Into<Coord<T>>, ) -> G
origin. Read moreSource§fn scale_around_point_mut(
&mut self,
x_factor: T,
y_factor: T,
origin: impl Into<Coord<T>>,
)
fn scale_around_point_mut( &mut self, x_factor: T, y_factor: T, origin: impl Into<Coord<T>>, )
scale_around_point.Source§impl<T, IR, G> Skew<T> for Gwhere
T: CoordFloat,
IR: Into<Option<Rect<T>>>,
G: Clone + AffineOps<T> + BoundingRect<T, Output = IR>,
impl<T, IR, G> Skew<T> for Gwhere
T: CoordFloat,
IR: Into<Option<Rect<T>>>,
G: Clone + AffineOps<T> + BoundingRect<T, Output = IR>,
Source§fn skew(&self, degrees: T) -> G
fn skew(&self, degrees: T) -> G
Source§fn skew_xy(&self, degrees_x: T, degrees_y: T) -> G
fn skew_xy(&self, degrees_x: T, degrees_y: T) -> G
Source§fn skew_xy_mut(&mut self, degrees_x: T, degrees_y: T)
fn skew_xy_mut(&mut self, degrees_x: T, degrees_y: T)
skew_xy.Source§fn skew_around_point(&self, xs: T, ys: T, origin: impl Into<Coord<T>>) -> G
fn skew_around_point(&self, xs: T, ys: T, origin: impl Into<Coord<T>>) -> G
origin, sheared by an
angle along the x and y dimensions. Read moreSource§fn skew_around_point_mut(&mut self, xs: T, ys: T, origin: impl Into<Coord<T>>)
fn skew_around_point_mut(&mut self, xs: T, ys: T, origin: impl Into<Coord<T>>)
skew_around_point.