[][src]Struct conrod_core::widget::primitive::shape::triangles::TrianglesUnpositioned

pub struct TrianglesUnpositioned<S, I> { /* fields omitted */ }

When beginning to build Triangles they are initially unpositioned.

This is an intemediary type which allows the user to choose how to position the bounding rectangle relative to the points.

Implementations

impl<S, I> TrianglesUnpositioned<S, I> where
    S: Style,
    I: IntoIterator<Item = Triangle<S::Vertex>>,
    Triangles<S, I>: Widget
[src]

pub fn with_bounding_rect(self, rect: Rect) -> Triangles<S, I>[src]

Specify the bounding rectangle for the Triangles.

Typically, the given Rect bounds should be the min and max positions along both axes that are touched by the Triangles' points.

This method is significantly more efficient than calc_bounding_rect and centre_points_to_bounding_rect as the bounding rectangle does not have to be calculated from the Triangles' points.

pub fn calc_bounding_rect(self) -> Triangles<S, I> where
    I: Clone
[src]

Calculate the position and size of the bounding rectangle from the Triangles points. The resulting bounding rectangle will fit to the absolute co-ordinates of all points.

In other words, this method will automatically call Sizeable::wh and Positionable::xy after calculating the size and position from the given points.

This requires that the points iterator is Clone so that we may iterate through and determine the bounding box of the points. If you know the bounds of the rectangle ahead of time, we recommend calling with_bounding_rect instead as it will be significantly cheaper.

If you would rather centre the points to the middle of the bounding box, use TrianglesUnpositioned::centre_points_to_bounding_rect instead.

pub fn centre_points_to_bounding_rect(self) -> Triangles<S, I> where
    I: Clone
[src]

Shift the location of the Triangles points so that the centre of their bounding rectangle lies at the position determined for the Triangles widget.

This is useful if your points simply describe a shape and you want to position them using conrod's auto-layout or Positionable and Sizeable methods.

This requires that the points iterator is Clone so that we may iterate through and determine the bounding box of the points. If you know the bounds of the rectangle ahead of time, we recommend calling with_bounding_rect instead as it will be significantly cheaper.

If you would rather calculate the bounding box from the given absolute points, use the TrianglesUnpositioned::calc_bounding_rect instead.

Trait Implementations

impl<S: Clone, I: Clone> Clone for TrianglesUnpositioned<S, I>[src]

impl<S: Copy, I: Copy> Copy for TrianglesUnpositioned<S, I>[src]

impl<S: Debug, I: Debug> Debug for TrianglesUnpositioned<S, I>[src]

Auto Trait Implementations

impl<S, I> RefUnwindSafe for TrianglesUnpositioned<S, I> where
    I: RefUnwindSafe,
    S: RefUnwindSafe

impl<S, I> Send for TrianglesUnpositioned<S, I> where
    I: Send,
    S: Send

impl<S, I> Sync for TrianglesUnpositioned<S, I> where
    I: Sync,
    S: Sync

impl<S, I> Unpin for TrianglesUnpositioned<S, I> where
    I: Unpin,
    S: Unpin

impl<S, I> UnwindSafe for TrianglesUnpositioned<S, I> where
    I: UnwindSafe,
    S: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.