Module: Jolt::BodyDynamics

Included in:
Body
Defined in:
lib/jolt/body_dynamics.rb

Instance Method Summary collapse

Instance Method Details

#activateObject



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

Returns:

  • (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_velocityObject



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

#deactivateObject



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

#frictionObject



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_velocityObject



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

#restitutionObject



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

Returns:

  • (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