atome 0.5.3.8.8 → 0.5.4.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +52 -17
- data/app_builder_helpers/Rakefile +20 -3
- data/exe/atome +33 -1
- data/lib/atome/atome.rb +43 -57
- data/lib/atome/extensions/atome.rb +82 -52
- data/lib/atome/extensions/mathematic.rb +8 -12
- data/lib/atome/extensions/matrix.rb +138 -210
- data/lib/atome/genesis/generators/atome.rb +8 -134
- data/lib/atome/genesis/generators/communication.rb +0 -1
- data/lib/atome/genesis/generators/effect.rb +0 -6
- data/lib/atome/genesis/generators/event.rb +64 -77
- data/lib/atome/genesis/generators/geometry.rb +0 -18
- data/lib/atome/genesis/generators/identity.rb +6 -33
- data/lib/atome/genesis/generators/material.rb +37 -53
- data/lib/atome/genesis/generators/utility.rb +63 -58
- data/lib/atome/genesis/genesis.rb +8 -0
- data/lib/atome/genesis/sparkle.rb +35 -16
- data/lib/atome/helpers/callbacks.rb +47 -1
- data/lib/atome/helpers/essentials.rb +1 -1
- data/lib/atome/helpers/sanitizer.rb +0 -10
- data/lib/atome/helpers/utilities.rb +74 -28
- data/lib/atome/kernel/batch.rb +13 -35
- data/lib/atome/kernel/universe.rb +2 -0
- data/lib/atome/presets/atome.rb +4 -12
- data/lib/atome/renderers/browser/atome.rb +12 -7
- data/lib/atome/renderers/browser/browser.rb +2 -0
- data/lib/atome/renderers/browser/event.rb +18 -0
- data/lib/atome/renderers/browser/helpers/browser_helper.rb +24 -2
- data/lib/atome/renderers/browser/helpers/drag_helper.rb +13 -0
- data/lib/atome/renderers/browser/helpers/drop_helper.rb +13 -0
- data/lib/atome/renderers/browser/helpers/event_helper.rb +16 -11
- data/lib/atome/renderers/browser/helpers/over_helper.rb +13 -0
- data/lib/atome/renderers/browser/helpers/text_helper.rb +5 -1
- data/lib/atome/renderers/browser/spatial.rb +3 -2
- data/lib/atome/renderers/browser/utility.rb +7 -7
- data/lib/atome/version.rb +2 -2
- data/lib/atome.rb +1 -0
- data/sig/atome.rbs +16 -0
- data/sig/batch.rbs +7 -0
- data/sig/browser_helper.rbs +14 -0
- data/sig/matrix.rbs +5 -0
- data/sig/object.rbs +3 -0
- data/vendor/assets/aui.rb +5 -0
- data/vendor/assets/src/index.html +15 -3
- data/vendor/assets/src/js/atome/atome.js +1 -1
- data/vendor/assets/src/js/atome/atome_helpers/atome_animate.js +1 -1
- data/vendor/assets/src/js/atome/atome_helpers/atome_communication.js +40 -0
- data/vendor/assets/src/js/atome/atome_helpers/atome_drag.js +40 -3
- data/vendor/assets/src/js/atome/atome_helpers/atome_drop.js +12 -0
- data/vendor/assets/src/js/atome/atome_helpers/atome_events.js +166 -0
- data/vendor/assets/src/js/atome/atome_helpers/atome_file.js +6 -1
- data/vendor/assets/src/js/atome/atome_helpers/atome_over.js +43 -0
- data/vendor/assets/src/medias/rubies/demos.rb +63 -0
- data/vendor/assets/src/medias/rubies/examples/add.rb +1 -1
- data/vendor/assets/src/medias/rubies/examples/animation.rb +1 -1
- data/vendor/assets/src/medias/rubies/examples/atome_new.rb +1 -1
- data/vendor/assets/src/medias/rubies/examples/attach.rb +10 -10
- data/vendor/assets/src/medias/rubies/examples/attached.rb +2 -3
- data/vendor/assets/src/medias/rubies/examples/batch.rb +17 -0
- data/vendor/assets/src/medias/rubies/examples/blur.rb +2 -2
- data/vendor/assets/src/medias/rubies/examples/box.rb +2 -2
- data/vendor/assets/src/medias/rubies/examples/code.rb +1 -1
- data/vendor/assets/src/medias/rubies/examples/color.rb +3 -3
- data/vendor/assets/src/medias/rubies/examples/delete.rb +17 -1
- data/vendor/assets/src/medias/rubies/examples/detached.rb +3 -3
- data/vendor/assets/src/medias/rubies/examples/drag.rb +52 -1
- data/vendor/assets/src/medias/rubies/examples/drop.rb +26 -0
- data/vendor/assets/src/medias/rubies/examples/fullscreen.rb +1 -1
- data/vendor/assets/src/medias/rubies/examples/markers.rb +1 -1
- data/vendor/assets/src/medias/rubies/examples/matrix.rb +102 -0
- data/vendor/assets/src/medias/rubies/examples/matrix_changes.rb +483 -0
- data/vendor/assets/src/medias/rubies/examples/matrix_simple.rb +32 -0
- data/vendor/assets/src/medias/rubies/examples/monitoring.rb +1 -1
- data/vendor/assets/src/medias/rubies/examples/mute.rb +1 -1
- data/vendor/assets/src/medias/rubies/examples/on.rb +1 -1
- data/vendor/assets/src/medias/rubies/examples/over.rb +6 -4
- data/vendor/assets/src/medias/rubies/examples/pause.rb +1 -1
- data/vendor/assets/src/medias/rubies/examples/physical.rb +19 -0
- data/vendor/assets/src/medias/rubies/examples/play.rb +1 -1
- data/vendor/assets/src/medias/rubies/examples/repeat.rb +3 -2
- data/vendor/assets/src/medias/rubies/examples/shadow.rb +1 -1
- data/vendor/assets/src/medias/rubies/examples/sort.rb +3 -4
- data/vendor/assets/src/medias/rubies/examples/tags.rb +10 -0
- data/vendor/assets/src/medias/rubies/examples/text.rb +4 -4
- data/vendor/assets/src/medias/rubies/examples/time.rb +2 -2
- data/vendor/assets/src/medias/rubies/examples/vector.rb +31 -0
- data/vendor/assets/src/medias/rubies/examples/video.rb +8 -4
- data/vendor/assets/src/medias/rubies/{examples → unstable}/_2_solve.rb +1 -1
- data/vendor/assets/src/medias/rubies/{examples → unstable}/_audio.rb +1 -1
- data/vendor/assets/src/medias/rubies/{examples → unstable}/_dataset.rb +4 -4
- data/vendor/assets/src/medias/rubies/{examples → unstable}/_table2.rb +2 -2
- data/vendor/assets/src/medias/rubies/{examples → unstable}/_vie.rb +2 -2
- data/vendor/assets/src/utilities/mode.rb +0 -0
- data/vendor/assets/src-tauri/tauri.conf.json +2 -2
- metadata +33 -14
- data/vendor/assets/src/medias/rubies/examples/table.rb +0 -479
- /data/vendor/assets/src/medias/rubies/{examples → unstable}/!run.rb +0 -0
- /data/vendor/assets/src/medias/rubies/{examples → unstable}/_attach.rb +0 -0
- /data/vendor/assets/src/medias/rubies/{examples → unstable}/_matrix.rb +0 -0
- /data/vendor/assets/src/medias/rubies/{examples → unstable}/_os.rb +0 -0
- /data/vendor/assets/src/medias/rubies/{examples → unstable}/_test.rb +0 -0
@@ -1,8 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
new({particle: :touch , type: :hash, store: false })
|
3
|
+
new({ particle: :touch, type: :hash, store: false })
|
6
4
|
new({ post: :touch }) do |params, user_bloc|
|
7
5
|
@touch = {} if @touch == nil
|
8
6
|
@touch[params] = user_bloc
|
@@ -10,91 +8,80 @@ new({ post: :touch }) do |params, user_bloc|
|
|
10
8
|
store_value(:touch)
|
11
9
|
end
|
12
10
|
|
13
|
-
new({particle: :play }) do
|
11
|
+
new({ particle: :play }) do
|
14
12
|
@atome[:pause] = :false
|
15
13
|
end
|
16
|
-
new({particle: :time })
|
17
|
-
new({particle: :pause }) do
|
14
|
+
new({ particle: :time })
|
15
|
+
new({ particle: :pause }) do
|
18
16
|
@atome[:play] = :false
|
19
17
|
end
|
20
|
-
new({particle: :on })
|
21
|
-
new({particle: :fullscreen })
|
22
|
-
new({particle: :mute })
|
23
|
-
new({particle: :drag })
|
24
|
-
|
18
|
+
new({ particle: :on })
|
19
|
+
new({ particle: :fullscreen })
|
20
|
+
new({ particle: :mute })
|
21
|
+
new({ particle: :drag, store: false })
|
22
|
+
|
23
|
+
new({ sanitizer: :drag }) do |params, proc|
|
25
24
|
params = { move: true } if params == true
|
25
|
+
params = { end: proc } if params == :end
|
26
|
+
params = { start: proc } if params == :start
|
27
|
+
params
|
28
|
+
end
|
29
|
+
|
30
|
+
new({ post: :drag }) do |params|
|
31
|
+
# puts "params is : > #{params}"
|
32
|
+
@drag = {} if @drag == nil
|
33
|
+
# @drag[params] = user_bloc
|
34
|
+
params.each do |k, v|
|
35
|
+
@drag[k] = v
|
36
|
+
end
|
37
|
+
# @drag=params
|
38
|
+
# as store for touch is set to false we have to manually save the instance variable
|
39
|
+
store_value(:drag)
|
40
|
+
end
|
41
|
+
|
42
|
+
# @touch[params] = user_bloc
|
43
|
+
|
44
|
+
new ({ particle: :drop })
|
45
|
+
|
46
|
+
new ({ sanitizer: :drop }) do |params|
|
47
|
+
params = { action: true } if params == true
|
26
48
|
params
|
27
49
|
end
|
28
|
-
|
50
|
+
|
51
|
+
new ({ particle: :over })
|
52
|
+
|
53
|
+
new ({ sanitizer: :over }) do |params, user_proc|
|
54
|
+
|
55
|
+
params = :enter if params == true
|
56
|
+
case params
|
57
|
+
when :enter
|
58
|
+
@enter_action_proc = user_proc
|
59
|
+
when :leave
|
60
|
+
@leave_action_proc = user_proc
|
61
|
+
end
|
62
|
+
params
|
63
|
+
end
|
64
|
+
|
65
|
+
new({ particle: :sort }) do |_value, sort_proc|
|
29
66
|
@sort_proc = sort_proc
|
30
67
|
end
|
31
|
-
new({particle: :targets })
|
32
|
-
new({particle: :start })
|
33
|
-
new({pre: :start }) do |_value, user_proc|
|
68
|
+
new({ particle: :targets })
|
69
|
+
new({ particle: :start })
|
70
|
+
new({ pre: :start }) do |_value, user_proc|
|
34
71
|
@animation_start_proc = user_proc
|
35
72
|
end
|
36
|
-
new({particle: :stop })
|
37
|
-
new({pre: :stop })
|
73
|
+
new({ particle: :stop })
|
74
|
+
new({ pre: :stop }) do |_value, user_proc|
|
38
75
|
@animation_stop_proc = user_proc
|
39
76
|
end
|
40
|
-
new({particle: :begin })
|
41
|
-
new({particle: :end })
|
42
|
-
new({particle: :duration })
|
43
|
-
new({particle: :mass })
|
44
|
-
new({particle: :damping })
|
45
|
-
new({particle: :stiffness })
|
46
|
-
new({particle: :velocity })
|
47
|
-
new({particle: :repeat })
|
48
|
-
new({particle: :ease })
|
49
|
-
new({particle: :unbind })
|
50
|
-
new({particle: :over })
|
51
|
-
|
77
|
+
new({ particle: :begin })
|
78
|
+
new({ particle: :end })
|
79
|
+
new({ particle: :duration })
|
80
|
+
new({ particle: :mass })
|
81
|
+
new({ particle: :damping })
|
82
|
+
new({ particle: :stiffness })
|
83
|
+
new({ particle: :velocity })
|
84
|
+
new({ particle: :repeat })
|
85
|
+
new({ particle: :ease })
|
86
|
+
new({ particle: :unbind })
|
52
87
|
|
53
|
-
# generator = Genesis.generator
|
54
|
-
#
|
55
|
-
# # touch
|
56
|
-
# generator.build_particle(:touch)
|
57
|
-
# # video
|
58
|
-
# generator.build_particle(:play) do
|
59
|
-
# @atome[:pause] = :false
|
60
|
-
# end
|
61
|
-
# generator.build_particle(:time)
|
62
|
-
# generator.build_particle(:pause) do
|
63
|
-
# @atome[:play] = :false
|
64
|
-
# end
|
65
|
-
# generator.build_particle(:on)
|
66
|
-
# generator.build_particle(:fullscreen)
|
67
|
-
# generator.build_particle(:mute)
|
68
|
-
# # TODO : add the at event to ny particle : (width, left, ...) maybe use monitor particle
|
69
|
-
# # generator.build_particle(:at)
|
70
|
-
# # drag
|
71
|
-
# generator.build_particle(:drag)
|
72
|
-
# generator.build_sanitizer(:drag) do |params|
|
73
|
-
# params = { move: true } if params == true
|
74
|
-
# params
|
75
|
-
# end
|
76
|
-
# # sort
|
77
|
-
# generator.build_particle(:sort) do |_value, sort_proc|
|
78
|
-
# @sort_proc = sort_proc
|
79
|
-
# end
|
80
|
-
# # animation
|
81
|
-
# generator.build_particle(:targets)
|
82
|
-
# generator.build_particle(:start)
|
83
|
-
# generator.build_option(:pre_render_start) do |_value, user_proc|
|
84
|
-
# @animation_start_proc = user_proc
|
85
|
-
# end
|
86
|
-
# generator.build_particle(:stop)
|
87
|
-
# generator.build_option(:pre_render_stop) do |_value, user_proc|
|
88
|
-
# @animation_stop_proc = user_proc
|
89
|
-
# end
|
90
|
-
# generator.build_particle(:begin)
|
91
|
-
# generator.build_particle(:end)
|
92
|
-
# generator.build_particle(:duration)
|
93
|
-
# generator.build_particle(:mass)
|
94
|
-
# generator.build_particle(:damping)
|
95
|
-
# generator.build_particle(:stiffness)
|
96
|
-
# generator.build_particle(:velocity)
|
97
|
-
# generator.build_particle(:repeat)
|
98
|
-
# generator.build_particle(:ease)
|
99
|
-
# generator.build_particle(:unbind)
|
100
|
-
# generator.build_particle(:over)
|
@@ -14,21 +14,3 @@ new({particle: :size }) do |params|
|
|
14
14
|
height(params)
|
15
15
|
end
|
16
16
|
end
|
17
|
-
|
18
|
-
|
19
|
-
# generator = Genesis.generator
|
20
|
-
#
|
21
|
-
# generator.build_particle(:width)
|
22
|
-
# generator.build_particle(:height)
|
23
|
-
# generator.build_particle(:size) do |params|
|
24
|
-
# atome_width = atome[:width]
|
25
|
-
# atome_height = atome[:height]
|
26
|
-
# aspect_ratio = atome_width / atome_height
|
27
|
-
# if atome_width > atome_height
|
28
|
-
# width(params)
|
29
|
-
# height(params / aspect_ratio)
|
30
|
-
# else
|
31
|
-
# width(params * aspect_ratio)
|
32
|
-
# height(params)
|
33
|
-
# end
|
34
|
-
# end
|
@@ -2,10 +2,10 @@
|
|
2
2
|
|
3
3
|
new({ particle: :attach })
|
4
4
|
new({ sanitizer: :attach }) do |parents_ids|
|
5
|
-
parents_ids = parents_ids
|
5
|
+
parents_ids = parents_ids if parents_ids.instance_of? Atome
|
6
6
|
parents_ids = [parents_ids] unless parents_ids.instance_of?(Array)
|
7
7
|
parents_ids.each do |parents_id|
|
8
|
-
parents_id = parents_id
|
8
|
+
parents_id = parents_id if parents_id.instance_of? Atome
|
9
9
|
parents_found = grab(parents_id)
|
10
10
|
# TODO : factorise the code below
|
11
11
|
current_type = atome[:type]
|
@@ -23,23 +23,19 @@ new({ sanitizer: :attach }) do |parents_ids|
|
|
23
23
|
parents_found.atome[:attached] = [] unless parents_found.atome[:attached]
|
24
24
|
parents_found.atome[:attached] << atome[:id]
|
25
25
|
end
|
26
|
-
# atome[:parents]=atome[:parents] | parents_ids
|
27
|
-
# atome[:parents].concat(parents_ids).uni
|
28
|
-
# puts "==> #{id} : #{self}"
|
29
|
-
# puts "====> id : #{id}, #{parents_ids} #{atome[:parents]}, #{atome[:parents].class} : #{atome[:parents].class}"
|
30
26
|
parents_ids
|
31
27
|
end
|
32
28
|
|
33
29
|
new({ particle: :attached })
|
34
30
|
new({ sanitizer: :attached }) do |children_ids|
|
35
|
-
children_ids = children_ids
|
31
|
+
children_ids = children_ids if children_ids.instance_of? Atome
|
36
32
|
children_ids = [children_ids] unless children_ids.instance_of?(Array)
|
37
33
|
children_ids.each do |child_id|
|
38
|
-
child_id = child_id
|
34
|
+
child_id = child_id if child_id.instance_of? Atome
|
39
35
|
child_found = grab(child_id)
|
40
36
|
parents_found = @atome[:id]
|
41
37
|
# TODO : factorise the code below
|
42
|
-
child_found_type = child_found.type
|
38
|
+
child_found_type = child_found.type
|
43
39
|
@atome[child_found_type] = [] unless @atome[child_found_type]
|
44
40
|
|
45
41
|
# the condition below is needed when user passed a hash instead of the id of the child cf :
|
@@ -51,8 +47,6 @@ new({ sanitizer: :attached }) do |children_ids|
|
|
51
47
|
end
|
52
48
|
child_type_container << child_id
|
53
49
|
# TODO : factorise the code above
|
54
|
-
|
55
|
-
# child_found.family(parents_found)
|
56
50
|
child_found.atome[:attach] = [parents_found]
|
57
51
|
end
|
58
52
|
end
|
@@ -67,33 +61,12 @@ new({ sanitizer: :detached }) do |values|
|
|
67
61
|
else
|
68
62
|
detach_atome(values)
|
69
63
|
# we sanitize the values so it always return an array to the renderer
|
70
|
-
values=[values]
|
64
|
+
values = [values]
|
71
65
|
end
|
72
66
|
values
|
73
67
|
end
|
74
68
|
|
75
69
|
new({ particle: :type })
|
76
|
-
|
77
|
-
# new({ particle: :parents })
|
78
|
-
# new({ sanitizer: :parents }) do |params|
|
79
|
-
# params = [params] unless params.instance_of? Array
|
80
|
-
# sanitized_params = []
|
81
|
-
# params.each do |parents_id|
|
82
|
-
# parents_id = parents_id.value if parents_id.instance_of? Atome
|
83
|
-
# sanitized_params << parents_id
|
84
|
-
# parents_found = grab(parents_id)
|
85
|
-
# # TODO : factorise the code below
|
86
|
-
# current_type = atome[:type]
|
87
|
-
# parents_found.atome[current_type] = [] unless parents_found.atome[current_type]
|
88
|
-
# parents_found.atome[current_type] << atome[:id]
|
89
|
-
# # TODO : factorise the code above
|
90
|
-
# # TODO : check if we can remove the family
|
91
|
-
# family(parents_id)
|
92
|
-
# end
|
93
|
-
# sanitized_params
|
94
|
-
# end
|
95
|
-
|
96
|
-
# new({ particle: :family })
|
97
70
|
new({ particle: :id })
|
98
71
|
new({ sanitizer: :id }) do |params|
|
99
72
|
if @atome[:id] != params
|
@@ -30,6 +30,7 @@ new({ pre: :style }) do |styles_send, _user_proc|
|
|
30
30
|
end
|
31
31
|
end
|
32
32
|
new({ particle: :hide })
|
33
|
+
|
33
34
|
new({ particle: :remove }) do |particle_to_remove|
|
34
35
|
case particle_to_remove
|
35
36
|
when :color
|
@@ -43,62 +44,45 @@ new({ particle: :remove }) do |particle_to_remove|
|
|
43
44
|
end
|
44
45
|
new({ particle: :classes }) do |value|
|
45
46
|
Universe.classes[value] ||= []
|
46
|
-
Universe.classes[value] |= [id
|
47
|
+
Universe.classes[value] |= [id]
|
47
48
|
end
|
48
49
|
new({ particle: :remove_classes }) do |value|
|
49
50
|
# Universe.classes.delete(value)
|
50
|
-
Universe.classes[value].delete(id
|
51
|
+
Universe.classes[value].delete(id)
|
51
52
|
end
|
52
53
|
new ({particle: :opacity})
|
53
54
|
|
54
|
-
|
55
|
-
#
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
#
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
#
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
#
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
# when :color
|
89
|
-
# send(particle_to_remove, :black)
|
90
|
-
# when :shadow
|
91
|
-
# # TODO : code to write
|
92
|
-
# puts 'code to write'
|
93
|
-
# else
|
94
|
-
# particle_to_remove_decision(particle_to_remove)
|
95
|
-
# end
|
96
|
-
# end
|
97
|
-
# generator.build_particle(:classes) do |value|
|
98
|
-
# Universe.classes[value] ||= []
|
99
|
-
# Universe.classes[value] |= [id.value]
|
100
|
-
# end
|
101
|
-
# generator.build_particle(:remove_classes) do |value|
|
102
|
-
# # Universe.classes.delete(value)
|
103
|
-
# Universe.classes[value].delete(id.value)
|
104
|
-
# end
|
55
|
+
|
56
|
+
# vector shape
|
57
|
+
new({particle: :definition})
|
58
|
+
|
59
|
+
new({ browser: :definition, type: :string }) do |value, _user_proc|
|
60
|
+
# alert "value is #{value}"
|
61
|
+
target=id
|
62
|
+
`
|
63
|
+
|
64
|
+
var divElement = document.querySelector('#'+#{target});;
|
65
|
+
|
66
|
+
// select the first svg tag inside the div
|
67
|
+
var svgElement = divElement.querySelector('svg');
|
68
|
+
|
69
|
+
// delete the first svg tag inside the div if it exist
|
70
|
+
if (svgElement) {
|
71
|
+
divElement.removeChild(svgElement);
|
72
|
+
}
|
73
|
+
|
74
|
+
|
75
|
+
let svg_content='<svg style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">'+#{value}+'</svg>'
|
76
|
+
let svgContainer = document.getElementById(#{target});
|
77
|
+
let parser = new DOMParser();
|
78
|
+
let svgDoc = parser.parseFromString(svg_content, "image/svg+xml");
|
79
|
+
let importedSVG = svgDoc.getElementsByTagName("svg")[0];
|
80
|
+
importedSVG.style.width = "100%";
|
81
|
+
importedSVG.style.height = "100%";
|
82
|
+
let elements = importedSVG.getElementsByTagName("path");
|
83
|
+
|
84
|
+
svgContainer.appendChild(importedSVG);
|
85
|
+
|
86
|
+
`
|
87
|
+
|
88
|
+
end
|
@@ -9,16 +9,40 @@ end
|
|
9
9
|
new({ particle: :broadcast })
|
10
10
|
new({ particle: :data })
|
11
11
|
# new({particle: :additional })
|
12
|
-
new({ particle: :delete }) do |params|
|
12
|
+
new({ particle: :delete, render: false }) do |params, &user_proc|
|
13
13
|
if params == true
|
14
|
-
#
|
15
|
-
|
16
|
-
|
17
|
-
|
14
|
+
# We use the tag persistent to exclude color of system object and other default colors
|
15
|
+
unless tag && tag[:persistent]
|
16
|
+
# now we detach the atome from it's parent
|
17
|
+
# now we init rendering
|
18
|
+
rendering(:delete, params, &user_proc)
|
19
|
+
# the machine delete the current atome from the universe
|
20
|
+
id_found = @atome[:id]
|
21
|
+
Universe.delete(id_found)
|
22
|
+
parents_found = @atome[:attach]
|
23
|
+
parents_found.each do |parent_id_found|
|
24
|
+
parent_found = grab(parent_id_found)
|
25
|
+
next unless parent_found
|
26
|
+
|
27
|
+
previous_parent_type_child = parent_found.atome[type]
|
28
|
+
previous_parent_attached_child = parent_found.atome[:attached]
|
29
|
+
# FIXME : find why we can't use delete on the array nut must use an iterator
|
30
|
+
new_type_container = []
|
31
|
+
previous_parent_type_child.each do |atome_found|
|
32
|
+
new_type_container << atome_found unless atome_found == id_found
|
33
|
+
end
|
34
|
+
parent_found.atome[type] = new_type_container
|
35
|
+
# FIXME : find why we can't use delete on the array nut must use an iterator
|
36
|
+
new_attached_container = []
|
37
|
+
previous_parent_attached_child.each do |atome_found|
|
38
|
+
new_attached_container << atome_found unless atome_found == id_found
|
39
|
+
end
|
40
|
+
parent_found.atome[:attached] = new_attached_container
|
41
|
+
|
42
|
+
end
|
43
|
+
|
18
44
|
end
|
19
45
|
|
20
|
-
# the machine delete the current atome from the universe
|
21
|
-
Universe.delete(@atome[:id])
|
22
46
|
elsif params == :materials
|
23
47
|
# this will delete any child with a visual type cf : images, shapes, videos, ...
|
24
48
|
materials.each do |atome_id_found|
|
@@ -26,6 +50,13 @@ new({ particle: :delete }) do |params|
|
|
26
50
|
end
|
27
51
|
elsif params[:id]
|
28
52
|
# the machine try to an atome by it's ID and delete it
|
53
|
+
# We check for recursive, if found we delete attached atomes too
|
54
|
+
if params[:recursive] == true
|
55
|
+
materials_found = grab(params[:id]).materials
|
56
|
+
materials_found.each do |atome_id_found|
|
57
|
+
grab(atome_id_found).delete(true)
|
58
|
+
end
|
59
|
+
end
|
29
60
|
grab(params[:id]).delete(true)
|
30
61
|
elsif params.instance_of? Hash
|
31
62
|
# the machine try to find the sub particle id and remove it eg a.delete(monitor: :my_monitor) remove the monitor
|
@@ -34,11 +65,28 @@ new({ particle: :delete }) do |params|
|
|
34
65
|
atome[param][value] = nil
|
35
66
|
end
|
36
67
|
else
|
37
|
-
# the machine try to reset the current particle(params), eg a.delete(:left) => left: 0
|
38
68
|
send(params, 0)
|
39
69
|
end
|
40
70
|
end
|
71
|
+
|
41
72
|
new({ particle: :clear })
|
73
|
+
new({ post: :clear }) do
|
74
|
+
|
75
|
+
attached_found = []
|
76
|
+
@atome[:attached].each do |attached_id_found|
|
77
|
+
attached_found << attached_id_found
|
78
|
+
end
|
79
|
+
attached_found.each do |child_id_found|
|
80
|
+
# puts "===>> should be deleted : #{child_id_found}"
|
81
|
+
child_found = grab(child_id_found)
|
82
|
+
|
83
|
+
child_found.delete(true) if child_found
|
84
|
+
|
85
|
+
# Universe.delete(child_id_found)
|
86
|
+
end
|
87
|
+
# attached([])
|
88
|
+
# puts "params are => #{id}"
|
89
|
+
end
|
42
90
|
new({ particle: :path })
|
43
91
|
new({ particle: :schedule }) do |date, proc|
|
44
92
|
date = date.to_s
|
@@ -56,54 +104,11 @@ end
|
|
56
104
|
new({ particle: :cursor })
|
57
105
|
new({ particle: :preset })
|
58
106
|
new({ particle: :relations, type: :hash })
|
107
|
+
new({ particle: :tag, render: false, type: :hash })
|
108
|
+
new({ particle: :batch, render: false })
|
109
|
+
new({ sanitizer: :batch }) do |params|
|
110
|
+
Batch.new(params)
|
111
|
+
# puts "index msg : we must treat the batch : #{params}"
|
112
|
+
|
113
|
+
end
|
59
114
|
|
60
|
-
# generator = Genesis.generator
|
61
|
-
#
|
62
|
-
#
|
63
|
-
#
|
64
|
-
#
|
65
|
-
# generator.build_particle(:renderers)
|
66
|
-
# generator.build_particle(:code)
|
67
|
-
# generator.build_particle(:run) do |params|
|
68
|
-
# code_found = @atome[:code]
|
69
|
-
# instance_exec(params, &code_found) if code_found.is_a?(Proc)
|
70
|
-
# end
|
71
|
-
# generator.build_particle(:broadcast)
|
72
|
-
# generator.build_particle(:additional)
|
73
|
-
# generator.build_particle(:data)
|
74
|
-
# generator.build_particle(:delete) do |params|
|
75
|
-
# if params == true
|
76
|
-
# # the machine delete the current atome
|
77
|
-
# Universe.delete(@atome[:id])
|
78
|
-
# elsif params[:id]
|
79
|
-
# # the machine try to an atome by it's ID and delete it
|
80
|
-
# grab(params[:id]).delete(true)
|
81
|
-
# elsif params.instance_of? Hash
|
82
|
-
# # the machine try to find the sub particle id and remove it eg a.delete(monitor: :my_monitor) remove the monitor
|
83
|
-
# # with id my_monitor
|
84
|
-
# params.each do |param, value|
|
85
|
-
# atome[param][value] = nil
|
86
|
-
# end
|
87
|
-
# else
|
88
|
-
# # the machine try to reset the current particle(params), eg a.delete(:left) => left: 0
|
89
|
-
# send(params, 0)
|
90
|
-
# end
|
91
|
-
# end
|
92
|
-
# generator.build_particle(:clear)
|
93
|
-
# generator.build_particle(:path)
|
94
|
-
# generator.build_particle(:schedule) do |date, proc|
|
95
|
-
# date = date.to_s
|
96
|
-
# delimiters = [',', ' ', ':', '-']
|
97
|
-
# format_date = date.split(Regexp.union(delimiters))
|
98
|
-
# Universe.renderer_list.each do |renderer|
|
99
|
-
# send("#{renderer}_schedule", format_date, &proc)
|
100
|
-
# end
|
101
|
-
# end
|
102
|
-
# generator.build_particle(:read) do |file, proc|
|
103
|
-
# Universe.renderer_list.each do |renderer|
|
104
|
-
# send("#{renderer}_reader", file, &proc)
|
105
|
-
# end
|
106
|
-
# end
|
107
|
-
# generator.build_particle(:cursor)
|
108
|
-
# generator.build_particle(:preset)
|
109
|
-
# generator.build_particle(:relations, { type: :hash })
|
@@ -22,6 +22,8 @@ class Atome
|
|
22
22
|
# we add the new method to the particle's collection of methods
|
23
23
|
Universe.add_to_particle_list(particle_name, type)
|
24
24
|
# the line below create an empty particle method for each renderer, eg: browser_left, headless_width, ...
|
25
|
+
# the line below create the corresponding particle method for Batch class
|
26
|
+
particle_method_for_batch(particle_name)
|
25
27
|
auto_render_generator(particle_name) if render
|
26
28
|
new_particle(particle_name, store, render, &particle_proc)
|
27
29
|
# the line below create all alternatives methods such as create 'method='
|
@@ -32,6 +34,11 @@ class Atome
|
|
32
34
|
# TODO : atomes should tell the Universe if they're parts of materials category or else
|
33
35
|
# we add the new method to the atome's collection of methods
|
34
36
|
Universe.add_to_atome_list(atome_name)
|
37
|
+
# the method below generate Atome method creation at Object level,
|
38
|
+
# so a syntax like : 'text(:hello)' is possible instead of the mandatory : grab(:view).text(:hello)
|
39
|
+
atome_method_for_object(atome_name)
|
40
|
+
# the line below create the corresponding atome method for Batch class
|
41
|
+
atome_method_for_batch(atome_name)
|
35
42
|
unless Essentials.default_params[atome_name]
|
36
43
|
# if it doesn't exist
|
37
44
|
# we create default params for the new created atome, adding the hash to : module essential, @default_params
|
@@ -60,6 +67,7 @@ class Atome
|
|
60
67
|
end
|
61
68
|
|
62
69
|
def build_option(method_name, &method_proc)
|
70
|
+
#puts "2 => #{method_name}"
|
63
71
|
Universe.add_optional_method(method_name.to_sym, &method_proc)
|
64
72
|
end
|
65
73
|
end
|
@@ -18,51 +18,61 @@ end
|
|
18
18
|
# now let's get the default render engine
|
19
19
|
default_render = Essentials.default_params[:render_engines]
|
20
20
|
|
21
|
+
|
22
|
+
def atome_infos
|
23
|
+
puts "atome version: #{Atome::VERSION}"
|
24
|
+
# puts "application identity: #{Universe.app_identity}"
|
25
|
+
puts "application identity: #{Atome::aui}"
|
26
|
+
# puts "application mode: #{Atome.mode}"
|
27
|
+
puts "host framework: #{$host}"
|
28
|
+
puts "script mode: #{Universe.current_machine}"
|
29
|
+
puts "user: #{Universe.current_user}"
|
30
|
+
puts "server: #{Universe.current_server}"
|
31
|
+
end
|
32
|
+
|
21
33
|
Universe.current_user = :jeezs
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
puts "current user: #{Universe.current_user}"
|
26
|
-
puts "current server: #{Universe.current_server}"
|
34
|
+
|
35
|
+
|
36
|
+
atome_infos
|
27
37
|
|
28
38
|
Atome.new(
|
29
|
-
{ element: { renderers: [], id: :eDen, type: :element} }
|
39
|
+
{ element: { renderers: [], id: :eDen, type: :element , tag: {system: true}} }
|
30
40
|
)
|
31
41
|
|
32
42
|
Atome.new(
|
33
|
-
{ element: { renderers: [], id: :user_view, type: :element,
|
34
|
-
|
43
|
+
{ element: { renderers: [], id: :user_view, type: :element, tag: {system: true},
|
44
|
+
attach: [:eDen] } }
|
35
45
|
)
|
36
46
|
|
37
47
|
# color creation
|
38
48
|
Atome.new(
|
39
|
-
{ color: { renderers: default_render, id: :view_color, type: :color,
|
49
|
+
{ color: { renderers: default_render, id: :view_color, type: :color,tag: ({persistent: true}),
|
40
50
|
red: 0.15, green: 0.15, blue: 0.15, alpha: 1 } }
|
41
51
|
)
|
42
52
|
|
43
53
|
Atome.new(
|
44
|
-
{ color: { renderers: default_render, id: :shape_color, type: :color,
|
54
|
+
{ color: { renderers: default_render, id: :shape_color, type: :color,tag: ({persistent: true}),
|
45
55
|
red: 0.4, green: 0.4, blue: 0.4, alpha: 1 } }
|
46
56
|
)
|
47
57
|
|
48
58
|
Atome.new(
|
49
|
-
{ color: { renderers: default_render, id: :box_color, type: :color,
|
59
|
+
{ color: { renderers: default_render, id: :box_color, type: :color,tag: ({persistent: true}),
|
50
60
|
red: 0.5, green: 0.5, blue: 0.5, alpha: 1 } }
|
51
61
|
)
|
52
62
|
|
53
63
|
Atome.new(
|
54
|
-
{ color: { renderers: default_render, id: :text_color, type: :color,
|
64
|
+
{ color: { renderers: default_render, id: :text_color, type: :color,tag: ({persistent: true}),
|
55
65
|
red: 0.3, green: 0.3, blue: 0.3, alpha: 1 } }
|
56
66
|
)
|
57
67
|
|
58
68
|
Atome.new(
|
59
|
-
{ color: { renderers: default_render, id: :circle_color, type: :color,
|
69
|
+
{ color: { renderers: default_render, id: :circle_color, type: :color,tag: ({persistent: true}),
|
60
70
|
red: 0.6, green: 0.6, blue: 0.6, alpha: 1 } }
|
61
71
|
)
|
62
72
|
|
63
73
|
Atome.new(
|
64
74
|
|
65
|
-
{ color: { renderers: default_render, id: :matrix_color, type: :color,
|
75
|
+
{ color: { renderers: default_render, id: :matrix_color, type: :color,tag: ({persistent: true}),
|
66
76
|
left: 0, top: 0, red: 0.7, green: 0.7, blue: 0.7, alpha: 1, diffusion: :linear } }
|
67
77
|
)
|
68
78
|
|
@@ -70,16 +80,25 @@ Atome.new(
|
|
70
80
|
# the black_matter is used to store un materialized atomes
|
71
81
|
Atome.new(
|
72
82
|
{ shape: { renderers: default_render, id: :black_matter, type: :shape, attach: [:user_view],
|
73
|
-
left: 0, right: 0, top: 0, bottom: 0, width: 0, height: 0, overflow: :hidden
|
83
|
+
left: 0, right: 0, top: 0, bottom: 0, width: 0, height: 0, overflow: :hidden, tag: {system: true}
|
74
84
|
} })
|
85
|
+
|
75
86
|
# view port
|
76
87
|
Atome.new(
|
77
|
-
{ shape: { renderers: default_render, id: :view, type: :shape, attach: [:user_view],
|
88
|
+
{ shape: { renderers: default_render, id: :view, type: :shape, attach: [:user_view], tag: {system: true},
|
78
89
|
attached: :view_color, left: 0, right: 0, top: 0, bottom: 0, width: :auto, height: :auto, overflow: :auto,
|
79
90
|
}
|
80
91
|
}
|
81
92
|
)
|
82
93
|
|
94
|
+
#unreal port
|
95
|
+
Atome.new(
|
96
|
+
{ shape: { renderers: default_render, id: :intuition, type: :shape, attach: [:user_view], tag: {system: true},
|
97
|
+
left: 0, top: 0, width: 0, height: 0, overflow: :visible,
|
98
|
+
}
|
99
|
+
}
|
100
|
+
)
|
101
|
+
|
83
102
|
# init basic object for atome environment
|
84
103
|
|
85
104
|
# Atome.new is used to create a new atome using best performances but params must be formatted and ordered correctly
|