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