Class: Three::Loaders::GLTFLoader

Inherits:
Object
  • Object
show all
Defined in:
lib/three/loaders/gltf_loader.rb

Instance Method Summary collapse

Constructor Details

#initialize(adapter: nil, backend: nil, draco_decoder_path: nil, draco_decoder_config: nil) ⇒ GLTFLoader

Returns a new instance of GLTFLoader.



29
30
31
32
33
# File 'lib/three/loaders/gltf_loader.rb', line 29

def initialize(adapter: nil, backend: nil, draco_decoder_path: nil, draco_decoder_config: nil)
  @adapter = adapter || backend&.adapter || Backends::ThreeJS::RubyWasmAdapter.new
  @draco_decoder_path = draco_decoder_path
  @draco_decoder_config = draco_decoder_config
end

Instance Method Details

#load(source) {|gltf| ... } ⇒ Object

Yields:

  • (gltf)


35
36
37
38
39
40
41
42
43
44
45
# File 'lib/three/loaders/gltf_loader.rb', line 35

def load(source)
  result = @adapter.load_gltf(
    source,
    draco_decoder_path: @draco_decoder_path,
    draco_decoder_config: @draco_decoder_config
  )
  result = result.await if result.respond_to?(:await)
  gltf = GLTF.new(result, adapter: @adapter)
  yield gltf if block_given?
  gltf
end