//* comment *//
|
|
|
|
Copyright (C) 2017 Hitesh Agarwal
|
|
|
|
This program is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
|
|
//* arg-globals *//
|
|
var block = logo.blocks.blockList[blk];
|
|
var conns = block.connections;
|
|
|
|
//* block-globals *//
|
|
var convertBlock = function (name, label, arg1, arg2) {
|
|
var protoblock = new ProtoBlock(name);
|
|
protoblock.palette = palettes.dict['converter'];
|
|
blocks.protoBlockDict[name] = protoblock;
|
|
protoblock.staticLabels.push(label, _('number'), _('unit to convert'));
|
|
protoblock.adjustWidthToLabel();
|
|
protoblock.twoArgMathBlock();
|
|
protoblock.dockTypes[2] = 'anyin';
|
|
protoblock.defaults.push(arg1);
|
|
protoblock.defaults.push(arg2);
|
|
};
|
|
|
|
|
|
|
|
//* block:from_mm *//
|
|
convertBlock('from_mm', 'from mm', 1000, 'mm');
|
|
|
|
//* arg:from_mm *//
|
|
var arg = logo.parseArg(logo, turtle, conns[1]);
|
|
var unit = logo.parseArg(logo, turtle, conns[2]);
|
|
|
|
switch (unit) {
|
|
case 'mm':
|
|
block.value = (arg);
|
|
break;
|
|
case'cm':
|
|
block.value = (arg*1/10);
|
|
break;
|
|
case 'm':
|
|
block.value = (arg*1/1000);
|
|
break;
|
|
case 'km':
|
|
block.value = (arg*1/1000000);
|
|
break;
|
|
case 'in':
|
|
block.value = (arg*1/25.4);
|
|
break;
|
|
case 'ft':
|
|
block.value = (arg*1/304.8);
|
|
break;
|
|
case 'yd':
|
|
block.value = (arg*1/914.4);
|
|
break;
|
|
case 'mi':
|
|
block.value = (arg*1/1609344);
|
|
break;
|
|
case 'nmi':
|
|
block.value = (arg*1/1852000);
|
|
break;
|
|
}
|
|
|
|
|
|
|
|
//* block:from_cm *//
|
|
convertBlock('from_cm', 'from cm', 1000, 'cm');
|
|
|
|
//* arg:from_cm *//
|
|
var arg = logo.parseArg(logo, turtle, conns[1]);
|
|
var unit = logo.parseArg(logo, turtle, conns[2]);
|
|
switch (unit){
|
|
case 'mm':
|
|
block.value = (arg*1/0.1);
|
|
break;
|
|
case 'cm':
|
|
block.value = (arg);
|
|
break;
|
|
case 'm':
|
|
block.value = (arg*1/100);
|
|
break;
|
|
case 'km':
|
|
block.value = (arg*1/100000);
|
|
break;
|
|
case 'in':
|
|
block.value = (arg*1/2.54);
|
|
break;
|
|
case 'ft':
|
|
block.value = (arg*1/30.48);
|
|
break;
|
|
case 'yd':
|
|
block.value = (arg*1/91.44);
|
|
break;
|
|
case 'mi':
|
|
block.value = (arg*1/160934.4);
|
|
break;
|
|
case 'nmi':
|
|
block.value = (arg*1/185200);
|
|
break;
|
|
}
|
|
|
|
|
|
|
|
//* block:from_m *//
|
|
convertBlock('from_m', 'from m', 1000, 'm');
|
|
|
|
//* arg:from_m *//
|
|
var arg = logo.parseArg(logo, turtle, conns[1]);
|
|
var unit = logo.parseArg(logo, turtle, conns[2]);
|
|
switch (unit) {
|
|
case 'mm':
|
|
block.value = (arg*1/0.001);
|
|
break;
|
|
case 'cm':
|
|
block.value = (arg*1/0.01);
|
|
break;
|
|
case 'm':
|
|
block.value = (arg*1/1);
|
|
break;
|
|
case 'km':
|
|
block.value = (arg*1/1000);
|
|
break;
|
|
case 'in':
|
|
block.value = (arg*1/0.0254);
|
|
break;
|
|
case 'ft':
|
|
block.value = (arg*1/0.3048);
|
|
break;
|
|
case 'yd':
|
|
block.value = (arg*1/0.9144);
|
|
break;
|
|
case 'mi':
|
|
block.value = (arg*1/1609.344);
|
|
break;
|
|
case 'nmi':
|
|
block.value = (arg*1/1852);
|
|
break;
|
|
}
|
|
|
|
|
|
|
|
//* block:from_km *//
|
|
convertBlock('from_km', 'from km', 1000, 'km');
|
|
|
|
//* arg:from_km *//
|
|
var arg = logo.parseArg(logo, turtle, conns[1]);
|
|
var unit = logo.parseArg(logo, turtle, conns[2]);
|
|
switch (unit) {
|
|
case 'mm':
|
|
block.value = (arg*1/0.000001);
|
|
break;
|
|
case 'cm':
|
|
block.value = (arg*1/0.00001);
|
|
break;
|
|
case 'm':
|
|
block.value = (arg*1/0.001);
|
|
break;
|
|
case 'km':
|
|
block.value = (arg*1/1);
|
|
break;
|
|
case 'in':
|
|
block.value = (arg*1/0.0000254);
|
|
break;
|
|
case 'ft':
|
|
block.value = (arg*1/0.0003048);
|
|
break;
|
|
case 'yd':
|
|
block.value = (arg*1/0.0009144);
|
|
break;
|
|
case 'mi':
|
|
block.value = (arg*1/1.609344);
|
|
break;
|
|
case 'nmi':
|
|
block.value = (arg*1/1.852);
|
|
break;
|
|
}
|
|
|
|
|
|
|
|
//* block:from_in *//
|
|
convertBlock('from_in', 'from in', 1000, 'in');
|
|
|
|
//* arg:from_in *//
|
|
var arg = logo.parseArg(logo, turtle, conns[1]);
|
|
var unit = logo.parseArg(logo, turtle, conns[2]);
|
|
switch (unit) {
|
|
case 'mm':
|
|
block.value = (arg*1/0.039370078740157);
|
|
break;
|
|
case 'cm':
|
|
block.value = (arg*1/0.39370078740157);
|
|
break;
|
|
case 'm':
|
|
block.value = (arg*1/39.370078740157);
|
|
break;
|
|
case 'km':
|
|
block.value = (arg*1/39370.078740157);
|
|
break;
|
|
case 'in':
|
|
block.value = (arg*1/1);
|
|
break;
|
|
case 'ft':
|
|
block.value = (arg*1/12);
|
|
break;
|
|
case 'yd':
|
|
block.value = (arg*1/36);
|
|
break;
|
|
case 'mi':
|
|
block.value = (arg*1/63360);
|
|
break;
|
|
case 'nmi':
|
|
block.value = (arg*1/72913.385826772);
|
|
break;
|
|
}
|
|
|
|
|
|
|
|
//* block:from_ft *//
|
|
convertBlock('from_ft', 'from ft', 1000, 'ft');
|
|
|
|
//* arg:from_ft *//
|
|
var arg = logo.parseArg(logo, turtle, conns[1]);
|
|
var unit = logo.parseArg(logo, turtle, conns[2]);
|
|
switch (unit) {
|
|
case 'mm':
|
|
block.value = (arg*1/0.0032808398950131);
|
|
break;
|
|
case 'cm':
|
|
block.value = (arg*1/0.032808398950131);
|
|
break;
|
|
case 'm':
|
|
block.value = (arg*1/3.2808398950131);
|
|
break;
|
|
case 'km':
|
|
block.value = (arg*1/3280.8398950131 );
|
|
break;
|
|
case 'in':
|
|
block.value = (arg*1/0.083333333333333);
|
|
break;
|
|
case 'ft':
|
|
block.value = (arg*1/1);
|
|
break;
|
|
case 'yd':
|
|
block.value = (arg*1/3);
|
|
break;
|
|
case 'mi':
|
|
block.value = (arg*1/5280);
|
|
break;
|
|
case 'nmi':
|
|
block.value = (arg*1/ 6076.1154855643);
|
|
break;
|
|
}
|
|
|
|
|
|
|
|
//* block:from_yd *//
|
|
convertBlock('from_yd', 'from yd', 1000, 'yd');
|
|
|
|
//* arg:from_yd *//
|
|
var arg = logo.parseArg(logo, turtle, conns[1]);
|
|
var unit = logo.parseArg(logo, turtle, conns[2]);
|
|
switch (unit) {
|
|
case 'mm':
|
|
block.value = (arg*1/0.0010936132983377);
|
|
break;
|
|
case 'cm':
|
|
block.value = (arg*1/0.0.010936132983377);
|
|
break;
|
|
case 'm':
|
|
block.value = (arg*1/1.0936132983377);
|
|
break;
|
|
case 'km':
|
|
block.value = (arg*1/1093.6132983377);
|
|
break;
|
|
case 'in':
|
|
block.value = (arg*1/0.027777777777778);
|
|
break;
|
|
case 'ft':
|
|
block.value = (arg*1/0.33333333333333);
|
|
break;
|
|
case 'yd':
|
|
block.value = (arg*1/1);
|
|
break;
|
|
case 'mi':
|
|
block.value = (arg*1/1760);
|
|
break;
|
|
case 'nmi':
|
|
block.value = (arg*1/ 2025.3718285214);
|
|
break;
|
|
}
|
|
|
|
|
|
|
|
//* block:from_mi *//
|
|
convertBlock('from_mi', 'from mi', 1000, 'mi');
|
|
|
|
//* arg:from_mi *//
|
|
var arg = logo.parseArg(logo, turtle, conns[1]);
|
|
var unit = logo.parseArg(logo, turtle, conns[2]);
|
|
switch (unit) {
|
|
case 'mm':
|
|
block.value = (arg*1/0.00000062137119223733);
|
|
break;
|
|
case 'cm':
|
|
block.value = (arg*1/0.0000062137119223733);
|
|
break;
|
|
case 'm':
|
|
block.value = (arg*1/0.00062137119223733);
|
|
break;
|
|
case 'km':
|
|
block.value = (arg*1/0.62137119223733);
|
|
break;
|
|
case 'in':
|
|
block.value = (arg*1/0.000015782828282828);
|
|
break;
|
|
case 'ft':
|
|
block.value = (arg*1/0.00018939393939394);
|
|
break;
|
|
case 'yd':
|
|
block.value = (arg*1/0.00056818181818182);
|
|
break;
|
|
case 'mi':
|
|
block.value = (arg*1/1);
|
|
break;
|
|
case 'nmi':
|
|
block.value = (arg*1/1.1507794480235);
|
|
break;
|
|
}
|
|
|
|
|
|
|
|
//* block:from_nmi *//
|
|
convertBlock('from_nmi', 'from nmi', 1000, 'nmi');
|
|
|
|
//* arg:from_nmi *//
|
|
var arg = logo.parseArg(logo, turtle, conns[1]);
|
|
var unit = logo.parseArg(logo, turtle, conns[2]);
|
|
switch (unit) {
|
|
case 'mm':
|
|
block.value = (arg*1/0.00000053995680345572);
|
|
break;
|
|
case 'cm':
|
|
block.value = (arg*1/0.0000053995680345572);
|
|
break;
|
|
case 'm':
|
|
block.value = (arg*1/0.00053995680345572);
|
|
break;
|
|
case 'km':
|
|
block.value = (arg*1/0.53995680345572);
|
|
break;
|
|
case 'in':
|
|
block.value = (arg*1/0.000013714902807775);
|
|
break;
|
|
case 'ft':
|
|
block.value = (arg*1/0.0001645788336933);
|
|
break;
|
|
case 'yd':
|
|
block.value = (arg*1/0.00049373650107991);
|
|
break;
|
|
case 'mi':
|
|
block.value = (arg*1/0.86897624190065);
|
|
break;
|
|
case 'nmi':
|
|
block.value = (arg*1/1);
|
|
break;
|
|
}
|
|
|
|
|
|
//* palette-icon:converter *//
|
|
<svg xmlns="http://www.w3.org/2000/svg" width="55" height="55" viewBox="0 0 55 55"><g transform="matrix(1.25 0 0 1.25-7.5-6.25)"><g font-family="Sans" word-spacing="0" line-height="125%" letter-spacing="0" font-size="20"><text x="10" y="10"><tspan x="20" y="35" fill="#fff">len</tspan></text></g></g><g fill="#fff" stroke="#fff"><path d="m10.5 14.5h35"/><path d="m15.5 44.5v-35"/></g></svg>
|
|
|
|
//* palette-fill:converter *// #ff00ff
|
|
//* palette-stroke:converter *// #C700D3
|
|
//* palette-highlight:converter *// #FF9FFF
|
|
//* palette-stroke-highlight:converter *// #000000
|