three-rb 0.1.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +33 -1
- data/README.md +66 -3
- data/docs/browser-runtime.md +92 -24
- data/docs/loaded-assets-design.md +1 -1
- data/docs/next-work.md +9 -5
- data/docs/publishing.md +119 -23
- data/docs/release-readiness.md +5 -3
- data/docs/standalone-browser-app.md +106 -0
- data/examples/browser/README.md +8 -0
- data/examples/browser/composition/main.rb +44 -64
- data/examples/browser/cube/main.rb +4 -34
- data/examples/browser/cubemap/assets/checker.svg +11 -0
- data/examples/browser/cubemap/main.rb +17 -40
- data/examples/browser/gltf/main.rb +30 -50
- data/examples/browser/picking/main.rb +27 -53
- data/examples/browser/postprocessing/main.rb +23 -42
- data/examples/browser/primitives/assets/checker.svg +11 -0
- data/examples/browser/primitives/main.rb +19 -42
- data/examples/browser/ruby/README.md +24 -0
- data/examples/browser/ruby/boot.mjs +6 -0
- data/examples/browser/ruby/index.html +142 -0
- data/examples/browser/ruby/main.rb +313 -0
- data/examples/browser/ruby/smoke_test.mjs +126 -0
- data/examples/browser/serialization/assets/checker.svg +11 -0
- data/examples/browser/serialization/main.rb +20 -42
- data/examples/browser/shared/boot.mjs +37 -5
- data/examples/browser/textures/assets/checker.svg +11 -0
- data/examples/browser/textures/assets/studio.hdr +5 -0
- data/examples/browser/textures/main.rb +23 -41
- data/exe/three-rb +56 -0
- data/lib/three/backends/threejs/materialization.rb +6 -0
- data/lib/three/backends/threejs/parameters.rb +17 -0
- data/lib/three/backends/threejs/ruby_wasm_adapter.rb +166 -59
- data/lib/three/backends/threejs/synchronization.rb +38 -4
- data/lib/three/backends/threejs.rb +24 -0
- data/lib/three/browser.rb +389 -0
- data/lib/three/constants.rb +6 -0
- data/lib/three/core/buffer_attribute.rb +5 -1
- data/lib/three/core/buffer_geometry.rb +29 -1
- data/lib/three/core/object3d.rb +39 -1
- data/lib/three/exporters/three_json_exporter.rb +3 -0
- data/lib/three/generators/browser_example.rb +396 -0
- data/lib/three/geometries/text_geometry.rb +41 -0
- data/lib/three/loaders/font_loader.rb +29 -0
- data/lib/three/loaders/three_json_loader.rb +92 -46
- data/lib/three/materials/material.rb +2 -1
- data/lib/three/math/matrix4.rb +27 -0
- data/lib/three/renderers/threejs_renderer.rb +19 -0
- data/lib/three/scenes/fog.rb +86 -0
- data/lib/three/scenes/scene.rb +19 -1
- data/lib/three/textures/texture.rb +2 -1
- data/lib/three/version.rb +1 -1
- data/lib/three.rb +4 -0
- data/package.json +2 -1
- metadata +26 -8
- /data/examples/browser/{assets → composition/assets}/checker.svg +0 -0
- /data/examples/browser/{assets → gltf/assets}/animated_triangle.gltf +0 -0
- /data/examples/browser/{assets → gltf/assets}/compressed_triangle.gltf +0 -0
- /data/examples/browser/{assets → gltf/assets}/triangle.gltf +0 -0
- /data/examples/browser/{assets → ruby/assets}/studio.hdr +0 -0
data/lib/three/math/matrix4.rb
CHANGED
|
@@ -13,6 +13,7 @@ module Three
|
|
|
13
13
|
0, 0, 1, 0,
|
|
14
14
|
0, 0, 0, 1
|
|
15
15
|
]
|
|
16
|
+
@on_change_callback = proc {}
|
|
16
17
|
|
|
17
18
|
set(*values) unless values.empty?
|
|
18
19
|
end
|
|
@@ -34,6 +35,7 @@ module Three
|
|
|
34
35
|
@elements[7] = n42
|
|
35
36
|
@elements[11] = n43
|
|
36
37
|
@elements[15] = n44
|
|
38
|
+
changed!
|
|
37
39
|
self
|
|
38
40
|
end
|
|
39
41
|
|
|
@@ -52,6 +54,7 @@ module Three
|
|
|
52
54
|
|
|
53
55
|
def copy(matrix)
|
|
54
56
|
@elements = matrix.elements.dup
|
|
57
|
+
changed!
|
|
55
58
|
self
|
|
56
59
|
end
|
|
57
60
|
|
|
@@ -59,6 +62,7 @@ module Three
|
|
|
59
62
|
@elements[12] = matrix.elements[12]
|
|
60
63
|
@elements[13] = matrix.elements[13]
|
|
61
64
|
@elements[14] = matrix.elements[14]
|
|
65
|
+
changed!
|
|
62
66
|
self
|
|
63
67
|
end
|
|
64
68
|
|
|
@@ -101,6 +105,7 @@ module Three
|
|
|
101
105
|
@elements[14] = z
|
|
102
106
|
end
|
|
103
107
|
|
|
108
|
+
changed!
|
|
104
109
|
self
|
|
105
110
|
end
|
|
106
111
|
|
|
@@ -169,11 +174,13 @@ module Three
|
|
|
169
174
|
@elements[7] = a41 * b12 + a42 * b22 + a43 * b32 + a44 * b42
|
|
170
175
|
@elements[11] = a41 * b13 + a42 * b23 + a43 * b33 + a44 * b43
|
|
171
176
|
@elements[15] = a41 * b14 + a42 * b24 + a43 * b34 + a44 * b44
|
|
177
|
+
changed!
|
|
172
178
|
self
|
|
173
179
|
end
|
|
174
180
|
|
|
175
181
|
def multiply_scalar(scalar)
|
|
176
182
|
@elements.map! { |value| value * scalar }
|
|
183
|
+
changed!
|
|
177
184
|
self
|
|
178
185
|
end
|
|
179
186
|
|
|
@@ -215,6 +222,7 @@ module Three
|
|
|
215
222
|
@elements[3], @elements[12] = @elements[12], @elements[3]
|
|
216
223
|
@elements[7], @elements[13] = @elements[13], @elements[7]
|
|
217
224
|
@elements[11], @elements[14] = @elements[14], @elements[11]
|
|
225
|
+
changed!
|
|
218
226
|
self
|
|
219
227
|
end
|
|
220
228
|
|
|
@@ -270,6 +278,7 @@ module Three
|
|
|
270
278
|
@elements[13] = (n11 * t10 - n21 * t8 + n31 * t7) * det_inv
|
|
271
279
|
@elements[14] = (n24 * t2 - n14 * t4 - n34 * t1) * det_inv
|
|
272
280
|
@elements[15] = (n13 * t4 - n23 * t2 + n33 * t1) * det_inv
|
|
281
|
+
changed!
|
|
273
282
|
self
|
|
274
283
|
end
|
|
275
284
|
|
|
@@ -286,6 +295,7 @@ module Three
|
|
|
286
295
|
@elements[3] *= vector.x
|
|
287
296
|
@elements[7] *= vector.y
|
|
288
297
|
@elements[11] *= vector.z
|
|
298
|
+
changed!
|
|
289
299
|
self
|
|
290
300
|
end
|
|
291
301
|
|
|
@@ -313,6 +323,7 @@ module Three
|
|
|
313
323
|
@elements[7] = 0
|
|
314
324
|
@elements[11] = -1
|
|
315
325
|
@elements[15] = 0
|
|
326
|
+
changed!
|
|
316
327
|
self
|
|
317
328
|
end
|
|
318
329
|
|
|
@@ -340,6 +351,7 @@ module Three
|
|
|
340
351
|
@elements[7] = 0
|
|
341
352
|
@elements[11] = 0
|
|
342
353
|
@elements[15] = 1
|
|
354
|
+
changed!
|
|
343
355
|
self
|
|
344
356
|
end
|
|
345
357
|
|
|
@@ -383,6 +395,7 @@ module Three
|
|
|
383
395
|
@elements[13] = position.y
|
|
384
396
|
@elements[14] = position.z
|
|
385
397
|
@elements[15] = 1
|
|
398
|
+
changed!
|
|
386
399
|
self
|
|
387
400
|
end
|
|
388
401
|
|
|
@@ -419,9 +432,17 @@ module Three
|
|
|
419
432
|
|
|
420
433
|
def from_array(array, offset = 0)
|
|
421
434
|
16.times { |index| @elements[index] = array[index + offset] }
|
|
435
|
+
changed!
|
|
422
436
|
self
|
|
423
437
|
end
|
|
424
438
|
|
|
439
|
+
def on_change(&callback)
|
|
440
|
+
@on_change_callback = callback || proc {}
|
|
441
|
+
self
|
|
442
|
+
end
|
|
443
|
+
|
|
444
|
+
alias _on_change on_change
|
|
445
|
+
|
|
425
446
|
def to_a
|
|
426
447
|
@elements.dup
|
|
427
448
|
end
|
|
@@ -444,5 +465,11 @@ module Three
|
|
|
444
465
|
def inspect
|
|
445
466
|
"#<#{self.class} elements=#{@elements.inspect}>"
|
|
446
467
|
end
|
|
468
|
+
|
|
469
|
+
private
|
|
470
|
+
|
|
471
|
+
def changed!
|
|
472
|
+
@on_change_callback.call
|
|
473
|
+
end
|
|
447
474
|
end
|
|
448
475
|
end
|
|
@@ -33,6 +33,16 @@ module Three
|
|
|
33
33
|
self
|
|
34
34
|
end
|
|
35
35
|
|
|
36
|
+
def tone_mapping=(value)
|
|
37
|
+
@backend.set_renderer_tone_mapping(@handle, value)
|
|
38
|
+
value
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def tone_mapping_exposure=(value)
|
|
42
|
+
@backend.set_renderer_tone_mapping_exposure(@handle, value)
|
|
43
|
+
value
|
|
44
|
+
end
|
|
45
|
+
|
|
36
46
|
def configure_shadow_map(enabled: nil, type: nil, auto_update: nil)
|
|
37
47
|
@backend.set_renderer_shadow_map(@handle, enabled: enabled, type: type, auto_update: auto_update)
|
|
38
48
|
self
|
|
@@ -55,6 +65,15 @@ module Three
|
|
|
55
65
|
self
|
|
56
66
|
end
|
|
57
67
|
|
|
68
|
+
def on_dispose(object, &block)
|
|
69
|
+
@backend.add_event_listener(object, :dispose, block)
|
|
70
|
+
self
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def cached?(object)
|
|
74
|
+
@backend.cached?(object)
|
|
75
|
+
end
|
|
76
|
+
|
|
58
77
|
def traverse_handles(object, &block)
|
|
59
78
|
return enum_for(:traverse_handles, object) unless block
|
|
60
79
|
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "../dirty"
|
|
4
|
+
require_relative "../math/color"
|
|
5
|
+
require_relative "../math/math_utils"
|
|
6
|
+
|
|
7
|
+
module Three
|
|
8
|
+
class Fog
|
|
9
|
+
include Dirty
|
|
10
|
+
|
|
11
|
+
attr_reader :uuid, :color, :name, :type, :near, :far
|
|
12
|
+
|
|
13
|
+
def initialize(color = 0xffffff, near: 1, far: 1000, name: "")
|
|
14
|
+
@uuid = MathUtils.generate_uuid
|
|
15
|
+
@type = "Fog"
|
|
16
|
+
@name = name
|
|
17
|
+
@color = color.is_a?(Color) ? color : Color.new(color)
|
|
18
|
+
@near = near
|
|
19
|
+
@far = far
|
|
20
|
+
bind_color_changes
|
|
21
|
+
mark_dirty!
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def name=(value)
|
|
25
|
+
@name = value
|
|
26
|
+
mark_dirty!(:parameters)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def color=(value)
|
|
30
|
+
@color = value.is_a?(Color) ? value : Color.new(value)
|
|
31
|
+
bind_color_changes
|
|
32
|
+
mark_dirty!(:parameters)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def near=(value)
|
|
36
|
+
@near = value
|
|
37
|
+
mark_dirty!(:parameters)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def far=(value)
|
|
41
|
+
@far = value
|
|
42
|
+
mark_dirty!(:parameters)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def to_h
|
|
46
|
+
{
|
|
47
|
+
type: @type,
|
|
48
|
+
name: @name,
|
|
49
|
+
color: @color.hex,
|
|
50
|
+
near: @near,
|
|
51
|
+
far: @far
|
|
52
|
+
}
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
private
|
|
56
|
+
|
|
57
|
+
def bind_color_changes
|
|
58
|
+
@color.on_change { mark_dirty!(:parameters) }
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
class FogExp2 < Fog
|
|
63
|
+
attr_reader :density
|
|
64
|
+
|
|
65
|
+
def initialize(color = 0xffffff, density: 0.00025, name: "")
|
|
66
|
+
super(color, near: nil, far: nil, name: name)
|
|
67
|
+
@type = "FogExp2"
|
|
68
|
+
@density = density
|
|
69
|
+
mark_dirty!
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def density=(value)
|
|
73
|
+
@density = value
|
|
74
|
+
mark_dirty!(:parameters)
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def to_h
|
|
78
|
+
{
|
|
79
|
+
type: @type,
|
|
80
|
+
name: name,
|
|
81
|
+
color: color.hex,
|
|
82
|
+
density: @density
|
|
83
|
+
}
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|
data/lib/three/scenes/scene.rb
CHANGED
|
@@ -5,7 +5,7 @@ require_relative "../core/object3d"
|
|
|
5
5
|
module Three
|
|
6
6
|
class Scene < Object3D
|
|
7
7
|
attr_reader :background, :environment
|
|
8
|
-
|
|
8
|
+
attr_reader :fog, :override_material
|
|
9
9
|
|
|
10
10
|
def initialize
|
|
11
11
|
super
|
|
@@ -25,5 +25,23 @@ module Three
|
|
|
25
25
|
@environment = value
|
|
26
26
|
mark_dirty!(:scene)
|
|
27
27
|
end
|
|
28
|
+
|
|
29
|
+
def fog=(value)
|
|
30
|
+
replace_scene_resource(:fog, value)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def override_material=(value)
|
|
34
|
+
replace_scene_resource(:override_material, value)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
private
|
|
38
|
+
|
|
39
|
+
def replace_scene_resource(name, value)
|
|
40
|
+
current = instance_variable_get(:"@#{name}")
|
|
41
|
+
current.remove_dirty_dependent(self) if current.respond_to?(:remove_dirty_dependent)
|
|
42
|
+
instance_variable_set(:"@#{name}", value)
|
|
43
|
+
value.add_dirty_dependent(self) if value.respond_to?(:add_dirty_dependent)
|
|
44
|
+
mark_dirty!(:scene)
|
|
45
|
+
end
|
|
28
46
|
end
|
|
29
47
|
end
|
data/lib/three/version.rb
CHANGED
data/lib/three.rb
CHANGED
|
@@ -27,6 +27,7 @@ require_relative "three/objects/instanced_mesh"
|
|
|
27
27
|
require_relative "three/objects/line"
|
|
28
28
|
require_relative "three/objects/points"
|
|
29
29
|
require_relative "three/objects/sprite"
|
|
30
|
+
require_relative "three/scenes/fog"
|
|
30
31
|
require_relative "three/scenes/scene"
|
|
31
32
|
require_relative "three/cameras/camera"
|
|
32
33
|
require_relative "three/cameras/perspective_camera"
|
|
@@ -52,11 +53,13 @@ require_relative "three/materials/sprite_material"
|
|
|
52
53
|
require_relative "three/loaders/texture_loader"
|
|
53
54
|
require_relative "three/loaders/cube_texture_loader"
|
|
54
55
|
require_relative "three/loaders/rgbe_loader"
|
|
56
|
+
require_relative "three/loaders/font_loader"
|
|
55
57
|
require_relative "three/loaders/gltf_loader"
|
|
56
58
|
require_relative "three/loaders/three_json_loader"
|
|
57
59
|
require_relative "three/geometries/box_geometry"
|
|
58
60
|
require_relative "three/geometries/plane_geometry"
|
|
59
61
|
require_relative "three/geometries/sphere_geometry"
|
|
62
|
+
require_relative "three/geometries/text_geometry"
|
|
60
63
|
require_relative "three/backends/base"
|
|
61
64
|
require_relative "three/backends/threejs"
|
|
62
65
|
require_relative "three/core/raycaster"
|
|
@@ -72,6 +75,7 @@ require_relative "three/postprocessing/unreal_bloom_pass"
|
|
|
72
75
|
require_relative "three/postprocessing/dot_screen_pass"
|
|
73
76
|
require_relative "three/postprocessing/output_pass"
|
|
74
77
|
require_relative "three/exporters/three_json_exporter"
|
|
78
|
+
require_relative "three/browser"
|
|
75
79
|
|
|
76
80
|
module Three
|
|
77
81
|
end
|
data/package.json
CHANGED
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
"type": "module",
|
|
5
5
|
"packageManager": "pnpm@11.1.1",
|
|
6
6
|
"scripts": {
|
|
7
|
-
"test:browser": "pnpm test:browser:cube && pnpm test:browser:composition && pnpm test:browser:textures && pnpm test:browser:cubemap && pnpm test:browser:gltf && pnpm test:browser:serialization && pnpm test:browser:picking && pnpm test:browser:primitives && pnpm test:browser:postprocessing",
|
|
7
|
+
"test:browser": "pnpm test:browser:ruby && pnpm test:browser:cube && pnpm test:browser:composition && pnpm test:browser:textures && pnpm test:browser:cubemap && pnpm test:browser:gltf && pnpm test:browser:serialization && pnpm test:browser:picking && pnpm test:browser:primitives && pnpm test:browser:postprocessing",
|
|
8
|
+
"test:browser:ruby": "node examples/browser/ruby/smoke_test.mjs",
|
|
8
9
|
"test:browser:cube": "node examples/browser/cube/smoke_test.mjs",
|
|
9
10
|
"test:browser:composition": "node examples/browser/composition/smoke_test.mjs",
|
|
10
11
|
"test:browser:textures": "node examples/browser/textures/smoke_test.mjs",
|
metadata
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: three-rb
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1
|
|
4
|
+
version: 0.2.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- LEF
|
|
8
|
-
bindir:
|
|
8
|
+
bindir: exe
|
|
9
9
|
cert_chain: []
|
|
10
10
|
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
@@ -40,7 +40,8 @@ dependencies:
|
|
|
40
40
|
description: three-rb provides Ruby APIs for building 3D scenes, with browser rendering
|
|
41
41
|
through ruby.wasm and three.js.
|
|
42
42
|
email: []
|
|
43
|
-
executables:
|
|
43
|
+
executables:
|
|
44
|
+
- three-rb
|
|
44
45
|
extensions: []
|
|
45
46
|
extra_rdoc_files: []
|
|
46
47
|
files:
|
|
@@ -53,13 +54,10 @@ files:
|
|
|
53
54
|
- docs/next-work.md
|
|
54
55
|
- docs/publishing.md
|
|
55
56
|
- docs/release-readiness.md
|
|
57
|
+
- docs/standalone-browser-app.md
|
|
56
58
|
- examples/browser/README.md
|
|
57
|
-
- examples/browser/assets/animated_triangle.gltf
|
|
58
|
-
- examples/browser/assets/checker.svg
|
|
59
|
-
- examples/browser/assets/compressed_triangle.gltf
|
|
60
|
-
- examples/browser/assets/studio.hdr
|
|
61
|
-
- examples/browser/assets/triangle.gltf
|
|
62
59
|
- examples/browser/composition/README.md
|
|
60
|
+
- examples/browser/composition/assets/checker.svg
|
|
63
61
|
- examples/browser/composition/boot.mjs
|
|
64
62
|
- examples/browser/composition/index.html
|
|
65
63
|
- examples/browser/composition/main.rb
|
|
@@ -70,11 +68,15 @@ files:
|
|
|
70
68
|
- examples/browser/cube/main.rb
|
|
71
69
|
- examples/browser/cube/smoke_test.mjs
|
|
72
70
|
- examples/browser/cubemap/README.md
|
|
71
|
+
- examples/browser/cubemap/assets/checker.svg
|
|
73
72
|
- examples/browser/cubemap/boot.mjs
|
|
74
73
|
- examples/browser/cubemap/index.html
|
|
75
74
|
- examples/browser/cubemap/main.rb
|
|
76
75
|
- examples/browser/cubemap/smoke_test.mjs
|
|
77
76
|
- examples/browser/gltf/README.md
|
|
77
|
+
- examples/browser/gltf/assets/animated_triangle.gltf
|
|
78
|
+
- examples/browser/gltf/assets/compressed_triangle.gltf
|
|
79
|
+
- examples/browser/gltf/assets/triangle.gltf
|
|
78
80
|
- examples/browser/gltf/boot.mjs
|
|
79
81
|
- examples/browser/gltf/index.html
|
|
80
82
|
- examples/browser/gltf/main.rb
|
|
@@ -90,11 +92,19 @@ files:
|
|
|
90
92
|
- examples/browser/postprocessing/main.rb
|
|
91
93
|
- examples/browser/postprocessing/smoke_test.mjs
|
|
92
94
|
- examples/browser/primitives/README.md
|
|
95
|
+
- examples/browser/primitives/assets/checker.svg
|
|
93
96
|
- examples/browser/primitives/boot.mjs
|
|
94
97
|
- examples/browser/primitives/index.html
|
|
95
98
|
- examples/browser/primitives/main.rb
|
|
96
99
|
- examples/browser/primitives/smoke_test.mjs
|
|
100
|
+
- examples/browser/ruby/README.md
|
|
101
|
+
- examples/browser/ruby/assets/studio.hdr
|
|
102
|
+
- examples/browser/ruby/boot.mjs
|
|
103
|
+
- examples/browser/ruby/index.html
|
|
104
|
+
- examples/browser/ruby/main.rb
|
|
105
|
+
- examples/browser/ruby/smoke_test.mjs
|
|
97
106
|
- examples/browser/serialization/README.md
|
|
107
|
+
- examples/browser/serialization/assets/checker.svg
|
|
98
108
|
- examples/browser/serialization/boot.mjs
|
|
99
109
|
- examples/browser/serialization/index.html
|
|
100
110
|
- examples/browser/serialization/main.rb
|
|
@@ -102,10 +112,13 @@ files:
|
|
|
102
112
|
- examples/browser/shared/boot.mjs
|
|
103
113
|
- examples/browser/shared/smoke_test_helpers.mjs
|
|
104
114
|
- examples/browser/textures/README.md
|
|
115
|
+
- examples/browser/textures/assets/checker.svg
|
|
116
|
+
- examples/browser/textures/assets/studio.hdr
|
|
105
117
|
- examples/browser/textures/boot.mjs
|
|
106
118
|
- examples/browser/textures/index.html
|
|
107
119
|
- examples/browser/textures/main.rb
|
|
108
120
|
- examples/browser/textures/smoke_test.mjs
|
|
121
|
+
- exe/three-rb
|
|
109
122
|
- lib/three-rb.rb
|
|
110
123
|
- lib/three.rb
|
|
111
124
|
- lib/three/animation/animation_action.rb
|
|
@@ -118,6 +131,7 @@ files:
|
|
|
118
131
|
- lib/three/backends/threejs/resource_management.rb
|
|
119
132
|
- lib/three/backends/threejs/ruby_wasm_adapter.rb
|
|
120
133
|
- lib/three/backends/threejs/synchronization.rb
|
|
134
|
+
- lib/three/browser.rb
|
|
121
135
|
- lib/three/cameras/camera.rb
|
|
122
136
|
- lib/three/cameras/orthographic_camera.rb
|
|
123
137
|
- lib/three/cameras/perspective_camera.rb
|
|
@@ -132,15 +146,18 @@ files:
|
|
|
132
146
|
- lib/three/core/raycaster.rb
|
|
133
147
|
- lib/three/dirty.rb
|
|
134
148
|
- lib/three/exporters/three_json_exporter.rb
|
|
149
|
+
- lib/three/generators/browser_example.rb
|
|
135
150
|
- lib/three/geometries/box_geometry.rb
|
|
136
151
|
- lib/three/geometries/plane_geometry.rb
|
|
137
152
|
- lib/three/geometries/sphere_geometry.rb
|
|
153
|
+
- lib/three/geometries/text_geometry.rb
|
|
138
154
|
- lib/three/lights/ambient_light.rb
|
|
139
155
|
- lib/three/lights/directional_light.rb
|
|
140
156
|
- lib/three/lights/hemisphere_light.rb
|
|
141
157
|
- lib/three/lights/light.rb
|
|
142
158
|
- lib/three/lights/point_light.rb
|
|
143
159
|
- lib/three/loaders/cube_texture_loader.rb
|
|
160
|
+
- lib/three/loaders/font_loader.rb
|
|
144
161
|
- lib/three/loaders/gltf_loader.rb
|
|
145
162
|
- lib/three/loaders/rgbe_loader.rb
|
|
146
163
|
- lib/three/loaders/texture_loader.rb
|
|
@@ -180,6 +197,7 @@ files:
|
|
|
180
197
|
- lib/three/postprocessing/unreal_bloom_pass.rb
|
|
181
198
|
- lib/three/renderers/renderer.rb
|
|
182
199
|
- lib/three/renderers/threejs_renderer.rb
|
|
200
|
+
- lib/three/scenes/fog.rb
|
|
183
201
|
- lib/three/scenes/scene.rb
|
|
184
202
|
- lib/three/textures/cube_texture.rb
|
|
185
203
|
- lib/three/textures/rgbe_texture.rb
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|