Module: Jolt::BodyDynamics
- Included in:
- Body
- Defined in:
- lib/jolt/body_dynamics.rb
Instance Method Summary collapse
- #activate ⇒ Object
- #active? ⇒ Boolean
- #add_force(force, point: nil) ⇒ Object
- #add_torque(torque) ⇒ Object
- #angular_velocity ⇒ Object
- #angular_velocity=(value) ⇒ Object
- #apply_angular_impulse(impulse) ⇒ Object
- #apply_impulse(impulse, point: nil) ⇒ Object
- #deactivate ⇒ Object
- #friction ⇒ Object
- #friction=(value) ⇒ Object
- #kinematic_move_to(position, rotation, delta_time) ⇒ Object
- #linear_velocity ⇒ Object
- #linear_velocity=(value) ⇒ Object
- #restitution ⇒ Object
- #restitution=(value) ⇒ Object
- #sensor=(value) ⇒ Object
- #sensor? ⇒ Boolean
Instance Method Details
#activate ⇒ Object
44 45 46 47 48 |
# File 'lib/jolt/body_dynamics.rb', line 44 def activate check_alive! Native.JPH_BodyInterface_ActivateBody(body_interface, @id) self end |
#active? ⇒ Boolean
39 40 41 42 |
# File 'lib/jolt/body_dynamics.rb', line 39 def active? check_alive! Native.JPH_BodyInterface_IsActive(body_interface, @id) end |
#add_force(force, point: nil) ⇒ Object
30 31 32 |
# File 'lib/jolt/body_dynamics.rb', line 30 def add_force(force, point: nil) apply_vector_at_point(:JPH_BodyInterface_AddForce, :JPH_BodyInterface_AddForce2, force, point) end |
#add_torque(torque) ⇒ Object
34 35 36 37 |
# File 'lib/jolt/body_dynamics.rb', line 34 def add_torque(torque) write_vec3(:JPH_BodyInterface_AddTorque, torque) self end |
#angular_velocity ⇒ Object
13 14 15 |
# File 'lib/jolt/body_dynamics.rb', line 13 def angular_velocity read_vec3(:JPH_BodyInterface_GetAngularVelocity) end |
#angular_velocity=(value) ⇒ Object
17 18 19 |
# File 'lib/jolt/body_dynamics.rb', line 17 def angular_velocity=(value) write_vec3(:JPH_BodyInterface_SetAngularVelocity, value) end |
#apply_angular_impulse(impulse) ⇒ Object
25 26 27 28 |
# File 'lib/jolt/body_dynamics.rb', line 25 def apply_angular_impulse(impulse) write_vec3(:JPH_BodyInterface_AddAngularImpulse, impulse) self end |
#apply_impulse(impulse, point: nil) ⇒ Object
21 22 23 |
# File 'lib/jolt/body_dynamics.rb', line 21 def apply_impulse(impulse, point: nil) apply_vector_at_point(:JPH_BodyInterface_AddImpulse, :JPH_BodyInterface_AddImpulse2, impulse, point) end |
#deactivate ⇒ Object
50 51 52 53 54 |
# File 'lib/jolt/body_dynamics.rb', line 50 def deactivate check_alive! Native.JPH_BodyInterface_DeactivateBody(body_interface, @id) self end |
#friction ⇒ Object
67 68 69 |
# File 'lib/jolt/body_dynamics.rb', line 67 def friction scalar_property(:JPH_BodyInterface_GetFriction) end |
#friction=(value) ⇒ Object
71 72 73 |
# File 'lib/jolt/body_dynamics.rb', line 71 def friction=(value) write_scalar(:JPH_BodyInterface_SetFriction, value, "friction") end |
#kinematic_move_to(position, rotation, delta_time) ⇒ Object
56 57 58 59 60 61 62 63 64 65 |
# File 'lib/jolt/body_dynamics.rb', line 56 def kinematic_move_to(position, rotation, delta_time) check_alive! position = Conversions.native_vec3(position, name: "position") rotation = Conversions.native_quat(rotation) delta_time = Conversions.positive_float(delta_time, "delta_time") Native.JPH_BodyInterface_MoveKinematic( body_interface, @id, position.pointer, rotation.pointer, delta_time ) self end |
#linear_velocity ⇒ Object
5 6 7 |
# File 'lib/jolt/body_dynamics.rb', line 5 def linear_velocity read_vec3(:JPH_BodyInterface_GetLinearVelocity) end |
#linear_velocity=(value) ⇒ Object
9 10 11 |
# File 'lib/jolt/body_dynamics.rb', line 9 def linear_velocity=(value) write_vec3(:JPH_BodyInterface_SetLinearVelocity, value) end |
#restitution ⇒ Object
75 76 77 |
# File 'lib/jolt/body_dynamics.rb', line 75 def restitution scalar_property(:JPH_BodyInterface_GetRestitution) end |
#restitution=(value) ⇒ Object
79 80 81 |
# File 'lib/jolt/body_dynamics.rb', line 79 def restitution=(value) write_scalar(:JPH_BodyInterface_SetRestitution, value, "restitution") end |
#sensor=(value) ⇒ Object
88 89 90 91 |
# File 'lib/jolt/body_dynamics.rb', line 88 def sensor=(value) check_alive! Native.JPH_BodyInterface_SetIsSensor(body_interface, @id, !!value) end |
#sensor? ⇒ Boolean
83 84 85 86 |
# File 'lib/jolt/body_dynamics.rb', line 83 def sensor? check_alive! Native.JPH_BodyInterface_IsSensor(body_interface, @id) end |