From 3d99c146a0e9d1e32208ef7f70350952411bce90 Mon Sep 17 00:00:00 2001 From: Rick Companje Date: Thu, 9 Oct 2014 16:24:24 +0200 Subject: [PATCH] added a button for importing photos for tracing by hand --- js/AddScanDialog.js | 41 +++++++++++++++++++++++++++++++++++ js/Keyboard.js | 1 + js/buttonbehaviors.js | 9 ++++++++ js/gcodeGenerating.js | 1 + js/main.js | 1 + less/base_centerpanel.less | 16 ++++++++++++++ less/buttons.less | 16 +++++++++++--- less/popup.less | 15 +++++++++++++ www/img/buttons/btnClose.png | Bin 0 -> 1374 bytes www/img/buttons/btnGuide.png | Bin 0 -> 14838 bytes www/img/buttons/btnScan.png | Bin 0 -> 14633 bytes www/index.html | 14 +++++++++++- 12 files changed, 110 insertions(+), 4 deletions(-) create mode 100644 js/AddScanDialog.js create mode 100644 www/img/buttons/btnClose.png create mode 100644 www/img/buttons/btnGuide.png create mode 100644 www/img/buttons/btnScan.png diff --git a/js/AddScanDialog.js b/js/AddScanDialog.js new file mode 100644 index 0000000..4e59ccf --- /dev/null +++ b/js/AddScanDialog.js @@ -0,0 +1,41 @@ +//var shapeResolution=3; +var shapePopup; + +function initScanDialog() { + scanPopup = new Popup($("#popupScan"), $("#popupMask")); + $("#btnScanOk").on("onButtonClick", onBtnScanOk); + $("#btnCloseScan").on("onButtonClick", onBtnCloseScan); +} + +function onBtnCloseScan() { + $('#imgGuide').hide(); + $('#btnCloseScan').hide(); +} + +function onBtnScanOk() { + scanPopup.commit(); +} + +function showScanDialog() { + scanPopup.open(); +} + +function readURL(input) { + + if (input.files && input.files[0]) { + var reader = new FileReader(); + + reader.onload = function (e) { + $('#imgGuide').attr('src', e.target.result); + $('#imgGuide').show(); + $('#btnCloseScan').show(); + scanPopup.commit(); + } + + reader.readAsDataURL(input.files[0]); + } +} + +$("#fileScan").change(function(){ + readURL(this); +}); diff --git a/js/Keyboard.js b/js/Keyboard.js index 825e514..a8c9e10 100644 --- a/js/Keyboard.js +++ b/js/Keyboard.js @@ -66,6 +66,7 @@ function initKeyboard() { case '|': resetTwist(); break; case 't': showWordArtDialog(); break; case 'i': showShapeDialog(); break; + case 'T': showScanDialog(); break; case ';': moveShape(-5,0); break; case '\'': moveShape(5,0); break; diff --git a/js/buttonbehaviors.js b/js/buttonbehaviors.js index 0d935a4..0f0238c 100644 --- a/js/buttonbehaviors.js +++ b/js/buttonbehaviors.js @@ -13,6 +13,7 @@ var btnSettings, btnWordArt; var btnToggleEdit, buttonGroupEdit, btnZoom, btnMove, btnRotate; var btnToggleVerticalShapes, btnHeight, btnTwist, btnShape, btnConv, btnStraight, btnSine, btnDiv; var buttonGroupAdd, popupWordArt; +var btnScan, popupScan; var state; var prevState; @@ -43,8 +44,10 @@ function initButtonBehavior() { buttonGroupAdd = $("#buttonGroupAdd"); btnShape = new Button("#btnShape"); btnWordArt = new Button("#btnWordArt"); + btnScan = new Button("#btnScan"); popupWordArt = $("#popupWordArt"); popupShape = $("#popupShape"); + popupScan = $("#popupScan"); popupMask = $("#popupMask"); logoPanel = $("#logopanel"); btnToggleEdit = new Button("#btnToggleEdit"); @@ -69,6 +72,7 @@ function initButtonBehavior() { btnAdd.on("onButtonClick", onBtnAdd); btnWordArt.on("onButtonClick", onBtnWordArt); btnShape.on("onButtonClick", onBtnShape); + btnScan.on("onButtonClick", onBtnScan); btnPrint.on("onButtonClick", print); btnStop.on("onButtonClick", stopPrint); btnSave.on("onButtonClick", saveSketch); @@ -191,6 +195,11 @@ function initButtonBehavior() { buttonGroupAdd.fadeOut(); } + function onBtnScan(e) { + showScanDialog(); + buttonGroupAdd.fadeOut(); + } + btnSettings.on("onButtonClick", openSettingsWindow); // 29-okt-2013 - we're not doing help for smartphones at the moment diff --git a/js/gcodeGenerating.js b/js/gcodeGenerating.js index 93f4cba..d01a4d3 100644 --- a/js/gcodeGenerating.js +++ b/js/gcodeGenerating.js @@ -218,6 +218,7 @@ function subsituteVariables(gcode) { case "makerbot_replicator2x": printerType = "r2x"; break; case "makerbot_thingomatic": printerType = "t6"; break; case "makerbot_generic": printerType = "r2"; break; + case "_3Dison_plus": printerType = "r2"; break; } var heatedBedReplacement = (heatedbed)? "" : ";"; diff --git a/js/main.js b/js/main.js index 8f8f9b1..1bed917 100644 --- a/js/main.js +++ b/js/main.js @@ -74,6 +74,7 @@ $(function() { // initVerticalShapes(); initWordArt(); initShapeDialog(); + initScanDialog(); disableDragging(); diff --git a/less/base_centerpanel.less b/less/base_centerpanel.less index 56cf46a..2131fee 100644 --- a/less/base_centerpanel.less +++ b/less/base_centerpanel.less @@ -127,4 +127,20 @@ } +#mycanvas { + position: absolute; +} +#imgGuide { + // z-index: -1000; + position: absolute; + // -webkit-filter: contrast(400%); + //-webkit-filter: brightness(100%); + // opacity: 50%; + opacity: 0.4; + filter: alpha(opacity=40); + pointer-events:none; + max-width: 100%; + max-height: 100%; + width: 100%; +} diff --git a/less/buttons.less b/less/buttons.less index 1c4f032..388186d 100644 --- a/less/buttons.less +++ b/less/buttons.less @@ -130,6 +130,16 @@ left: 4px; position: absolute; } + +#btnCloseScan { + top: 4px; + right: 8px; + position: absolute; + display: none; + opacity: 0.7; + filter: alpha(opacity=70); +} + #buttonGroupEdit { position: absolute; top: 5px; @@ -163,10 +173,10 @@ margin-top: -60%; margin-left: 70%; width: 200%; - max-width: 140px; /*fixme: can this grow based on it's content?*/ + max-width: 240px; /*fixme: can this grow based on it's content?*/ padding: 5% 0 5% 5%; - #btnWordArt, #btnShape { - width: 45%; + #btnWordArt, #btnShape, #btnScan { + width: 30%; } } diff --git a/less/popup.less b/less/popup.less index 93646b8..38700d0 100644 --- a/less/popup.less +++ b/less/popup.less @@ -47,6 +47,21 @@ } } +#popupScan { + width: 330px; + height:210px; + margin-left: -165px; + margin-top: -105px; + + input[type="file"] { + width: 98%; + } + #btnScanOk { + float: right; + margin: 15px 0 0 0; + } +} + #popupShape { width: 310px; margin-left: -155px; diff --git a/www/img/buttons/btnClose.png b/www/img/buttons/btnClose.png new file mode 100644 index 0000000000000000000000000000000000000000..290ae3fe41b97c4cb486510896cd46cabf8e5936 GIT binary patch literal 1374 zcmV-k1)=(hP)+f}D-Rrl$BCIGWI~5cZz}s3`S(!3{UM=#k<;l6Zxje}2?JZnfT=36_jOJWl zUuz|htVT|PGb<*AhKA|`Y;SKvV`C$XkB{@--e>3M=P)}v3w?ck+(#I-O(Oq8jr>bF z!`H80>))iew-;PpT_Gtci7%?FtE)T2XJ=>7-`@|Zsi_bW5(3@b-Eebr!=J6Lu7bI_ zxtzeaGC3(-jd&OzA8$~`si`SQOiTn%PftimNrAz^LEZ*ol+4J;2qY&bgRQMC#KgqF z=;)|Ho3gU9Wb)r+@=(NI;$drRtHE0xA0I<=b2Eg6g@KKY4Wy-|@yc9YUUGt&nHj!5 zyu7?1JUpDwB_G*dy?P~+lW4ss$dknb+M}DBn|I2(x3>p%b#*)eBFWCqhRMlESX^9$ zqM{;jadCm*;9#h)uUFN9lamwPIw^sV&2{~D5smlp@nJaWj!fCv*)iO^{QsJo8rIp_ z$rDHMVO?Ea3@gI0B`hv3j{mPTOG``U=jX?^wzkC37lPbgj5s+t-K)iv0QR2k@9(qP z+FI7u*2YXtO_`OI70bxTVCm`Un*Joml6_>VJl83hmN_^$u-MpG78n@FaBDFvF>`Zs zW4N7|ySuyQ@oZ*hCV#yZOh;nm;NU=$9DB#G*KB!tSzpeLjSb$0wY4=(U#gg7*MfXg zjL^w+czCGlOmB*-mf@meZ{ECN(b3Ti_ddft%wD{B!Elwc-Q8VPUsOHisW&86`xD)5 zgs;SxFJG#v7mX(*Bmnjmo<4obw+{w{l9Cee@bG|ufB>kfssdb8cl=2!uq9%pUm~mp zxjWB9N1m6LXW&R$P5YWe#NOT>A|oTAy}g}pAF_po1<23O=OX0q?+?}0)qoW+h*4f% zE^o78rM#wzhmRgT0xYZEk@jt6WhHofdqYG-1T-}@0k+0K;ijjjc>+`w((<99A-%#; zk~A)n|EMIVW%{R>Kr$*T-1Fzpxw5siv=|TzBORZZn1JHqV#v(QUZ)a6cc@5DkGIwjaaV0`uaMTTcL84w1T)s>oPGSPi|;vFgRq4InTvu*3r?SJk99* zu+k#`K)3buPNk)#1{VZltfHbq?MC}V^BSf5PCp86WyhePAbx1zP4!+vY6&eyI($@! zvy~S}t*dhYezYJyk(0yi#4tF+J={Ygg!o)7mS))>Fj|aX>00q2{SeUU1N|D=p>qlG g3u4-sVE+g(0CgwnbPHz*N&o-=07*qoM6N<$f^93DlK=n! literal 0 HcmV?d00001 diff --git a/www/img/buttons/btnGuide.png b/www/img/buttons/btnGuide.png new file mode 100644 index 0000000000000000000000000000000000000000..c64ded240a56faf2b8daf3eb9e4f1e2a5a732caa GIT binary patch literal 14838 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 literal 0 HcmV?d00001 diff --git a/www/img/buttons/btnScan.png b/www/img/buttons/btnScan.png new file mode 100644 index 0000000000000000000000000000000000000000..3ce983d4342c6c854cc54e2d0461ff571ee6b191 GIT binary patch literal 14633 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 literal 0 HcmV?d00001 diff --git a/www/index.html b/www/index.html index cab8fab..54a2400 100644 --- a/www/index.html +++ b/www/index.html @@ -40,6 +40,7 @@
+
@@ -75,10 +76,12 @@
-
+
+ +
@@ -125,6 +128,15 @@
+ +