atome 0.5.7.0.3 → 0.3191
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of atome might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Gemfile +4 -4
- data/README.md +5 -77
- data/Rakefile +7 -502
- data/app_builder_helpers/Rakefile +235 -0
- data/documentation/framework/enhance_atome.md +1 -1
- data/documentation/installation/atome_server.md +1 -66
- data/documentation/tutorials/tutorials.md +0 -7
- data/exe/atome +157 -819
- data/lib/atome/atome_native_extensions.rb +3 -0
- data/lib/atome/extensions/geolocation.rb +1 -1
- data/lib/atome/extensions/ping.rb +11 -10
- data/lib/atome/extensions/sha.rb +6 -8
- data/lib/atome/kernel/atome_genesis.rb +93 -0
- data/lib/atome/kernel/generators/shapes.rb +7 -0
- data/lib/atome/kernel/properties/geometry.rb +120 -0
- data/lib/atome/kernel/universe.rb +24 -295
- data/lib/atome/renderers/headless/headless.rb +0 -0
- data/lib/atome/renderers/headless/properties/generator.rb +0 -0
- data/lib/atome/renderers/opal/atome_opal_extensions.rb +4 -0
- data/lib/{platform_specific → atome/renderers}/opal/extensions/geolocation.rb +1 -1
- data/lib/atome/renderers/opal/extensions/ping.rb +13 -0
- data/lib/atome/renderers/opal/extensions/sha.rb +11 -0
- data/lib/atome/renderers/opal/opal_browser.rb +8 -0
- data/lib/{platform_specific → atome/renderers}/opal/opal_parser.rb +0 -1
- data/lib/atome/renderers/opal/properties/generator.rb +6 -0
- data/lib/atome/renderers/server/server.rb +0 -0
- data/lib/atome/version.rb +1 -2
- data/lib/atome.rb +16 -35
- data/sig/atome.rbs +0 -75
- data/vendor/assets/Guardfile +4 -0
- data/vendor/assets/Rakefile +2 -12
- data/vendor/assets/application/index.rb +2 -7
- data/vendor/assets/build/css/style.css +53 -0
- data/vendor/assets/build/index.html +24 -0
- data/vendor/assets/build/js/application.js +0 -0
- data/vendor/assets/build/js/third_parties/interact.min.js +4 -0
- data/vendor/assets/build/js/third_parties/popmotion.min.js +1 -0
- data/vendor/assets/examples/misc.rb +219 -0
- data/vendor/assets/examples/ping.rb +3 -0
- data/vendor/assets/examples/storage.rb +9 -0
- data/vendor/assets/examples/view_example.rb +21 -0
- data/vendor/assets/server/atome_server.rb +96 -33
- data/vendor/assets/server/config.ru +3 -8
- metadata +69 -512
- data/CHANGELOG.md +0 -21
- data/atome.gemspec +0 -100
- data/documentation/basic.md +0 -241
- data/documentation/deep learning/architecture.txt +0 -3763
- data/documentation/deep learning/atome.png +0 -0
- data/documentation/deep learning/basic_infos.txt +0 -289
- data/documentation/deep learning/example_of_users_code.rb +0 -1810
- data/documentation/deep learning/misc.txt +0 -24
- data/documentation/deep learning/ruby_js_example.rb +0 -272
- data/documentation/deep learning/wasm_script_help.text +0 -14
- data/documentation/installation/buiding_atome.md +0 -307
- data/lib/atome/atome.rb +0 -131
- data/lib/atome/extensions/atome.rb +0 -705
- data/lib/atome/extensions/mathematics.rb +0 -20
- data/lib/atome/genesis/atomes.rb +0 -109
- data/lib/atome/genesis/genesis.rb +0 -272
- data/lib/atome/genesis/particles/atome.rb +0 -4
- data/lib/atome/genesis/particles/communication.rb +0 -43
- data/lib/atome/genesis/particles/effect.rb +0 -14
- data/lib/atome/genesis/particles/event.rb +0 -344
- data/lib/atome/genesis/particles/geometry.rb +0 -31
- data/lib/atome/genesis/particles/hierarchy.rb +0 -105
- data/lib/atome/genesis/particles/identity.rb +0 -82
- data/lib/atome/genesis/particles/material.rb +0 -119
- data/lib/atome/genesis/particles/property.rb +0 -147
- data/lib/atome/genesis/particles/security.rb +0 -77
- data/lib/atome/genesis/particles/spatial.rb +0 -98
- data/lib/atome/genesis/particles/time.rb +0 -4
- data/lib/atome/genesis/particles/utility.rb +0 -261
- data/lib/atome/genesis/presets.rb +0 -10
- data/lib/atome/genesis/sparkle.rb +0 -217
- data/lib/atome/kernel/black_matter.rb +0 -22
- data/lib/atome/presets/atome.rb +0 -79
- data/lib/atome/utilities/color_helper/color/cmyk.rb +0 -263
- data/lib/atome/utilities/color_helper/color/css.rb +0 -7
- data/lib/atome/utilities/color_helper/color/grayscale.rb +0 -197
- data/lib/atome/utilities/color_helper/color/hsl.rb +0 -240
- data/lib/atome/utilities/color_helper/color/palette/adobecolor.rb +0 -260
- data/lib/atome/utilities/color_helper/color/palette/gimp.rb +0 -104
- data/lib/atome/utilities/color_helper/color/palette/monocontrast.rb +0 -164
- data/lib/atome/utilities/color_helper/color/palette.rb +0 -4
- data/lib/atome/utilities/color_helper/color/rgb/colors.rb +0 -167
- data/lib/atome/utilities/color_helper/color/rgb/contrast.rb +0 -57
- data/lib/atome/utilities/color_helper/color/rgb/metallic.rb +0 -28
- data/lib/atome/utilities/color_helper/color/rgb.rb +0 -715
- data/lib/atome/utilities/color_helper/color/yiq.rb +0 -62
- data/lib/atome/utilities/color_helper/color.rb +0 -415
- data/lib/atome/utilities/essentials.rb +0 -70
- data/lib/atome/utilities/sanitizer.rb +0 -13
- data/lib/atome/utilities/security.rb +0 -71
- data/lib/atome/utilities/utilities.rb +0 -656
- data/lib/atome_relative.rb +0 -39
- data/lib/molecules/_deprecated_examples/site.rb +0 -34
- data/lib/molecules/init.rb +0 -31
- data/lib/molecules/intuition/_deprecated_inputs.rb +0 -111
- data/lib/molecules/intuition/_deprecated_toolbox.rb +0 -282
- data/lib/molecules/intuition/utillities.rb +0 -408
- data/lib/platform_specific/opal/atome_opal_extensions.rb +0 -11
- data/lib/platform_specific/opal/extensions/color.rb +0 -30
- data/lib/platform_specific/opal/extensions/js.rb +0 -20
- data/lib/platform_specific/opal/extensions/object.rb +0 -6
- data/lib/platform_specific/opal/extensions/ping.rb +0 -31
- data/lib/platform_specific/opal/extensions/sha.rb +0 -25
- data/lib/platform_specific/opal/opal.rb +0 -5
- data/lib/platform_specific/wasm/atome_wasm_extensions.rb +0 -11
- data/lib/renderers/headless/headless.rb +0 -18
- data/lib/renderers/headless/index.rb +0 -6
- data/lib/renderers/headless/index_relative.rb +0 -6
- data/lib/renderers/headless/utility.rb +0 -6
- data/lib/renderers/html/atome.rb +0 -2
- data/lib/renderers/html/atome_html.rb +0 -22
- data/lib/renderers/html/communication.rb +0 -3
- data/lib/renderers/html/effect.rb +0 -51
- data/lib/renderers/html/event.rb +0 -59
- data/lib/renderers/html/geometry.rb +0 -49
- data/lib/renderers/html/hierarchy.rb +0 -248
- data/lib/renderers/html/html.rb +0 -1688
- data/lib/renderers/html/identity.rb +0 -104
- data/lib/renderers/html/index.rb +0 -19
- data/lib/renderers/html/index_relative.rb +0 -20
- data/lib/renderers/html/material.rb +0 -88
- data/lib/renderers/html/property.rb +0 -52
- data/lib/renderers/html/security.rb +0 -1
- data/lib/renderers/html/spatial.rb +0 -75
- data/lib/renderers/html/time.rb +0 -1
- data/lib/renderers/html/utility.rb +0 -170
- data/lib/renderers/renderer.rb +0 -16
- data/lib/renderers/server/index.rb +0 -4
- data/lib/renderers/server/index_relative.rb +0 -4
- data/lib/renderers/server/utility.rb +0 -4
- data/sig/atome_js.rbs +0 -1
- data/sig/batch.rbs +0 -7
- data/sig/browser_helper.rbs +0 -14
- data/sig/essentials.rbs +0 -11
- data/sig/genesis.rbs +0 -3
- data/sig/global_variables.rbs +0 -1
- data/sig/matrix.rbs +0 -5
- data/sig/object.rbs +0 -7
- data/sig/universe.rbs +0 -3
- data/src/utilities/host_mode.rb +0 -5
- data/vendor/assets/application/examples/affect.rb +0 -8
- data/vendor/assets/application/examples/aid.rb +0 -10
- data/vendor/assets/application/examples/allow_copy.rb +0 -13
- data/vendor/assets/application/examples/allow_system_right_click.rb +0 -16
- data/vendor/assets/application/examples/alternate.rb +0 -36
- data/vendor/assets/application/examples/animation.rb +0 -91
- data/vendor/assets/application/examples/apply.rb +0 -8
- data/vendor/assets/application/examples/atome.rb +0 -5
- data/vendor/assets/application/examples/atome_particle_validation.rb +0 -7
- data/vendor/assets/application/examples/atome_sparkle_use.rb +0 -6
- data/vendor/assets/application/examples/atomizer.rb +0 -86
- data/vendor/assets/application/examples/attach.rb +0 -34
- data/vendor/assets/application/examples/attached.rb +0 -45
- data/vendor/assets/application/examples/b64_to_image.rb +0 -9
- data/vendor/assets/application/examples/basic_understanding.rb +0 -54
- data/vendor/assets/application/examples/behavior.rb +0 -32
- data/vendor/assets/application/examples/blur.rb +0 -26
- data/vendor/assets/application/examples/border.rb +0 -75
- data/vendor/assets/application/examples/browse.rb +0 -17
- data/vendor/assets/application/examples/categories.rb +0 -5
- data/vendor/assets/application/examples/category.rb +0 -16
- data/vendor/assets/application/examples/center.rb +0 -7
- data/vendor/assets/application/examples/clear.rb +0 -96
- data/vendor/assets/application/examples/clones&monitoring.rb +0 -105
- data/vendor/assets/application/examples/code.rb +0 -13
- data/vendor/assets/application/examples/color.rb +0 -54
- data/vendor/assets/application/examples/compute.rb +0 -16
- data/vendor/assets/application/examples/console.rb +0 -4
- data/vendor/assets/application/examples/convert.rb +0 -163
- data/vendor/assets/application/examples/copy.rb +0 -25
- data/vendor/assets/application/examples/copybck.rb +0 -68
- data/vendor/assets/application/examples/css.rb +0 -6
- data/vendor/assets/application/examples/database_handling.rb +0 -39
- data/vendor/assets/application/examples/debug.rb +0 -78
- data/vendor/assets/application/examples/delete.rb +0 -105
- data/vendor/assets/application/examples/dig.rb +0 -13
- data/vendor/assets/application/examples/display.rb +0 -279
- data/vendor/assets/application/examples/display_bck.rb +0 -164
- data/vendor/assets/application/examples/drag.rb +0 -54
- data/vendor/assets/application/examples/drop.rb +0 -35
- data/vendor/assets/application/examples/duplicate.rb +0 -70
- data/vendor/assets/application/examples/edit.rb +0 -24
- data/vendor/assets/application/examples/encode.rb +0 -6
- data/vendor/assets/application/examples/encrypt.rb +0 -6
- data/vendor/assets/application/examples/example.rb +0 -27
- data/vendor/assets/application/examples/executor.rb +0 -36
- data/vendor/assets/application/examples/file.rb +0 -16
- data/vendor/assets/application/examples/fill.rb +0 -23
- data/vendor/assets/application/examples/find.rb +0 -158
- data/vendor/assets/application/examples/fit.rb +0 -26
- data/vendor/assets/application/examples/fonts.rb +0 -15
- data/vendor/assets/application/examples/generator_and_build.rb +0 -15
- data/vendor/assets/application/examples/getter.rb +0 -16
- data/vendor/assets/application/examples/grab.rb +0 -14
- data/vendor/assets/application/examples/gradient.rb +0 -40
- data/vendor/assets/application/examples/group.rb +0 -44
- data/vendor/assets/application/examples/help.rb +0 -17
- data/vendor/assets/application/examples/hierarchy.rb +0 -21
- data/vendor/assets/application/examples/history.rb +0 -32
- data/vendor/assets/application/examples/holder.rb +0 -62
- data/vendor/assets/application/examples/hypertext.rb +0 -113
- data/vendor/assets/application/examples/image.rb +0 -5
- data/vendor/assets/application/examples/import.rb +0 -33
- data/vendor/assets/application/examples/increment.rb +0 -23
- data/vendor/assets/application/examples/infos.rb +0 -10
- data/vendor/assets/application/examples/input.rb +0 -34
- data/vendor/assets/application/examples/int8.rb +0 -17
- data/vendor/assets/application/examples/js&ruby.rb +0 -18
- data/vendor/assets/application/examples/keyboard.rb +0 -59
- data/vendor/assets/application/examples/layout.rb +0 -38
- data/vendor/assets/application/examples/list.rb +0 -72
- data/vendor/assets/application/examples/localstorage.rb +0 -19
- data/vendor/assets/application/examples/login.rb +0 -84
- data/vendor/assets/application/examples/markup.rb +0 -4
- data/vendor/assets/application/examples/match.rb +0 -115
- data/vendor/assets/application/examples/matrix.rb +0 -118
- data/vendor/assets/application/examples/monitor.rb +0 -14
- data/vendor/assets/application/examples/on_resize.rb +0 -7
- data/vendor/assets/application/examples/on_the_fly_ruby_code_loading.rb +0 -9
- data/vendor/assets/application/examples/online.rb +0 -3
- data/vendor/assets/application/examples/opacity.rb +0 -9
- data/vendor/assets/application/examples/over.rb +0 -29
- data/vendor/assets/application/examples/paint.rb +0 -29
- data/vendor/assets/application/examples/particles.rb +0 -4
- data/vendor/assets/application/examples/percent_to_px.rb +0 -4
- data/vendor/assets/application/examples/play.rb +0 -50
- data/vendor/assets/application/examples/preset.rb +0 -33
- data/vendor/assets/application/examples/random.rb +0 -42
- data/vendor/assets/application/examples/raw_html.rb +0 -48
- data/vendor/assets/application/examples/read.rb +0 -13
- data/vendor/assets/application/examples/recorder.rb +0 -74
- data/vendor/assets/application/examples/refresh.rb +0 -62
- data/vendor/assets/application/examples/remove.rb +0 -60
- data/vendor/assets/application/examples/repeat.rb +0 -26
- data/vendor/assets/application/examples/resize.rb +0 -17
- data/vendor/assets/application/examples/scroll.rb +0 -11
- data/vendor/assets/application/examples/security.rb +0 -76
- data/vendor/assets/application/examples/select_text.rb +0 -18
- data/vendor/assets/application/examples/selected.rb +0 -35
- data/vendor/assets/application/examples/server.rb +0 -24
- data/vendor/assets/application/examples/shadow.rb +0 -60
- data/vendor/assets/application/examples/shapes.rb +0 -6
- data/vendor/assets/application/examples/shortcut.rb +0 -25
- data/vendor/assets/application/examples/site.rb +0 -41
- data/vendor/assets/application/examples/size.rb +0 -17
- data/vendor/assets/application/examples/sliders.rb +0 -17
- data/vendor/assets/application/examples/smooth.rb +0 -9
- data/vendor/assets/application/examples/style.rb +0 -4
- data/vendor/assets/application/examples/sub_atome_manipulation.rb +0 -20
- data/vendor/assets/application/examples/svg_img_to_vector.rb +0 -6
- data/vendor/assets/application/examples/svg_vectorizer.rb +0 -21
- data/vendor/assets/application/examples/sync.rb +0 -38
- data/vendor/assets/application/examples/table.rb +0 -76
- data/vendor/assets/application/examples/tagged.rb +0 -24
- data/vendor/assets/application/examples/terminal.rb +0 -4
- data/vendor/assets/application/examples/test.rb +0 -584
- data/vendor/assets/application/examples/text.rb +0 -5
- data/vendor/assets/application/examples/tick.rb +0 -29
- data/vendor/assets/application/examples/tools.rb +0 -666
- data/vendor/assets/application/examples/touch.rb +0 -41
- data/vendor/assets/application/examples/type_mutation.rb +0 -18
- data/vendor/assets/application/examples/unit.rb +0 -14
- data/vendor/assets/application/examples/universe.rb +0 -8
- data/vendor/assets/application/examples/vector.rb +0 -37
- data/vendor/assets/application/examples/video.rb +0 -14
- data/vendor/assets/application/examples/wait.rb +0 -6
- data/vendor/assets/application/examples/www.rb +0 -10
- data/vendor/assets/server/atome_server_wasm.rb +0 -54
- data/vendor/assets/server/capture.rb +0 -10
- data/vendor/assets/server/database.rb +0 -63
- data/vendor/assets/server/eDen.rb +0 -302
- data/vendor/assets/server/extensions.rb +0 -13
- data/vendor/assets/src/css/style.css +0 -167
- data/vendor/assets/src/index.html +0 -45
- data/vendor/assets/src/index_opal.html +0 -40
- data/vendor/assets/src/index_server.html +0 -38
- data/vendor/assets/src/index_server_wasm.html +0 -45
- data/vendor/assets/src/index_wasm.html +0 -50
- data/vendor/assets/src/js/atome/atome.js +0 -506
- data/vendor/assets/src/js/atome/atome_helpers/add_font.js +0 -46
- data/vendor/assets/src/js/atome/atome_helpers/atome_animate.js +0 -65
- data/vendor/assets/src/js/atome/atome_helpers/atome_drag.js +0 -124
- data/vendor/assets/src/js/atome/atome_helpers/atome_drop.js +0 -12
- data/vendor/assets/src/js/atome/atome_helpers/atome_events.js +0 -171
- data/vendor/assets/src/js/atome/atome_helpers/atome_over.js +0 -43
- data/vendor/assets/src/js/atome/atome_helpers/atome_sort.js +0 -20
- data/vendor/assets/src/js/atome/atome_helpers/atome_time.js +0 -10
- data/vendor/assets/src/js/atome/atome_helpers/atome_video.js +0 -12
- data/vendor/assets/src/js/atome/atome_helpers/communication.js +0 -35
- data/vendor/assets/src/js/atome/atome_helpers/file.js +0 -12
- data/vendor/assets/src/js/atome/specific/opal.js +0 -111
- data/vendor/assets/src/js/atome/specific/wasm.js +0 -123
- data/vendor/assets/src/js/molecules/web.js +0 -4
- data/vendor/assets/src/js/third_parties/browser.script.iife.min.js +0 -13
- data/vendor/assets/src/js/third_parties/fabric.min.js +0 -1
- data/vendor/assets/src/js/third_parties/html-to-image.min.js +0 -2
- data/vendor/assets/src/js/third_parties/interact.min.js +0 -3
- data/vendor/assets/src/js/third_parties/jsencrypt.min.js +0 -2
- data/vendor/assets/src/js/third_parties/papaparse.min.js +0 -7
- data/vendor/assets/src/js/third_parties/popmotion.min.js +0 -1
- data/vendor/assets/src/js/third_parties/sortable.min.js +0 -2
- data/vendor/assets/src/js/third_parties/three.min.js +0 -6
- data/vendor/assets/src/js/third_parties/w3color.js +0 -646
- data/vendor/assets/src/js/third_parties/wad.min.js +0 -9
- data/vendor/assets/src/js/third_parties/zim.min.js +0 -1
- data/vendor/assets/src/medias/audios/audio_missing.wav +0 -0
- data/vendor/assets/src/medias/audios/clap.wav +0 -0
- data/vendor/assets/src/medias/audios/cowbell.wav +0 -0
- data/vendor/assets/src/medias/audios/hihat.wav +0 -0
- data/vendor/assets/src/medias/audios/kick.wav +0 -0
- data/vendor/assets/src/medias/audios/riff.m4a +0 -0
- data/vendor/assets/src/medias/audios/snare.wav +0 -0
- data/vendor/assets/src/medias/audios/tom.wav +0 -0
- data/vendor/assets/src/medias/fonts/Roboto/LICENSE.txt +0 -202
- data/vendor/assets/src/medias/fonts/Roboto/Roboto-Black.ttf +0 -0
- data/vendor/assets/src/medias/fonts/Roboto/Roboto-BlackItalic.ttf +0 -0
- data/vendor/assets/src/medias/fonts/Roboto/Roboto-Bold.ttf +0 -0
- data/vendor/assets/src/medias/fonts/Roboto/Roboto-BoldItalic.ttf +0 -0
- data/vendor/assets/src/medias/fonts/Roboto/Roboto-Italic.ttf +0 -0
- data/vendor/assets/src/medias/fonts/Roboto/Roboto-Light.ttf +0 -0
- data/vendor/assets/src/medias/fonts/Roboto/Roboto-LightItalic.ttf +0 -0
- data/vendor/assets/src/medias/fonts/Roboto/Roboto-Medium.ttf +0 -0
- data/vendor/assets/src/medias/fonts/Roboto/Roboto-MediumItalic.ttf +0 -0
- data/vendor/assets/src/medias/fonts/Roboto/Roboto-Regular.ttf +0 -0
- data/vendor/assets/src/medias/fonts/Roboto/Roboto-Thin.ttf +0 -0
- data/vendor/assets/src/medias/fonts/Roboto/Roboto-ThinItalic.ttf +0 -0
- data/vendor/assets/src/medias/fonts/Roboto_Slab/LICENSE.txt +0 -202
- data/vendor/assets/src/medias/fonts/Roboto_Slab/README.txt +0 -71
- data/vendor/assets/src/medias/fonts/Roboto_Slab/RobotoSlab-VariableFont_wght.ttf +0 -0
- data/vendor/assets/src/medias/fonts/Roboto_Slab/static/RobotoSlab-Black.ttf +0 -0
- data/vendor/assets/src/medias/fonts/Roboto_Slab/static/RobotoSlab-Bold.ttf +0 -0
- data/vendor/assets/src/medias/fonts/Roboto_Slab/static/RobotoSlab-ExtraBold.ttf +0 -0
- data/vendor/assets/src/medias/fonts/Roboto_Slab/static/RobotoSlab-ExtraLight.ttf +0 -0
- data/vendor/assets/src/medias/fonts/Roboto_Slab/static/RobotoSlab-Light.ttf +0 -0
- data/vendor/assets/src/medias/fonts/Roboto_Slab/static/RobotoSlab-Medium.ttf +0 -0
- data/vendor/assets/src/medias/fonts/Roboto_Slab/static/RobotoSlab-Regular.ttf +0 -0
- data/vendor/assets/src/medias/fonts/Roboto_Slab/static/RobotoSlab-SemiBold.ttf +0 -0
- data/vendor/assets/src/medias/fonts/Roboto_Slab/static/RobotoSlab-Thin.ttf +0 -0
- data/vendor/assets/src/medias/images/atome.svg +0 -12
- data/vendor/assets/src/medias/images/ballanim.png +0 -0
- data/vendor/assets/src/medias/images/blank.png +0 -0
- data/vendor/assets/src/medias/images/green_planet.png +0 -0
- data/vendor/assets/src/medias/images/icons/Lowpass.svg +0 -8
- data/vendor/assets/src/medias/images/icons/activate.svg +0 -3
- data/vendor/assets/src/medias/images/icons/audio.svg +0 -7
- data/vendor/assets/src/medias/images/icons/band_pass.svg +0 -8
- data/vendor/assets/src/medias/images/icons/clear.svg +0 -5
- data/vendor/assets/src/medias/images/icons/color.svg +0 -5
- data/vendor/assets/src/medias/images/icons/copy.svg +0 -8
- data/vendor/assets/src/medias/images/icons/create.svg +0 -3
- data/vendor/assets/src/medias/images/icons/delete.svg +0 -8
- data/vendor/assets/src/medias/images/icons/edit-.svg +0 -4
- data/vendor/assets/src/medias/images/icons/edit.svg +0 -4
- data/vendor/assets/src/medias/images/icons/edition.svg +0 -4
- data/vendor/assets/src/medias/images/icons/email.svg +0 -13
- data/vendor/assets/src/medias/images/icons/equalizer-.svg +0 -5
- data/vendor/assets/src/medias/images/icons/equalizer.svg +0 -5
- data/vendor/assets/src/medias/images/icons/filter.svg +0 -4
- data/vendor/assets/src/medias/images/icons/folder.svg +0 -4
- data/vendor/assets/src/medias/images/icons/group.svg +0 -6
- data/vendor/assets/src/medias/images/icons/hamburger.svg +0 -8
- data/vendor/assets/src/medias/images/icons/high_pass.svg +0 -5
- data/vendor/assets/src/medias/images/icons/link.svg +0 -4
- data/vendor/assets/src/medias/images/icons/load.svg +0 -4
- data/vendor/assets/src/medias/images/icons/low_pass.svg +0 -5
- data/vendor/assets/src/medias/images/icons/mail_gray.svg +0 -6
- data/vendor/assets/src/medias/images/icons/mail_green.svg +0 -6
- data/vendor/assets/src/medias/images/icons/mail_orange.svg +0 -6
- data/vendor/assets/src/medias/images/icons/microphone.svg +0 -7
- data/vendor/assets/src/medias/images/icons/midi_in.svg +0 -4
- data/vendor/assets/src/medias/images/icons/midi_out.svg +0 -4
- data/vendor/assets/src/medias/images/icons/modules.svg +0 -11
- data/vendor/assets/src/medias/images/icons/paste.svg +0 -4
- data/vendor/assets/src/medias/images/icons/pause.svg +0 -5
- data/vendor/assets/src/medias/images/icons/play.svg +0 -7
- data/vendor/assets/src/medias/images/icons/record.svg +0 -4
- data/vendor/assets/src/medias/images/icons/save.svg +0 -5
- data/vendor/assets/src/medias/images/icons/select--.svg +0 -4
- data/vendor/assets/src/medias/images/icons/select-.svg +0 -5
- data/vendor/assets/src/medias/images/icons/select-all.svg +0 -4
- data/vendor/assets/src/medias/images/icons/select.svg +0 -4
- data/vendor/assets/src/medias/images/icons/settings.svg +0 -5
- data/vendor/assets/src/medias/images/icons/settings0.svg +0 -2
- data/vendor/assets/src/medias/images/icons/settings1.svg +0 -17
- data/vendor/assets/src/medias/images/icons/settings2.svg +0 -25
- data/vendor/assets/src/medias/images/icons/settings_old.svg +0 -6
- data/vendor/assets/src/medias/images/icons/shape.svg +0 -7
- data/vendor/assets/src/medias/images/icons/speaker.svg +0 -6
- data/vendor/assets/src/medias/images/icons/stop.svg +0 -4
- data/vendor/assets/src/medias/images/icons/tool.svg +0 -7
- data/vendor/assets/src/medias/images/icons/tools.svg +0 -9
- data/vendor/assets/src/medias/images/icons/undo.svg +0 -4
- data/vendor/assets/src/medias/images/icons/undo2.svg +0 -4
- data/vendor/assets/src/medias/images/icons/validate.svg +0 -9
- data/vendor/assets/src/medias/images/icons/vie.svg +0 -3
- data/vendor/assets/src/medias/images/icons/wave-saw.svg +0 -3
- data/vendor/assets/src/medias/images/icons/wave-sine.svg +0 -3
- data/vendor/assets/src/medias/images/icons/wave-square-.svg +0 -4
- data/vendor/assets/src/medias/images/icons/wave-square.svg +0 -3
- data/vendor/assets/src/medias/images/icons/wave-triangle.svg +0 -3
- data/vendor/assets/src/medias/images/icons/waveform-.svg +0 -4
- data/vendor/assets/src/medias/images/icons/waveform.svg +0 -7
- data/vendor/assets/src/medias/images/logos/Facebook.svg +0 -8
- data/vendor/assets/src/medias/images/logos/GitHub Black.svg +0 -7
- data/vendor/assets/src/medias/images/logos/GitHub.svg +0 -7
- data/vendor/assets/src/medias/images/logos/LinkedIn-full.svg +0 -109
- data/vendor/assets/src/medias/images/logos/LinkedIn.svg +0 -11
- data/vendor/assets/src/medias/images/logos/Orange/Facebook.svg +0 -8
- data/vendor/assets/src/medias/images/logos/Orange/TikTok.svg +0 -11
- data/vendor/assets/src/medias/images/logos/Orange/Twitter.svg +0 -8
- data/vendor/assets/src/medias/images/logos/Orange/instagram.svg +0 -8
- data/vendor/assets/src/medias/images/logos/Orange/vimeo.svg +0 -8
- data/vendor/assets/src/medias/images/logos/Orange/youtube.svg +0 -7
- data/vendor/assets/src/medias/images/logos/TikTok.svg +0 -11
- data/vendor/assets/src/medias/images/logos/Twitter.svg +0 -35
- data/vendor/assets/src/medias/images/logos/X.svg +0 -5
- data/vendor/assets/src/medias/images/logos/YouTube.svg +0 -1
- data/vendor/assets/src/medias/images/logos/apple.svg +0 -4
- data/vendor/assets/src/medias/images/logos/atome.svg +0 -12
- data/vendor/assets/src/medias/images/logos/freebsd.png +0 -0
- data/vendor/assets/src/medias/images/logos/freebsd.svg +0 -8
- data/vendor/assets/src/medias/images/logos/gray/Facebook.svg +0 -8
- data/vendor/assets/src/medias/images/logos/gray/TikTok.svg +0 -11
- data/vendor/assets/src/medias/images/logos/gray/Twitter.svg +0 -8
- data/vendor/assets/src/medias/images/logos/gray/instagram.svg +0 -8
- data/vendor/assets/src/medias/images/logos/gray/vimeo.svg +0 -8
- data/vendor/assets/src/medias/images/logos/gray/youtube.svg +0 -7
- data/vendor/assets/src/medias/images/logos/gray/youtube2.svg +0 -13
- data/vendor/assets/src/medias/images/logos/instagram.svg +0 -6
- data/vendor/assets/src/medias/images/logos/tiktok_back.svg +0 -1
- data/vendor/assets/src/medias/images/logos/vimeo.svg +0 -17
- data/vendor/assets/src/medias/images/noise.svg +0 -17
- data/vendor/assets/src/medias/images/red_planet.png +0 -0
- data/vendor/assets/src/medias/images/tile.png +0 -0
- data/vendor/assets/src/medias/texts/lorem.txt +0 -1
- data/vendor/assets/src/medias/utils/infos/color.rb +0 -29
- data/vendor/assets/src/medias/utils/infos/width.rb +0 -25
- data/vendor/assets/src/medias/videos/video_missing.mp4 +0 -0
- data/vendor/assets/src-tauri/.gitignore +0 -4
- data/vendor/assets/src-tauri/Cargo.toml +0 -27
- data/vendor/assets/src-tauri/build.rs +0 -3
- data/vendor/assets/src-tauri/icons/128x128.png +0 -0
- data/vendor/assets/src-tauri/icons/128x128@2x.png +0 -0
- data/vendor/assets/src-tauri/icons/32x32.png +0 -0
- data/vendor/assets/src-tauri/icons/Square107x107Logo.png +0 -0
- data/vendor/assets/src-tauri/icons/Square142x142Logo.png +0 -0
- data/vendor/assets/src-tauri/icons/Square150x150Logo.png +0 -0
- data/vendor/assets/src-tauri/icons/Square284x284Logo.png +0 -0
- data/vendor/assets/src-tauri/icons/Square30x30Logo.png +0 -0
- data/vendor/assets/src-tauri/icons/Square310x310Logo.png +0 -0
- data/vendor/assets/src-tauri/icons/Square44x44Logo.png +0 -0
- data/vendor/assets/src-tauri/icons/Square71x71Logo.png +0 -0
- data/vendor/assets/src-tauri/icons/Square89x89Logo.png +0 -0
- data/vendor/assets/src-tauri/icons/StoreLogo.png +0 -0
- data/vendor/assets/src-tauri/icons/icon.icns +0 -0
- data/vendor/assets/src-tauri/icons/icon.ico +0 -0
- data/vendor/assets/src-tauri/icons/icon.png +0 -0
- data/vendor/assets/src-tauri/src/main.rs +0 -71
- data/vendor/assets/src-tauri/tauri.conf.json +0 -70
- data/vendor/assets/src-wasm/wasm/wasi-vfs-osx_arm +0 -0
- data/vendor/assets/src-wasm/wasm/wasi-vfs-osx_x86 +0 -0
- data/vendor/assets/src-wasm/wasm/wasi-vfs-unix +0 -0
- data/vendor/assets/src-wasm/wasm/wasi-vfs.exe +0 -0
- /data/vendor/assets/{src → build}/favicon.ico +0 -0
- /data/vendor/assets/{src/js/third_parties → build/js}/ping.min.js +0 -0
- /data/vendor/assets/{src → build}/js/third_parties/interact.min.js.map +0 -0
- /data/vendor/assets/{src → build}/js/third_parties/sha256.min.js +0 -0
@@ -1,197 +0,0 @@
|
|
1
|
-
# A colour object representing shades of grey. Used primarily in PDF
|
2
|
-
# document creation.
|
3
|
-
class Color::GrayScale
|
4
|
-
include Color
|
5
|
-
|
6
|
-
# The format of a DeviceGrey colour for PDF. In color-tools 2.0 this will
|
7
|
-
# be removed from this package and added back as a modification by the
|
8
|
-
# PDF::Writer package.
|
9
|
-
PDF_FORMAT_STR = "%.3f %s"
|
10
|
-
|
11
|
-
class << self
|
12
|
-
# Creates a greyscale colour object from fractional values 0..1.
|
13
|
-
#
|
14
|
-
# Color::GreyScale.from_fraction(0.5)
|
15
|
-
def from_fraction(g = 0, &block)
|
16
|
-
new(g, 1.0, &block)
|
17
|
-
end
|
18
|
-
|
19
|
-
# Creates a greyscale colour object from percentages 0..100.
|
20
|
-
#
|
21
|
-
# Color::GrayScale.from_percent(50)
|
22
|
-
def from_percent(g = 0, &block)
|
23
|
-
new(g, &block)
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
# Creates a greyscale colour object from percentages 0..100.
|
28
|
-
#
|
29
|
-
# Color::GrayScale.new(50)
|
30
|
-
def initialize(g = 0, radix = 100.0, &block) # :yields self:
|
31
|
-
@g = Color.normalize(g / radix)
|
32
|
-
block.call if block
|
33
|
-
end
|
34
|
-
|
35
|
-
# Coerces the other Color object to grayscale.
|
36
|
-
def coerce(other)
|
37
|
-
other.to_grayscale
|
38
|
-
end
|
39
|
-
|
40
|
-
# Present the colour as a DeviceGrey fill colour string for PDF. This will
|
41
|
-
# be removed from the default package in color-tools 2.0.
|
42
|
-
def pdf_fill
|
43
|
-
PDF_FORMAT_STR % [ @g, "g" ]
|
44
|
-
end
|
45
|
-
|
46
|
-
# Present the colour as a DeviceGrey stroke colour string for PDF. This
|
47
|
-
# will be removed from the default package in color-tools 2.0.
|
48
|
-
def pdf_stroke
|
49
|
-
PDF_FORMAT_STR % [ @g, "G" ]
|
50
|
-
end
|
51
|
-
|
52
|
-
def to_255
|
53
|
-
[(@g * 255).round, 255].min
|
54
|
-
end
|
55
|
-
private :to_255
|
56
|
-
|
57
|
-
# Present the colour as an HTML/CSS colour string.
|
58
|
-
def html
|
59
|
-
gs = "%02x" % to_255
|
60
|
-
"##{gs * 3}"
|
61
|
-
end
|
62
|
-
|
63
|
-
# Present the colour as an RGB HTML/CSS colour string (e.g., "rgb(0%, 50%,
|
64
|
-
# 100%)").
|
65
|
-
def css_rgb
|
66
|
-
"rgb(%3.2f%%, %3.2f%%, %3.2f%%)" % [ gray, gray, gray ]
|
67
|
-
end
|
68
|
-
|
69
|
-
# Present the colour as an RGBA (with alpha) HTML/CSS colour string (e.g.,
|
70
|
-
# "rgb(0%, 50%, 100%, 1)").
|
71
|
-
def css_rgba(alpha = 1)
|
72
|
-
"rgba(%3.2f%%, %3.2f%%, %3.2f%%, %1.2f)" % [ gray, gray, gray, alpha ]
|
73
|
-
end
|
74
|
-
|
75
|
-
# Present the colour as an HSL HTML/CSS colour string (e.g., "hsl(180,
|
76
|
-
# 25%, 35%)"). Note that this will perform a #to_hsl operation.
|
77
|
-
def css_hsl
|
78
|
-
to_hsl.css_hsl
|
79
|
-
end
|
80
|
-
|
81
|
-
# Present the colour as an HSLA (with alpha) HTML/CSS colour string (e.g.,
|
82
|
-
# "hsla(180, 25%, 35%, 1)"). Note that this will perform a #to_hsl
|
83
|
-
# operation.
|
84
|
-
def css_hsla
|
85
|
-
to_hsl.css_hsla
|
86
|
-
end
|
87
|
-
|
88
|
-
# Convert the greyscale colour to CMYK.
|
89
|
-
def to_cmyk
|
90
|
-
k = 1.0 - @g.to_f
|
91
|
-
Color::CMYK.from_fraction(0, 0, 0, k)
|
92
|
-
end
|
93
|
-
|
94
|
-
# Convert the greyscale colour to RGB.
|
95
|
-
def to_rgb(ignored = true)
|
96
|
-
Color::RGB.from_fraction(g, g, g)
|
97
|
-
end
|
98
|
-
|
99
|
-
# Reflexive conversion.
|
100
|
-
def to_grayscale
|
101
|
-
self
|
102
|
-
end
|
103
|
-
alias to_greyscale to_grayscale
|
104
|
-
|
105
|
-
# Lightens the greyscale colour by the stated percent.
|
106
|
-
def lighten_by(percent)
|
107
|
-
g = [@g + (@g * (percent / 100.0)), 1.0].min
|
108
|
-
Color::GrayScale.from_fraction(g)
|
109
|
-
end
|
110
|
-
|
111
|
-
# Darken the greyscale colour by the stated percent.
|
112
|
-
def darken_by(percent)
|
113
|
-
g = [@g - (@g * (percent / 100.0)), 0.0].max
|
114
|
-
Color::GrayScale.from_fraction(g)
|
115
|
-
end
|
116
|
-
|
117
|
-
# Returns the YIQ (NTSC) colour encoding of the greyscale value. This is
|
118
|
-
# an approximation, as the values for I and Q are calculated by treating
|
119
|
-
# the greyscale value as an RGB value. The Y (intensity or brightness)
|
120
|
-
# value is the same as the greyscale value.
|
121
|
-
def to_yiq
|
122
|
-
y = @g
|
123
|
-
i = (@g * 0.596) + (@g * -0.275) + (@g * -0.321)
|
124
|
-
q = (@g * 0.212) + (@g * -0.523) + (@g * 0.311)
|
125
|
-
Color::YIQ.from_fraction(y, i, q)
|
126
|
-
end
|
127
|
-
|
128
|
-
# Returns the HSL colour encoding of the greyscale value.
|
129
|
-
def to_hsl
|
130
|
-
Color::HSL.from_fraction(0, 0, @g)
|
131
|
-
end
|
132
|
-
|
133
|
-
# Returns the brightness value for this greyscale value; this is the
|
134
|
-
# greyscale value itself.
|
135
|
-
def brightness
|
136
|
-
@g
|
137
|
-
end
|
138
|
-
|
139
|
-
# Returns the grayscale value as a percentage of white (100% gray is
|
140
|
-
# white).
|
141
|
-
def gray
|
142
|
-
@g * 100.0
|
143
|
-
end
|
144
|
-
alias grey gray
|
145
|
-
# Returns the grayscale value as a fractional value of white in the range
|
146
|
-
# 0.0 .. 1.0.
|
147
|
-
def g
|
148
|
-
@g
|
149
|
-
end
|
150
|
-
# Sets the grayscale value as a percentage of white.
|
151
|
-
def gray=(gg)
|
152
|
-
@g = Color.normalize(gg / 100.0)
|
153
|
-
end
|
154
|
-
alias grey= gray= ;
|
155
|
-
# Returns the grayscale value as a fractional value of white in the range
|
156
|
-
# 0.0 .. 1.0.
|
157
|
-
def g=(gg)
|
158
|
-
@g = Color.normalize(gg)
|
159
|
-
end
|
160
|
-
|
161
|
-
# Adds another colour to the current colour. The other colour will be
|
162
|
-
# converted to grayscale before addition. This conversion depends upon a
|
163
|
-
# #to_grayscale method on the other colour.
|
164
|
-
#
|
165
|
-
# The addition is done using the grayscale accessor methods to ensure a
|
166
|
-
# valid colour in the result.
|
167
|
-
def +(other)
|
168
|
-
self.class.from_fraction(g + other.to_grayscale.g)
|
169
|
-
end
|
170
|
-
|
171
|
-
# Subtracts another colour to the current colour. The other colour will be
|
172
|
-
# converted to grayscale before subtraction. This conversion depends upon
|
173
|
-
# a #to_grayscale method on the other colour.
|
174
|
-
#
|
175
|
-
# The subtraction is done using the grayscale accessor methods to ensure a
|
176
|
-
# valid colour in the result.
|
177
|
-
def -(other)
|
178
|
-
self + (-other)
|
179
|
-
end
|
180
|
-
|
181
|
-
def inspect
|
182
|
-
"Gray [%.2f%%]" % [ gray ]
|
183
|
-
end
|
184
|
-
|
185
|
-
def to_a
|
186
|
-
[ g ]
|
187
|
-
end
|
188
|
-
|
189
|
-
def -@
|
190
|
-
gs = self.dup
|
191
|
-
gs.instance_variable_set(:@g, -g)
|
192
|
-
gs
|
193
|
-
end
|
194
|
-
end
|
195
|
-
|
196
|
-
# A synonym for Color::GrayScale.
|
197
|
-
Color::GreyScale = Color::GrayScale
|
@@ -1,240 +0,0 @@
|
|
1
|
-
# -*- ruby encoding: utf-8 -*-
|
2
|
-
|
3
|
-
# An HSL colour object. Internally, the hue (#h), saturation (#s), and
|
4
|
-
# luminosity/lightness (#l) values are dealt with as fractional values in
|
5
|
-
# the range 0..1.
|
6
|
-
class Color::HSL
|
7
|
-
include Color
|
8
|
-
|
9
|
-
class << self
|
10
|
-
# Creates an HSL colour object from fractional values 0..1.
|
11
|
-
def from_fraction(h = 0.0, s = 0.0, l = 0.0, &block)
|
12
|
-
new(h, s, l, 1.0, 1.0, &block)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
# Coerces the other Color object into HSL.
|
17
|
-
def coerce(other)
|
18
|
-
other.to_hsl
|
19
|
-
end
|
20
|
-
|
21
|
-
# Creates an HSL colour object from the standard values of degrees and
|
22
|
-
# percentages (e.g., 145 deg, 30%, 50%).
|
23
|
-
def initialize(h = 0, s = 0, l = 0, radix1 = 360.0, radix2 = 100.0, &block) # :yields self:
|
24
|
-
@h = Color.normalize(h / radix1)
|
25
|
-
@s = Color.normalize(s / radix2)
|
26
|
-
@l = Color.normalize(l / radix2)
|
27
|
-
block.call if block
|
28
|
-
end
|
29
|
-
|
30
|
-
# Present the colour as an HTML/CSS colour string.
|
31
|
-
def html
|
32
|
-
to_rgb.html
|
33
|
-
end
|
34
|
-
|
35
|
-
# Present the colour as an RGB HTML/CSS colour string (e.g., "rgb(0%, 50%,
|
36
|
-
# 100%)"). Note that this will perform a #to_rgb operation using the
|
37
|
-
# default conversion formula.
|
38
|
-
def css_rgb
|
39
|
-
to_rgb.css_rgb
|
40
|
-
end
|
41
|
-
|
42
|
-
# Present the colour as an RGBA (with alpha) HTML/CSS colour string (e.g.,
|
43
|
-
# "rgb(0%, 50%, 100%, 1)"). Note that this will perform a #to_rgb
|
44
|
-
# operation using the default conversion formula.
|
45
|
-
def css_rgba(alpha = 1)
|
46
|
-
to_rgb.css_rgba(alpha)
|
47
|
-
end
|
48
|
-
|
49
|
-
# Present the colour as an HSL HTML/CSS colour string (e.g., "hsl(180,
|
50
|
-
# 25%, 35%)").
|
51
|
-
def css_hsl
|
52
|
-
"hsl(%3.2f, %3.2f%%, %3.2f%%)" % [ hue, saturation, luminosity ]
|
53
|
-
end
|
54
|
-
|
55
|
-
# Present the colour as an HSLA (with alpha) HTML/CSS colour string (e.g.,
|
56
|
-
# "hsla(180, 25%, 35%, 1)").
|
57
|
-
def css_hsla
|
58
|
-
"hsla(%3.2f, %3.2f%%, %3.2f%%, %3.2f)" % [ hue, saturation, luminosity, 1 ]
|
59
|
-
end
|
60
|
-
|
61
|
-
# Converting from HSL to RGB. As with all colour conversions, this is
|
62
|
-
# approximate at best. The code here is adapted from fvd and van Dam,
|
63
|
-
# originally found at [1] (implemented similarly at [2]).
|
64
|
-
#
|
65
|
-
# This simplifies the calculations with the following assumptions:
|
66
|
-
# - Luminance values <= 0 always translate to Color::RGB::Black.
|
67
|
-
# - Luminance values >= 1 always translate to Color::RGB::White.
|
68
|
-
# - Saturation values <= 0 always translate to a shade of gray using
|
69
|
-
# luminance as a percentage of gray.
|
70
|
-
#
|
71
|
-
# [1] http://bobpowell.net/RGBHSB.aspx
|
72
|
-
# [2] http://support.microsoft.com/kb/29240
|
73
|
-
def to_rgb(*)
|
74
|
-
if Color.near_zero_or_less?(l)
|
75
|
-
Color::RGB::Black
|
76
|
-
elsif Color.near_one_or_more?(l)
|
77
|
-
Color::RGB::White
|
78
|
-
elsif Color.near_zero?(s)
|
79
|
-
Color::RGB.from_grayscale_fraction(l)
|
80
|
-
else
|
81
|
-
# Only needed for Ruby 1.8. For Ruby 1.9+, we can do:
|
82
|
-
# Color::RGB.new(*compute_fvd_rgb, 1.0)
|
83
|
-
Color::RGB.new(*(compute_fvd_rgb + [ 1.0 ]))
|
84
|
-
end
|
85
|
-
end
|
86
|
-
|
87
|
-
# Converts to RGB then YIQ.
|
88
|
-
def to_yiq
|
89
|
-
to_rgb.to_yiq
|
90
|
-
end
|
91
|
-
|
92
|
-
# Converts to RGB then CMYK.
|
93
|
-
def to_cmyk
|
94
|
-
to_rgb.to_cmyk
|
95
|
-
end
|
96
|
-
|
97
|
-
# Returns the luminosity (#l) of the colour.
|
98
|
-
def brightness
|
99
|
-
@l
|
100
|
-
end
|
101
|
-
def to_greyscale
|
102
|
-
Color::GrayScale.from_fraction(@l)
|
103
|
-
end
|
104
|
-
alias to_grayscale to_greyscale
|
105
|
-
|
106
|
-
# Returns the hue of the colour in degrees.
|
107
|
-
def hue
|
108
|
-
@h * 360.0
|
109
|
-
end
|
110
|
-
# Returns the hue of the colour in the range 0.0 .. 1.0.
|
111
|
-
def h
|
112
|
-
@h
|
113
|
-
end
|
114
|
-
# Sets the hue of the colour in degrees. Colour is perceived as a wheel,
|
115
|
-
# so values should be set properly even with negative degree values.
|
116
|
-
def hue=(hh)
|
117
|
-
hh = hh / 360.0
|
118
|
-
|
119
|
-
hh += 1.0 if hh < 0.0
|
120
|
-
hh -= 1.0 if hh > 1.0
|
121
|
-
|
122
|
-
@h = Color.normalize(hh)
|
123
|
-
end
|
124
|
-
# Sets the hue of the colour in the range 0.0 .. 1.0.
|
125
|
-
def h=(hh)
|
126
|
-
@h = Color.normalize(hh)
|
127
|
-
end
|
128
|
-
# Returns the percentage of saturation of the colour.
|
129
|
-
def saturation
|
130
|
-
@s * 100.0
|
131
|
-
end
|
132
|
-
# Returns the saturation of the colour in the range 0.0 .. 1.0.
|
133
|
-
def s
|
134
|
-
@s
|
135
|
-
end
|
136
|
-
# Sets the percentage of saturation of the colour.
|
137
|
-
def saturation=(ss)
|
138
|
-
@s = Color.normalize(ss / 100.0)
|
139
|
-
end
|
140
|
-
# Sets the saturation of the colour in the ragne 0.0 .. 1.0.
|
141
|
-
def s=(ss)
|
142
|
-
@s = Color.normalize(ss)
|
143
|
-
end
|
144
|
-
|
145
|
-
# Returns the percentage of luminosity of the colour.
|
146
|
-
def luminosity
|
147
|
-
@l * 100.0
|
148
|
-
end
|
149
|
-
alias lightness luminosity
|
150
|
-
# Returns the luminosity of the colour in the range 0.0 .. 1.0.
|
151
|
-
def l
|
152
|
-
@l
|
153
|
-
end
|
154
|
-
# Sets the percentage of luminosity of the colour.
|
155
|
-
def luminosity=(ll)
|
156
|
-
@l = Color.normalize(ll / 100.0)
|
157
|
-
end
|
158
|
-
alias lightness= luminosity= ;
|
159
|
-
# Sets the luminosity of the colour in the ragne 0.0 .. 1.0.
|
160
|
-
def l=(ll)
|
161
|
-
@l = Color.normalize(ll)
|
162
|
-
end
|
163
|
-
|
164
|
-
def to_hsl
|
165
|
-
self
|
166
|
-
end
|
167
|
-
|
168
|
-
def inspect
|
169
|
-
"HSL [%.2f deg, %.2f%%, %.2f%%]" % [ hue, saturation, luminosity ]
|
170
|
-
end
|
171
|
-
|
172
|
-
# Mix the mask colour (which will be converted to an HSL colour) with the
|
173
|
-
# current colour at the stated mix percentage as a decimal value.
|
174
|
-
#
|
175
|
-
# NOTE:: This differs from Color::RGB#mix_with.
|
176
|
-
def mix_with(color, mix_percent = 0.5)
|
177
|
-
v = to_a.zip(coerce(color).to_a).map { |(x, y)|
|
178
|
-
((y - x) * mix_percent) + x
|
179
|
-
}
|
180
|
-
self.class.from_fraction(*v)
|
181
|
-
end
|
182
|
-
|
183
|
-
def to_a
|
184
|
-
[ h, s, l ]
|
185
|
-
end
|
186
|
-
|
187
|
-
private
|
188
|
-
|
189
|
-
# This algorithm calculates based on a mixture of the saturation and
|
190
|
-
# luminance, and then takes the RGB values from the hue + 1/3, hue, and
|
191
|
-
# hue - 1/3 positions in a circular representation of colour divided into
|
192
|
-
# four parts (confusing, I know, but it's the way that it works). See
|
193
|
-
# #hue_to_rgb for more information.
|
194
|
-
def compute_fvd_rgb
|
195
|
-
t1, t2 = fvd_mix_sat_lum
|
196
|
-
[ h + (1 / 3.0), h, h - (1 / 3.0) ].map { |v|
|
197
|
-
hue_to_rgb(rotate_hue(v), t1, t2)
|
198
|
-
}
|
199
|
-
end
|
200
|
-
|
201
|
-
# Mix saturation and luminance for use in hue_to_rgb. The base value is
|
202
|
-
# different depending on whether luminance is <= 50% or > 50%.
|
203
|
-
def fvd_mix_sat_lum
|
204
|
-
t = if Color.near_zero_or_less?(l - 0.5)
|
205
|
-
l * (1.0 + s.to_f)
|
206
|
-
else
|
207
|
-
l + s - (l * s.to_f)
|
208
|
-
end
|
209
|
-
[ 2.0 * l - t, t ]
|
210
|
-
end
|
211
|
-
|
212
|
-
# In HSL, hues are referenced as degrees in a colour circle. The flow
|
213
|
-
# itself is endless; therefore, we can rotate around. The only thing our
|
214
|
-
# implementation restricts is that you should not be > 1.0.
|
215
|
-
def rotate_hue(h)
|
216
|
-
h += 1.0 if Color.near_zero_or_less?(h)
|
217
|
-
h -= 1.0 if Color.near_one_or_more?(h)
|
218
|
-
h
|
219
|
-
end
|
220
|
-
|
221
|
-
# We calculate the interaction of the saturation/luminance mix (calculated
|
222
|
-
# earlier) based on the position of the hue in the circular colour space
|
223
|
-
# divided into quadrants. Our hue range is [0, 1), not [0, 360º).
|
224
|
-
#
|
225
|
-
# - The first quadrant covers the first 60º [0, 60º].
|
226
|
-
# - The second quadrant covers the next 120º (60º, 180º].
|
227
|
-
# - The third quadrant covers the next 60º (180º, 240º].
|
228
|
-
# - The fourth quadrant covers the final 120º (240º, 360º).
|
229
|
-
def hue_to_rgb(h, t1, t2)
|
230
|
-
if Color.near_zero_or_less?((6.0 * h) - 1.0)
|
231
|
-
t1 + ((t2 - t1) * h * 6.0)
|
232
|
-
elsif Color.near_zero_or_less?((2.0 * h) - 1.0)
|
233
|
-
t2
|
234
|
-
elsif Color.near_zero_or_less?((3.0 * h) - 2.0)
|
235
|
-
t1 + (t2 - t1) * ((2 / 3.0) - h) * 6.0
|
236
|
-
else
|
237
|
-
t1
|
238
|
-
end
|
239
|
-
end
|
240
|
-
end
|
@@ -1,260 +0,0 @@
|
|
1
|
-
require 'color/palette'
|
2
|
-
|
3
|
-
# A class that can read an Adobe Color palette file (used for Photoshop
|
4
|
-
# swatches) and provide a Hash-like interface to the contents. Not all
|
5
|
-
# colour formats in ACO files are supported. Based largely off the
|
6
|
-
# information found by Larry Tesler[http://www.nomodes.com/aco.html].
|
7
|
-
#
|
8
|
-
# Not all Adobe Color files have named colours; all named entries are
|
9
|
-
# returned as an array.
|
10
|
-
#
|
11
|
-
# pal = Color::Palette::AdobeColor.from_file(my_aco_palette)
|
12
|
-
# pal[0] => Color::RGB<...>
|
13
|
-
# pal["white"] => [ Color::RGB<...> ]
|
14
|
-
# pal["unknown"] => [ Color::RGB<...>, Color::RGB<...>, ... ]
|
15
|
-
#
|
16
|
-
# AdobeColor palettes are always indexable by insertion order (an integer
|
17
|
-
# key).
|
18
|
-
#
|
19
|
-
# Version 2 palettes use UTF-16 colour names.
|
20
|
-
class Color::Palette::AdobeColor
|
21
|
-
include Enumerable
|
22
|
-
|
23
|
-
class << self
|
24
|
-
# Create an AdobeColor palette object from the named file.
|
25
|
-
def from_file(filename)
|
26
|
-
File.open(filename, "rb") { |io| Color::Palette::AdobeColor.from_io(io) }
|
27
|
-
end
|
28
|
-
|
29
|
-
# Create an AdobeColor palette object from the provided IO.
|
30
|
-
def from_io(io)
|
31
|
-
Color::Palette::AdobeColor.new(io.read)
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
# Returns statistics about the nature of the colours loaded.
|
36
|
-
attr_reader :statistics
|
37
|
-
# Contains the "lost" colours in the palette. These colours could not be
|
38
|
-
# properly loaded (e.g., L*a*b* is not supported by Color, so it is
|
39
|
-
# "lost") or are not understood by the algorithms.
|
40
|
-
attr_reader :lost
|
41
|
-
|
42
|
-
# Use this to convert the unsigned word to the signed word, if necessary.
|
43
|
-
UwToSw = proc { |n| (n >= (2 ** 16)) ? n - (2 ** 32) : n } #:nodoc:
|
44
|
-
|
45
|
-
# Create a new AdobeColor palette from the palette file as a string.
|
46
|
-
def initialize(palette)
|
47
|
-
@colors = []
|
48
|
-
@names = {}
|
49
|
-
@statistics = Hash.new(0)
|
50
|
-
@lost = []
|
51
|
-
@order = []
|
52
|
-
@version = nil
|
53
|
-
|
54
|
-
class << palette
|
55
|
-
def readwords(count = 1)
|
56
|
-
@offset ||= 0
|
57
|
-
raise IndexError if @offset >= self.size
|
58
|
-
val = self[@offset, count * 2]
|
59
|
-
raise IndexError if val.nil? or val.size < (count * 2)
|
60
|
-
val = val.unpack("n" * count)
|
61
|
-
@offset += count * 2
|
62
|
-
val
|
63
|
-
end
|
64
|
-
|
65
|
-
def readutf16(count = 1)
|
66
|
-
@offset ||= 0
|
67
|
-
raise IndexError if @offset >= self.size
|
68
|
-
val = self[@offset, count * 2]
|
69
|
-
raise IndexError if val.nil? or val.size < (count * 2)
|
70
|
-
@offset += count * 2
|
71
|
-
val
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
|
-
@version, count = palette.readwords 2
|
76
|
-
|
77
|
-
raise "Unknown AdobeColor palette version #@version." unless @version.between?(1, 2)
|
78
|
-
|
79
|
-
count.times do
|
80
|
-
space, w, x, y, z = palette.readwords 5
|
81
|
-
name = nil
|
82
|
-
if @version == 2
|
83
|
-
raise IndexError unless palette.readwords == [ 0 ]
|
84
|
-
len = palette.readwords
|
85
|
-
name = palette.readutf16(len[0] - 1)
|
86
|
-
raise IndexError unless palette.readwords == [ 0 ]
|
87
|
-
end
|
88
|
-
|
89
|
-
color = case space
|
90
|
-
when 0 then # RGB
|
91
|
-
@statistics[:rgb] += 1
|
92
|
-
|
93
|
-
Color::RGB.new(w / 256, x / 256, y / 256)
|
94
|
-
when 1 then # HS[BV] -- Convert to RGB
|
95
|
-
@statistics[:hsb] += 1
|
96
|
-
|
97
|
-
h = w / 65535.0
|
98
|
-
s = x / 65535.0
|
99
|
-
v = y / 65535.0
|
100
|
-
|
101
|
-
if defined?(Color::HSB)
|
102
|
-
Color::HSB.from_fraction(h, s, v)
|
103
|
-
else
|
104
|
-
@statistics[:converted] += 1
|
105
|
-
if Color.near_zero_or_less?(s)
|
106
|
-
Color::RGB.from_fraction(v, v, v)
|
107
|
-
else
|
108
|
-
if Color.near_one_or_more?(h)
|
109
|
-
vh = 0
|
110
|
-
else
|
111
|
-
vh = h * 6.0
|
112
|
-
end
|
113
|
-
|
114
|
-
vi = vh.floor
|
115
|
-
v1 = v.to_f * (1 - s.to_f)
|
116
|
-
v2 = v.to_f * (1 - s.to_f * (vh - vi))
|
117
|
-
v3 = v.to_f * (1 - s.to_f * (1 - (vh - vi)))
|
118
|
-
|
119
|
-
case vi
|
120
|
-
when 0 then Color::RGB.from_fraction(v, v3, v1)
|
121
|
-
when 1 then Color::RGB.from_fraction(v2, v, v1)
|
122
|
-
when 2 then Color::RGB.from_fraction(v1, v, v3)
|
123
|
-
when 3 then Color::RGB.from_fraction(v1, v2, v)
|
124
|
-
when 4 then Color::RGB.from_fraction(v3, v1, v)
|
125
|
-
else Color::RGB.from_fraction(v, v1, v2)
|
126
|
-
end
|
127
|
-
end
|
128
|
-
end
|
129
|
-
when 2 then # CMYK
|
130
|
-
@statistics[:cmyk] += 1
|
131
|
-
Color::CMYK.from_percent(100 - (w / 655.35),
|
132
|
-
100 - (x / 655.35),
|
133
|
-
100 - (y / 655.35),
|
134
|
-
100 - (z / 655.35))
|
135
|
-
when 7 then # L*a*b*
|
136
|
-
@statistics[:lab] += 1
|
137
|
-
|
138
|
-
l = [w, 10000].min / 100.0
|
139
|
-
a = [[-12800, UwToSw[x]].max, 12700].min / 100.0
|
140
|
-
b = [[-12800, UwToSw[x]].max, 12700].min / 100.0
|
141
|
-
|
142
|
-
if defined? Color::Lab
|
143
|
-
Color::Lab.new(l, a, b)
|
144
|
-
else
|
145
|
-
[ space, w, x, y, z ]
|
146
|
-
end
|
147
|
-
when 8 then # Grayscale
|
148
|
-
@statistics[:gray] += 1
|
149
|
-
|
150
|
-
g = [w, 10000].min / 100.0
|
151
|
-
Color::GrayScale.new(g)
|
152
|
-
when 9 then # Wide CMYK
|
153
|
-
@statistics[:wcmyk] += 1
|
154
|
-
|
155
|
-
c = [w, 10000].min / 100.0
|
156
|
-
m = [x, 10000].min / 100.0
|
157
|
-
y = [y, 10000].min / 100.0
|
158
|
-
k = [z, 10000].min / 100.0
|
159
|
-
Color::CMYK.from_percent(c, m, y, k)
|
160
|
-
else
|
161
|
-
@statistics[space] += 1
|
162
|
-
[ space, w, x, y, z ]
|
163
|
-
end
|
164
|
-
|
165
|
-
@order << [ color, name ]
|
166
|
-
|
167
|
-
if color.kind_of? Array
|
168
|
-
@lost << color
|
169
|
-
else
|
170
|
-
@colors << color
|
171
|
-
|
172
|
-
if name
|
173
|
-
@names[name] ||= []
|
174
|
-
@names[name] << color
|
175
|
-
end
|
176
|
-
end
|
177
|
-
end
|
178
|
-
end
|
179
|
-
|
180
|
-
# Provides the colour or colours at the provided selectors.
|
181
|
-
def values_at(*selectors)
|
182
|
-
@colors.values_at(*selectors)
|
183
|
-
end
|
184
|
-
|
185
|
-
# If a Numeric +key+ is provided, the single colour value at that position
|
186
|
-
# will be returned. If a String +key+ is provided, the colour set (an
|
187
|
-
# array) for that colour name will be returned.
|
188
|
-
def [](key)
|
189
|
-
if key.kind_of?(Numeric)
|
190
|
-
@colors[key]
|
191
|
-
else
|
192
|
-
@names[key]
|
193
|
-
end
|
194
|
-
end
|
195
|
-
|
196
|
-
# Loops through each colour.
|
197
|
-
def each
|
198
|
-
@colors.each { |el| yield el }
|
199
|
-
end
|
200
|
-
|
201
|
-
# Loops through each named colour set.
|
202
|
-
def each_name #:yields color_name, color_set:#
|
203
|
-
@names.each { |color_name, color_set| yield color_name, color_set }
|
204
|
-
end
|
205
|
-
|
206
|
-
def size
|
207
|
-
@colors.size
|
208
|
-
end
|
209
|
-
|
210
|
-
attr_reader :version
|
211
|
-
|
212
|
-
def to_aco(version = @version) #:nodoc:
|
213
|
-
res = ""
|
214
|
-
|
215
|
-
res << [ version, @order.size ].pack("nn")
|
216
|
-
|
217
|
-
@order.each do |cnpair|
|
218
|
-
color, name = *cnpair
|
219
|
-
|
220
|
-
# Note: HSB and CMYK formats are lost by the conversions performed on
|
221
|
-
# import. They are turned into RGB and WCMYK, respectively.
|
222
|
-
|
223
|
-
cstr = case color
|
224
|
-
when Array
|
225
|
-
color
|
226
|
-
when Color::RGB
|
227
|
-
r = [(color.red * 256).round, 65535].min
|
228
|
-
g = [(color.green * 256).round, 65535].min
|
229
|
-
b = [(color.blue * 256).round, 65535].min
|
230
|
-
[ 0, r, g, b, 0 ]
|
231
|
-
when Color::GrayScale
|
232
|
-
g = [(color.gray * 100).round, 10000].min
|
233
|
-
[ 8, g, 0, 0, 0 ]
|
234
|
-
when Color::CMYK
|
235
|
-
c = [(color.cyan * 100).round, 10000].min
|
236
|
-
m = [(color.magenta * 100).round, 10000].min
|
237
|
-
y = [(color.yellow * 100).round, 10000].min
|
238
|
-
k = [(color.black * 100).round, 10000].min
|
239
|
-
[ 9, c, m, y, k ]
|
240
|
-
end
|
241
|
-
cstr = cstr.pack("nnnnn")
|
242
|
-
|
243
|
-
nstr = ""
|
244
|
-
|
245
|
-
if version == 2
|
246
|
-
if (name.size / 2 * 2) == name.size # only where s[0] == byte!
|
247
|
-
nstr << [ 0, (name.size / 2) + 1 ].pack("nn")
|
248
|
-
nstr << name
|
249
|
-
nstr << [ 0 ].pack("n")
|
250
|
-
else
|
251
|
-
nstr << [ 0, 1, 0 ].pack("nnn")
|
252
|
-
end
|
253
|
-
end
|
254
|
-
|
255
|
-
res << cstr << nstr
|
256
|
-
end
|
257
|
-
|
258
|
-
res
|
259
|
-
end
|
260
|
-
end
|