atome 0.5.1.9 → 0.5.2.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +22 -5
- data/lib/atome/atome.rb +37 -16
- data/lib/atome/extensions/atome.rb +5 -26
- data/lib/atome/extensions/geolocation.rb +0 -1
- data/lib/atome/extensions/matrix.rb +171 -0
- data/lib/atome/extensions/ping.rb +9 -11
- data/lib/atome/genesis/generators/atome.rb +14 -2
- data/lib/atome/genesis/generators/communication.rb +1 -1
- data/lib/atome/genesis/generators/event.rb +25 -0
- data/lib/atome/genesis/generators/identity.rb +28 -0
- data/lib/atome/genesis/generators/material.rb +21 -0
- data/lib/atome/genesis/generators/spatial.rb +1 -0
- data/lib/atome/genesis/generators/utility.rb +20 -2
- data/lib/atome/genesis/genesis.rb +2 -2
- data/lib/atome/genesis/sparkle.rb +1 -1
- data/lib/atome/helpers/callbacks.rb +33 -25
- data/lib/atome/helpers/essentials.rb +5 -2
- data/lib/atome/helpers/utilities.rb +52 -8
- data/lib/atome/kernel/universe.rb +0 -4
- data/lib/atome/presets/atome.rb +11 -7
- data/lib/atome/renderers/browser/atome.rb +7 -7
- data/lib/atome/renderers/browser/browser.rb +5 -2
- data/lib/atome/renderers/browser/effect.rb +2 -2
- data/lib/atome/renderers/browser/event.rb +27 -16
- data/lib/atome/renderers/browser/geometry.rb +2 -2
- data/lib/atome/renderers/browser/helpers/animation_helper.rb +69 -0
- data/lib/atome/renderers/browser/helpers/browser_helper.rb +0 -1
- data/lib/atome/renderers/browser/helpers/color_helper.rb +0 -2
- data/lib/atome/renderers/browser/helpers/drag_helper.rb +6 -6
- data/lib/atome/renderers/browser/helpers/effect_helper.rb +4 -0
- data/lib/atome/renderers/browser/helpers/event_helper.rb +59 -0
- data/lib/atome/renderers/browser/helpers/video_helper.rb +1 -1
- data/lib/atome/renderers/browser/identity.rb +10 -3
- data/lib/atome/renderers/browser/material.rb +28 -5
- data/lib/atome/renderers/browser/spatial.rb +36 -5
- data/lib/atome/renderers/browser/utility.rb +20 -11
- data/lib/atome/renderers/headless/utility.rb +2 -2
- data/lib/atome/renderers/html/atome.rb +5 -5
- data/lib/atome/renderers/html/effect.rb +1 -1
- data/lib/atome/renderers/html/event.rb +1 -1
- data/lib/atome/renderers/html/geometry.rb +2 -2
- data/lib/atome/renderers/html/identity.rb +2 -2
- data/lib/atome/renderers/html/spatial.rb +5 -5
- data/lib/atome/renderers/html/utility.rb +7 -7
- data/lib/atome/renderers/server/utility.rb +2 -2
- data/lib/atome/version.rb +1 -1
- data/lib/atome.rb +6 -3
- data/sig/atome_js.rbs +1 -0
- data/vendor/assets/build/css/style.css +23 -16
- data/vendor/assets/build/index.html +4 -2
- data/vendor/assets/build/js/third_parties/wad.min.js +9 -0
- data/vendor/assets/build/medias/audios/Binrpilot.mp3 +0 -0
- data/vendor/assets/build/medias/rubies/examples/_2_solve.rb +24 -2
- data/vendor/assets/build/medias/rubies/examples/_audio.rb +178 -0
- data/vendor/assets/build/medias/rubies/examples/_dataset.rb +82 -0
- data/vendor/assets/build/medias/rubies/examples/_markers.rb +57 -0
- data/vendor/assets/build/medias/rubies/examples/_os.rb +29 -0
- data/vendor/assets/build/medias/rubies/examples/_vie.rb +211 -0
- data/vendor/assets/build/medias/rubies/examples/animation.rb +81 -0
- data/vendor/assets/build/medias/rubies/examples/at.rb +5 -1
- data/vendor/assets/build/medias/rubies/examples/{atome.new.rb → atome_new.rb} +5 -5
- data/vendor/assets/build/medias/rubies/examples/bottom.rb +1 -1
- data/vendor/assets/build/medias/rubies/examples/center.rb +21 -0
- data/vendor/assets/build/medias/rubies/examples/clone.rb +20 -0
- data/vendor/assets/build/medias/rubies/examples/color.rb +20 -15
- data/vendor/assets/build/medias/rubies/examples/cursor.rb +7 -0
- data/vendor/assets/build/medias/rubies/examples/delete.rb +25 -3
- data/vendor/assets/build/medias/rubies/examples/drag.rb +3 -2
- data/vendor/assets/build/medias/rubies/examples/edit.rb +12 -0
- data/vendor/assets/build/medias/rubies/examples/empty_atome.rb +12 -0
- data/vendor/assets/build/medias/rubies/examples/hide.rb +7 -0
- data/vendor/assets/build/medias/rubies/examples/matrix.rb +58 -0
- data/vendor/assets/build/medias/rubies/examples/monitoring.rb +22 -11
- data/vendor/assets/build/medias/rubies/examples/play.rb +1 -1
- data/vendor/assets/build/medias/rubies/examples/read.rb +7 -4
- data/vendor/assets/build/medias/rubies/examples/remove.rb +16 -0
- data/vendor/assets/build/medias/rubies/examples/right.rb +1 -1
- data/vendor/assets/build/medias/rubies/examples/shadow.rb +8 -1
- data/vendor/assets/build/medias/rubies/examples/sort.rb +7 -4
- data/vendor/assets/build/medias/rubies/examples/style.rb +4 -0
- data/vendor/assets/build/medias/rubies/examples/touch.rb +50 -7
- data/vendor/assets/build/medias/texts/lorem.txt +1 -0
- metadata +24 -4
- data/vendor/assets/build/medias/rubies/examples/_animation.rb +0 -46
@@ -0,0 +1,82 @@
|
|
1
|
+
# # frozen_string_literal: true
|
2
|
+
#
|
3
|
+
#
|
4
|
+
#
|
5
|
+
# generator = Genesis.generator
|
6
|
+
# generator.build_atome(:data_set)
|
7
|
+
# generator.build_particle(:assign) do |cell_nb,&proc |
|
8
|
+
# # current_cell = grab("#{@matrix_id}_#{cell_nb}")
|
9
|
+
# if proc
|
10
|
+
# # @matrix_dataset[cell_nb] << proc
|
11
|
+
# # current_cell.instance_exec(&proc) if proc.is_a? Proc
|
12
|
+
# else
|
13
|
+
# # @matrix_dataset[cell_nb]
|
14
|
+
# end
|
15
|
+
# end
|
16
|
+
# class Atome
|
17
|
+
# def data_set(params = {}, &bloc)
|
18
|
+
# atome_type = :data_set
|
19
|
+
# generated_render = params[:renderers] || []
|
20
|
+
# generated_id = params[:id] || "#{atome_type}_#{Universe.atomes.length}"
|
21
|
+
# generated_parents = params[:parents] || [id.value]
|
22
|
+
# params = atome_common(atome_type, generated_id, generated_render, generated_parents, params)
|
23
|
+
# Atome.new({ atome_type => params }, &bloc)
|
24
|
+
# end
|
25
|
+
# end
|
26
|
+
#
|
27
|
+
#
|
28
|
+
# # create_atome(:data_set)
|
29
|
+
#
|
30
|
+
# a = data_set({})
|
31
|
+
# puts a
|
32
|
+
#
|
33
|
+
# a.assign(2) do
|
34
|
+
# curent_cell = self
|
35
|
+
# curent_cell.image({ path: "./medias/images/moto.png", width: 33, height: 33})
|
36
|
+
# curent_cell.active(:inactive)
|
37
|
+
# touch(:long) do
|
38
|
+
# if curent_cell.active.value ==:inactive
|
39
|
+
# curent_cell.color(:yellow)
|
40
|
+
# curent_cell.active(:active)
|
41
|
+
# else
|
42
|
+
# curent_cell.color(:red)
|
43
|
+
# curent_cell.active(:inactive)
|
44
|
+
# end
|
45
|
+
# end
|
46
|
+
# end
|
47
|
+
#
|
48
|
+
#*
|
49
|
+
# a.assign(3) do
|
50
|
+
# color({ red: 0.6, green: 0.333, blue: 0.6, alpha: 1 })
|
51
|
+
# grab(:vie_playground_3).shadow({ blur: 12 })
|
52
|
+
# end
|
53
|
+
# puts "assign : #{a.assign}"
|
54
|
+
#
|
55
|
+
box
|
56
|
+
circle
|
57
|
+
generator = Genesis.generator
|
58
|
+
|
59
|
+
generator.build_atome(:template)
|
60
|
+
|
61
|
+
generator.build_sanitizer(:template) do |params|
|
62
|
+
|
63
|
+
default_params = { renderers: [], id: "template_#{Universe.atomes.length}", type: :template,
|
64
|
+
}
|
65
|
+
default_params.merge!(params)
|
66
|
+
end
|
67
|
+
|
68
|
+
generator.build_particle(:display) do |params|
|
69
|
+
template_needed = params[:template]
|
70
|
+
targeted_atomes = params[:list]
|
71
|
+
alert template_needed
|
72
|
+
alert targeted_atomes
|
73
|
+
end
|
74
|
+
|
75
|
+
template({ id: :child_in_table, code: [], cells: 16, columns: 4, rows: 4 })
|
76
|
+
the_view = grab(:view)
|
77
|
+
the_view.display(template: :child_in_table, list: [the_view.children.value], left: 33, top: 63, width: 333, height: 333)
|
78
|
+
|
79
|
+
# alert the_view
|
80
|
+
|
81
|
+
|
82
|
+
|
@@ -0,0 +1,57 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
##########################
|
4
|
+
# markers
|
5
|
+
my_video = Atome.new(
|
6
|
+
video: { renderers: [:browser], id: :video1, type: :video, parents: [:view],clones: [],
|
7
|
+
path: './medias/videos/avengers.mp4', left: 333, top: 33, width: 777
|
8
|
+
}
|
9
|
+
) do |params|
|
10
|
+
# puts "video callback here #{params}"
|
11
|
+
end
|
12
|
+
|
13
|
+
my_video.touch(true) do
|
14
|
+
my_video.play(10) do ||
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
@mcounter = 0
|
20
|
+
my_video.at({ time: 15 }) do |value|
|
21
|
+
# my_video.pause(true)
|
22
|
+
if @mcounter
|
23
|
+
puts "ok : #{@mcounter}"
|
24
|
+
else
|
25
|
+
@mcounter = 0
|
26
|
+
end
|
27
|
+
|
28
|
+
puts "value is : #{value} : mcounter : #{@mcounter}"
|
29
|
+
puts "---- #{my_video.time}-----"
|
30
|
+
my_video.play(15+(@mcounter*1))
|
31
|
+
# my_video.play() do |val|
|
32
|
+
# puts val
|
33
|
+
# end
|
34
|
+
|
35
|
+
@mcounter = @mcounter + 1
|
36
|
+
@at_time[:used] = false
|
37
|
+
end
|
38
|
+
|
39
|
+
|
40
|
+
# frozen_string_literal: true
|
41
|
+
|
42
|
+
generator = Genesis.generator
|
43
|
+
generator.build_particle(:markers)
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
my_lambda = lambda do |val|
|
48
|
+
puts "hello : #{val}"
|
49
|
+
end
|
50
|
+
my_video.markers({m1:{time: 15.87576, code: my_lambda}})
|
51
|
+
|
52
|
+
my_video.markers({m1:{time: 15.87576, code: my_lambda}}) do |params|
|
53
|
+
alert :good
|
54
|
+
end
|
55
|
+
|
56
|
+
my_lambda.call(:jeezs)
|
57
|
+
alert my_video.markers
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# module OS
|
4
|
+
# def OS.windows?
|
5
|
+
# (/cygwin|mswin|mingw|bccwin|wince|emx/ =~ RUBY_PLATFORM) != nil
|
6
|
+
# end
|
7
|
+
#
|
8
|
+
# def OS.mac?
|
9
|
+
# (/darwin/ =~ RUBY_PLATFORM) != nil
|
10
|
+
# end
|
11
|
+
#
|
12
|
+
# def OS.unix?
|
13
|
+
# !OS.windows?
|
14
|
+
# end
|
15
|
+
#
|
16
|
+
# def OS.linux?
|
17
|
+
# OS.unix? and !OS.mac? and !OS.opal?
|
18
|
+
# end
|
19
|
+
#
|
20
|
+
# def OS.jruby?
|
21
|
+
# RUBY_ENGINE == 'jruby'
|
22
|
+
# end
|
23
|
+
#
|
24
|
+
# def OS.opal?
|
25
|
+
# RUBY_ENGINE == 'opal'
|
26
|
+
# end
|
27
|
+
# end
|
28
|
+
#
|
29
|
+
# # alert OS.linux?
|
@@ -0,0 +1,211 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
a = {
|
3
|
+
"modules": [
|
4
|
+
{
|
5
|
+
"id": "90be7add-12fd-476e-a267-c4ea65cd0bad",
|
6
|
+
"name": "Midi in",
|
7
|
+
"type_id": "midi",
|
8
|
+
"active": "true",
|
9
|
+
"input_slots": [
|
10
|
+
{
|
11
|
+
"id": "948151e4-93c5-428f-a2e9-01f560592a7d",
|
12
|
+
"name": "active",
|
13
|
+
"unit": "",
|
14
|
+
"value": 1
|
15
|
+
}
|
16
|
+
],
|
17
|
+
"output_slots": [
|
18
|
+
{
|
19
|
+
"id": "394119f0-886e-4fae-8ae7-d3b187266760",
|
20
|
+
"name": "Midi out",
|
21
|
+
"unit": ""
|
22
|
+
}
|
23
|
+
],
|
24
|
+
"position": {
|
25
|
+
"x": 0,
|
26
|
+
"y": 0,
|
27
|
+
"z": 0
|
28
|
+
}
|
29
|
+
},
|
30
|
+
{
|
31
|
+
"id": "82a15e17-c93a-4db1-af8a-d79a32c5b590",
|
32
|
+
"name": "Sin",
|
33
|
+
"type_id": "oscillator",
|
34
|
+
"active": "true",
|
35
|
+
"input_slots": [
|
36
|
+
{
|
37
|
+
"id": "f8ba775f-7a30-4728-99df-a6b6edf2666e",
|
38
|
+
"name": "active",
|
39
|
+
"unit": "",
|
40
|
+
"value": 1
|
41
|
+
},
|
42
|
+
{
|
43
|
+
"id": "002a39c1-e0eb-4ef3-9698-b8bc63faf467",
|
44
|
+
"name": "freq",
|
45
|
+
"unit": "khz",
|
46
|
+
"value": 4.40
|
47
|
+
}
|
48
|
+
],
|
49
|
+
"output_slots": [
|
50
|
+
{
|
51
|
+
"id": "3d3dd92b-5a61-43bd-b15b-7356224f0fbc",
|
52
|
+
"name": "amplitude",
|
53
|
+
"unit": "db"
|
54
|
+
}
|
55
|
+
],
|
56
|
+
"position": {
|
57
|
+
"x": 1,
|
58
|
+
"y": 0,
|
59
|
+
"z": 0
|
60
|
+
}
|
61
|
+
},
|
62
|
+
{
|
63
|
+
"id": "6f214581-52ba-484a-a896-1e137305bdd5",
|
64
|
+
"name": "mix",
|
65
|
+
"type_id": "mixer",
|
66
|
+
"active": "true",
|
67
|
+
"input_slots": [
|
68
|
+
{
|
69
|
+
"id": "fbf3a30a-f2a4-49ef-b56c-2830ad5f8917",
|
70
|
+
"name": "active",
|
71
|
+
"unit": "",
|
72
|
+
"value": 1
|
73
|
+
},
|
74
|
+
{
|
75
|
+
"id": "d1948f42-4260-4614-a3b8-2070b50c1e73",
|
76
|
+
"name": "input1",
|
77
|
+
"unit": "db",
|
78
|
+
"value": []
|
79
|
+
},
|
80
|
+
{
|
81
|
+
"id": "82399578-ec95-48f4-a909-d76e27571048",
|
82
|
+
"name": "input2",
|
83
|
+
"unit": "db",
|
84
|
+
"value": []
|
85
|
+
}
|
86
|
+
],
|
87
|
+
"output_slots": [
|
88
|
+
{
|
89
|
+
"id": "a1f1cde0-5432-4465-b2a0-d06f759515b0",
|
90
|
+
"name": "mixout",
|
91
|
+
"unit": "db"
|
92
|
+
}
|
93
|
+
],
|
94
|
+
"position": {
|
95
|
+
"x": 2,
|
96
|
+
"y": 0,
|
97
|
+
"z": 0
|
98
|
+
}
|
99
|
+
},
|
100
|
+
{
|
101
|
+
"id": "bf35dea9-f94e-4b73-9cdc-4c57c20ad996",
|
102
|
+
"name": "speak out",
|
103
|
+
"type_id": "output",
|
104
|
+
"active": "true",
|
105
|
+
"input_slots": [
|
106
|
+
{
|
107
|
+
"id": "fec34afa-a935-4892-949f-bb4ffc312468",
|
108
|
+
"name": "active",
|
109
|
+
"unit": "",
|
110
|
+
"value": 1
|
111
|
+
},
|
112
|
+
{
|
113
|
+
"id": "4b0fc5c3-fc04-4122-905d-aeebc4e06099",
|
114
|
+
"name": "input",
|
115
|
+
"unit": "db"
|
116
|
+
}
|
117
|
+
],
|
118
|
+
"output_slots": [],
|
119
|
+
"position": {
|
120
|
+
"x": 3,
|
121
|
+
"y": 0,
|
122
|
+
"z": 0
|
123
|
+
}
|
124
|
+
}
|
125
|
+
],
|
126
|
+
"links": [
|
127
|
+
{
|
128
|
+
"id": "dbde9cd8-462f-4f4a-80c6-cee0b0b9a5eb",
|
129
|
+
"sourceComponentId": "90be7add-12fd-476e-a267-c4ea65cd0bad",
|
130
|
+
"sourceOutputSlotId": "394119f0-886e-4fae-8ae7-d3b187266760",
|
131
|
+
"targetComponentId": "82a15e17-c93a-4db1-af8a-d79a32c5b590",
|
132
|
+
"targetInputSlotId": "002a39c1-e0eb-4ef3-9698-b8bc63faf467",
|
133
|
+
"active": "true"
|
134
|
+
},
|
135
|
+
{
|
136
|
+
"id": "0bf66202-50fe-4c82-81bd-7c828d1b4edb",
|
137
|
+
"sourceComponentId": "82a15e17-c93a-4db1-af8a-d79a32c5b590",
|
138
|
+
"sourceOutputSlotId": "3d3dd92b-5a61-43bd-b15b-7356224f0fbc",
|
139
|
+
"targetComponentId": "6f214581-52ba-484a-a896-1e137305bdd5",
|
140
|
+
"targetInputSlotId": "d1948f42-4260-4614-a3b8-2070b50c1e73",
|
141
|
+
"active": "true"
|
142
|
+
},
|
143
|
+
{
|
144
|
+
"id": "929faf01-6320-4273-8557-819f414c9d3a",
|
145
|
+
"sourceComponentId": "6f214581-52ba-484a-a896-1e137305bdd5",
|
146
|
+
"sourceOutputSlotId": "a1f1cde0-5432-4465-b2a0-d06f759515b0",
|
147
|
+
"targetComponentId": "bf35dea9-f94e-4b73-9cdc-4c57c20ad996",
|
148
|
+
"targetInputSlotId": "4b0fc5c3-fc04-4122-905d-aeebc4e06099",
|
149
|
+
"active": "true"
|
150
|
+
}
|
151
|
+
]
|
152
|
+
}
|
153
|
+
|
154
|
+
Atome.new({ color: { renderers: [:browser], id: :orange_col, type: :color, parents: [], children: [],
|
155
|
+
left: 33, top: 66, red: 0, green: 0.15, blue: 0.7, alpha: 0.6 } })
|
156
|
+
|
157
|
+
def get_vie_module(list)
|
158
|
+
# puts list[:modules][0].keys
|
159
|
+
# puts "---------"
|
160
|
+
# module_id = list[:modules][0][:id]
|
161
|
+
# module_name = list[:modules][0][:name]
|
162
|
+
# module_id = list[:modules][0][:type_id]
|
163
|
+
# module_active = list[:modules][0][:active]
|
164
|
+
# module_position = list[:modules][0][:position]
|
165
|
+
# module_input_slots = list[:modules][0][:input_slots]
|
166
|
+
# module_output_slots = list[:modules][0][:output_slots]
|
167
|
+
|
168
|
+
list[:modules].each do |properties, value|
|
169
|
+
module_id = properties[:id]
|
170
|
+
module_name = properties[:name]
|
171
|
+
module_id = properties[:type_id]
|
172
|
+
module_active = properties[:active]
|
173
|
+
module_position = properties[:position]
|
174
|
+
module_input_slots = properties[:input_slots]
|
175
|
+
module_output_slots = properties[:output_slots]
|
176
|
+
left_pos = 120 + ((module_position[:x].to_i) * (66 + 33+120))
|
177
|
+
top_pos=120 + ((module_position[:y].to_i) * (66 + 33))
|
178
|
+
a=Atome.new(
|
179
|
+
shape: { type: :shape, renderers: [:browser], id: module_id, parents: [:view],children: [], color: :orange,
|
180
|
+
left: left_pos, top: top_pos,
|
181
|
+
width: 120, height: 120
|
182
|
+
|
183
|
+
}
|
184
|
+
)
|
185
|
+
a.text({ data: module_id, visual: {size: 12 }, color: :black, center: :horizontal, width: 120, height: 120})
|
186
|
+
a.touch(true) do
|
187
|
+
puts a
|
188
|
+
end
|
189
|
+
|
190
|
+
slider=a.circle({width: 20, height: 20, top: 15, left: 15})
|
191
|
+
slider.drag( { move: true, inertia: true, lock: :x, constraint: :parent } ) do |pos|
|
192
|
+
"module_id : #{module_id}, #{(pos[:left]-left_pos)/100}"
|
193
|
+
msg_value=(pos[:left]-left_pos)/100
|
194
|
+
`
|
195
|
+
function send_to_controller(module,value){
|
196
|
+
console.log(module,value)
|
197
|
+
}
|
198
|
+
send_to_controller(#{module_id},#{msg_value});
|
199
|
+
`
|
200
|
+
end
|
201
|
+
end
|
202
|
+
|
203
|
+
list[:links]
|
204
|
+
|
205
|
+
end
|
206
|
+
|
207
|
+
hash_test = a.to_json
|
208
|
+
|
209
|
+
json_test = JSON.parse(hash_test)
|
210
|
+
|
211
|
+
get_vie_module(json_test)
|
@@ -0,0 +1,81 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
bb = box({ id: :the_ref, width: 369 })
|
4
|
+
bb.color(:red)
|
5
|
+
box({ id: :my_box, drag: true })
|
6
|
+
c = circle({ id: :the_circle, left: 222, drag: { move: true, inertia: true, lock: :start } })
|
7
|
+
c.shadow({ renderers: [:browser], id: :shadow2, type: :shadow,
|
8
|
+
parents: [:the_circle], children: [],
|
9
|
+
left: 3, top: 9, blur: 19,
|
10
|
+
red: 0, green: 0, blue: 0, alpha: 1
|
11
|
+
})
|
12
|
+
|
13
|
+
Atome.new(animation: { renderers: [:browser], id: :the_animation1, type: :animation, children: [] })
|
14
|
+
aa = animation({
|
15
|
+
targets: %i[my_box the_circle],
|
16
|
+
begin: {
|
17
|
+
left_add: 0,
|
18
|
+
top: :self,
|
19
|
+
smooth: 0,
|
20
|
+
width: 3
|
21
|
+
},
|
22
|
+
end: {
|
23
|
+
left_add: 333,
|
24
|
+
top: 299,
|
25
|
+
smooth: 33,
|
26
|
+
width: :the_ref
|
27
|
+
},
|
28
|
+
duration: 800,
|
29
|
+
mass: 1,
|
30
|
+
damping: 1,
|
31
|
+
stiffness: 1000,
|
32
|
+
velocity: 1,
|
33
|
+
repeat: 1,
|
34
|
+
ease: 'spring'
|
35
|
+
}) do |pa|
|
36
|
+
puts "animation say#{pa}"
|
37
|
+
end
|
38
|
+
aa.stop(true) do |val|
|
39
|
+
puts " stop : #{val}"
|
40
|
+
end
|
41
|
+
|
42
|
+
aa.start(true) do |val|
|
43
|
+
puts " start : #{val}"
|
44
|
+
end
|
45
|
+
|
46
|
+
bb.touch(true) do
|
47
|
+
aa.play(true) do |po|
|
48
|
+
puts "play say #{po}"
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
aaa = animation({
|
53
|
+
# no target for advanced animations control on callback
|
54
|
+
begin: {
|
55
|
+
left_add: 0,
|
56
|
+
top: :self,
|
57
|
+
smooth: 0,
|
58
|
+
width: 3
|
59
|
+
},
|
60
|
+
end: {
|
61
|
+
left_add: 333,
|
62
|
+
top: :self,
|
63
|
+
smooth: 33,
|
64
|
+
width: :the_ref
|
65
|
+
},
|
66
|
+
duration: 1800,
|
67
|
+
mass: 1,
|
68
|
+
damping: 1,
|
69
|
+
stiffness: 1000,
|
70
|
+
velocity: 1,
|
71
|
+
repeat: 1,
|
72
|
+
ease: 'spring'
|
73
|
+
}) do |pa|
|
74
|
+
puts "get params to do anything say#{pa}"
|
75
|
+
end
|
76
|
+
wait 7 do
|
77
|
+
aaa.play(true) do |po|
|
78
|
+
puts "play aaa say #{po}"
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
@@ -1,15 +1,15 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
Atome.new(
|
4
|
-
shape: { type: :shape, renderers: [:browser], id: :the_shape, parents: [:view], children: [],
|
4
|
+
shape: { type: :shape, renderers: [:browser], id: :the_shape, parents: [:view], children: [], clones: [],
|
5
5
|
left: 99, right: 99, width: 399, height: 99,
|
6
|
-
color: { renderers: [:browser], id: :c315, type: :color, parents: [:the_shape],children: [],
|
6
|
+
color: { renderers: [:browser], id: :c315, type: :color, parents: [:the_shape], children: [],
|
7
7
|
red: 0.3, green: 1, blue: 0.6, alpha: 1 } }
|
8
8
|
)
|
9
9
|
|
10
10
|
Atome.new(
|
11
|
-
shape: { renderers: [:browser], id: :the_shape2, type: :shape, parents: [:view],children: [],
|
11
|
+
shape: { renderers: [:browser], id: :the_shape2, type: :shape, parents: [:view], children: [], clones: [],
|
12
12
|
left: 99, right: 99, width: 99, height: 99,
|
13
|
-
color: { renderers: [:browser], id: :c31, type: :color, parents: [:the_shape2],children: [],
|
13
|
+
color: { renderers: [:browser], id: :c31, type: :color, parents: [:the_shape2], children: [],
|
14
14
|
red: 1, green: 0.15, blue: 0.15, alpha: 0.6 } }
|
15
|
-
)
|
15
|
+
)
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
b = box({ id: :mybox, width: 666, height: 555, top: 0, left: 0 })
|
4
|
+
|
5
|
+
c = b.circle()
|
6
|
+
t = c.text({ data: :hello, visual: { size: 9 } })
|
7
|
+
c.color(:red)
|
8
|
+
wait 2 do
|
9
|
+
c.center(true)
|
10
|
+
t.center(true)
|
11
|
+
end
|
12
|
+
|
13
|
+
wait 4 do
|
14
|
+
c.center(:horizontal)
|
15
|
+
t.center(:horizontal)
|
16
|
+
end
|
17
|
+
|
18
|
+
wait 6 do
|
19
|
+
c.center(:vertical)
|
20
|
+
t.center(:vertical)
|
21
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
b = box({ color: :red, smooth: 6 })
|
4
|
+
|
5
|
+
b.clones([left: 600, top: 300])
|
6
|
+
|
7
|
+
wait 1 do
|
8
|
+
b.width(500)
|
9
|
+
end
|
10
|
+
|
11
|
+
wait 2 do
|
12
|
+
b.height(500)
|
13
|
+
end
|
14
|
+
|
15
|
+
wait 4 do
|
16
|
+
b.clones.value.each do |clone_found|
|
17
|
+
grab(clone_found[:id]).delete(true)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
@@ -1,19 +1,14 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
c = circle
|
4
|
-
# FIXME: bug we creating an object like this c = circle({ red: 1 })
|
5
3
|
# FIXME: bug we using a color twice or more only the first is colored: c = { red: 1 }; a.color(c),b.color(c)
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
# b=box({ left: 300 })
|
10
|
-
# a.color(c)
|
11
|
-
# b.color(c)
|
4
|
+
|
5
|
+
c = circle
|
6
|
+
|
12
7
|
wait 1 do
|
13
8
|
# the most performant way :
|
14
9
|
# please note that in this case: render , id and type params must place in order
|
15
10
|
c.color(
|
16
|
-
{
|
11
|
+
{ renderers: [:browser], id: :c319, type: :color,
|
17
12
|
red: 1, green: 1, blue: 0.15, alpha: 0.6 }
|
18
13
|
)
|
19
14
|
end
|
@@ -42,11 +37,21 @@ wait 5 do
|
|
42
37
|
end
|
43
38
|
end
|
44
39
|
|
45
|
-
circle({id: :the_circle})
|
46
40
|
|
41
|
+
wait 10 do
|
42
|
+
Atome.new({ color: { renderers: [:browser], id: :col1, type: :color, parents: [], children: [],
|
43
|
+
left: 33, top: 66, red: 1, green: 0.15, blue: 0.7, alpha: 1 } })
|
47
44
|
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
45
|
+
col_2 = Atome.new({ color: { renderers: [:browser], id: :col2, type: :color, parents: [], children: [],
|
46
|
+
left: 33, top: 66, red: 0, green: 0.15, blue: 0.7, alpha: 1 } })
|
47
|
+
|
48
|
+
Atome.new(
|
49
|
+
shape: { type: :shape, renderers: [:browser], id: :shaped, parents: [:view], children: [], attached: [:col1],
|
50
|
+
left: 199, top: 99,
|
51
|
+
width: 66, height: 66
|
52
|
+
}
|
53
|
+
)
|
54
|
+
wait 2 do
|
55
|
+
col_2.attach([:shaped])
|
56
|
+
end
|
57
|
+
end
|
@@ -1,7 +1,29 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
b = box
|
3
|
+
b = box({left: 333})
|
4
4
|
|
5
|
-
|
5
|
+
b.circle({top: 66, id: :the_circle})
|
6
|
+
|
7
|
+
wait 4 do
|
6
8
|
b.delete(true)
|
7
|
-
end
|
9
|
+
end
|
10
|
+
|
11
|
+
wait 3 do
|
12
|
+
b.attached.value.each do |attached_atome_id|
|
13
|
+
b.delete({id: attached_atome_id})
|
14
|
+
b.shadow({ renderers: [:browser], id: :shadow2, type: :shadow, parents: [], children: [],
|
15
|
+
left: 3, top: 9, blur: 3, direction: '',
|
16
|
+
red: 0, green: 0, blue: 0, alpha: 1
|
17
|
+
})
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
wait 2 do
|
23
|
+
b.delete(:left)
|
24
|
+
end
|
25
|
+
|
26
|
+
|
27
|
+
wait 1 do
|
28
|
+
b.delete({id: :the_circle})
|
29
|
+
end
|
@@ -3,6 +3,7 @@
|
|
3
3
|
a = box({ width: 333, height: 333, id: :the_boxy })
|
4
4
|
a.color(:red)
|
5
5
|
b = box({ width: 33, height: 33, id: :the_box, drag: true })
|
6
|
+
b.parents([a.id.value])
|
6
7
|
b.color(:black)
|
7
8
|
# b.parents([:the_boxy ])
|
8
9
|
b.drag({ move: true }) do |e|
|
@@ -26,7 +27,7 @@ end
|
|
26
27
|
|
27
28
|
# b.drag({ lock: :start })
|
28
29
|
|
29
|
-
|
30
|
+
b.drag({ lock: :x })
|
30
31
|
|
31
32
|
# b.drag({ remove: true })
|
32
33
|
# b.drag({ remove: false })
|
@@ -34,5 +35,5 @@ end
|
|
34
35
|
# b.drag({ snap: { x: 100, y: 190 } })
|
35
36
|
|
36
37
|
# b.drag({ constraint: { top: 330, left: 30, bottom: 30, right: 1 } })
|
37
|
-
|
38
|
+
b.drag({ constraint: :parent })
|
38
39
|
# b.drag({ constraint: :the_boxy })
|