# [−][src]Struct nphysics3d::solver::LinearConstraints

```pub struct LinearConstraints<N: RealField, Id> {
pub unilateral_ground: Vec<UnilateralGroundConstraint<N, Id>>,
pub unilateral: Vec<UnilateralConstraint<N, Id>>,
pub bilateral_ground: Vec<BilateralGroundConstraint<N, Id>>,
pub bilateral: Vec<BilateralConstraint<N, Id>>,
}```

Set of velocity-based constraints.

## Fields

`unilateral_ground: Vec<UnilateralGroundConstraint<N, Id>>`

Unilateral velocity constraints involving a dynamic body and the ground (or a body without any degrees of freedoms).

`unilateral: Vec<UnilateralConstraint<N, Id>>`

Unilateral velocity constraints between dynamic bodies.

`bilateral_ground: Vec<BilateralGroundConstraint<N, Id>>`

Bilateral velocity constraints involving a dynamic body and the ground (or a body without any degrees of freedoms).

`bilateral: Vec<BilateralConstraint<N, Id>>`

Bilateral velocity constraints between dynamic bodies.

## Methods

### `impl<N: RealField, Id> LinearConstraints<N, Id>`[src]

#### `pub fn new() -> Self`[src]

Creates a new empty set of constraints.

#### `pub fn len(&self) -> usize`[src]

The total number of constraints on this set.

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

Remove all constraints from this set.

## Blanket Implementations

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

#### `type Output = T`

Should always be `Self`

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