Skip to content

@orillusion/physics-rapier


Class: CollisionShapeUtil ​

Defined in: packages/physics-rapier/shape/CollisionShapeUtil.ts:40

Collider descriptor factories.

Public method names mirror @orillusion/physics's CollisionShapeUtil one-to-one where semantics line up. Some return types deviate where Rapier and Bullet model things differently:

  • createCompoundShape* returns ChildShape[] (Rapier has no monolithic compound primitive — multiple colliders attach to one body).
  • createConvexHullShape may return null if the points are degenerate (Rapier surfaces this; ammo silently constructs an invalid hull).

Constructors ​

Constructor ​

new CollisionShapeUtil(): CollisionShapeUtil

Returns ​

CollisionShapeUtil

Methods ​

createBoxShape() ​

static createBoxShape(object3D, size?): ColliderDesc

Defined in: packages/physics-rapier/shape/CollisionShapeUtil.ts:44

Box shape. Falls back to mesh-bounds size when size omitted.

Parameters ​

object3D ​

Object3D

size? ​

Vector3

Returns ​

ColliderDesc


createSphereShape() ​

static createSphereShape(object3D, radius?): ColliderDesc

Defined in: packages/physics-rapier/shape/CollisionShapeUtil.ts:52

Sphere shape. Falls back to mesh-bounds extents.x for radius.

Parameters ​

object3D ​

Object3D

radius? ​

number

Returns ​

ColliderDesc


createCapsuleShape() ​

static createCapsuleShape(object3D, radius?, halfHeight?): ColliderDesc

Defined in: packages/physics-rapier/shape/CollisionShapeUtil.ts:63

Capsule shape. NOTE: Rapier's capsule takes halfHeight (the half length of the cylindrical mid-section, NOT including the caps). The ammo plugin's createCapsuleShape(obj, radius, height) uses the full mid-section height; pass height / 2 here.

Parameters ​

object3D ​

Object3D

radius? ​

number

halfHeight? ​

number

Returns ​

ColliderDesc


createCylinderShape() ​

static createCylinderShape(object3D, radius?, halfHeight?): ColliderDesc

Defined in: packages/physics-rapier/shape/CollisionShapeUtil.ts:74

Cylinder shape. NOTE: takes halfHeight, not full height.

Parameters ​

object3D ​

Object3D

radius? ​

number

halfHeight? ​

number

Returns ​

ColliderDesc


createConeShape() ​

static createConeShape(object3D, radius?, halfHeight?): ColliderDesc

Defined in: packages/physics-rapier/shape/CollisionShapeUtil.ts:85

Cone shape. NOTE: takes halfHeight, not full height.

Parameters ​

object3D ​

Object3D

radius? ​

number

halfHeight? ​

number

Returns ​

ColliderDesc


createPlaneShape() ​

static createPlaneShape(extent?, thickness?): ColliderDesc

Defined in: packages/physics-rapier/shape/CollisionShapeUtil.ts:97

Static plane stand-in. Rapier has no staticPlane; uses a wide thin cuboid so behavior matches the ammo plugin's typical floor pattern.

Parameters ​

extent? ​

number = 1000

thickness? ​

number = 0.1

Returns ​

ColliderDesc


createCompoundShape() ​

static createCompoundShape(childShapes): ChildShape[]

Defined in: packages/physics-rapier/shape/CollisionShapeUtil.ts:105

Compound shape. Returns an array of child descriptors — pass to Rigidbody.shape = [...] and each entry becomes its own collider.

Parameters ​

childShapes ​

ChildShape[]

Returns ​

ChildShape[]


createCompoundShapeFromObject() ​

static createCompoundShapeFromObject(object3D, includeParent?): ChildShape[]

Defined in: packages/physics-rapier/shape/CollisionShapeUtil.ts:119

Build a compound from an Object3D's mesh hierarchy. Each child MeshRenderer contributes one collider, transformed into the parent's local space.

Parameters ​

object3D ​

Object3D

includeParent? ​

boolean = true

Returns ​

ChildShape[]


createShapeFromObject() ​

static createShapeFromObject(object3D): ColliderDesc

Defined in: packages/physics-rapier/shape/CollisionShapeUtil.ts:162

Pick the best primitive shape for a single Object3D, falling back to convexHull for arbitrary meshes. Mirrors the ammo plugin's createShapeFromObject.

Parameters ​

object3D ​

Object3D

Returns ​

ColliderDesc


createConvexHullShape() ​

static createConvexHullShape(object3D, modelVertices?): ColliderDesc

Defined in: packages/physics-rapier/shape/CollisionShapeUtil.ts:198

Convex-hull shape from raw vertices or an Object3D's mesh.

Parameters ​

object3D ​

Object3D

modelVertices? ​

Float32Array

Returns ​

ColliderDesc


createTrimeshShape() ​

static createTrimeshShape(object3D, modelVertices?, modelIndices?): ColliderDesc

Defined in: packages/physics-rapier/shape/CollisionShapeUtil.ts:222

Triangle-mesh shape from Object3D's mesh. Suitable for static geometry. For dynamic bodies prefer createConvexHullShape or compounds.

Parameters ​

object3D ​

Object3D

modelVertices? ​

Float32Array

modelIndices? ​

Uint32Array

Returns ​

ColliderDesc


createHeightfieldShape() ​

static createHeightfieldShape(object3D): ColliderDesc

Defined in: packages/physics-rapier/shape/CollisionShapeUtil.ts:252

Heightfield from a PlaneGeometry's vertex Y values. Mirrors the ammo plugin's createHeightfieldTerrainShape.

Parameters ​

object3D ​

Object3D

Returns ​

ColliderDesc


getAllMeshVerticesAndIndices() ​

static getAllMeshVerticesAndIndices(object3D, isTransformChildren?): object

Defined in: packages/physics-rapier/shape/CollisionShapeUtil.ts:278

Get a flat (verts, indices) representation of an Object3D's meshes. Mirrors the ammo plugin's helper, but widens indices to Uint32Array (Rapier requires u32; engine geometry uses u16 typically).

Parameters ​

object3D ​

Object3D

isTransformChildren? ​

boolean = true

Returns ​

object

vertices ​

vertices: Float32Array<ArrayBufferLike> = verts

indices ​

indices: Uint32Array<ArrayBufferLike>

Released under the MIT License