#

API Docs for: 0.6.1
Show: Inherited Protected Private Deprecated

# ConvexPolyhedron Class

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

A set of polygons describing a convex shape.

## Constructor

### `ConvexPolyhedron`

(

- `points`
- `faces`

)

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

#### Parameters:

- `points` Array

  An array of Vec3's

- `faces` Array

  Array of integer arrays, describing which vertices that is included in each face.

- Index
- Methods
- Properties

## Item Index

### Methods

- calculateLocalInertia
- calculateWorldAABB
- clipAgainstHull
- clipFaceAgainstHull
- clipFaceAgainstPlane
- computeEdges
- computeNormals
- computeWorldFaceNormals
- findSeparatingAxis
- getAveragePointLocal
- getFaceNormal
- getFaceNormal static
- getPlaneConstantOfFace
- pointIsInside
- project static
- 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`

)

Defined in `src/shapes/ConvexPolyhedron.js:727`

#### Parameters:

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

### `clipAgainstHull`

(

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

)

Defined in `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`

)

Defined in `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`

)

Defined in `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`

()

Defined in `src/shapes/ConvexPolyhedron.js:80`

Computes uniqueEdges

### `computeNormals`

()

Defined in `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`

)

Defined in `src/shapes/ConvexPolyhedron.js:689`

Updates .worldVertices and sets .worldVerticesNeedsUpdate to false.

#### Parameters:

- `quat` Quaternion

### `findSeparatingAxis`

(

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

)
Bool

Defined in `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

Defined in `src/shapes/ConvexPolyhedron.js:773`

Get an average of all the vertices positions

#### Parameters:

- `target` Vec3

#### Returns:

Vec3:

### `getFaceNormal`

(

- `i`
- `target`

)

Defined in `src/shapes/ConvexPolyhedron.js:167`

Compute the normal of a face from its vertices

#### Parameters:

- `i` Number
- `target` Vec3

### `getFaceNormal`

(

- `va`
- `vb`
- `vc`
- `target`

)
static

Defined in `src/shapes/ConvexPolyhedron.js:147`

Get face normal given 3 vertices

#### Parameters:

- `va` Vec3
- `vb` Vec3
- `vc` Vec3
- `target` Vec3

### `getPlaneConstantOfFace`

(

- `face_i`

)
Number

Defined in `src/shapes/ConvexPolyhedron.js:430`

#### Parameters:

- `face_i` Number

  Index of the face

#### Returns:

Number:

### `pointIsInside`

(

- `p`

)
Boolean

Defined in `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:

### `project`

(

- `hull`
- `axis`
- `pos`
- `quat`
- `result`

)
static

Defined in `src/shapes/ConvexPolyhedron.js:871`

Get max and min dot product of a convex hull at position (pos,quat) projected onto an axis. Results are saved in the array maxmin.

#### Parameters:

- `hull` ConvexPolyhedron
- `axis` Vec3
- `pos` Vec3
- `quat` Quaternion
- `result` Array

  result[0] and result[1] will be set to maximum and minimum, respectively.

### `testSepAxis`

(

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

)
Number

Defined in `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`

)

Defined in `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

Defined in `src/shapes/ConvexPolyhedron.js:49`

Array of Vec3

### `faces`

Array

Defined in `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

Defined in `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

Defined in `src/shapes/ConvexPolyhedron.js:60`

Array of Vec3

### `vertices`

Array

Defined in `src/shapes/ConvexPolyhedron.js:32`

Array of Vec3