Struct PhysicsServer3D
#[repr(C)]pub struct PhysicsServer3D { /* private fields */ }
Expand description
Godot class PhysicsServer3D.
Inherits Object
.
Related symbols:
physics_server_3d
: sidecar module with related enum/flag typesIPhysicsServer3D
: virtual methods
See also Godot docs for PhysicsServer3D
.
§Singleton
This class is a singleton. You can get the one instance using PhysicsServer3D::singleton()
.
Implementations§
§impl PhysicsServer3D
impl PhysicsServer3D
pub fn singleton() -> Gd<PhysicsServer3D>
pub fn world_boundary_shape_create(&mut self) -> Rid
pub fn separation_ray_shape_create(&mut self) -> Rid
pub fn sphere_shape_create(&mut self) -> Rid
pub fn box_shape_create(&mut self) -> Rid
pub fn capsule_shape_create(&mut self) -> Rid
pub fn cylinder_shape_create(&mut self) -> Rid
pub fn convex_polygon_shape_create(&mut self) -> Rid
pub fn concave_polygon_shape_create(&mut self) -> Rid
pub fn heightmap_shape_create(&mut self) -> Rid
pub fn custom_shape_create(&mut self) -> Rid
pub fn shape_set_data(&mut self, shape: Rid, data: &Variant)
pub fn shape_set_margin(&mut self, shape: Rid, margin: f32)
pub fn shape_get_type(&self, shape: Rid) -> ShapeType
pub fn shape_get_data(&self, shape: Rid) -> Variant
pub fn shape_get_margin(&self, shape: Rid) -> f32
pub fn space_create(&mut self) -> Rid
pub fn space_set_active(&mut self, space: Rid, active: bool)
pub fn space_is_active(&self, space: Rid) -> bool
pub fn space_set_param(&mut self, space: Rid, param: SpaceParameter, value: f32)
pub fn space_get_param(&self, space: Rid, param: SpaceParameter) -> f32
pub fn space_get_direct_state( &mut self, space: Rid, ) -> Option<Gd<PhysicsDirectSpaceState3D>>
pub fn area_create(&mut self) -> Rid
pub fn area_set_space(&mut self, area: Rid, space: Rid)
pub fn area_get_space(&self, area: Rid) -> Rid
pub fn area_add_shape(&mut self, area: Rid, shape: Rid)
pub fn area_add_shape(&mut self, area: Rid, shape: Rid)
To set the default parameters, use Self::area_add_shape_ex
and its builder methods. See the book for detailed usage instructions.
pub fn area_add_shape_ex<'a>( &'a mut self, area: Rid, shape: Rid, ) -> ExAreaAddShape<'a>
pub fn area_set_shape(&mut self, area: Rid, shape_idx: i32, shape: Rid)
pub fn area_set_shape_transform( &mut self, area: Rid, shape_idx: i32, transform: Transform3D, )
pub fn area_set_shape_disabled( &mut self, area: Rid, shape_idx: i32, disabled: bool, )
pub fn area_get_shape_count(&self, area: Rid) -> i32
pub fn area_get_shape(&self, area: Rid, shape_idx: i32) -> Rid
pub fn area_get_shape_transform(&self, area: Rid, shape_idx: i32) -> Transform3D
pub fn area_remove_shape(&mut self, area: Rid, shape_idx: i32)
pub fn area_clear_shapes(&mut self, area: Rid)
pub fn area_set_collision_layer(&mut self, area: Rid, layer: u32)
pub fn area_get_collision_layer(&self, area: Rid) -> u32
pub fn area_set_collision_mask(&mut self, area: Rid, mask: u32)
pub fn area_get_collision_mask(&self, area: Rid) -> u32
pub fn area_set_param( &mut self, area: Rid, param: AreaParameter, value: &Variant, )
pub fn area_set_transform(&mut self, area: Rid, transform: Transform3D)
pub fn area_get_param(&self, area: Rid, param: AreaParameter) -> Variant
pub fn area_get_transform(&self, area: Rid) -> Transform3D
pub fn area_attach_object_instance_id(&mut self, area: Rid, id: u64)
pub fn area_get_object_instance_id(&self, area: Rid) -> u64
pub fn area_set_monitor_callback(&mut self, area: Rid, callback: Callable)
pub fn area_set_area_monitor_callback(&mut self, area: Rid, callback: Callable)
pub fn area_set_monitorable(&mut self, area: Rid, monitorable: bool)
pub fn area_set_ray_pickable(&mut self, area: Rid, enable: bool)
pub fn body_create(&mut self) -> Rid
pub fn body_set_space(&mut self, body: Rid, space: Rid)
pub fn body_get_space(&self, body: Rid) -> Rid
pub fn body_set_mode(&mut self, body: Rid, mode: BodyMode)
pub fn body_get_mode(&self, body: Rid) -> BodyMode
pub fn body_set_collision_layer(&mut self, body: Rid, layer: u32)
pub fn body_get_collision_layer(&self, body: Rid) -> u32
pub fn body_set_collision_mask(&mut self, body: Rid, mask: u32)
pub fn body_get_collision_mask(&self, body: Rid) -> u32
pub fn body_set_collision_priority(&mut self, body: Rid, priority: f32)
pub fn body_get_collision_priority(&self, body: Rid) -> f32
pub fn body_add_shape(&mut self, body: Rid, shape: Rid)
pub fn body_add_shape(&mut self, body: Rid, shape: Rid)
To set the default parameters, use Self::body_add_shape_ex
and its builder methods. See the book for detailed usage instructions.
pub fn body_add_shape_ex<'a>( &'a mut self, body: Rid, shape: Rid, ) -> ExBodyAddShape<'a>
pub fn body_set_shape(&mut self, body: Rid, shape_idx: i32, shape: Rid)
pub fn body_set_shape_transform( &mut self, body: Rid, shape_idx: i32, transform: Transform3D, )
pub fn body_set_shape_disabled( &mut self, body: Rid, shape_idx: i32, disabled: bool, )
pub fn body_get_shape_count(&self, body: Rid) -> i32
pub fn body_get_shape(&self, body: Rid, shape_idx: i32) -> Rid
pub fn body_get_shape_transform(&self, body: Rid, shape_idx: i32) -> Transform3D
pub fn body_remove_shape(&mut self, body: Rid, shape_idx: i32)
pub fn body_clear_shapes(&mut self, body: Rid)
pub fn body_attach_object_instance_id(&mut self, body: Rid, id: u64)
pub fn body_get_object_instance_id(&self, body: Rid) -> u64
pub fn body_set_enable_continuous_collision_detection( &mut self, body: Rid, enable: bool, )
pub fn body_is_continuous_collision_detection_enabled(&self, body: Rid) -> bool
pub fn body_set_param( &mut self, body: Rid, param: BodyParameter, value: &Variant, )
pub fn body_get_param(&self, body: Rid, param: BodyParameter) -> Variant
pub fn body_reset_mass_properties(&mut self, body: Rid)
pub fn body_set_state(&mut self, body: Rid, state: BodyState, value: &Variant)
pub fn body_get_state(&self, body: Rid, state: BodyState) -> Variant
pub fn body_apply_central_impulse(&mut self, body: Rid, impulse: Vector3)
pub fn body_apply_impulse(&mut self, body: Rid, impulse: Vector3)
pub fn body_apply_impulse(&mut self, body: Rid, impulse: Vector3)
To set the default parameters, use Self::body_apply_impulse_ex
and its builder methods. See the book for detailed usage instructions.
pub fn body_apply_impulse_ex<'a>( &'a mut self, body: Rid, impulse: Vector3, ) -> ExBodyApplyImpulse<'a>
pub fn body_apply_torque_impulse(&mut self, body: Rid, impulse: Vector3)
pub fn body_apply_central_force(&mut self, body: Rid, force: Vector3)
pub fn body_apply_force(&mut self, body: Rid, force: Vector3)
pub fn body_apply_force(&mut self, body: Rid, force: Vector3)
To set the default parameters, use Self::body_apply_force_ex
and its builder methods. See the book for detailed usage instructions.
pub fn body_apply_force_ex<'a>( &'a mut self, body: Rid, force: Vector3, ) -> ExBodyApplyForce<'a>
pub fn body_apply_torque(&mut self, body: Rid, torque: Vector3)
pub fn body_add_constant_central_force(&mut self, body: Rid, force: Vector3)
pub fn body_add_constant_force(&mut self, body: Rid, force: Vector3)
pub fn body_add_constant_force(&mut self, body: Rid, force: Vector3)
To set the default parameters, use Self::body_add_constant_force_ex
and its builder methods. See the book for detailed usage instructions.
pub fn body_add_constant_force_ex<'a>( &'a mut self, body: Rid, force: Vector3, ) -> ExBodyAddConstantForce<'a>
pub fn body_add_constant_torque(&mut self, body: Rid, torque: Vector3)
pub fn body_set_constant_force(&mut self, body: Rid, force: Vector3)
pub fn body_get_constant_force(&self, body: Rid) -> Vector3
pub fn body_set_constant_torque(&mut self, body: Rid, torque: Vector3)
pub fn body_get_constant_torque(&self, body: Rid) -> Vector3
pub fn body_set_axis_velocity(&mut self, body: Rid, axis_velocity: Vector3)
pub fn body_set_axis_lock(&mut self, body: Rid, axis: BodyAxis, lock: bool)
pub fn body_is_axis_locked(&self, body: Rid, axis: BodyAxis) -> bool
pub fn body_add_collision_exception(&mut self, body: Rid, excepted_body: Rid)
pub fn body_remove_collision_exception(&mut self, body: Rid, excepted_body: Rid)
pub fn body_set_max_contacts_reported(&mut self, body: Rid, amount: i32)
pub fn body_get_max_contacts_reported(&self, body: Rid) -> i32
pub fn body_set_omit_force_integration(&mut self, body: Rid, enable: bool)
pub fn body_is_omitting_force_integration(&self, body: Rid) -> bool
pub fn body_set_state_sync_callback(&mut self, body: Rid, callable: Callable)
pub fn body_set_force_integration_callback(
&mut self,
body: Rid,
callable: Callable,
)
pub fn body_set_force_integration_callback( &mut self, body: Rid, callable: Callable, )
To set the default parameters, use Self::body_set_force_integration_callback_ex
and its builder methods. See the book for detailed usage instructions.
pub fn body_set_force_integration_callback_ex<'a>( &'a mut self, body: Rid, callable: Callable, ) -> ExBodySetForceIntegrationCallback<'a>
pub fn body_set_ray_pickable(&mut self, body: Rid, enable: bool)
pub fn body_test_motion(
&mut self,
body: Rid,
parameters: impl AsObjectArg<PhysicsTestMotionParameters3D>,
) -> bool
pub fn body_test_motion( &mut self, body: Rid, parameters: impl AsObjectArg<PhysicsTestMotionParameters3D>, ) -> bool
To set the default parameters, use Self::body_test_motion_ex
and its builder methods. See the book for detailed usage instructions.
pub fn body_test_motion_ex<'a>( &'a mut self, body: Rid, parameters: impl AsObjectArg<PhysicsTestMotionParameters3D>, ) -> ExBodyTestMotion<'a>
pub fn body_get_direct_state( &mut self, body: Rid, ) -> Option<Gd<PhysicsDirectBodyState3D>>
pub fn soft_body_create(&mut self) -> Rid
pub fn soft_body_update_rendering_server( &mut self, body: Rid, rendering_server_handler: impl AsObjectArg<PhysicsServer3DRenderingServerHandler>, )
pub fn soft_body_set_space(&mut self, body: Rid, space: Rid)
pub fn soft_body_get_space(&self, body: Rid) -> Rid
pub fn soft_body_set_mesh(&mut self, body: Rid, mesh: Rid)
pub fn soft_body_get_bounds(&self, body: Rid) -> Aabb
pub fn soft_body_set_collision_layer(&mut self, body: Rid, layer: u32)
pub fn soft_body_get_collision_layer(&self, body: Rid) -> u32
pub fn soft_body_set_collision_mask(&mut self, body: Rid, mask: u32)
pub fn soft_body_get_collision_mask(&self, body: Rid) -> u32
pub fn soft_body_add_collision_exception(&mut self, body: Rid, body_b: Rid)
pub fn soft_body_remove_collision_exception(&mut self, body: Rid, body_b: Rid)
pub fn soft_body_set_state( &mut self, body: Rid, state: BodyState, variant: &Variant, )
pub fn soft_body_get_state(&self, body: Rid, state: BodyState) -> Variant
pub fn soft_body_set_transform(&mut self, body: Rid, transform: Transform3D)
pub fn soft_body_set_ray_pickable(&mut self, body: Rid, enable: bool)
pub fn soft_body_set_simulation_precision( &mut self, body: Rid, simulation_precision: i32, )
pub fn soft_body_get_simulation_precision(&self, body: Rid) -> i32
pub fn soft_body_set_total_mass(&mut self, body: Rid, total_mass: f32)
pub fn soft_body_get_total_mass(&self, body: Rid) -> f32
pub fn soft_body_set_linear_stiffness(&mut self, body: Rid, stiffness: f32)
pub fn soft_body_get_linear_stiffness(&self, body: Rid) -> f32
pub fn soft_body_set_pressure_coefficient( &mut self, body: Rid, pressure_coefficient: f32, )
pub fn soft_body_get_pressure_coefficient(&self, body: Rid) -> f32
pub fn soft_body_set_damping_coefficient( &mut self, body: Rid, damping_coefficient: f32, )
pub fn soft_body_get_damping_coefficient(&self, body: Rid) -> f32
pub fn soft_body_set_drag_coefficient( &mut self, body: Rid, drag_coefficient: f32, )
pub fn soft_body_get_drag_coefficient(&self, body: Rid) -> f32
pub fn soft_body_move_point( &mut self, body: Rid, point_index: i32, global_position: Vector3, )
pub fn soft_body_get_point_global_position( &self, body: Rid, point_index: i32, ) -> Vector3
pub fn soft_body_remove_all_pinned_points(&mut self, body: Rid)
pub fn soft_body_pin_point(&mut self, body: Rid, point_index: i32, pin: bool)
pub fn soft_body_is_point_pinned(&self, body: Rid, point_index: i32) -> bool
pub fn joint_create(&mut self) -> Rid
pub fn joint_clear(&mut self, joint: Rid)
pub fn joint_make_pin( &mut self, joint: Rid, body_A: Rid, local_A: Vector3, body_B: Rid, local_B: Vector3, )
pub fn pin_joint_set_param( &mut self, joint: Rid, param: PinJointParam, value: f32, )
pub fn pin_joint_get_param(&self, joint: Rid, param: PinJointParam) -> f32
pub fn pin_joint_set_local_a(&mut self, joint: Rid, local_A: Vector3)
pub fn pin_joint_get_local_a(&self, joint: Rid) -> Vector3
pub fn pin_joint_set_local_b(&mut self, joint: Rid, local_B: Vector3)
pub fn pin_joint_get_local_b(&self, joint: Rid) -> Vector3
pub fn joint_make_hinge( &mut self, joint: Rid, body_A: Rid, hinge_A: Transform3D, body_B: Rid, hinge_B: Transform3D, )
pub fn hinge_joint_set_param( &mut self, joint: Rid, param: HingeJointParam, value: f32, )
pub fn hinge_joint_get_param(&self, joint: Rid, param: HingeJointParam) -> f32
pub fn hinge_joint_set_flag( &mut self, joint: Rid, flag: HingeJointFlag, enabled: bool, )
pub fn hinge_joint_get_flag(&self, joint: Rid, flag: HingeJointFlag) -> bool
pub fn joint_make_slider( &mut self, joint: Rid, body_A: Rid, local_ref_A: Transform3D, body_B: Rid, local_ref_B: Transform3D, )
pub fn slider_joint_set_param( &mut self, joint: Rid, param: SliderJointParam, value: f32, )
pub fn slider_joint_get_param(&self, joint: Rid, param: SliderJointParam) -> f32
pub fn joint_make_cone_twist( &mut self, joint: Rid, body_A: Rid, local_ref_A: Transform3D, body_B: Rid, local_ref_B: Transform3D, )
pub fn cone_twist_joint_set_param( &mut self, joint: Rid, param: ConeTwistJointParam, value: f32, )
pub fn cone_twist_joint_get_param( &self, joint: Rid, param: ConeTwistJointParam, ) -> f32
pub fn joint_get_type(&self, joint: Rid) -> JointType
pub fn joint_set_solver_priority(&mut self, joint: Rid, priority: i32)
pub fn joint_get_solver_priority(&self, joint: Rid) -> i32
pub fn joint_disable_collisions_between_bodies( &mut self, joint: Rid, disable: bool, )
pub fn joint_is_disabled_collisions_between_bodies(&self, joint: Rid) -> bool
pub fn joint_make_generic_6dof( &mut self, joint: Rid, body_A: Rid, local_ref_A: Transform3D, body_B: Rid, local_ref_B: Transform3D, )
pub fn generic_6dof_joint_set_param( &mut self, joint: Rid, axis: Vector3Axis, param: G6dofJointAxisParam, value: f32, )
pub fn generic_6dof_joint_get_param( &self, joint: Rid, axis: Vector3Axis, param: G6dofJointAxisParam, ) -> f32
pub fn generic_6dof_joint_set_flag( &mut self, joint: Rid, axis: Vector3Axis, flag: G6dofJointAxisFlag, enable: bool, )
pub fn generic_6dof_joint_get_flag( &self, joint: Rid, axis: Vector3Axis, flag: G6dofJointAxisFlag, ) -> bool
pub fn free_rid(&mut self, rid: Rid)
pub fn set_active(&mut self, active: bool)
pub fn get_process_info(&mut self, process_info: ProcessInfo) -> i32
Methods from Deref<Target = Object>§
pub fn get_class(&self) -> GString
pub fn is_class(&self, class: GString) -> bool
pub fn set(&mut self, property: StringName, value: &Variant)
pub fn get(&self, property: StringName) -> Variant
pub fn set_indexed(&mut self, property_path: NodePath, value: &Variant)
pub fn get_indexed(&self, property_path: NodePath) -> Variant
pub fn get_property_list(&self) -> Array<Dictionary>
pub fn get_method_list(&self) -> Array<Dictionary>
pub fn property_can_revert(&self, property: StringName) -> bool
pub fn property_get_revert(&self, property: StringName) -> Variant
pub fn set_script(&mut self, script: &Variant)
pub fn get_script(&self) -> Variant
pub fn set_meta(&mut self, name: StringName, value: &Variant)
pub fn remove_meta(&mut self, name: StringName)
pub fn get_meta(&self, name: StringName) -> Variant
pub fn get_meta(&self, name: StringName) -> Variant
To set the default parameters, use Self::get_meta_ex
and its builder methods. See the book for detailed usage instructions.
pub fn get_meta_ex<'a>(&'a self, name: StringName) -> ExGetMeta<'a>
pub fn has_meta(&self, name: StringName) -> bool
pub fn get_meta_list(&self) -> Array<StringName>
pub fn add_user_signal(&mut self, signal: GString)
pub fn add_user_signal(&mut self, signal: GString)
To set the default parameters, use Self::add_user_signal_ex
and its builder methods. See the book for detailed usage instructions.
pub fn add_user_signal_ex<'a>( &'a mut self, signal: GString, ) -> ExAddUserSignal<'a>
pub fn has_user_signal(&self, signal: StringName) -> bool
pub fn remove_user_signal(&mut self, signal: StringName)
pub fn emit_signal(&mut self, signal: StringName, varargs: &[Variant]) -> Error
pub fn emit_signal(&mut self, signal: StringName, varargs: &[Variant]) -> Error
§Panics
This is a varcall method, meaning parameters and return values are passed as Variant
.
It can detect call failures and will panic in such a case.
pub fn try_emit_signal(
&mut self,
signal: StringName,
varargs: &[Variant],
) -> Result<Error, CallError>
pub fn try_emit_signal( &mut self, signal: StringName, varargs: &[Variant], ) -> Result<Error, CallError>
§Return type
This is a varcall method, meaning parameters and return values are passed as Variant
.
It can detect call failures and will return Err
in such a case.
pub fn call(&mut self, method: StringName, varargs: &[Variant]) -> Variant
pub fn call(&mut self, method: StringName, varargs: &[Variant]) -> Variant
§Panics
This is a varcall method, meaning parameters and return values are passed as Variant
.
It can detect call failures and will panic in such a case.
pub fn try_call(
&mut self,
method: StringName,
varargs: &[Variant],
) -> Result<Variant, CallError>
pub fn try_call( &mut self, method: StringName, varargs: &[Variant], ) -> Result<Variant, CallError>
§Return type
This is a varcall method, meaning parameters and return values are passed as Variant
.
It can detect call failures and will return Err
in such a case.
pub fn call_deferred(
&mut self,
method: StringName,
varargs: &[Variant],
) -> Variant
pub fn call_deferred( &mut self, method: StringName, varargs: &[Variant], ) -> Variant
§Panics
This is a varcall method, meaning parameters and return values are passed as Variant
.
It can detect call failures and will panic in such a case.
pub fn try_call_deferred(
&mut self,
method: StringName,
varargs: &[Variant],
) -> Result<Variant, CallError>
pub fn try_call_deferred( &mut self, method: StringName, varargs: &[Variant], ) -> Result<Variant, CallError>
§Return type
This is a varcall method, meaning parameters and return values are passed as Variant
.
It can detect call failures and will return Err
in such a case.
pub fn set_deferred(&mut self, property: StringName, value: &Variant)
pub fn callv( &mut self, method: StringName, arg_array: &Array<Variant>, ) -> Variant
pub fn has_method(&self, method: StringName) -> bool
pub fn get_method_argument_count(&self, method: StringName) -> i32
pub fn has_signal(&self, signal: StringName) -> bool
pub fn get_signal_list(&self) -> Array<Dictionary>
pub fn get_signal_connection_list( &self, signal: StringName, ) -> Array<Dictionary>
pub fn get_incoming_connections(&self) -> Array<Dictionary>
pub fn connect(&mut self, signal: StringName, callable: Callable) -> Error
pub fn connect(&mut self, signal: StringName, callable: Callable) -> Error
To set the default parameters, use Self::connect_ex
and its builder methods. See the book for detailed usage instructions.
pub fn connect_ex<'a>( &'a mut self, signal: StringName, callable: Callable, ) -> ExConnect<'a>
pub fn disconnect(&mut self, signal: StringName, callable: Callable)
pub fn is_connected(&self, signal: StringName, callable: Callable) -> bool
pub fn set_block_signals(&mut self, enable: bool)
pub fn is_blocking_signals(&self) -> bool
pub fn notify_property_list_changed(&mut self)
pub fn set_message_translation(&mut self, enable: bool)
pub fn can_translate_messages(&self) -> bool
pub fn tr(&self, message: StringName) -> GString
pub fn tr(&self, message: StringName) -> GString
To set the default parameters, use Self::tr_ex
and its builder methods. See the book for detailed usage instructions.
pub fn tr_ex<'a>(&'a self, message: StringName) -> ExTr<'a>
pub fn tr_n(
&self,
message: StringName,
plural_message: StringName,
n: i32,
) -> GString
pub fn tr_n( &self, message: StringName, plural_message: StringName, n: i32, ) -> GString
To set the default parameters, use Self::tr_n_ex
and its builder methods. See the book for detailed usage instructions.
pub fn tr_n_ex<'a>( &'a self, message: StringName, plural_message: StringName, n: i32, ) -> ExTrN<'a>
pub fn is_queued_for_deletion(&self) -> bool
pub fn cancel_free(&mut self)
pub fn notify(&mut self, what: ObjectNotification)
pub fn notify(&mut self, what: ObjectNotification)
⚠️ Sends a Godot notification to all classes inherited by the object.
Triggers calls to on_notification()
, and depending on the notification, also to Godot’s lifecycle callbacks such as ready()
.
Starts from the highest ancestor (the Object
class) and goes down the hierarchy.
See also Godot docs for Object::notification()
.
§Panics
If you call this method on a user-defined object while holding a GdRef
or GdMut
guard on the instance, you will encounter
a panic. The reason is that the receiving virtual method on_notification()
acquires a GdMut
lock dynamically, which must
be exclusive.
pub fn notify_reversed(&mut self, what: ObjectNotification)
pub fn notify_reversed(&mut self, what: ObjectNotification)
⚠️ Like Self::notify()
, but starts at the most-derived class and goes up the hierarchy.
See docs of that method, including the panics.