Class: Three::Renderers::ThreeJSRenderer
- Defined in:
- lib/three/renderers/threejs_renderer.rb
Instance Attribute Summary collapse
-
#backend ⇒ Object
readonly
Returns the value of attribute backend.
-
#handle ⇒ Object
readonly
Returns the value of attribute handle.
Instance Method Summary collapse
- #animation_loop(&block) ⇒ Object
- #configure_shadow_map(enabled: nil, type: nil, auto_update: nil) ⇒ Object
- #dispose(object, **options) ⇒ Object
- #dispose_subtree(object, remove: true, dispose_geometries: true, dispose_materials: true, dispose_textures: true, dispose_skeletons: true) ⇒ Object
- #dom_element ⇒ Object
-
#initialize(canvas: nil, backend: Backends::ThreeJS.new, **options) ⇒ ThreeJSRenderer
constructor
A new instance of ThreeJSRenderer.
- #render(scene, camera) ⇒ Object
- #set_clear_color(color, alpha = 1) ⇒ Object
- #set_size(width, height) ⇒ Object
- #traverse_handles(object, &block) ⇒ Object
Constructor Details
#initialize(canvas: nil, backend: Backends::ThreeJS.new, **options) ⇒ ThreeJSRenderer
Returns a new instance of ThreeJSRenderer.
11 12 13 14 15 16 17 18 19 20 |
# File 'lib/three/renderers/threejs_renderer.rb', line 11 def initialize(canvas: nil, backend: Backends::ThreeJS.new, **) shadow_map_enabled = .delete(:shadow_map_enabled) shadow_map_type = .delete(:shadow_map_type) shadow_map_auto_update = .delete(:shadow_map_auto_update) @backend = backend @handle = @backend.create_renderer(canvas: canvas, **) if [shadow_map_enabled, shadow_map_type, shadow_map_auto_update].any? configure_shadow_map(enabled: shadow_map_enabled, type: shadow_map_type, auto_update: shadow_map_auto_update) end end |
Instance Attribute Details
#backend ⇒ Object (readonly)
Returns the value of attribute backend.
9 10 11 |
# File 'lib/three/renderers/threejs_renderer.rb', line 9 def backend @backend end |
#handle ⇒ Object (readonly)
Returns the value of attribute handle.
9 10 11 |
# File 'lib/three/renderers/threejs_renderer.rb', line 9 def handle @handle end |
Instance Method Details
#animation_loop(&block) ⇒ Object
41 42 43 44 |
# File 'lib/three/renderers/threejs_renderer.rb', line 41 def animation_loop(&block) @backend.set_animation_loop(@handle, block) self end |
#configure_shadow_map(enabled: nil, type: nil, auto_update: nil) ⇒ Object
36 37 38 39 |
# File 'lib/three/renderers/threejs_renderer.rb', line 36 def configure_shadow_map(enabled: nil, type: nil, auto_update: nil) @backend.set_renderer_shadow_map(@handle, enabled: enabled, type: type, auto_update: auto_update) self end |
#dispose(object, **options) ⇒ Object
53 54 55 56 |
# File 'lib/three/renderers/threejs_renderer.rb', line 53 def dispose(object, **) @backend.dispose(object, **) self end |
#dispose_subtree(object, remove: true, dispose_geometries: true, dispose_materials: true, dispose_textures: true, dispose_skeletons: true) ⇒ Object
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/three/renderers/threejs_renderer.rb', line 65 def dispose_subtree( object, remove: true, dispose_geometries: true, dispose_materials: true, dispose_textures: true, dispose_skeletons: true ) @backend.dispose_subtree( object, remove: remove, dispose_geometries: dispose_geometries, dispose_materials: dispose_materials, dispose_textures: dispose_textures, dispose_skeletons: dispose_skeletons ) self end |
#dom_element ⇒ Object
27 28 29 |
# File 'lib/three/renderers/threejs_renderer.rb', line 27 def dom_element @backend.renderer_dom_element(@handle) end |
#render(scene, camera) ⇒ Object
46 47 48 49 50 51 |
# File 'lib/three/renderers/threejs_renderer.rb', line 46 def render(scene, camera) scene.update_matrix_world if scene.respond_to?(:update_matrix_world) camera.update_matrix_world if camera.respond_to?(:update_matrix_world) && camera.parent.nil? @backend.render(@handle, scene, camera) self end |
#set_clear_color(color, alpha = 1) ⇒ Object
31 32 33 34 |
# File 'lib/three/renderers/threejs_renderer.rb', line 31 def set_clear_color(color, alpha = 1) @backend.set_clear_color(@handle, color, alpha) self end |
#set_size(width, height) ⇒ Object
22 23 24 25 |
# File 'lib/three/renderers/threejs_renderer.rb', line 22 def set_size(width, height) @backend.set_renderer_size(@handle, width, height) self end |
#traverse_handles(object, &block) ⇒ Object
58 59 60 61 62 63 |
# File 'lib/three/renderers/threejs_renderer.rb', line 58 def traverse_handles(object, &block) return enum_for(:traverse_handles, object) unless block @backend.traverse_handles(object, &block) self end |