# [−][src]Enum ncollide2d::bounding_volume::CircularCone

```pub enum CircularCone<N: RealField> {
Full,
Empty,
axis: Unit<Vector<N>>,
angle: N,
},
}```

A cone with a circular basis and its apex at the origin.

A circular cone is a set of half-lines emanating from its apex and forming an angle of at most `angle` with its `axis`. It is usually used to bound a set of directions like normals and tangents. It is convex and have a circular basis.

## Variants

`Full`

A cone which is the whole space.

`Empty`

An empty cone containing only the zero vector.

`Spread`

All the vectors emanating from the origin, with a maximal `angle` wrt the given `axis`.

`axis: Unit<Vector<N>>`

The cone axis.

`angle: N`

Half of the cone apex angle, i.e., the largest angle possible between the axis and a vector contained by this cone.

## Methods

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

#### `pub fn from_vectors(dirs: &[Unit<Vector<N>>]) -> Self`[src]

Creates a circular cone from a set of vectors.

#### `pub fn is_empty(&self) -> bool`[src]

Returns `true` if this cone is empty.

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

Enlarge this cone so it contains `dir` too.

#### `pub fn intersects(&self, other: &Self) -> bool`[src]

Returns `true` if this cone intersects `other`.

#### `pub fn double_cones_intersect(&self, other: &Self) -> bool`[src]

Tests if this circular cone, extended to be a double cone, intersects the `other` circular cone, also seen as a double cone.

#### `pub fn contains(&self, other: &Self) -> bool`[src]

Returns `true` if this cone contains `other`.

#### `pub fn merge(&mut self, other: &Self)`[src]

Merges this cone with `other` in-place.

#### `pub fn merged(&self, other: &Self) -> Self`[src]

Merges this cone with `other`.

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