> For the complete documentation index, see [llms.txt](https://engine-docs.meta4d.me/jkUDC53bibxMH5jKxZe0/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://engine-docs.meta4d.me/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/classes/m4m.framework.motorenabledjoint.md).

# m4m.framework.MotorEnabledJoint

[@meta4d/engine](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs.md) / [Exports](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/modules.md) / [m4m](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/modules/m4m.md) / [framework](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/modules/m4m.framework.md) / MotorEnabledJoint

## Class: MotorEnabledJoint

[m4m](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/modules/m4m.md).[framework](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/modules/m4m.framework.md).MotorEnabledJoint

Represents a Motor-Enabled Joint

### Hierarchy

* [`PhysicsJoint`](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/classes/m4m.framework.physicsjoint.md)

  ↳ **`MotorEnabledJoint`**

  ↳↳ [`HingeJoint`](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/classes/m4m.framework.hingejoint.md)

  ↳↳ [`Hinge2Joint`](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/classes/m4m.framework.hinge2joint.md)

### Implements

* [`IMotorEnabledJoint`](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/interfaces/m4m.framework.imotorenabledjoint.md)

### Table of contents

#### Properties

* [\_physicsPlugin](#_physicsplugin)
* [jointData](#jointdata)
* [type](#type)
* [BallAndSocketJoint](#ballandsocketjoint)
* [DistanceJoint](#distancejoint)
* [Hinge2Joint](#hinge2joint)
* [HingeJoint](#hingejoint)
* [LockJoint](#lockjoint)
* [PointToPointJoint](#pointtopointjoint)
* [PrismaticJoint](#prismaticjoint)
* [SliderJoint](#sliderjoint)
* [SpringJoint](#springjoint)
* [UniversalJoint](#universaljoint)
* [WheelJoint](#wheeljoint)

#### Constructors

* [constructor](#constructor)

#### Methods

* [executeNativeFunction](#executenativefunction)
* [setLimit](#setlimit)
* [setMotor](#setmotor)

#### Accessors

* [physicsJoint](#physicsjoint)
* [physicsPlugin](#physicsplugin)

### Properties

#### \_physicsPlugin

• `Protected` **\_physicsPlugin**: [`IPhysicsEnginePlugin`](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/interfaces/m4m.framework.iphysicsengineplugin.md)

**Inherited from**

[PhysicsJoint](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/classes/m4m.framework.physicsjoint.md).[\_physicsPlugin](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/classes/m4m.framework.physicsjoint.md#_physicsplugin)

**Defined in**

[framework/physics3d/physicJoint.ts:38](https://github.com/meta4d-me/meta4d-engine/blob/cf6bfe6/src/framework/physics3d/physicJoint.ts#L38)

***

#### jointData

• **jointData**: [`PhysicsJointData`](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/interfaces/m4m.framework.physicsjointdata.md)

**Inherited from**

[PhysicsJoint](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/classes/m4m.framework.physicsjoint.md).[jointData](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/classes/m4m.framework.physicsjoint.md#jointdata)

***

#### type

• **type**: `number`

**Inherited from**

[PhysicsJoint](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/classes/m4m.framework.physicsjoint.md).[type](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/classes/m4m.framework.physicsjoint.md#type)

***

#### BallAndSocketJoint

▪ `Static` **BallAndSocketJoint**: `number` = `2`

Ball-and-Socket joint type

**Inherited from**

[PhysicsJoint](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/classes/m4m.framework.physicsjoint.md).[BallAndSocketJoint](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/classes/m4m.framework.physicsjoint.md#ballandsocketjoint)

**Defined in**

[framework/physics3d/physicJoint.ts:85](https://github.com/meta4d-me/meta4d-engine/blob/cf6bfe6/src/framework/physics3d/physicJoint.ts#L85)

***

#### DistanceJoint

▪ `Static` **DistanceJoint**: `number` = `0`

Distance-Joint type

**Inherited from**

[PhysicsJoint](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/classes/m4m.framework.physicsjoint.md).[DistanceJoint](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/classes/m4m.framework.physicsjoint.md#distancejoint)

**Defined in**

[framework/physics3d/physicJoint.ts:77](https://github.com/meta4d-me/meta4d-engine/blob/cf6bfe6/src/framework/physics3d/physicJoint.ts#L77)

***

#### Hinge2Joint

▪ `Static` **Hinge2Joint**: `number` = `PhysicsJoint.WheelJoint`

Hinge-Joint 2 type

**Inherited from**

[PhysicsJoint](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/classes/m4m.framework.physicsjoint.md).[Hinge2Joint](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/classes/m4m.framework.physicsjoint.md#hinge2joint)

**Defined in**

[framework/physics3d/physicJoint.ts:107](https://github.com/meta4d-me/meta4d-engine/blob/cf6bfe6/src/framework/physics3d/physicJoint.ts#L107)

***

#### HingeJoint

▪ `Static` **HingeJoint**: `number` = `1`

Hinge-Joint type

**Inherited from**

[PhysicsJoint](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/classes/m4m.framework.physicsjoint.md).[HingeJoint](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/classes/m4m.framework.physicsjoint.md#hingejoint)

**Defined in**

[framework/physics3d/physicJoint.ts:81](https://github.com/meta4d-me/meta4d-engine/blob/cf6bfe6/src/framework/physics3d/physicJoint.ts#L81)

***

#### LockJoint

▪ `Static` **LockJoint**: `number` = `10`

Lock-Joint type

**Inherited from**

[PhysicsJoint](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/classes/m4m.framework.physicsjoint.md).[LockJoint](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/classes/m4m.framework.physicsjoint.md#lockjoint)

**Defined in**

[framework/physics3d/physicJoint.ts:121](https://github.com/meta4d-me/meta4d-engine/blob/cf6bfe6/src/framework/physics3d/physicJoint.ts#L121)

***

#### PointToPointJoint

▪ `Static` **PointToPointJoint**: `number` = `8`

Point to Point Joint type. Similar to a Ball-Joint. Different in parameters

**Inherited from**

[PhysicsJoint](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/classes/m4m.framework.physicsjoint.md).[PointToPointJoint](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/classes/m4m.framework.physicsjoint.md#pointtopointjoint)

**Defined in**

[framework/physics3d/physicJoint.ts:112](https://github.com/meta4d-me/meta4d-engine/blob/cf6bfe6/src/framework/physics3d/physicJoint.ts#L112)

***

#### PrismaticJoint

▪ `Static` **PrismaticJoint**: `number` = `5`

Prismatic-Joint type

**Inherited from**

[PhysicsJoint](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/classes/m4m.framework.physicsjoint.md).[PrismaticJoint](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/classes/m4m.framework.physicsjoint.md#prismaticjoint)

**Defined in**

[framework/physics3d/physicJoint.ts:98](https://github.com/meta4d-me/meta4d-engine/blob/cf6bfe6/src/framework/physics3d/physicJoint.ts#L98)

***

#### SliderJoint

▪ `Static` **SliderJoint**: `number` = `4`

Slider-Joint type

**Inherited from**

[PhysicsJoint](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/classes/m4m.framework.physicsjoint.md).[SliderJoint](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/classes/m4m.framework.physicsjoint.md#sliderjoint)

**Defined in**

[framework/physics3d/physicJoint.ts:93](https://github.com/meta4d-me/meta4d-engine/blob/cf6bfe6/src/framework/physics3d/physicJoint.ts#L93)

***

#### SpringJoint

▪ `Static` **SpringJoint**: `number` = `9`

Spring-Joint type

**Inherited from**

[PhysicsJoint](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/classes/m4m.framework.physicsjoint.md).[SpringJoint](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/classes/m4m.framework.physicsjoint.md#springjoint)

**Defined in**

[framework/physics3d/physicJoint.ts:117](https://github.com/meta4d-me/meta4d-engine/blob/cf6bfe6/src/framework/physics3d/physicJoint.ts#L117)

***

#### UniversalJoint

▪ `Static` **UniversalJoint**: `number` = `6`

Universal-Joint type

**Inherited from**

[PhysicsJoint](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/classes/m4m.framework.physicsjoint.md).[UniversalJoint](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/classes/m4m.framework.physicsjoint.md#universaljoint)

**Defined in**

[framework/physics3d/physicJoint.ts:103](https://github.com/meta4d-me/meta4d-engine/blob/cf6bfe6/src/framework/physics3d/physicJoint.ts#L103)

***

#### WheelJoint

▪ `Static` **WheelJoint**: `number` = `3`

Wheel-Joint type

**Inherited from**

[PhysicsJoint](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/classes/m4m.framework.physicsjoint.md).[WheelJoint](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/classes/m4m.framework.physicsjoint.md#wheeljoint)

**Defined in**

[framework/physics3d/physicJoint.ts:89](https://github.com/meta4d-me/meta4d-engine/blob/cf6bfe6/src/framework/physics3d/physicJoint.ts#L89)

### Constructors

#### constructor

• **new MotorEnabledJoint**(`type`, `jointData`)

**Parameters**

| Name        | Type                                                                                                       |
| ----------- | ---------------------------------------------------------------------------------------------------------- |
| `type`      | `number`                                                                                                   |
| `jointData` | [`PhysicsJointData`](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/interfaces/m4m.framework.physicsjointdata.md) |

**Overrides**

[PhysicsJoint](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/classes/m4m.framework.physicsjoint.md).[constructor](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/classes/m4m.framework.physicsjoint.md#constructor)

**Defined in**

[framework/physics3d/physicJoint.ts:145](https://github.com/meta4d-me/meta4d-engine/blob/cf6bfe6/src/framework/physics3d/physicJoint.ts#L145)

### Methods

#### executeNativeFunction

▸ **executeNativeFunction**(`func`): `void`

Execute a function that is physics-plugin specific.

**Parameters**

| Name   | Type                                              | Description                                                                                             |
| ------ | ------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
| `func` | (`world`: `any`, `physicsJoint`: `any`) => `void` | the function that will be executed. It accepts two parameters: the physics world and the physics joint. |

**Returns**

`void`

**Inherited from**

[PhysicsJoint](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/classes/m4m.framework.physicsjoint.md).[executeNativeFunction](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/classes/m4m.framework.physicsjoint.md#executenativefunction)

**Defined in**

[framework/physics3d/physicJoint.ts:66](https://github.com/meta4d-me/meta4d-engine/blob/cf6bfe6/src/framework/physics3d/physicJoint.ts#L66)

***

#### setLimit

▸ **setLimit**(`upperLimit`, `lowerLimit?`): `void`

Set the motor's limits. Attention, this function is plugin specific. Engines won't react 100% the same.

**Parameters**

| Name          | Type     |
| ------------- | -------- |
| `upperLimit`  | `number` |
| `lowerLimit?` | `number` |

**Returns**

`void`

**Implementation of**

[IMotorEnabledJoint](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/interfaces/m4m.framework.imotorenabledjoint.md).[setLimit](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/interfaces/m4m.framework.imotorenabledjoint.md#setlimit)

**Defined in**

[framework/physics3d/physicJoint.ts:163](https://github.com/meta4d-me/meta4d-engine/blob/cf6bfe6/src/framework/physics3d/physicJoint.ts#L163)

***

#### setMotor

▸ **setMotor**(`force?`, `maxForce?`): `void`

Set the motor values. Attention, this function is plugin specific. Engines won't react 100% the same.

**Parameters**

| Name        | Type     | Description               |
| ----------- | -------- | ------------------------- |
| `force?`    | `number` | the force to apply        |
| `maxForce?` | `number` | max force for this motor. |

**Returns**

`void`

**Implementation of**

[IMotorEnabledJoint](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/interfaces/m4m.framework.imotorenabledjoint.md).[setMotor](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/interfaces/m4m.framework.imotorenabledjoint.md#setmotor)

**Defined in**

[framework/physics3d/physicJoint.ts:155](https://github.com/meta4d-me/meta4d-engine/blob/cf6bfe6/src/framework/physics3d/physicJoint.ts#L155)

### Accessors

#### physicsJoint

• `get` **physicsJoint**(): `any`

**Returns**

`any`

**Implementation of**

[IMotorEnabledJoint](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/interfaces/m4m.framework.imotorenabledjoint.md).[physicsJoint](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/interfaces/m4m.framework.imotorenabledjoint.md#physicsjoint)

**Inherited from**

PhysicsJoint.physicsJoint

**Defined in**

[framework/physics3d/physicJoint.ts:44](https://github.com/meta4d-me/meta4d-engine/blob/cf6bfe6/src/framework/physics3d/physicJoint.ts#L44)

• `set` **physicsJoint**(`newJoint`): `void`

**Parameters**

| Name       | Type  |
| ---------- | ----- |
| `newJoint` | `any` |

**Returns**

`void`

**Implementation of**

[IMotorEnabledJoint](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/interfaces/m4m.framework.imotorenabledjoint.md).[physicsJoint](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/interfaces/m4m.framework.imotorenabledjoint.md#physicsjoint)

**Inherited from**

PhysicsJoint.physicsJoint

**Defined in**

[framework/physics3d/physicJoint.ts:48](https://github.com/meta4d-me/meta4d-engine/blob/cf6bfe6/src/framework/physics3d/physicJoint.ts#L48)

***

#### physicsPlugin

• `set` **physicsPlugin**(`physicsPlugin`): `void`

**Parameters**

| Name            | Type                                                                                                               |
| --------------- | ------------------------------------------------------------------------------------------------------------------ |
| `physicsPlugin` | [`IPhysicsEnginePlugin`](/jkUDC53bibxMH5jKxZe0/api-docs/api-docs/interfaces/m4m.framework.iphysicsengineplugin.md) |

**Returns**

`void`

**Inherited from**

PhysicsJoint.physicsPlugin

**Defined in**

[framework/physics3d/physicJoint.ts:57](https://github.com/meta4d-me/meta4d-engine/blob/cf6bfe6/src/framework/physics3d/physicJoint.ts#L57)
