# [−][src]Struct ncollide2d::shape::Triangle

```#[repr(C)]
pub struct Triangle<N: RealField> { /* fields omitted */ }```

A triangle shape.

## Methods

### `impl<N: RealField> Triangle<N>`[src]

#### `pub fn new(a: Point<N>, b: Point<N>, c: Point<N>) -> Triangle<N>`[src]

Creates a triangle from three points.

#### `pub fn from_array(arr: &[Point<N>; 3]) -> &Triangle<N>`[src]

Creates the reference to a triangle from the reference to an array of three points.

#### `pub fn a(&self) -> &Point<N>`[src]

The fist point of this triangle.

#### `pub fn b(&self) -> &Point<N>`[src]

The second point of this triangle.

#### `pub fn c(&self) -> &Point<N>`[src]

The third point of this triangle.

#### `pub fn vertices(&self) -> &[Point<N>; 3]`[src]

Reference to an array containing the three vertices of this triangle.

#### `pub fn normal(&self) -> Option<Unit<Vector<N>>>`[src]

The normal of this triangle assuming it is oriented ccw.

The normal points such that it is collinear to `AB × AC` (where `×` denotes the cross product).

#### `pub fn edges(&self) -> [Segment<N>; 3]`[src]

The three edges of this triangle: [AB, BC, CA].

#### `pub fn transformed(&self, m: &Isometry<N>) -> Self`[src]

Returns a new triangle with vertices transformed by `m`.

#### `pub fn edges_scaled_directions(&self) -> [Vector<N>; 3]`[src]

The three edges scaled directions of this triangle: [B - A, C - B, A - C].

#### `pub fn scaled_normal(&self) -> Vector<N>`[src]

A vector normal of this triangle.

The vector points such that it is collinear to `AB × AC` (where `×` denotes the cross product).

#### `pub fn extents_on_dir(&self, dir: &Unit<Vector<N>>) -> (N, N)`[src]

Computes the extents of this triangle on the given direction.

This computes the min and max values of the dot products between each vertex of this triangle and `dir`.

## Trait Implementations

### `impl<N: RealField> PointQueryWithLocation<N> for Triangle<N>`[src]

#### `type Location = TrianglePointLocation<N>`

Additional shape-specific projection information Read more

## Blanket Implementations

### `impl<T> Same<T> for T`

#### `type Output = T`

Should always be `Self`

### `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.