Module: Jolt
- Defined in:
- lib/jolt.rb,
lib/jolt/hit.rb,
lib/jolt/body.rb,
lib/jolt/shape.rb,
lib/jolt/errors.rb,
lib/jolt/layers.rb,
lib/jolt/native.rb,
lib/jolt/system.rb,
lib/jolt/version.rb,
lib/jolt/transform.rb,
lib/jolt/constraint.rb,
lib/jolt/conversions.rb,
lib/jolt/native/types.rb,
lib/jolt/body_dynamics.rb,
lib/jolt/fixed_stepper.rb,
lib/jolt/contact_events.rb,
lib/jolt/shape_builders.rb,
lib/jolt/system_queries.rb,
lib/jolt/body_collection.rb,
lib/jolt/native/platform.rb,
lib/jolt/system_contacts.rb,
lib/jolt/native/generated.rb,
lib/jolt/character_virtual.rb,
lib/jolt/system_characters.rb,
lib/jolt/system_constraints.rb,
lib/jolt/constraint_collection.rb,
lib/jolt/native/core_functions.rb,
lib/jolt/native/query_functions.rb,
lib/jolt/native/character_functions.rb,
lib/jolt/native/constraint_functions.rb
Defined Under Namespace
Modules: BodyDynamics, Conversions, Native, ShapeBuilders, SystemCharacters, SystemConstraints, SystemContacts, SystemQueries
Classes: Body, BodyCollection, CharacterVirtual, ConcurrentAccessError, Constraint, ConstraintCollection, Contact, ContactEvents, Error, FixedStepper, Hit, InitializationError, InvalidArgumentError, Layers, NativeLoadError, PhysicsUpdateError, Shape, ShapeError, System, Transform, UseAfterDestroyError
Constant Summary
collapse
- VERSION =
"1.0.0"
Class Method Summary
collapse
Class Method Details
.__register_system(system) ⇒ Object
71
72
73
74
75
76
77
|
# File 'lib/jolt.rb', line 71
def __register_system(system)
@lifecycle_mutex.synchronize do
raise InitializationError, "Jolt Physics is not initialized" unless @initialized
@systems << system
end
end
|
.__unregister_system(system) ⇒ Object
79
80
81
|
# File 'lib/jolt.rb', line 79
def __unregister_system(system)
@lifecycle_mutex.synchronize { @systems.delete(system) }
end
|
.init ⇒ Object
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
# File 'lib/jolt.rb', line 33
def init
@lifecycle_mutex.synchronize do
return self if @initialized
Native.load!
raise InitializationError, "Jolt Physics initialization failed" unless Native.JPH_Init
@initialized = true
unless @at_exit_registered
at_exit { shutdown }
@at_exit_registered = true
end
end
self
end
|
.initialized? ⇒ Boolean
50
51
52
|
# File 'lib/jolt.rb', line 50
def initialized?
@lifecycle_mutex.synchronize { @initialized }
end
|
.shutdown ⇒ Object
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
# File 'lib/jolt.rb', line 54
def shutdown
systems = @lifecycle_mutex.synchronize do
return unless @initialized
@systems.dup
end
systems.each(&:destroy)
@lifecycle_mutex.synchronize do
return unless @initialized
@systems.clear
Native.JPH_Shutdown
@initialized = false
end
end
|