Skip to content

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() ​

ts
get_anchor(anchor: vector): void;

Write the joint anchor into a vector.

Parameters ​

ParameterTypeDescription
anchorvectorOutput 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() ​

ts
get_axes_number(): number;

Returns ​

number

Number of controlled axes.


get_axis_angle() ​

ts
get_axis_angle(axis: number): number;

Get current angle for an axis.

Parameters ​

ParameterTypeDescription
axisnumberAxis index.

Returns ​

number

Axis angle.

Remarks ​

Use an axis index lower than get_axes_number().


get_axis_dir() ​

ts
get_axis_dir(axis: number, direction: vector): void;

Write axis direction into a vector.

Parameters ​

ParameterTypeDescription
axisnumberAxis index.
directionvectorOutput direction vector.

Returns ​

void

Remarks ​

The passed vector is overwritten. Ball joints have no axis direction to write.


get_bone_id() ​

ts
get_bone_id(): number;

Returns ​

number

Bone id associated with this joint.


get_first_element() ​

ts
get_first_element(): physics_element;

Returns ​

physics_element

First connected physics element.


get_limits() ​

ts
get_limits(
   min: number, 
   max: number, 
axis: number): LuaMultiReturn<[number, number]>;

Get angle limits for an axis.

Parameters ​

ParameterTypeDescription
minnumberOutput lower limit placeholder.
maxnumberOutput upper limit placeholder.
axisnumberAxis 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() ​

ts
get_max_force_and_velocity(
   force: number, 
   velocity: number, 
   axis: number): void;

Get force and velocity limits for an axis.

Parameters ​

ParameterTypeDescription
forcenumberOutput force placeholder.
velocitynumberOutput velocity placeholder.
axisnumberAxis index.

Returns ​

void

Remarks ​

Native Lua writes through the first two parameters. In TypeScript, pass placeholders only for declaration compatibility.


get_stcond_element() ​

ts
get_stcond_element(): physics_element;

Returns ​

physics_element

Second connected physics element.


is_breakable() ​

ts
is_breakable(): boolean;

Returns ​

boolean

Whether the joint can break.


set_anchor_global() ​

ts
set_anchor_global(
   x: number, 
   y: number, 
   z: number): void;

Set anchor in world space.

Parameters ​

ParameterType
xnumber
ynumber
znumber

Returns ​

void

Remarks ​

The coordinates are interpreted in the shell's global frame.


set_anchor_vs_first_element() ​

ts
set_anchor_vs_first_element(
   x: number, 
   y: number, 
   z: number): void;

Set anchor relative to the first element.

Parameters ​

ParameterType
xnumber
ynumber
znumber

Returns ​

void

Remarks ​

The coordinates are interpreted in the first element's local frame.


set_anchor_vs_second_element() ​

ts
set_anchor_vs_second_element(
   x: number, 
   y: number, 
   z: number): void;

Set anchor relative to the second element.

Parameters ​

ParameterType
xnumber
ynumber
znumber

Returns ​

void

Remarks ​

The coordinates are interpreted in the second element's local frame.


set_axis_dir_global() ​

ts
set_axis_dir_global(
   x: number, 
   y: number, 
   z: number, 
   axis: number): void;

Set axis direction in world space.

Parameters ​

ParameterType
xnumber
ynumber
znumber
axisnumber

Returns ​

void

Remarks ​

Use an axis index lower than get_axes_number().


set_axis_dir_vs_first_element() ​

ts
set_axis_dir_vs_first_element(
   x: number, 
   y: number, 
   z: number, 
   axis: number): void;

Set axis direction relative to the first element.

Parameters ​

ParameterType
xnumber
ynumber
znumber
axisnumber

Returns ​

void

Remarks ​

Use an axis index lower than get_axes_number().


set_axis_dir_vs_second_element() ​

ts
set_axis_dir_vs_second_element(
   x: number, 
   y: number, 
   z: number, 
   axis: number): void;

Set axis direction relative to the second element.

Parameters ​

ParameterType
xnumber
ynumber
znumber
axisnumber

Returns ​

void

Remarks ​

Use an axis index lower than get_axes_number().


set_axis_spring_dumping_factors() ​

ts
set_axis_spring_dumping_factors(
   spring: number, 
   damping: number, 
   axis: number): void;

Set spring and damping factors for an axis.

Parameters ​

ParameterType
springnumber
dampingnumber
axisnumber

Returns ​

void

Remarks ​

Use an axis index lower than get_axes_number().


set_joint_spring_dumping_factors() ​

ts
set_joint_spring_dumping_factors(spring: number, damping: number): void;

Set spring and damping factors for the whole joint.

Parameters ​

ParameterType
springnumber
dampingnumber

Returns ​

void


set_limits() ​

ts
set_limits(
   min: number, 
   max: number, 
   axis: number): void;

Set angle limits for an axis.

Parameters ​

ParameterType
minnumber
maxnumber
axisnumber

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() ​

ts
set_max_force_and_velocity(
   force: number, 
   velocity: number, 
   axis: number): void;

Set force and velocity limits for an axis.

Parameters ​

ParameterType
forcenumber
velocitynumber
axisnumber

Returns ​

void

Remarks ​

Use an axis index lower than get_axes_number().