# [−][src]Struct ncollide3d::query::Contact

```pub struct Contact<N: RealField> {
pub world1: Point<N>,
pub world2: Point<N>,
pub normal: Unit<Vector<N>>,
pub depth: N,
}```

Geometric description of a contact.

## Fields

`world1: Point<N>`

Position of the contact on the first object. The position is expressed in world space.

`world2: Point<N>`

Position of the contact on the second object. The position is expressed in world space.

`normal: Unit<Vector<N>>`

Contact normal

`depth: N`

Penetration depth

## Methods

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

#### `pub fn new(    world1: Point<N>,     world2: Point<N>,     normal: Unit<Vector<N>>,     depth: N) -> Self`[src]

Creates a new contact.

#### `pub fn new_wo_depth(    world1: Point<N>,     world2: Point<N>,     normal: Unit<Vector<N>>) -> Contact<N>`[src]

Creates a new contact, computing automatically the penetration depth.

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

#### `pub fn flip(&mut self)`[src]

Reverts the contact normal and swaps `world1` and `world2`.

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