Class: physics_joint
Joint connecting two physics elements.
Source
src/xrPhysics/PhysicsShellScript.cpp, physics_joint binding.
Custom Constructor
physics_joint
Remarks
Joint handles come from a physics_shell. Axis methods expect an axis supported by this joint; check get_axes_number() before using indexed axis methods. Keep them only while the owning shell and object are alive.
Methods
get_anchor()
get_anchor(anchor: vector): void;Write the joint anchor into a vector.
Parameters
| Parameter | Type | Description |
|---|---|---|
anchor | vector | Output anchor vector. |
Returns
void
Remarks
The passed vector is overwritten. Slider joints do not have a defined anchor and trip a native assertion.
get_axes_number()
get_axes_number(): number;Returns
number
Number of controlled axes.
get_axis_angle()
get_axis_angle(axis: number): number;Get current angle for an axis.
Parameters
| Parameter | Type | Description |
|---|---|---|
axis | number | Axis index. |
Returns
number
Axis angle.
Remarks
Use an axis index lower than get_axes_number().
get_axis_dir()
get_axis_dir(axis: number, direction: vector): void;Write axis direction into a vector.
Parameters
| Parameter | Type | Description |
|---|---|---|
axis | number | Axis index. |
direction | vector | Output direction vector. |
Returns
void
Remarks
The passed vector is overwritten. Ball joints have no axis direction to write.
get_bone_id()
get_bone_id(): number;Returns
number
Bone id associated with this joint.
get_first_element()
get_first_element(): physics_element;Returns
First connected physics element.
get_limits()
get_limits(
min: number,
max: number,
axis: number): LuaMultiReturn<[number, number]>;Get angle limits for an axis.
Parameters
| Parameter | Type | Description |
|---|---|---|
min | number | Output lower limit placeholder. |
max | number | Output upper limit placeholder. |
axis | number | Axis index. |
Returns
LuaMultiReturn<[number, number]>
Lower and upper limits.
Remarks
The first two parameters are Lua output placeholders; use the returned tuple in TypeScript.
get_max_force_and_velocity()
get_max_force_and_velocity(
force: number,
velocity: number,
axis: number): void;Get force and velocity limits for an axis.
Parameters
| Parameter | Type | Description |
|---|---|---|
force | number | Output force placeholder. |
velocity | number | Output velocity placeholder. |
axis | number | Axis index. |
Returns
void
Remarks
Native Lua writes through the first two parameters. In TypeScript, pass placeholders only for declaration compatibility.
get_stcond_element()
get_stcond_element(): physics_element;Returns
Second connected physics element.
is_breakable()
is_breakable(): boolean;Returns
boolean
Whether the joint can break.
set_anchor_global()
set_anchor_global(
x: number,
y: number,
z: number): void;Set anchor in world space.
Parameters
| Parameter | Type |
|---|---|
x | number |
y | number |
z | number |
Returns
void
Remarks
The coordinates are interpreted in the shell's global frame.
set_anchor_vs_first_element()
set_anchor_vs_first_element(
x: number,
y: number,
z: number): void;Set anchor relative to the first element.
Parameters
| Parameter | Type |
|---|---|
x | number |
y | number |
z | number |
Returns
void
Remarks
The coordinates are interpreted in the first element's local frame.
set_anchor_vs_second_element()
set_anchor_vs_second_element(
x: number,
y: number,
z: number): void;Set anchor relative to the second element.
Parameters
| Parameter | Type |
|---|---|
x | number |
y | number |
z | number |
Returns
void
Remarks
The coordinates are interpreted in the second element's local frame.
set_axis_dir_global()
set_axis_dir_global(
x: number,
y: number,
z: number,
axis: number): void;Set axis direction in world space.
Parameters
| Parameter | Type |
|---|---|
x | number |
y | number |
z | number |
axis | number |
Returns
void
Remarks
Use an axis index lower than get_axes_number().
set_axis_dir_vs_first_element()
set_axis_dir_vs_first_element(
x: number,
y: number,
z: number,
axis: number): void;Set axis direction relative to the first element.
Parameters
| Parameter | Type |
|---|---|
x | number |
y | number |
z | number |
axis | number |
Returns
void
Remarks
Use an axis index lower than get_axes_number().
set_axis_dir_vs_second_element()
set_axis_dir_vs_second_element(
x: number,
y: number,
z: number,
axis: number): void;Set axis direction relative to the second element.
Parameters
| Parameter | Type |
|---|---|
x | number |
y | number |
z | number |
axis | number |
Returns
void
Remarks
Use an axis index lower than get_axes_number().
set_axis_spring_dumping_factors()
set_axis_spring_dumping_factors(
spring: number,
damping: number,
axis: number): void;Set spring and damping factors for an axis.
Parameters
| Parameter | Type |
|---|---|
spring | number |
damping | number |
axis | number |
Returns
void
Remarks
Use an axis index lower than get_axes_number().
set_joint_spring_dumping_factors()
set_joint_spring_dumping_factors(spring: number, damping: number): void;Set spring and damping factors for the whole joint.
Parameters
| Parameter | Type |
|---|---|
spring | number |
damping | number |
Returns
void
set_limits()
set_limits(
min: number,
max: number,
axis: number): void;Set angle limits for an axis.
Parameters
| Parameter | Type |
|---|---|
min | number |
max | number |
axis | number |
Returns
void
Remarks
Limits are angles in radians for rotational axes. Use an axis index lower than get_axes_number().
set_max_force_and_velocity()
set_max_force_and_velocity(
force: number,
velocity: number,
axis: number): void;Set force and velocity limits for an axis.
Parameters
| Parameter | Type |
|---|---|
force | number |
velocity | number |
axis | number |
Returns
void
Remarks
Use an axis index lower than get_axes_number().