This commit is contained in:
xdrm-brackets 2016-11-04 19:14:39 +01:00
parent 39af644026
commit 01fd3ccb3b
11 changed files with 122 additions and 94 deletions

View File

@ -36,9 +36,12 @@ body {
display: block;
position: relative;
width: calc( 500px - 2*2px - 2*10px);
height: calc( 100vh - 2*14px - 500px - 3*20px);
margin: 10px 20px;
padding: 10px;
border: 2px solid #555;
overflow-x: hidden;
overflow-y: auto;
}
#log span {
@ -61,4 +64,4 @@ body {
text-shadow: none !important;
}
/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAibGF5b3V0LmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vbGF5b3V0LnNjc3MiCgldLAoJInNvdXJjZXNDb250ZW50IjogWwoJCSIkaW1hZ2Utc2l6ZTogNTAwcHg7XG5cblxuYm9keXtcblx0YmFja2dyb3VuZC1jb2xvcjogI2NjYztcblxuXHRmb250LWZhbWlseTogJ0NvdXJpZXInO1xuXHRmb250LXNpemU6IDEycHg7XG59XG5cbiNsb2FkZXJ7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHdpZHRoOiA1MDBweDtcblx0aGVpZ2h0OiA1MDBweDtcblx0bWFyZ2luLWxlZnQ6IDIwcHg7XG5cdGJhY2tncm91bmQ6IHVybCgnLi4vLi4vc3JjL2xvYWRlci5zdmcnKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcblx0YmFja2dyb3VuZC1zaXplOiAwIDA7XG5cdHotaW5kZXg6IDE7XG59XG5cbiNsb2FkZXIuYWN0aXZle1xuXHRiYWNrZ3JvdW5kLXNpemU6IDRlbSA0ZW07XG59XG5cbiNpbWFnZS1sb2FkZXJ7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbiNjYW52YXN7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0d2lkdGg6IGNhbGMoICN7JGltYWdlLXNpemV9IC0gMioycHggKTtcblx0XHRoZWlnaHQ6IGNhbGMoICN7JGltYWdlLXNpemV9IC0gMioycHggKTtcblxuXHRtYXJnaW46IDIwcHg7XG5cblx0Ym9yZGVyOiAycHggc29saWQgIzAwMDtcbn1cblxuXG4jbG9ne1xuXHRkaXNwbGF5OiBibG9jaztcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHdpZHRoOiBjYWxjKCAjeyRpbWFnZS1zaXplfSAtIDIqMnB4IC0gMioxMHB4ICk7XG5cblx0bWFyZ2luOiAxMHB4IDIwcHg7XG5cdHBhZGRpbmc6IDEwcHg7XG5cblx0Ym9yZGVyOiAycHggc29saWQgIzU1NTtcblxuXHRzcGFue1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cbn1cblxuXG4vLyBBRERFRCBUTyBEQVQuR1VJXG4uZGcuYSAuc2F2ZS1yb3d7IGJhY2tncm91bmQtY29sb3I6ICMxYTFhMWEgIWltcG9ydGFudDsgfVxuXG4uZGcgbGkuc2F2ZS1yb3cgPiBzZWxlY3R7XG5cdGJhY2tncm91bmQtY29sb3I6ICM3ZDdkN2QgIWltcG9ydGFudDtcblx0Y29sb3I6ICNmZmYgIWltcG9ydGFudDtcblx0Ym9yZGVyOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5kZyBsaS5zYXZlLXJvdyA+IHNwYW57XG5cdGJhY2tncm91bmQtY29sb3I6ICMzMDMwMzAgIWltcG9ydGFudDtcblx0Ym94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuXHR0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuIgoJXSwKCSJtYXBwaW5ncyI6ICJBQUdBLEFBQUEsSUFBSSxDQUFBO0VBQ0gsZ0JBQWdCLEVBQUUsSUFBSztFQUV2QixXQUFXLEVBQUUsU0FBVTtFQUN2QixTQUFTLEVBQUUsSUFBSztDQUNoQjs7QUFFRCxBQUFBLE9BQU8sQ0FBQTtFQUNOLE9BQU8sRUFBRSxLQUFNO0VBQ2YsUUFBUSxFQUFFLFFBQVM7RUFDbkIsS0FBSyxFQUFFLEtBQU07RUFDYixNQUFNLEVBQUUsS0FBTTtFQUNkLFdBQVcsRUFBRSxJQUFLO0VBQ2xCLFVBQVUsRUFBRSwyQkFBRyxDQUF5QixNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVM7RUFDL0QsZUFBZSxFQUFFLEdBQUk7RUFDckIsT0FBTyxFQUFFLENBQUU7Q0FDWDs7QUFFRCxBQUFPLE9BQUEsQUFBQSxPQUFPLENBQUE7RUFDYixlQUFlLEVBQUUsT0FBUTtDQUN6Qjs7QUFFRCxBQUFBLGFBQWEsQ0FBQTtFQUNaLE9BQU8sRUFBRSxJQUFLO0NBQ2Q7O0FBRUQsQUFBQSxPQUFPLENBQUE7RUFDTixPQUFPLEVBQUUsS0FBTTtFQUNmLFFBQVEsRUFBRSxRQUFTO0VBQ2xCLEtBQUssRUFBRSxvQkFBSTtFQUNYLE1BQU0sRUFBRSxvQkFBSTtFQUViLE1BQU0sRUFBRSxJQUFLO0VBRWIsTUFBTSxFQUFFLGNBQWU7Q0FDdkI7O0FBR0QsQUFBQSxJQUFJLENBQUE7RUFDSCxPQUFPLEVBQUUsS0FBTTtFQUNmLFFBQVEsRUFBRSxRQUFTO0VBQ2xCLEtBQUssRUFBRSw2QkFBSTtFQUVaLE1BQU0sRUFBRSxTQUFVO0VBQ2xCLE9BQU8sRUFBRSxJQUFLO0VBRWQsTUFBTSxFQUFFLGNBQWU7Q0FNdkI7O0FBZEQsQUFVQyxJQVZHLENBVUgsSUFBSSxDQUFBO0VBQ0gsT0FBTyxFQUFFLEtBQU07Q0FDZjs7QUFNRixBQUFNLEdBQUgsQUFBQSxFQUFFLENBQUMsU0FBUyxDQUFBO0VBQUUsZ0JBQWdCLEVBQUUsa0JBQW1CO0NBQUk7O0FBRTFELEFBQWtCLEdBQWYsQ0FBQyxFQUFFLEFBQUEsU0FBUyxHQUFHLE1BQU0sQ0FBQTtFQUN2QixnQkFBZ0IsRUFBRSxrQkFBbUI7RUFDckMsS0FBSyxFQUFFLGVBQWdCO0VBQ3ZCLE1BQU0sRUFBRSxZQUFhO0NBQ3JCOztBQUVELEFBQWtCLEdBQWYsQ0FBQyxFQUFFLEFBQUEsU0FBUyxHQUFHLElBQUksQ0FBQTtFQUNyQixnQkFBZ0IsRUFBRSxrQkFBbUI7RUFDckMsVUFBVSxFQUFFLGVBQWdCO0VBQzVCLFdBQVcsRUFBRSxlQUFnQjtDQUM3QiIsCgkibmFtZXMiOiBbXQp9 */
/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAibGF5b3V0LmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vbGF5b3V0LnNjc3MiCgldLAoJInNvdXJjZXNDb250ZW50IjogWwoJCSIkaW1hZ2Utc2l6ZTogNTAwcHg7XG5cblxuYm9keXtcblx0YmFja2dyb3VuZC1jb2xvcjogI2NjYztcblxuXHRmb250LWZhbWlseTogJ0NvdXJpZXInO1xuXHRmb250LXNpemU6IDEycHg7XG59XG5cbiNsb2FkZXJ7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHdpZHRoOiA1MDBweDtcblx0aGVpZ2h0OiA1MDBweDtcblx0bWFyZ2luLWxlZnQ6IDIwcHg7XG5cdGJhY2tncm91bmQ6IHVybCgnLi4vLi4vc3JjL2xvYWRlci5zdmcnKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcblx0YmFja2dyb3VuZC1zaXplOiAwIDA7XG5cdHotaW5kZXg6IDE7XG59XG5cbiNsb2FkZXIuYWN0aXZle1xuXHRiYWNrZ3JvdW5kLXNpemU6IDRlbSA0ZW07XG59XG5cbiNpbWFnZS1sb2FkZXJ7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbiNjYW52YXN7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0d2lkdGg6IGNhbGMoICN7JGltYWdlLXNpemV9IC0gMioycHggKTtcblx0XHRoZWlnaHQ6IGNhbGMoICN7JGltYWdlLXNpemV9IC0gMioycHggKTtcblxuXHRtYXJnaW46IDIwcHg7XG5cblx0Ym9yZGVyOiAycHggc29saWQgIzAwMDtcbn1cblxuXG4jbG9ne1xuXHRkaXNwbGF5OiBibG9jaztcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHdpZHRoOiBjYWxjKCAjeyRpbWFnZS1zaXplfSAtIDIqMnB4IC0gMioxMHB4ICk7XG5cdFx0aGVpZ2h0OiBjYWxjKCAxMDB2aCAtIDIqMTRweCAtIDUwMHB4IC0gMyoyMHB4KTtcblxuXHRtYXJnaW46IDEwcHggMjBweDtcblx0cGFkZGluZzogMTBweDtcblxuXHRib3JkZXI6IDJweCBzb2xpZCAjNTU1O1xuXG5cdG92ZXJmbG93LXg6IGhpZGRlbjtcblx0b3ZlcmZsb3cteTogYXV0bztcblxuXHRzcGFue1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cbn1cblxuXG4vLyBBRERFRCBUTyBEQVQuR1VJXG4uZGcuYSAuc2F2ZS1yb3d7IGJhY2tncm91bmQtY29sb3I6ICMxYTFhMWEgIWltcG9ydGFudDsgfVxuXG4uZGcgbGkuc2F2ZS1yb3cgPiBzZWxlY3R7XG5cdGJhY2tncm91bmQtY29sb3I6ICM3ZDdkN2QgIWltcG9ydGFudDtcblx0Y29sb3I6ICNmZmYgIWltcG9ydGFudDtcblx0Ym9yZGVyOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5kZyBsaS5zYXZlLXJvdyA+IHNwYW57XG5cdGJhY2tncm91bmQtY29sb3I6ICMzMDMwMzAgIWltcG9ydGFudDtcblx0Ym94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuXHR0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuIgoJXSwKCSJtYXBwaW5ncyI6ICJBQUdBLEFBQUEsSUFBSSxDQUFBO0VBQ0gsZ0JBQWdCLEVBQUUsSUFBSztFQUV2QixXQUFXLEVBQUUsU0FBVTtFQUN2QixTQUFTLEVBQUUsSUFBSztDQUNoQjs7QUFFRCxBQUFBLE9BQU8sQ0FBQTtFQUNOLE9BQU8sRUFBRSxLQUFNO0VBQ2YsUUFBUSxFQUFFLFFBQVM7RUFDbkIsS0FBSyxFQUFFLEtBQU07RUFDYixNQUFNLEVBQUUsS0FBTTtFQUNkLFdBQVcsRUFBRSxJQUFLO0VBQ2xCLFVBQVUsRUFBRSwyQkFBRyxDQUF5QixNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVM7RUFDL0QsZUFBZSxFQUFFLEdBQUk7RUFDckIsT0FBTyxFQUFFLENBQUU7Q0FDWDs7QUFFRCxBQUFPLE9BQUEsQUFBQSxPQUFPLENBQUE7RUFDYixlQUFlLEVBQUUsT0FBUTtDQUN6Qjs7QUFFRCxBQUFBLGFBQWEsQ0FBQTtFQUNaLE9BQU8sRUFBRSxJQUFLO0NBQ2Q7O0FBRUQsQUFBQSxPQUFPLENBQUE7RUFDTixPQUFPLEVBQUUsS0FBTTtFQUNmLFFBQVEsRUFBRSxRQUFTO0VBQ2xCLEtBQUssRUFBRSxvQkFBSTtFQUNYLE1BQU0sRUFBRSxvQkFBSTtFQUViLE1BQU0sRUFBRSxJQUFLO0VBRWIsTUFBTSxFQUFFLGNBQWU7Q0FDdkI7O0FBR0QsQUFBQSxJQUFJLENBQUE7RUFDSCxPQUFPLEVBQUUsS0FBTTtFQUNmLFFBQVEsRUFBRSxRQUFTO0VBQ2xCLEtBQUssRUFBRSw2QkFBSTtFQUNYLE1BQU0sRUFBRSxzQ0FBSTtFQUViLE1BQU0sRUFBRSxTQUFVO0VBQ2xCLE9BQU8sRUFBRSxJQUFLO0VBRWQsTUFBTSxFQUFFLGNBQWU7RUFFdkIsVUFBVSxFQUFFLE1BQU87RUFDbkIsVUFBVSxFQUFFLElBQUs7Q0FNakI7O0FBbEJELEFBY0MsSUFkRyxDQWNILElBQUksQ0FBQTtFQUNILE9BQU8sRUFBRSxLQUFNO0NBQ2Y7O0FBTUYsQUFBTSxHQUFILEFBQUEsRUFBRSxDQUFDLFNBQVMsQ0FBQTtFQUFFLGdCQUFnQixFQUFFLGtCQUFtQjtDQUFJOztBQUUxRCxBQUFrQixHQUFmLENBQUMsRUFBRSxBQUFBLFNBQVMsR0FBRyxNQUFNLENBQUE7RUFDdkIsZ0JBQWdCLEVBQUUsa0JBQW1CO0VBQ3JDLEtBQUssRUFBRSxlQUFnQjtFQUN2QixNQUFNLEVBQUUsWUFBYTtDQUNyQjs7QUFFRCxBQUFrQixHQUFmLENBQUMsRUFBRSxBQUFBLFNBQVMsR0FBRyxJQUFJLENBQUE7RUFDckIsZ0JBQWdCLEVBQUUsa0JBQW1CO0VBQ3JDLFVBQVUsRUFBRSxlQUFnQjtFQUM1QixXQUFXLEVBQUUsZUFBZ0I7Q0FDN0IiLAoJIm5hbWVzIjogW10KfQ== */

View File

@ -5,8 +5,8 @@
"../layout.scss"
],
"sourcesContent": [
"$image-size: 500px;\n\n\nbody{\n\tbackground-color: #ccc;\n\n\tfont-family: 'Courier';\n\tfont-size: 12px;\n}\n\n#loader{\n\tdisplay: block;\n\tposition: absolute;\n\twidth: 500px;\n\theight: 500px;\n\tmargin-left: 20px;\n\tbackground: url('../../src/loader.svg') center center no-repeat;\n\tbackground-size: 0 0;\n\tz-index: 1;\n}\n\n#loader.active{\n\tbackground-size: 4em 4em;\n}\n\n#image-loader{\n\tdisplay: none;\n}\n\n#canvas{\n\tdisplay: block;\n\tposition: relative;\n\t\twidth: calc( #{$image-size} - 2*2px );\n\t\theight: calc( #{$image-size} - 2*2px );\n\n\tmargin: 20px;\n\n\tborder: 2px solid #000;\n}\n\n\n#log{\n\tdisplay: block;\n\tposition: relative;\n\t\twidth: calc( #{$image-size} - 2*2px - 2*10px );\n\n\tmargin: 10px 20px;\n\tpadding: 10px;\n\n\tborder: 2px solid #555;\n\n\tspan{\n\t\tdisplay: block;\n\t}\n\n}\n\n\n// ADDED TO DAT.GUI\n.dg.a .save-row{ background-color: #1a1a1a !important; }\n\n.dg li.save-row > select{\n\tbackground-color: #7d7d7d !important;\n\tcolor: #fff !important;\n\tborder: 0 !important;\n}\n\n.dg li.save-row > span{\n\tbackground-color: #303030 !important;\n\tbox-shadow: none !important;\n\ttext-shadow: none !important;\n}\n"
"$image-size: 500px;\n\n\nbody{\n\tbackground-color: #ccc;\n\n\tfont-family: 'Courier';\n\tfont-size: 12px;\n}\n\n#loader{\n\tdisplay: block;\n\tposition: absolute;\n\twidth: 500px;\n\theight: 500px;\n\tmargin-left: 20px;\n\tbackground: url('../../src/loader.svg') center center no-repeat;\n\tbackground-size: 0 0;\n\tz-index: 1;\n}\n\n#loader.active{\n\tbackground-size: 4em 4em;\n}\n\n#image-loader{\n\tdisplay: none;\n}\n\n#canvas{\n\tdisplay: block;\n\tposition: relative;\n\t\twidth: calc( #{$image-size} - 2*2px );\n\t\theight: calc( #{$image-size} - 2*2px );\n\n\tmargin: 20px;\n\n\tborder: 2px solid #000;\n}\n\n\n#log{\n\tdisplay: block;\n\tposition: relative;\n\t\twidth: calc( #{$image-size} - 2*2px - 2*10px );\n\t\theight: calc( 100vh - 2*14px - 500px - 3*20px);\n\n\tmargin: 10px 20px;\n\tpadding: 10px;\n\n\tborder: 2px solid #555;\n\n\toverflow-x: hidden;\n\toverflow-y: auto;\n\n\tspan{\n\t\tdisplay: block;\n\t}\n\n}\n\n\n// ADDED TO DAT.GUI\n.dg.a .save-row{ background-color: #1a1a1a !important; }\n\n.dg li.save-row > select{\n\tbackground-color: #7d7d7d !important;\n\tcolor: #fff !important;\n\tborder: 0 !important;\n}\n\n.dg li.save-row > span{\n\tbackground-color: #303030 !important;\n\tbox-shadow: none !important;\n\ttext-shadow: none !important;\n}\n"
],
"mappings": "AAGA,AAAA,IAAI,CAAA;EACH,gBAAgB,EAAE,IAAK;EAEvB,WAAW,EAAE,SAAU;EACvB,SAAS,EAAE,IAAK;CAChB;;AAED,AAAA,OAAO,CAAA;EACN,OAAO,EAAE,KAAM;EACf,QAAQ,EAAE,QAAS;EACnB,KAAK,EAAE,KAAM;EACb,MAAM,EAAE,KAAM;EACd,WAAW,EAAE,IAAK;EAClB,UAAU,EAAE,2BAAG,CAAyB,MAAM,CAAC,MAAM,CAAC,SAAS;EAC/D,eAAe,EAAE,GAAI;EACrB,OAAO,EAAE,CAAE;CACX;;AAED,AAAO,OAAA,AAAA,OAAO,CAAA;EACb,eAAe,EAAE,OAAQ;CACzB;;AAED,AAAA,aAAa,CAAA;EACZ,OAAO,EAAE,IAAK;CACd;;AAED,AAAA,OAAO,CAAA;EACN,OAAO,EAAE,KAAM;EACf,QAAQ,EAAE,QAAS;EAClB,KAAK,EAAE,oBAAI;EACX,MAAM,EAAE,oBAAI;EAEb,MAAM,EAAE,IAAK;EAEb,MAAM,EAAE,cAAe;CACvB;;AAGD,AAAA,IAAI,CAAA;EACH,OAAO,EAAE,KAAM;EACf,QAAQ,EAAE,QAAS;EAClB,KAAK,EAAE,6BAAI;EAEZ,MAAM,EAAE,SAAU;EAClB,OAAO,EAAE,IAAK;EAEd,MAAM,EAAE,cAAe;CAMvB;;AAdD,AAUC,IAVG,CAUH,IAAI,CAAA;EACH,OAAO,EAAE,KAAM;CACf;;AAMF,AAAM,GAAH,AAAA,EAAE,CAAC,SAAS,CAAA;EAAE,gBAAgB,EAAE,kBAAmB;CAAI;;AAE1D,AAAkB,GAAf,CAAC,EAAE,AAAA,SAAS,GAAG,MAAM,CAAA;EACvB,gBAAgB,EAAE,kBAAmB;EACrC,KAAK,EAAE,eAAgB;EACvB,MAAM,EAAE,YAAa;CACrB;;AAED,AAAkB,GAAf,CAAC,EAAE,AAAA,SAAS,GAAG,IAAI,CAAA;EACrB,gBAAgB,EAAE,kBAAmB;EACrC,UAAU,EAAE,eAAgB;EAC5B,WAAW,EAAE,eAAgB;CAC7B",
"mappings": "AAGA,AAAA,IAAI,CAAA;EACH,gBAAgB,EAAE,IAAK;EAEvB,WAAW,EAAE,SAAU;EACvB,SAAS,EAAE,IAAK;CAChB;;AAED,AAAA,OAAO,CAAA;EACN,OAAO,EAAE,KAAM;EACf,QAAQ,EAAE,QAAS;EACnB,KAAK,EAAE,KAAM;EACb,MAAM,EAAE,KAAM;EACd,WAAW,EAAE,IAAK;EAClB,UAAU,EAAE,2BAAG,CAAyB,MAAM,CAAC,MAAM,CAAC,SAAS;EAC/D,eAAe,EAAE,GAAI;EACrB,OAAO,EAAE,CAAE;CACX;;AAED,AAAO,OAAA,AAAA,OAAO,CAAA;EACb,eAAe,EAAE,OAAQ;CACzB;;AAED,AAAA,aAAa,CAAA;EACZ,OAAO,EAAE,IAAK;CACd;;AAED,AAAA,OAAO,CAAA;EACN,OAAO,EAAE,KAAM;EACf,QAAQ,EAAE,QAAS;EAClB,KAAK,EAAE,oBAAI;EACX,MAAM,EAAE,oBAAI;EAEb,MAAM,EAAE,IAAK;EAEb,MAAM,EAAE,cAAe;CACvB;;AAGD,AAAA,IAAI,CAAA;EACH,OAAO,EAAE,KAAM;EACf,QAAQ,EAAE,QAAS;EAClB,KAAK,EAAE,6BAAI;EACX,MAAM,EAAE,sCAAI;EAEb,MAAM,EAAE,SAAU;EAClB,OAAO,EAAE,IAAK;EAEd,MAAM,EAAE,cAAe;EAEvB,UAAU,EAAE,MAAO;EACnB,UAAU,EAAE,IAAK;CAMjB;;AAlBD,AAcC,IAdG,CAcH,IAAI,CAAA;EACH,OAAO,EAAE,KAAM;CACf;;AAMF,AAAM,GAAH,AAAA,EAAE,CAAC,SAAS,CAAA;EAAE,gBAAgB,EAAE,kBAAmB;CAAI;;AAE1D,AAAkB,GAAf,CAAC,EAAE,AAAA,SAAS,GAAG,MAAM,CAAA;EACvB,gBAAgB,EAAE,kBAAmB;EACrC,KAAK,EAAE,eAAgB;EACvB,MAAM,EAAE,YAAa;CACrB;;AAED,AAAkB,GAAf,CAAC,EAAE,AAAA,SAAS,GAAG,IAAI,CAAA;EACrB,gBAAgB,EAAE,kBAAmB;EACrC,UAAU,EAAE,eAAgB;EAC5B,WAAW,EAAE,eAAgB;CAC7B",
"names": []
}

View File

@ -43,12 +43,16 @@ body{
display: block;
position: relative;
width: calc( #{$image-size} - 2*2px - 2*10px );
height: calc( 100vh - 2*14px - 500px - 3*20px);
margin: 10px 20px;
padding: 10px;
border: 2px solid #555;
overflow-x: hidden;
overflow-y: auto;
span{
display: block;
}

View File

@ -1,3 +1,3 @@
body{background-color:#ccc;font-family:'Courier';font-size:12px}#loader{display:block;position:absolute;width:500px;height:500px;margin-left:20px;background:url("../../src/loader.svg") center center no-repeat;background-size:0 0;z-index:1}#loader.active{background-size:4em 4em}#image-loader{display:none}#canvas{display:block;position:relative;width:calc( 500px - 2*2px);height:calc( 500px - 2*2px);margin:20px;border:2px solid #000}#log{display:block;position:relative;width:calc( 500px - 2*2px - 2*10px);margin:10px 20px;padding:10px;border:2px solid #555}#log span{display:block}.dg.a .save-row{background-color:#1a1a1a !important}.dg li.save-row>select{background-color:#7d7d7d !important;color:#fff !important;border:0 !important}.dg li.save-row>span{background-color:#303030 !important;box-shadow:none !important;text-shadow:none !important}
body{background-color:#ccc;font-family:'Courier';font-size:12px}#loader{display:block;position:absolute;width:500px;height:500px;margin-left:20px;background:url("../../src/loader.svg") center center no-repeat;background-size:0 0;z-index:1}#loader.active{background-size:4em 4em}#image-loader{display:none}#canvas{display:block;position:relative;width:calc( 500px - 2*2px);height:calc( 500px - 2*2px);margin:20px;border:2px solid #000}#log{display:block;position:relative;width:calc( 500px - 2*2px - 2*10px);height:calc( 100vh - 2*14px - 500px - 3*20px);margin:10px 20px;padding:10px;border:2px solid #555;overflow-x:hidden;overflow-y:auto}#log span{display:block}.dg.a .save-row{background-color:#1a1a1a !important}.dg li.save-row>select{background-color:#7d7d7d !important;color:#fff !important;border:0 !important}.dg li.save-row>span{background-color:#303030 !important;box-shadow:none !important;text-shadow:none !important}
/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAibGF5b3V0LmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vbGF5b3V0LnNjc3MiCgldLAoJInNvdXJjZXNDb250ZW50IjogWwoJCSIkaW1hZ2Utc2l6ZTogNTAwcHg7XG5cblxuYm9keXtcblx0YmFja2dyb3VuZC1jb2xvcjogI2NjYztcblxuXHRmb250LWZhbWlseTogJ0NvdXJpZXInO1xuXHRmb250LXNpemU6IDEycHg7XG59XG5cbiNsb2FkZXJ7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHdpZHRoOiA1MDBweDtcblx0aGVpZ2h0OiA1MDBweDtcblx0bWFyZ2luLWxlZnQ6IDIwcHg7XG5cdGJhY2tncm91bmQ6IHVybCgnLi4vLi4vc3JjL2xvYWRlci5zdmcnKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcblx0YmFja2dyb3VuZC1zaXplOiAwIDA7XG5cdHotaW5kZXg6IDE7XG59XG5cbiNsb2FkZXIuYWN0aXZle1xuXHRiYWNrZ3JvdW5kLXNpemU6IDRlbSA0ZW07XG59XG5cbiNpbWFnZS1sb2FkZXJ7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbiNjYW52YXN7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0d2lkdGg6IGNhbGMoICN7JGltYWdlLXNpemV9IC0gMioycHggKTtcblx0XHRoZWlnaHQ6IGNhbGMoICN7JGltYWdlLXNpemV9IC0gMioycHggKTtcblxuXHRtYXJnaW46IDIwcHg7XG5cblx0Ym9yZGVyOiAycHggc29saWQgIzAwMDtcbn1cblxuXG4jbG9ne1xuXHRkaXNwbGF5OiBibG9jaztcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHdpZHRoOiBjYWxjKCAjeyRpbWFnZS1zaXplfSAtIDIqMnB4IC0gMioxMHB4ICk7XG5cblx0bWFyZ2luOiAxMHB4IDIwcHg7XG5cdHBhZGRpbmc6IDEwcHg7XG5cblx0Ym9yZGVyOiAycHggc29saWQgIzU1NTtcblxuXHRzcGFue1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cbn1cblxuXG4vLyBBRERFRCBUTyBEQVQuR1VJXG4uZGcuYSAuc2F2ZS1yb3d7IGJhY2tncm91bmQtY29sb3I6ICMxYTFhMWEgIWltcG9ydGFudDsgfVxuXG4uZGcgbGkuc2F2ZS1yb3cgPiBzZWxlY3R7XG5cdGJhY2tncm91bmQtY29sb3I6ICM3ZDdkN2QgIWltcG9ydGFudDtcblx0Y29sb3I6ICNmZmYgIWltcG9ydGFudDtcblx0Ym9yZGVyOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5kZyBsaS5zYXZlLXJvdyA+IHNwYW57XG5cdGJhY2tncm91bmQtY29sb3I6ICMzMDMwMzAgIWltcG9ydGFudDtcblx0Ym94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuXHR0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuIgoJXSwKCSJtYXBwaW5ncyI6ICJBQUdBLEFBQUEsSUFBSSxBQUFBLENBQ0gsZ0JBQWdCLENBQUUsSUFBSyxDQUV2QixXQUFXLENBQUUsU0FBVSxDQUN2QixTQUFTLENBQUUsSUFBSyxDQUNoQixBQUVELEFBQUEsT0FBTyxBQUFBLENBQ04sT0FBTyxDQUFFLEtBQU0sQ0FDZixRQUFRLENBQUUsUUFBUyxDQUNuQixLQUFLLENBQUUsS0FBTSxDQUNiLE1BQU0sQ0FBRSxLQUFNLENBQ2QsV0FBVyxDQUFFLElBQUssQ0FDbEIsVUFBVSxDQUFFLDJCQUFHLENBQXlCLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUMvRCxlQUFlLENBQUUsR0FBSSxDQUNyQixPQUFPLENBQUUsQ0FBRSxDQUNYLEFBRUQsQUFBTyxPQUFBLEFBQUEsT0FBTyxBQUFBLENBQ2IsZUFBZSxDQUFFLE9BQVEsQ0FDekIsQUFFRCxBQUFBLGFBQWEsQUFBQSxDQUNaLE9BQU8sQ0FBRSxJQUFLLENBQ2QsQUFFRCxBQUFBLE9BQU8sQUFBQSxDQUNOLE9BQU8sQ0FBRSxLQUFNLENBQ2YsUUFBUSxDQUFFLFFBQVMsQ0FDbEIsS0FBSyxDQUFFLG9CQUFJLENBQ1gsTUFBTSxDQUFFLG9CQUFJLENBRWIsTUFBTSxDQUFFLElBQUssQ0FFYixNQUFNLENBQUUsY0FBZSxDQUN2QixBQUdELEFBQUEsSUFBSSxBQUFBLENBQ0gsT0FBTyxDQUFFLEtBQU0sQ0FDZixRQUFRLENBQUUsUUFBUyxDQUNsQixLQUFLLENBQUUsNkJBQUksQ0FFWixNQUFNLENBQUUsU0FBVSxDQUNsQixPQUFPLENBQUUsSUFBSyxDQUVkLE1BQU0sQ0FBRSxjQUFlLENBTXZCLEFBZEQsQUFVQyxJQVZHLENBVUgsSUFBSSxBQUFBLENBQ0gsT0FBTyxDQUFFLEtBQU0sQ0FDZixBQU1GLEFBQU0sR0FBSCxBQUFBLEVBQUUsQ0FBQyxTQUFTLEFBQUEsQ0FBRSxnQkFBZ0IsQ0FBRSxrQkFBbUIsQ0FBSSxBQUUxRCxBQUFrQixHQUFmLENBQUMsRUFBRSxBQUFBLFNBQVMsQ0FBRyxNQUFNLEFBQUEsQ0FDdkIsZ0JBQWdCLENBQUUsa0JBQW1CLENBQ3JDLEtBQUssQ0FBRSxlQUFnQixDQUN2QixNQUFNLENBQUUsWUFBYSxDQUNyQixBQUVELEFBQWtCLEdBQWYsQ0FBQyxFQUFFLEFBQUEsU0FBUyxDQUFHLElBQUksQUFBQSxDQUNyQixnQkFBZ0IsQ0FBRSxrQkFBbUIsQ0FDckMsVUFBVSxDQUFFLGVBQWdCLENBQzVCLFdBQVcsQ0FBRSxlQUFnQixDQUM3QiIsCgkibmFtZXMiOiBbXQp9 */
/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAibGF5b3V0LmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vbGF5b3V0LnNjc3MiCgldLAoJInNvdXJjZXNDb250ZW50IjogWwoJCSIkaW1hZ2Utc2l6ZTogNTAwcHg7XG5cblxuYm9keXtcblx0YmFja2dyb3VuZC1jb2xvcjogI2NjYztcblxuXHRmb250LWZhbWlseTogJ0NvdXJpZXInO1xuXHRmb250LXNpemU6IDEycHg7XG59XG5cbiNsb2FkZXJ7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHdpZHRoOiA1MDBweDtcblx0aGVpZ2h0OiA1MDBweDtcblx0bWFyZ2luLWxlZnQ6IDIwcHg7XG5cdGJhY2tncm91bmQ6IHVybCgnLi4vLi4vc3JjL2xvYWRlci5zdmcnKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcblx0YmFja2dyb3VuZC1zaXplOiAwIDA7XG5cdHotaW5kZXg6IDE7XG59XG5cbiNsb2FkZXIuYWN0aXZle1xuXHRiYWNrZ3JvdW5kLXNpemU6IDRlbSA0ZW07XG59XG5cbiNpbWFnZS1sb2FkZXJ7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbiNjYW52YXN7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0d2lkdGg6IGNhbGMoICN7JGltYWdlLXNpemV9IC0gMioycHggKTtcblx0XHRoZWlnaHQ6IGNhbGMoICN7JGltYWdlLXNpemV9IC0gMioycHggKTtcblxuXHRtYXJnaW46IDIwcHg7XG5cblx0Ym9yZGVyOiAycHggc29saWQgIzAwMDtcbn1cblxuXG4jbG9ne1xuXHRkaXNwbGF5OiBibG9jaztcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHdpZHRoOiBjYWxjKCAjeyRpbWFnZS1zaXplfSAtIDIqMnB4IC0gMioxMHB4ICk7XG5cdFx0aGVpZ2h0OiBjYWxjKCAxMDB2aCAtIDIqMTRweCAtIDUwMHB4IC0gMyoyMHB4KTtcblxuXHRtYXJnaW46IDEwcHggMjBweDtcblx0cGFkZGluZzogMTBweDtcblxuXHRib3JkZXI6IDJweCBzb2xpZCAjNTU1O1xuXG5cdG92ZXJmbG93LXg6IGhpZGRlbjtcblx0b3ZlcmZsb3cteTogYXV0bztcblxuXHRzcGFue1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cbn1cblxuXG4vLyBBRERFRCBUTyBEQVQuR1VJXG4uZGcuYSAuc2F2ZS1yb3d7IGJhY2tncm91bmQtY29sb3I6ICMxYTFhMWEgIWltcG9ydGFudDsgfVxuXG4uZGcgbGkuc2F2ZS1yb3cgPiBzZWxlY3R7XG5cdGJhY2tncm91bmQtY29sb3I6ICM3ZDdkN2QgIWltcG9ydGFudDtcblx0Y29sb3I6ICNmZmYgIWltcG9ydGFudDtcblx0Ym9yZGVyOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5kZyBsaS5zYXZlLXJvdyA+IHNwYW57XG5cdGJhY2tncm91bmQtY29sb3I6ICMzMDMwMzAgIWltcG9ydGFudDtcblx0Ym94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuXHR0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuIgoJXSwKCSJtYXBwaW5ncyI6ICJBQUdBLEFBQUEsSUFBSSxBQUFBLENBQ0gsZ0JBQWdCLENBQUUsSUFBSyxDQUV2QixXQUFXLENBQUUsU0FBVSxDQUN2QixTQUFTLENBQUUsSUFBSyxDQUNoQixBQUVELEFBQUEsT0FBTyxBQUFBLENBQ04sT0FBTyxDQUFFLEtBQU0sQ0FDZixRQUFRLENBQUUsUUFBUyxDQUNuQixLQUFLLENBQUUsS0FBTSxDQUNiLE1BQU0sQ0FBRSxLQUFNLENBQ2QsV0FBVyxDQUFFLElBQUssQ0FDbEIsVUFBVSxDQUFFLDJCQUFHLENBQXlCLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUMvRCxlQUFlLENBQUUsR0FBSSxDQUNyQixPQUFPLENBQUUsQ0FBRSxDQUNYLEFBRUQsQUFBTyxPQUFBLEFBQUEsT0FBTyxBQUFBLENBQ2IsZUFBZSxDQUFFLE9BQVEsQ0FDekIsQUFFRCxBQUFBLGFBQWEsQUFBQSxDQUNaLE9BQU8sQ0FBRSxJQUFLLENBQ2QsQUFFRCxBQUFBLE9BQU8sQUFBQSxDQUNOLE9BQU8sQ0FBRSxLQUFNLENBQ2YsUUFBUSxDQUFFLFFBQVMsQ0FDbEIsS0FBSyxDQUFFLG9CQUFJLENBQ1gsTUFBTSxDQUFFLG9CQUFJLENBRWIsTUFBTSxDQUFFLElBQUssQ0FFYixNQUFNLENBQUUsY0FBZSxDQUN2QixBQUdELEFBQUEsSUFBSSxBQUFBLENBQ0gsT0FBTyxDQUFFLEtBQU0sQ0FDZixRQUFRLENBQUUsUUFBUyxDQUNsQixLQUFLLENBQUUsNkJBQUksQ0FDWCxNQUFNLENBQUUsc0NBQUksQ0FFYixNQUFNLENBQUUsU0FBVSxDQUNsQixPQUFPLENBQUUsSUFBSyxDQUVkLE1BQU0sQ0FBRSxjQUFlLENBRXZCLFVBQVUsQ0FBRSxNQUFPLENBQ25CLFVBQVUsQ0FBRSxJQUFLLENBTWpCLEFBbEJELEFBY0MsSUFkRyxDQWNILElBQUksQUFBQSxDQUNILE9BQU8sQ0FBRSxLQUFNLENBQ2YsQUFNRixBQUFNLEdBQUgsQUFBQSxFQUFFLENBQUMsU0FBUyxBQUFBLENBQUUsZ0JBQWdCLENBQUUsa0JBQW1CLENBQUksQUFFMUQsQUFBa0IsR0FBZixDQUFDLEVBQUUsQUFBQSxTQUFTLENBQUcsTUFBTSxBQUFBLENBQ3ZCLGdCQUFnQixDQUFFLGtCQUFtQixDQUNyQyxLQUFLLENBQUUsZUFBZ0IsQ0FDdkIsTUFBTSxDQUFFLFlBQWEsQ0FDckIsQUFFRCxBQUFrQixHQUFmLENBQUMsRUFBRSxBQUFBLFNBQVMsQ0FBRyxJQUFJLEFBQUEsQ0FDckIsZ0JBQWdCLENBQUUsa0JBQW1CLENBQ3JDLFVBQVUsQ0FBRSxlQUFnQixDQUM1QixXQUFXLENBQUUsZUFBZ0IsQ0FDN0IiLAoJIm5hbWVzIjogW10KfQ== */

View File

@ -5,8 +5,8 @@
"../layout.scss"
],
"sourcesContent": [
"$image-size: 500px;\n\n\nbody{\n\tbackground-color: #ccc;\n\n\tfont-family: 'Courier';\n\tfont-size: 12px;\n}\n\n#loader{\n\tdisplay: block;\n\tposition: absolute;\n\twidth: 500px;\n\theight: 500px;\n\tmargin-left: 20px;\n\tbackground: url('../../src/loader.svg') center center no-repeat;\n\tbackground-size: 0 0;\n\tz-index: 1;\n}\n\n#loader.active{\n\tbackground-size: 4em 4em;\n}\n\n#image-loader{\n\tdisplay: none;\n}\n\n#canvas{\n\tdisplay: block;\n\tposition: relative;\n\t\twidth: calc( #{$image-size} - 2*2px );\n\t\theight: calc( #{$image-size} - 2*2px );\n\n\tmargin: 20px;\n\n\tborder: 2px solid #000;\n}\n\n\n#log{\n\tdisplay: block;\n\tposition: relative;\n\t\twidth: calc( #{$image-size} - 2*2px - 2*10px );\n\n\tmargin: 10px 20px;\n\tpadding: 10px;\n\n\tborder: 2px solid #555;\n\n\tspan{\n\t\tdisplay: block;\n\t}\n\n}\n\n\n// ADDED TO DAT.GUI\n.dg.a .save-row{ background-color: #1a1a1a !important; }\n\n.dg li.save-row > select{\n\tbackground-color: #7d7d7d !important;\n\tcolor: #fff !important;\n\tborder: 0 !important;\n}\n\n.dg li.save-row > span{\n\tbackground-color: #303030 !important;\n\tbox-shadow: none !important;\n\ttext-shadow: none !important;\n}\n"
"$image-size: 500px;\n\n\nbody{\n\tbackground-color: #ccc;\n\n\tfont-family: 'Courier';\n\tfont-size: 12px;\n}\n\n#loader{\n\tdisplay: block;\n\tposition: absolute;\n\twidth: 500px;\n\theight: 500px;\n\tmargin-left: 20px;\n\tbackground: url('../../src/loader.svg') center center no-repeat;\n\tbackground-size: 0 0;\n\tz-index: 1;\n}\n\n#loader.active{\n\tbackground-size: 4em 4em;\n}\n\n#image-loader{\n\tdisplay: none;\n}\n\n#canvas{\n\tdisplay: block;\n\tposition: relative;\n\t\twidth: calc( #{$image-size} - 2*2px );\n\t\theight: calc( #{$image-size} - 2*2px );\n\n\tmargin: 20px;\n\n\tborder: 2px solid #000;\n}\n\n\n#log{\n\tdisplay: block;\n\tposition: relative;\n\t\twidth: calc( #{$image-size} - 2*2px - 2*10px );\n\t\theight: calc( 100vh - 2*14px - 500px - 3*20px);\n\n\tmargin: 10px 20px;\n\tpadding: 10px;\n\n\tborder: 2px solid #555;\n\n\toverflow-x: hidden;\n\toverflow-y: auto;\n\n\tspan{\n\t\tdisplay: block;\n\t}\n\n}\n\n\n// ADDED TO DAT.GUI\n.dg.a .save-row{ background-color: #1a1a1a !important; }\n\n.dg li.save-row > select{\n\tbackground-color: #7d7d7d !important;\n\tcolor: #fff !important;\n\tborder: 0 !important;\n}\n\n.dg li.save-row > span{\n\tbackground-color: #303030 !important;\n\tbox-shadow: none !important;\n\ttext-shadow: none !important;\n}\n"
],
"mappings": "AAGA,AAAA,IAAI,AAAA,CACH,gBAAgB,CAAE,IAAK,CAEvB,WAAW,CAAE,SAAU,CACvB,SAAS,CAAE,IAAK,CAChB,AAED,AAAA,OAAO,AAAA,CACN,OAAO,CAAE,KAAM,CACf,QAAQ,CAAE,QAAS,CACnB,KAAK,CAAE,KAAM,CACb,MAAM,CAAE,KAAM,CACd,WAAW,CAAE,IAAK,CAClB,UAAU,CAAE,2BAAG,CAAyB,MAAM,CAAC,MAAM,CAAC,SAAS,CAC/D,eAAe,CAAE,GAAI,CACrB,OAAO,CAAE,CAAE,CACX,AAED,AAAO,OAAA,AAAA,OAAO,AAAA,CACb,eAAe,CAAE,OAAQ,CACzB,AAED,AAAA,aAAa,AAAA,CACZ,OAAO,CAAE,IAAK,CACd,AAED,AAAA,OAAO,AAAA,CACN,OAAO,CAAE,KAAM,CACf,QAAQ,CAAE,QAAS,CAClB,KAAK,CAAE,oBAAI,CACX,MAAM,CAAE,oBAAI,CAEb,MAAM,CAAE,IAAK,CAEb,MAAM,CAAE,cAAe,CACvB,AAGD,AAAA,IAAI,AAAA,CACH,OAAO,CAAE,KAAM,CACf,QAAQ,CAAE,QAAS,CAClB,KAAK,CAAE,6BAAI,CAEZ,MAAM,CAAE,SAAU,CAClB,OAAO,CAAE,IAAK,CAEd,MAAM,CAAE,cAAe,CAMvB,AAdD,AAUC,IAVG,CAUH,IAAI,AAAA,CACH,OAAO,CAAE,KAAM,CACf,AAMF,AAAM,GAAH,AAAA,EAAE,CAAC,SAAS,AAAA,CAAE,gBAAgB,CAAE,kBAAmB,CAAI,AAE1D,AAAkB,GAAf,CAAC,EAAE,AAAA,SAAS,CAAG,MAAM,AAAA,CACvB,gBAAgB,CAAE,kBAAmB,CACrC,KAAK,CAAE,eAAgB,CACvB,MAAM,CAAE,YAAa,CACrB,AAED,AAAkB,GAAf,CAAC,EAAE,AAAA,SAAS,CAAG,IAAI,AAAA,CACrB,gBAAgB,CAAE,kBAAmB,CACrC,UAAU,CAAE,eAAgB,CAC5B,WAAW,CAAE,eAAgB,CAC7B",
"mappings": "AAGA,AAAA,IAAI,AAAA,CACH,gBAAgB,CAAE,IAAK,CAEvB,WAAW,CAAE,SAAU,CACvB,SAAS,CAAE,IAAK,CAChB,AAED,AAAA,OAAO,AAAA,CACN,OAAO,CAAE,KAAM,CACf,QAAQ,CAAE,QAAS,CACnB,KAAK,CAAE,KAAM,CACb,MAAM,CAAE,KAAM,CACd,WAAW,CAAE,IAAK,CAClB,UAAU,CAAE,2BAAG,CAAyB,MAAM,CAAC,MAAM,CAAC,SAAS,CAC/D,eAAe,CAAE,GAAI,CACrB,OAAO,CAAE,CAAE,CACX,AAED,AAAO,OAAA,AAAA,OAAO,AAAA,CACb,eAAe,CAAE,OAAQ,CACzB,AAED,AAAA,aAAa,AAAA,CACZ,OAAO,CAAE,IAAK,CACd,AAED,AAAA,OAAO,AAAA,CACN,OAAO,CAAE,KAAM,CACf,QAAQ,CAAE,QAAS,CAClB,KAAK,CAAE,oBAAI,CACX,MAAM,CAAE,oBAAI,CAEb,MAAM,CAAE,IAAK,CAEb,MAAM,CAAE,cAAe,CACvB,AAGD,AAAA,IAAI,AAAA,CACH,OAAO,CAAE,KAAM,CACf,QAAQ,CAAE,QAAS,CAClB,KAAK,CAAE,6BAAI,CACX,MAAM,CAAE,sCAAI,CAEb,MAAM,CAAE,SAAU,CAClB,OAAO,CAAE,IAAK,CAEd,MAAM,CAAE,cAAe,CAEvB,UAAU,CAAE,MAAO,CACnB,UAAU,CAAE,IAAK,CAMjB,AAlBD,AAcC,IAdG,CAcH,IAAI,AAAA,CACH,OAAO,CAAE,KAAM,CACf,AAMF,AAAM,GAAH,AAAA,EAAE,CAAC,SAAS,AAAA,CAAE,gBAAgB,CAAE,kBAAmB,CAAI,AAE1D,AAAkB,GAAf,CAAC,EAAE,AAAA,SAAS,CAAG,MAAM,AAAA,CACvB,gBAAgB,CAAE,kBAAmB,CACrC,KAAK,CAAE,eAAgB,CACvB,MAAM,CAAE,YAAa,CACrB,AAED,AAAkB,GAAf,CAAC,EAAE,AAAA,SAAS,CAAG,IAAI,AAAA,CACrB,gBAAgB,CAAE,kBAAmB,CACrC,UAAU,CAAE,eAAgB,CAC5B,WAAW,CAAE,eAAgB,CAC7B",
"names": []
}

View File

@ -1,6 +1,6 @@
<!--***********************
* PermanentStorage *
* 02-11-16 *
* face-recognition *
* 12-09-16 *
***************************
* Designed & Developed by *
* xdrm-brackets *

View File

@ -1,5 +1,5 @@
/**************************
* PermanentStorage *
* action-script.js *
* 08-09-16 *
***************************
* Designed & Developed by *
@ -34,14 +34,9 @@
var process = function(){};
var exec = false;
var last;
var featureTrackerTask;
var trackerCallback;
var Controller, CFolder = {},
init,
zones = {feature: []},
track,
featureTracker,
initialized = false;
}
@ -70,53 +65,6 @@ ControllerRememberer.fetch(function(loaded_data){
Controller.remember(this);
CFolder.src.add(this, 'src', this._images).listen();
};
/* (2) Gestion de tracking.js */
zones.feature = [];
/* (3) Gestion du track de l'image */
track = {
trackFeatures: function(){
LOADER.start();
zones.feature = [];
featureTrackerTask = tracking.track(_CAN, featureTracker);
LOADER.stop();
}
};
/* (4) Initializing `Tracking.js` */
featureTracker = new tracking.ObjectTracker(['eye', 'mouth']);
featureTracker.setInitialScale(1.0);
featureTracker.setStepSize(1.2);
featureTracker.setEdgesDensity(0.1);
trackerCallback = function(z, e){
zones[z].length = 0;
e.data.forEach(function(rect){
zones[z].push({
x: rect.x / _CAN.width,
y: rect.y / _CAN.height,
w: rect.width / _CAN.width,
h: rect.height / _CAN.height
});
});
// On enregistre dans `zones.feature` les zones.feature trackées
if( zones[z].length > 0 )
log(z+' recognition done', '[Tracking.js]');
else
log(z+' recognition failed', '[Tracking.js]');
// On met à jour le rendu (affichage des zones.feature)
process.apply(DOM.imageLoader);
}
featureTracker.on('track', function(e){ return trackerCallback.apply(this, ['feature', e]); });
}
@ -137,7 +85,7 @@ ControllerRememberer.fetch(function(loaded_data){
=========================================================*/
if( this.src != last ){
reactiveFaceTracking.zones = [];
zones.feature = [];
reactiveFeatureTracking.zones = [];
exec = false;
last = this.src;
}
@ -195,11 +143,11 @@ ControllerRememberer.fetch(function(loaded_data){
/* (1) On reporte chaque zone trackée sur le `<canvas>` */
var i, x, y, w, h;
for( i in zones.feature ){
x = zones.feature[i].x * _CAN.width;
y = zones.feature[i].y * _CAN.height;
w = zones.feature[i].w * _CAN.width;
h = zones.feature[i].h * _CAN.height;
for( i in reactiveFeatureTracking.zones ){
x = reactiveFeatureTracking.zones[i].x * _CAN.width;
y = reactiveFeatureTracking.zones[i].y * _CAN.height;
w = reactiveFeatureTracking.zones[i].w * _CAN.width;
h = reactiveFeatureTracking.zones[i].h * _CAN.height;
_CON.lineWidth = 5;
_CON.strokeStyle = '#f00';
@ -238,17 +186,19 @@ ControllerRememberer.fetch(function(loaded_data){
filterManager = new ReactiveFilterManager(DOM.imageLoader, _CAN, process);
/* (2) Ajout des filtres */
filterManager.add('face_tracking', reactiveFaceTracking);
filterManager.add('resolution', reactiveResolution);
filterManager.add('contrast', reactiveContrast);
filterManager.add('grayscale', reactiveGrayscale);
filterManager.add('sobel', reactiveSobel);
filterManager.add('gaussian', reactiveGaussianBlur);
filterManager.add('canny', reactiveCanny);
filterManager.add('haar_face', reactiveHaarFace);
filterManager.add('feature_tracking', reactiveFeatureTracking);
filterManager.add('face_tracking', reactiveFaceTracking);
filterManager.add('resolution', reactiveResolution);
filterManager.add('contrast', reactiveContrast);
filterManager.add('grayscale', reactiveGrayscale);
filterManager.add('sobel', reactiveSobel);
filterManager.add('gaussian', reactiveGaussianBlur);
filterManager.add('canny', reactiveCanny);
filterManager.add('haar_face', reactiveHaarFace);
/* (3) Gestion des backups */
Controller.remember(filterManager.get('face_tracking'));
Controller.remember(filterManager.get('feature_tracking'));
Controller.remember(filterManager.get('resolution'));
Controller.remember(filterManager.get('contrast'));
Controller.remember(filterManager.get('grayscale'));
@ -270,8 +220,13 @@ ControllerRememberer.fetch(function(loaded_data){
CFolder.face_tracking = CFolder.tracking.addFolder('Face tracking');
CFolder.face_tracking.add(filterManager.get('face_tracking'), 'apply');
CFolder.face_tracking.add(filterManager.get('face_tracking'), 'initial_scale', 1, 10).step(0.5);
CFolder.face_tracking.add(filterManager.get('face_tracking'), 'step_size', 1, 5).step(0.5);
CFolder.face_tracking.add(filterManager.get('face_tracking'), 'step_size', -.1, 5).step(0.1);
CFolder.face_tracking.add(filterManager.get('face_tracking'), 'edges_density', 0.1, 0.5).step(0.01);
CFolder.feature_tracking = CFolder.tracking.addFolder('Feature tracking');
CFolder.feature_tracking.add(filterManager.get('feature_tracking'), 'apply');
CFolder.feature_tracking.add(filterManager.get('feature_tracking'), 'initial_scale', 1, 10).step(0.5);
CFolder.feature_tracking.add(filterManager.get('feature_tracking'), 'step_size', -.1, 5).step(0.1);
CFolder.feature_tracking.add(filterManager.get('feature_tracking'), 'edges_density', 0.1, 0.5).step(0.01);
CFolder.jsfeat = Controller.addFolder('jsfeat');
CFolder.haar_face = CFolder.jsfeat.addFolder('Haar Face Detection');

View File

@ -3,8 +3,10 @@ a.constructor.name+" received");this._canvas=e instanceof HTMLCanvasElement?e:nu
ReactiveFilterManager.prototype.add=function(a,e){a="string"===typeof a?a:null;if(!a)throw Error("Param 1 expected to be a `string`, but "+a.constructor.name+" received");e=e instanceof ReactiveFilter?e:null;if(!e)throw Error("Param 2 expected to be a `ReactiveFilter`, but "+e.constructor.name+" received");if(null!=this._filter[a])return!0;this._filter[a]=e;e._manager=this};
ReactiveFilterManager.prototype.get=function(a){a="string"===typeof a?a:null;if(!a)throw Error("Param 1 expected to be a `string`, but "+a.constructor.name+" received");return null!=this._filter[a]?this._filter[a]:!1};ReactiveFilterManager.prototype.process=function(){this._process.bind(this._target)()};
ConvolutionFilter=function(a,e,d,c){var b,f,g,k,r=parseInt(c.length/2),q=parseInt(c[0].length/2),m=d.slice(0),l,p,n,t,u,v;for(p=r;p<e;p++)for(l=q;l<a;l++){k=g=f=b=0;for(t=-r;t<=r;t++)for(n=-q;n<=q;n++)u=c[r+t][q+n],v=4*((p+t)*a+(l+n)),b+=m[v+0]*u,f+=m[v+1]*u,g+=m[v+2]*u,k+=m[v+3]*u;n=4*(p*a+l);d[n+0]=b;d[n+1]=f;d[n+2]=g;d[n+3]=k}};
SobelFilter=function(a,e,d){var c=[[-1,0,1],[-2,0,2],[-1,0,1]],b=[[1,2,1],[0,0,0],[-1,-2,-1]],f=parseInt(c.length/2),g=parseInt(c[0].length/2),k=d.slice(0),r,q,m,l,p,n;for(q=f;q<e;q++)for(r=g;r<a;r++){p=0;for(l=-f;l<=f;l++)for(m=-g;m<=g;m++)n=4*((q+l)*a+(r+m)),p+=k[n+0]*(c[f+l][g+m]+b[f+l][g+m])/2;m=q*a+r;p=Math.abs(p);d[m]=(p<<32)+(p<<16)+(p<<8)|4278190080}};var reactiveFaceTracking=new ReactiveFilter({initial_scale:1.9,step_size:.9,edges_density:.1});
SobelFilter=function(a,e,d){var c=[[-1,0,1],[-2,0,2],[-1,0,1]],b=[[1,2,1],[0,0,0],[-1,-2,-1]],f=parseInt(c.length/2),g=parseInt(c[0].length/2),k=d.slice(0),r,q,m,l,p,n;for(q=f;q<e;q++)for(r=g;r<a;r++){p=0;for(l=-f;l<=f;l++)for(m=-g;m<=g;m++)n=4*((q+l)*a+(r+m)),p+=k[n+0]*(c[f+l][g+m]+b[f+l][g+m])/2;m=q*a+r;p=Math.abs(p);d[m]=(p<<32)+(p<<16)+(p<<8)|4278190080}};var reactiveFaceTracking=new ReactiveFilter({initial_scale:1.9,step_size:1.1,edges_density:.1});
reactiveFaceTracking.apply=function(){if(this._manager instanceof ReactiveFilterManager){var a=this._manager._canvas;void 0===this.zones&&(this.zones=[]);void 0===this.tracker&&(this.tracker=new tracking.ObjectTracker(["face"]),this.tracker.on("track",function(e){this.zones.length=0;e.data.forEach(function(d){this.push({x:d.x/a.width,y:d.y/a.height,w:d.width/a.width,h:d.height/a.height})}.bind(this.zones));LOADER.stop();this.zones?log("Face recognition done","[Tracking.js]"):log("Face recognition failed",
"[Tracking.js]");this._manager.process()}.bind(this)));this.tracker.setInitialScale(this.initial_scale);this.tracker.setStepSize(this.step_size);this.tracker.setEdgesDensity(this.edges_density);this.zones=[];LOADER.start();this.task=tracking.track(a,this.tracker)}};var reactiveFeatureTracking=new ReactiveFilter({initial_scale:1.9,step_size:1.1,edges_density:.1});
reactiveFeatureTracking.apply=function(){if(this._manager instanceof ReactiveFilterManager){var a=this._manager._canvas;void 0===this.zones&&(this.zones=[]);void 0===this.tracker&&(this.tracker=new tracking.ObjectTracker(["eye","mouth"]),this.tracker.on("track",function(e){this.zones.length=0;e.data.forEach(function(d){this.push({x:d.x/a.width,y:d.y/a.height,w:d.width/a.width,h:d.height/a.height})}.bind(this.zones));LOADER.stop();this.zones?log("Feature recognition done","[Tracking.js]"):log("Feature recognition failed",
"[Tracking.js]");this._manager.process()}.bind(this)));this.tracker.setInitialScale(this.initial_scale);this.tracker.setStepSize(this.step_size);this.tracker.setEdgesDensity(this.edges_density);this.zones=[];LOADER.start();this.task=tracking.track(a,this.tracker)}};var reactiveResolution=new ReactiveFilter({width:1,height:1});
reactiveResolution.apply=function(){if(this._manager instanceof ReactiveFilterManager){var a=this._manager._target,e=this._manager._canvas,d=this._manager._context;e.width=a.width*this.width;e.height=a.height*this.height;d.drawImage(a,0,0,e.width,e.height)}};var reactiveContrast=new ReactiveFilter({contrast:0});
reactiveContrast.apply=function(){if(this._manager instanceof ReactiveFilterManager){for(var a=this._manager._canvas,e=this._manager._context,a=e.getImageData(0,0,a.width,a.height),d=a.data,c=this.contrast;1<c;)c/=100;for(var c=127*(1-c),b=0,f=d.length;b<f;b++)0!=b%3&&(d[b]>=127+c&&(d[b]=255),d[b]<=127-c&&(d[b]=0));e.putImageData(a,0,0)}};var reactiveGrayscale=new ReactiveFilter({grayscale:!1});

View File

@ -1,5 +1,5 @@
/**************************
* PermanentStorage *
* reactive-filter.js *
* 10-09-16 *
***************************
* Designed & Developed by *
@ -271,7 +271,7 @@ SobelFilter = function(width, height, buff32){
/************************************************
**** Gestion de Tracking.js ****
************************************************/
var reactiveFaceTracking = new ReactiveFilter({ initial_scale: 1.9, step_size: 0.9, edges_density: 0.1 });
var reactiveFaceTracking = new ReactiveFilter({ initial_scale: 1.9, step_size: 1.1, edges_density: 0.1 });
reactiveFaceTracking.apply = function(){
/* [1] Si pas de manager, on exit
=========================================================*/
@ -333,6 +333,71 @@ reactiveFaceTracking.apply = function(){
};
/************************************************
**** Gestion de Tracking.js ****
************************************************/
var reactiveFeatureTracking = new ReactiveFilter({ initial_scale: 1.9, step_size: 1.1, edges_density: 0.1 });
reactiveFeatureTracking.apply = function(){
/* [1] Si pas de manager, on exit
=========================================================*/
if( !(this._manager instanceof ReactiveFilterManager) )
return;
/* [2] On effectue notre modification
=========================================================*/
/* (1) Get manager's context */
var o = {
image: this._manager._target,
canvas: this._manager._canvas,
context: this._manager._context
};
/* (2) Manage `zones` attributes if not already done */
if( this['zones'] === undefined )
this.zones = [];
/* (3) Manage `tracker` if not already done */
if( this['tracker'] === undefined ){
this.tracker = new tracking.ObjectTracker(['eye', 'mouth']);
// Manage `track` event
this.tracker.on('track', function(e){
this.zones.length = 0;
e.data.forEach(function(rect){
this.push({
x: rect.x / o.canvas.width,
y: rect.y / o.canvas.height,
w: rect.width / o.canvas.width,
h: rect.height / o.canvas.height
});
}.bind(this.zones));
// On enregistre dans `zones.feature` les zones.feature trackées
LOADER.stop();
this.zones ? log('Feature recognition done', '[Tracking.js]') : log('Feature recognition failed', '[Tracking.js]');
// On met à jour le rendu (affichage des zones.feature)
this._manager.process();
}.bind(this) );
}
/* (4) Set parameters */
this.tracker.setInitialScale(this.initial_scale);
this.tracker.setStepSize(this.step_size);
this.tracker.setEdgesDensity(this.edges_density);
/* (5) Launch track */
this.zones = [];
LOADER.start();
this.task = tracking.track(o.canvas, this.tracker);
};
/************************************************
**** Gestion de la resolution de l'image ****
************************************************/

View File

@ -1,13 +1,12 @@
var DOM={body:$("body"),canvas:$("canvas"),imageLoader:$("#image-loader")},_CAN=DOM.canvas;_CAN.width=_CAN.height=1E3;var _CON=_CAN.getContext("2d"),iL,filterManager,process=function(){},exec=!1,last,featureTrackerTask,trackerCallback,Controller,CFolder={},init,zones={feature:[]},track,featureTracker,initialized=!1,ControllerRememberer=new PermanentStorage;
ControllerRememberer.fetch(function(f){log("Preset loaded.","[PermanentStorage]");Controller=new dat.GUI({load:JSON.parse(f),preset:"default"});init=function(){last=this.src="front/male/1.jpg";initialized=!0;CFolder.src=Controller.addFolder("Source Picture");Controller.remember(this);CFolder.src.add(this,"src",this._images).listen()};zones.feature=[];track={trackFeatures:function(){LOADER.start();zones.feature=[];featureTrackerTask=tracking.track(_CAN,featureTracker);LOADER.stop()}};featureTracker=
new tracking.ObjectTracker(["eye","mouth"]);featureTracker.setInitialScale(1);featureTracker.setStepSize(1.2);featureTracker.setEdgesDensity(.1);trackerCallback=function(a,c){zones[a].length=0;c.data.forEach(function(b){zones[a].push({x:b.x/_CAN.width,y:b.y/_CAN.height,w:b.width/_CAN.width,h:b.height/_CAN.height})});0<zones[a].length?log(a+" recognition done","[Tracking.js]"):log(a+" recognition failed","[Tracking.js]");process.apply(DOM.imageLoader)};featureTracker.on("track",function(a){return trackerCallback.apply(this,
["feature",a])});LOADER.init();process=function(){if(initialized&&this instanceof HTMLImageElement){console.time("PROCESS");LOADER.start();this.src!=last&&(reactiveFaceTracking.zones=[],zones.feature=[],exec=!1,last=this.src);exec||(this.defaultWidth=this.width,this.defaultHeight=this.height,log("Image copied","[Canvas]"),exec=!0);_CON.clearRect(0,0,_CAN.width,_CAN.height);filterManager.get("resolution").apply();filterManager.get("contrast").apply();filterManager.get("grayscale").apply();filterManager.get("sobel").apply();
filterManager.get("gaussian").apply();filterManager.get("canny").apply();var a,c,b,d,e;for(a in zones.feature)c=zones.feature[a].x*_CAN.width,b=zones.feature[a].y*_CAN.height,d=zones.feature[a].w*_CAN.width,e=zones.feature[a].h*_CAN.height,_CON.lineWidth=5,_CON.strokeStyle="#f00",_CON.strokeRect(c,b,d,e);for(a in reactiveFaceTracking.zones)c=reactiveFaceTracking.zones[a].x*_CAN.width,b=reactiveFaceTracking.zones[a].y*_CAN.height,d=reactiveFaceTracking.zones[a].w*_CAN.width,e=reactiveFaceTracking.zones[a].h*
_CAN.height,_CON.lineWidth=5,_CON.strokeStyle="#ff0",_CON.strokeRect(c,b,d,e);console.timeEnd("PROCESS");LOADER.stop()}};filterManager=new ReactiveFilterManager(DOM.imageLoader,_CAN,process);filterManager.add("face_tracking",reactiveFaceTracking);filterManager.add("resolution",reactiveResolution);filterManager.add("contrast",reactiveContrast);filterManager.add("grayscale",reactiveGrayscale);filterManager.add("sobel",reactiveSobel);filterManager.add("gaussian",reactiveGaussianBlur);filterManager.add("canny",
reactiveCanny);filterManager.add("haar_face",reactiveHaarFace);Controller.remember(filterManager.get("face_tracking"));Controller.remember(filterManager.get("resolution"));Controller.remember(filterManager.get("contrast"));Controller.remember(filterManager.get("grayscale"));Controller.remember(filterManager.get("sobel"));Controller.remember(filterManager.get("canny"));Controller.remember(filterManager.get("gaussian"));Controller.remember(filterManager.get("haar_face"));CFolder.custom=Controller.addFolder("custom");
CFolder.resolution=CFolder.custom.addFolder("Image Resolution");CFolder.resolution.add(filterManager.get("resolution"),"width",0,2).step(.1);CFolder.resolution.add(filterManager.get("resolution"),"height",0,2).step(.1);CFolder.basic=CFolder.custom.addFolder("Basic Image Processing");CFolder.basic.add(filterManager.get("contrast"),"contrast",0,100);CFolder.basic.add(filterManager.get("grayscale"),"grayscale");CFolder.tracking=Controller.addFolder("Tracking.js");CFolder.face_tracking=CFolder.tracking.addFolder("Face tracking");
CFolder.face_tracking.add(filterManager.get("face_tracking"),"apply");CFolder.face_tracking.add(filterManager.get("face_tracking"),"initial_scale",1,10).step(.5);CFolder.face_tracking.add(filterManager.get("face_tracking"),"step_size",1,5).step(.5);CFolder.face_tracking.add(filterManager.get("face_tracking"),"edges_density",.1,.5).step(.01);CFolder.jsfeat=Controller.addFolder("jsfeat");CFolder.haar_face=CFolder.jsfeat.addFolder("Haar Face Detection");CFolder.haar_face.add(filterManager.get("haar_face"),
"apply");CFolder.haar_face.add(filterManager.get("haar_face"),"min_scale",1,4).step(.1);CFolder.haar_face.add(filterManager.get("haar_face"),"scale_factor",1.1,2).step(.025);CFolder.haar_face.add(filterManager.get("haar_face"),"equalize_histogram");CFolder.haar_face.add(filterManager.get("haar_face"),"use_canny");CFolder.haar_face.add(filterManager.get("haar_face"),"edges_density",.01,1).step(.005);CFolder.gaussian=CFolder.jsfeat.addFolder("Gaussian Blur");CFolder.gaussian.add(filterManager.get("gaussian"),
"active");CFolder.gaussian.add(filterManager.get("gaussian"),"sigma",0,10).step(.5);CFolder.gaussian.add(filterManager.get("gaussian"),"radius",1,11).step(1);CFolder.sobel=CFolder.jsfeat.addFolder("Sobel Filter");CFolder.sobel.add(filterManager.get("sobel"),"sobelActive");CFolder.canny=CFolder.jsfeat.addFolder("Canny Filter");CFolder.canny.add(filterManager.get("canny"),"active");CFolder.canny.add(filterManager.get("canny"),"radius",0,4).step(1);CFolder.canny.add(filterManager.get("canny"),"low_threshold",
1,127).step(1);CFolder.canny.add(filterManager.get("canny"),"high_threshold",1,127).step(1);CFolder.process=Controller.addFolder("Process");CFolder.process.add({render:process},"render");Controller.__save_row.children[2].addEventListener("click",function(){Controller.save();try{var a=JSON.stringify(Controller.getSaveObject());ControllerRememberer.store(a,function(){log("dat.GUI preset stored.","[PermanentStorage]");return!0})}catch(c){log("Corrupted data.","[PermanentStorage]")}},!1);iL=new ImageLoader(DOM.imageLoader,
init,process);return!0});
var DOM={body:$("body"),canvas:$("canvas"),imageLoader:$("#image-loader")},_CAN=DOM.canvas;_CAN.width=_CAN.height=1E3;var _CON=_CAN.getContext("2d"),iL,filterManager,process=function(){},exec=!1,last,Controller,CFolder={},init,initialized=!1,ControllerRememberer=new PermanentStorage;
ControllerRememberer.fetch(function(f){log("Preset loaded.","[PermanentStorage]");Controller=new dat.GUI({load:JSON.parse(f),preset:"default"});init=function(){last=this.src="front/male/1.jpg";initialized=!0;CFolder.src=Controller.addFolder("Source Picture");Controller.remember(this);CFolder.src.add(this,"src",this._images).listen()};LOADER.init();process=function(){if(initialized&&this instanceof HTMLImageElement){console.time("PROCESS");LOADER.start();this.src!=last&&(reactiveFaceTracking.zones=
[],reactiveFeatureTracking.zones=[],exec=!1,last=this.src);exec||(this.defaultWidth=this.width,this.defaultHeight=this.height,log("Image copied","[Canvas]"),exec=!0);_CON.clearRect(0,0,_CAN.width,_CAN.height);filterManager.get("resolution").apply();filterManager.get("contrast").apply();filterManager.get("grayscale").apply();filterManager.get("sobel").apply();filterManager.get("gaussian").apply();filterManager.get("canny").apply();var a,b,c,d,e;for(a in reactiveFeatureTracking.zones)b=reactiveFeatureTracking.zones[a].x*
_CAN.width,c=reactiveFeatureTracking.zones[a].y*_CAN.height,d=reactiveFeatureTracking.zones[a].w*_CAN.width,e=reactiveFeatureTracking.zones[a].h*_CAN.height,_CON.lineWidth=5,_CON.strokeStyle="#f00",_CON.strokeRect(b,c,d,e);for(a in reactiveFaceTracking.zones)b=reactiveFaceTracking.zones[a].x*_CAN.width,c=reactiveFaceTracking.zones[a].y*_CAN.height,d=reactiveFaceTracking.zones[a].w*_CAN.width,e=reactiveFaceTracking.zones[a].h*_CAN.height,_CON.lineWidth=5,_CON.strokeStyle="#ff0",_CON.strokeRect(b,c,
d,e);console.timeEnd("PROCESS");LOADER.stop()}};filterManager=new ReactiveFilterManager(DOM.imageLoader,_CAN,process);filterManager.add("feature_tracking",reactiveFeatureTracking);filterManager.add("face_tracking",reactiveFaceTracking);filterManager.add("resolution",reactiveResolution);filterManager.add("contrast",reactiveContrast);filterManager.add("grayscale",reactiveGrayscale);filterManager.add("sobel",reactiveSobel);filterManager.add("gaussian",reactiveGaussianBlur);filterManager.add("canny",
reactiveCanny);filterManager.add("haar_face",reactiveHaarFace);Controller.remember(filterManager.get("face_tracking"));Controller.remember(filterManager.get("feature_tracking"));Controller.remember(filterManager.get("resolution"));Controller.remember(filterManager.get("contrast"));Controller.remember(filterManager.get("grayscale"));Controller.remember(filterManager.get("sobel"));Controller.remember(filterManager.get("canny"));Controller.remember(filterManager.get("gaussian"));Controller.remember(filterManager.get("haar_face"));
CFolder.custom=Controller.addFolder("custom");CFolder.resolution=CFolder.custom.addFolder("Image Resolution");CFolder.resolution.add(filterManager.get("resolution"),"width",0,2).step(.1);CFolder.resolution.add(filterManager.get("resolution"),"height",0,2).step(.1);CFolder.basic=CFolder.custom.addFolder("Basic Image Processing");CFolder.basic.add(filterManager.get("contrast"),"contrast",0,100);CFolder.basic.add(filterManager.get("grayscale"),"grayscale");CFolder.tracking=Controller.addFolder("Tracking.js");
CFolder.face_tracking=CFolder.tracking.addFolder("Face tracking");CFolder.face_tracking.add(filterManager.get("face_tracking"),"apply");CFolder.face_tracking.add(filterManager.get("face_tracking"),"initial_scale",1,10).step(.5);CFolder.face_tracking.add(filterManager.get("face_tracking"),"step_size",-.1,5).step(.1);CFolder.face_tracking.add(filterManager.get("face_tracking"),"edges_density",.1,.5).step(.01);CFolder.feature_tracking=CFolder.tracking.addFolder("Feature tracking");CFolder.feature_tracking.add(filterManager.get("feature_tracking"),
"apply");CFolder.feature_tracking.add(filterManager.get("feature_tracking"),"initial_scale",1,10).step(.5);CFolder.feature_tracking.add(filterManager.get("feature_tracking"),"step_size",-.1,5).step(.1);CFolder.feature_tracking.add(filterManager.get("feature_tracking"),"edges_density",.1,.5).step(.01);CFolder.jsfeat=Controller.addFolder("jsfeat");CFolder.haar_face=CFolder.jsfeat.addFolder("Haar Face Detection");CFolder.haar_face.add(filterManager.get("haar_face"),"apply");CFolder.haar_face.add(filterManager.get("haar_face"),
"min_scale",1,4).step(.1);CFolder.haar_face.add(filterManager.get("haar_face"),"scale_factor",1.1,2).step(.025);CFolder.haar_face.add(filterManager.get("haar_face"),"equalize_histogram");CFolder.haar_face.add(filterManager.get("haar_face"),"use_canny");CFolder.haar_face.add(filterManager.get("haar_face"),"edges_density",.01,1).step(.005);CFolder.gaussian=CFolder.jsfeat.addFolder("Gaussian Blur");CFolder.gaussian.add(filterManager.get("gaussian"),"active");CFolder.gaussian.add(filterManager.get("gaussian"),
"sigma",0,10).step(.5);CFolder.gaussian.add(filterManager.get("gaussian"),"radius",1,11).step(1);CFolder.sobel=CFolder.jsfeat.addFolder("Sobel Filter");CFolder.sobel.add(filterManager.get("sobel"),"sobelActive");CFolder.canny=CFolder.jsfeat.addFolder("Canny Filter");CFolder.canny.add(filterManager.get("canny"),"active");CFolder.canny.add(filterManager.get("canny"),"radius",0,4).step(1);CFolder.canny.add(filterManager.get("canny"),"low_threshold",1,127).step(1);CFolder.canny.add(filterManager.get("canny"),
"high_threshold",1,127).step(1);CFolder.process=Controller.addFolder("Process");CFolder.process.add({render:process},"render");Controller.__save_row.children[2].addEventListener("click",function(){Controller.save();try{var a=JSON.stringify(Controller.getSaveObject());ControllerRememberer.store(a,function(){log("dat.GUI preset stored.","[PermanentStorage]");return!0})}catch(b){log("Corrupted data.","[PermanentStorage]")}},!1);iL=new ImageLoader(DOM.imageLoader,init,process);return!0});

View File

@ -1 +1 @@
{"preset":"default","remembered":{"default":{"0":{"initial_scale":1.9,"step_size":1,"edges_density":0.1},"1":{"width":1,"height":1},"2":{"contrast":0},"3":{"grayscale":false},"4":{"sobelActive":false},"5":{"active":false,"radius":3,"low_threshold":1,"high_threshold":1},"6":{"active":false,"sigma":0,"radius":3},"7":{"min_scale":1.1,"scale_factor":1.15,"equalize_histogram":true,"use_canny":false,"edges_density":0.13},"8":{"src":"front/male/3.png"}}},"closed":false,"folders":{"Face Tracking":{"preset":"Default","closed":true,"folders":{}},"Haar Face Detection":{"preset":"Default","closed":true,"folders":{}},"Image Resolution":{"preset":"Default","closed":true,"folders":{}},"Basic Image Processing":{"preset":"Default","closed":true,"folders":{}},"Gaussian Blur":{"preset":"Default","closed":true,"folders":{}},"Sobel Filter":{"preset":"Default","closed":true,"folders":{}},"Canny Filter":{"preset":"Default","closed":true,"folders":{}},"Process":{"preset":"Default","closed":true,"folders":{}},"Source Picture":{"preset":"Default","closed":false,"folders":{}}}}
{"preset":"perfect2 []","remembered":{"default":{"0":{"initial_scale":1.9,"step_size":1,"edges_density":0.1},"1":{"width":1,"height":1},"2":{"contrast":0},"3":{"grayscale":false},"4":{"sobelActive":false},"5":{"active":false,"radius":3,"low_threshold":1,"high_threshold":1},"6":{"active":false,"sigma":0,"radius":3},"7":{"min_scale":1.1,"scale_factor":1.15,"equalize_histogram":true,"use_canny":false,"edges_density":0.13},"8":{"src":"front/male/3.png"}},"perfect []":{"0":{"initial_scale":2,"step_size":1,"edges_density":0.1},"1":{"initial_scale":1,"step_size":2.1,"edges_density":0.1},"2":{"width":1,"height":1},"3":{"contrast":0},"4":{"grayscale":false},"5":{"sobelActive":false},"6":{"active":false,"radius":3,"low_threshold":1,"high_threshold":1},"7":{"active":false,"sigma":0,"radius":3},"8":{"min_scale":1.1,"scale_factor":1.1500000000000001,"equalize_histogram":true,"use_canny":false,"edges_density":0.13},"9":{"src":"front/male/3.png"}},"perfect2 []":{"0":{"initial_scale":2,"step_size":1,"edges_density":0.1},"1":{"initial_scale":2,"step_size":2.3000000000000003,"edges_density":0.23},"2":{"width":1,"height":1},"3":{"contrast":0},"4":{"grayscale":false},"5":{"sobelActive":false},"6":{"active":false,"radius":3,"low_threshold":1,"high_threshold":1},"7":{"active":false,"sigma":0,"radius":3},"8":{"min_scale":1.1,"scale_factor":1.1500000000000001,"equalize_histogram":true,"use_canny":false,"edges_density":0.13},"9":{"src":"front/male/1.jpg"}}},"closed":false,"folders":{"custom":{"preset":"Default","closed":true,"folders":{"Image Resolution":{"preset":"Default","closed":true,"folders":{}},"Basic Image Processing":{"preset":"Default","closed":true,"folders":{}}}},"Tracking.js":{"preset":"Default","closed":false,"folders":{"Face tracking":{"preset":"Default","closed":true,"folders":{}},"Feature tracking":{"preset":"Default","closed":false,"folders":{}}}},"jsfeat":{"preset":"Default","closed":true,"folders":{"Haar Face Detection":{"preset":"Default","closed":true,"folders":{}},"Gaussian Blur":{"preset":"Default","closed":true,"folders":{}},"Sobel Filter":{"preset":"Default","closed":true,"folders":{}},"Canny Filter":{"preset":"Default","closed":true,"folders":{}}}},"Process":{"preset":"Default","closed":true,"folders":{}},"Source Picture":{"preset":"Default","closed":false,"folders":{}}}}