#

API Docs for: 0.6.1
Show: Inherited Protected Private Deprecated

# Cylinder Class

Extends ConvexPolyhedron
Defined in: `src/shapes/Cylinder.js:8`

## Constructor

### `Cylinder`

(

- `radiusTop`
- `radiusBottom`
- `height`
- `numSegments`

)

Defined in `src/shapes/Cylinder.js:8`

#### Parameters:

- `radiusTop` Number
- `radiusBottom` Number
- `height` Number
- `numSegments` Number

  The number of segments to build the cylinder out of

- Index
- Methods
- Properties

## Item Index

### Methods

- calculateLocalInertia
- calculateWorldAABB
- clipAgainstHull
- clipFaceAgainstHull
- clipFaceAgainstPlane
- computeEdges
- computeNormals
- computeWorldFaceNormals
- findSeparatingAxis
- getAveragePointLocal
- getFaceNormal
- getPlaneConstantOfFace
- pointIsInside
- testSepAxis
- transformAllPoints
- updateBoundingSphereRadius
- volume

### Properties

- boundingSphereRadius
- collisionResponse
- faceNormals
- faces
- id
- material
- type
- uniqueAxes
- uniqueEdges
- vertices

## Methods

### `calculateLocalInertia`

(

- `mass`
- `target`

)

Inherited from Shape but overwritten in `src/shapes/ConvexPolyhedron.js:413`

#### Parameters:

- `mass` Number
- `target` Vec3

### `calculateWorldAABB`

(

- `pos`
- `quat`
- `min`
- `max`

)

Inherited from ConvexPolyhedron: `src/shapes/ConvexPolyhedron.js:727`

#### Parameters:

- `pos` Vec3
- `quat` Quaternion
- `min` Vec3
- `max` Vec3

### `clipAgainstHull`

(

- `posA`
- `quatA`
- `hullB`
- `posB`
- `quatB`
- `separatingNormal`
- `minDist`
- `maxDist`
- `result`

)

Inherited from ConvexPolyhedron: `src/shapes/ConvexPolyhedron.js:181`

#### Parameters:

- `posA` Vec3
- `quatA` Quaternion
- `hullB` ConvexPolyhedron
- `posB` Vec3
- `quatB` Quaternion
- `separatingNormal` Vec3
- `minDist` Number

  Clamp distance

- `maxDist` Number
- `result` Array

  The an array of contact point objects, see clipFaceAgainstHull

### `clipFaceAgainstHull`

(

- `separatingNormal`
- `posA`
- `quatA`
- `worldVertsB1`
- `minDist`
- `maxDist`
- `Array`

)

Inherited from ConvexPolyhedron: `src/shapes/ConvexPolyhedron.js:443`

Clip a face against a hull.

#### Parameters:

- `separatingNormal` Vec3
- `posA` Vec3
- `quatA` Quaternion
- `worldVertsB1` Array

  An array of Vec3 with vertices in the world frame.

- `minDist` Number

  Distance clamping

- `maxDist` Number
- `Array` Object

  result Array to store resulting contact points in. Will be objects with properties: point, depth, normal. These are represented in world coordinates.

### `clipFaceAgainstPlane`

(

- `inVertices`
- `outVertices`
- `planeNormal`
- `planeConstant`

)

Inherited from ConvexPolyhedron: `src/shapes/ConvexPolyhedron.js:588`

Clip a face in a hull against the back of a plane.

#### Parameters:

- `inVertices` Array
- `outVertices` Array
- `planeNormal` Vec3
- `planeConstant` Number

  The constant in the mathematical plane equation

### `computeEdges`

()

Inherited from ConvexPolyhedron: `src/shapes/ConvexPolyhedron.js:80`

Computes uniqueEdges

### `computeNormals`

()

Inherited from ConvexPolyhedron: `src/shapes/ConvexPolyhedron.js:116`

Compute the normals of the faces. Will reuse existing Vec3 objects in the .faceNormals array if they exist.

### `computeWorldFaceNormals`

(

- `quat`

)

Inherited from ConvexPolyhedron: `src/shapes/ConvexPolyhedron.js:689`

Updates .worldVertices and sets .worldVerticesNeedsUpdate to false.

#### Parameters:

- `quat` Quaternion

### `findSeparatingAxis`

(

- `hullB`
- `posA`
- `quatA`
- `posB`
- `quatB`
- `target`

)
Bool

Inherited from ConvexPolyhedron: `src/shapes/ConvexPolyhedron.js:234`

Find the separating axis between this hull and another

#### Parameters:

- `hullB` ConvexPolyhedron
- `posA` Vec3
- `quatA` Quaternion
- `posB` Vec3
- `quatB` Quaternion
- `target` Vec3

  The target vector to save the axis in

#### Returns:

Bool:

Returns false if a separation is found, else true

### `getAveragePointLocal`

(

- `target`

)
Vec3

Inherited from ConvexPolyhedron: `src/shapes/ConvexPolyhedron.js:773`

Get an average of all the vertices positions

#### Parameters:

- `target` Vec3

#### Returns:

Vec3:

### `getFaceNormal`

(

- `i`
- `target`

)

Inherited from ConvexPolyhedron: `src/shapes/ConvexPolyhedron.js:167`

Compute the normal of a face from its vertices

#### Parameters:

- `i` Number
- `target` Vec3

### `getPlaneConstantOfFace`

(

- `face_i`

)
Number

Inherited from ConvexPolyhedron: `src/shapes/ConvexPolyhedron.js:430`

#### Parameters:

- `face_i` Number

  Index of the face

#### Returns:

Number:

### `pointIsInside`

(

- `p`

)
Boolean

Inherited from ConvexPolyhedron: `src/shapes/ConvexPolyhedron.js:829`

Checks whether p is inside the polyhedra. Must be in local coords. The point lies outside of the convex hull of the other points if and only if the direction of all the vectors from it to those other points are on less than one half of a sphere around it.

#### Parameters:

- `p` Vec3

  A point given in local coordinates

#### Returns:

Boolean:

### `testSepAxis`

(

- `axis`
- `hullB`
- `posA`
- `quatA`
- `posB`
- `quatB`

)
Number

Inherited from ConvexPolyhedron: `src/shapes/ConvexPolyhedron.js:382`

Test separating axis against two hulls. Both hulls are projected onto the axis and the overlap size is returned if there is one.

#### Parameters:

- `axis` Vec3
- `hullB` ConvexPolyhedron
- `posA` Vec3
- `quatA` Quaternion
- `posB` Vec3
- `quatB` Quaternion

#### Returns:

Number:

The overlap depth, or FALSE if no penetration.

### `transformAllPoints`

(

- `offset`
- `quat`

)

Inherited from ConvexPolyhedron: `src/shapes/ConvexPolyhedron.js:790`

Transform all local points. Will change the .vertices

#### Parameters:

- `offset` Vec3
- `quat` Quaternion

### `updateBoundingSphereRadius`

()

Inherited from Shape but overwritten in `src/shapes/ConvexPolyhedron.js:709`

### `volume`

() Number

Inherited from Shape but overwritten in `src/shapes/ConvexPolyhedron.js:764`

Get approximate convex volume

#### Returns:

Number:

## Properties

### `boundingSphereRadius`

Number

Inherited from Shape: `src/shapes/Shape.js:31`

The local bounding sphere radius of this shape.

### `collisionResponse`

Boolean

Inherited from Shape: `src/shapes/Shape.js:37`

Whether to produce contact forces when in contact with other bodies. Note that contacts will be generated, but they will be disabled.

### `faceNormals`

Array

Inherited from ConvexPolyhedron: `src/shapes/ConvexPolyhedron.js:49`

Array of Vec3

### `faces`

Array

Inherited from ConvexPolyhedron: `src/shapes/ConvexPolyhedron.js:42`

Array of integer arrays, indicating which vertices each face consists of

### `id`

Number

Inherited from Shape: `src/shapes/Shape.js:17`

Identifyer of the Shape.

### `material`

Material

Inherited from Shape: `src/shapes/Shape.js:43`

### `type`

Number

Inherited from Shape: `src/shapes/Shape.js:23`

The type of this shape. Must be set to an int > 0 by subclasses.

### `uniqueAxes`

Array

Inherited from ConvexPolyhedron: `src/shapes/ConvexPolyhedron.js:67`

If given, these locally defined, normalized axes are the only ones being checked when doing separating axis check.

### `uniqueEdges`

Array

Inherited from ConvexPolyhedron: `src/shapes/ConvexPolyhedron.js:60`

Array of Vec3

### `vertices`

Array

Inherited from ConvexPolyhedron: `src/shapes/ConvexPolyhedron.js:32`

Array of Vec3