//-/////////////////////////////////////////////////////////////////////////////
//- //
//- This file is part of the Buildbotics firmware. //
//- //
//- Copyright (c) 2015 - 2018, Buildbotics LLC //
//- All rights reserved. //
//- //
//- This file ("the software") is free software: you can redistribute it //
//- and/or modify it under the terms of the GNU General Public License, //
//- version 2 as published by the Free Software Foundation. You should //
//- have received a copy of the GNU General Public License, version 2 //
//- along with the software. If not, see . //
//- //
//- The software 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 //
//- Lesser General Public License for more details. //
//- //
//- You should have received a copy of the GNU Lesser General Public //
//- License along with the software. If not, see //
//- . //
//- //
//- For information regarding this software email: //
//- "Joseph Coffland" //
//- //
//-/////////////////////////////////////////////////////////////////////////////
script#axis-control-template(type="text/x-template")
svg(xmlns="http://www.w3.org/2000/svg",
xmlns:xlink="http://www.w3.org/1999/xlink",
width="100%", viewBox="0 0 300 300")
defs
lineargradient#red
stop(offset="0", stop-color="#d26969")
stop(offset="1", stop-color="#ff7f7f")
lineargradient#green
stop(offset="0", stop-color="#69d269")
stop(offset="1", stop-color="#7fff7f")
lineargradient#blue
stop(offset="0", stop-color="#6969d2")
stop(offset="1", stop-color="#7f7fff")
lineargradient#orange
stop(offset="0", stop-color="#d29d69")
stop(offset="1", stop-color="#ffbf7f")
lineargradient#cyan
stop(offset="0", stop-color="#69d2d2")
stop(offset="1", stop-color="#7fffff")
lineargradient#purple
stop(offset="0", stop-color="#d269d2")
stop(offset="1", stop-color="#ff7fff")
each color in 'red green blue orange cyan purple'.split(' ')
lineargradient(xlink:href="#" + color, id=color + "-1",
gradientunits="userSpaceOnUse", gradienttransform="rotate(180 7 5)",
x1="0", y1="0", x2="15", y2="10")
lineargradient(xlink:href="#" + color, id=color + "-2",
gradientunits="userSpaceOnUse", x1="10", y1="10", x2="40", y2="40")
filter#shadow(x="-50%" y="-50%" width="200%" height="200%")
feOffset(in="SourceAlpha", dx="3", dy="3")
feComponentTransfer
feFuncR(type="discrete", tableValues="0.05")
feFuncG(type="discrete", tableValues="0.05")
feFuncB(type="discrete", tableValues="0.05")
feGaussianBlur(result="shadow", stdDeviation="5")
feBlend(in="SourceGraphic", in2="shadow", mode="normal")
path#pie-1(d="M107,0 83,0 0,83 0,107A107,107 0 0 0 107,0Z")
path#pie-2(d="M83,0 59,0 0,59 0,83A83,83 0 0 0 83,0Z")
path#pie-3(d="M59,0 35,0 0,35 0,59A59,59 0 0 0 59,0Z")
path#pie-4(d="M35,0 0,0 0,35A35,35 0 0 0 35,0Z")
path#arrow(d="M-16,9 0,9 0,17 17,0 0,-17 0,-9 -16,-9 -16,9Z")
circle#centrebutton(cx="0",cy="0",r="15",fill="green")
g(transform="scale(1.0, 1.0)")
// 100% ring
g.ring(fill="#9f9f9f", filter="url(#shadow)")
use.button(xlink:href="#pie-1", v-if="enabled[0]",
transform="translate(134 121) rotate(-45)",
@mousedown="jog(0, 3, 1)", @mouseup="release(0)",
@touchstart.prevent="jog(0, 3, 1)", @touchend.prevent="release(0)")
use.button(xlink:href="#pie-1", v-if="enabled[0]",
transform="translate(115 121) rotate(135)",
@mousedown="jog(0, 3, -1)", @mouseup="release(0)",
@touchstart.prevent="jog(0, 3, -1)", @touchend.prevent="release(0)")
g.button(v-if="enabled[1]",
@mousedown="jog(1, 3, 1)", @mouseup="release(1)",
@touchstart.prevent="jog(1, 3, 1)", @touchend.prevent="release(1)")
use.button(xlink:href="#pie-1",
transform="translate(124 111) rotate(-135)")
text(x="125", y="21", transform="rotate(22 125 125)") {{text(3)}}
text(x="125", y="21", transform="rotate(-22 125 125)") {{text(3)}}
use.button(xlink:href="#pie-1", fill="transparent",
transform="translate(124 111) rotate(-135)")
use.button(xlink:href="#pie-1", v-if="enabled[1]",
transform="translate(124 130) rotate(45)",
@mousedown="jog(1, 3, -1)", @mouseup="release(1)",
@touchstart.prevent="jog(1, 3, -1)", @touchend.prevent="release(1)")
// 50% ring
g.ring(fill="#c5c5c5", filter="url(#shadow)")
use.button(xlink:href="#pie-2", v-if="enabled[0]",
transform="translate(134 121) rotate(-45)",
@mousedown="jog(0, 2, 1)", @mouseup="release(0)",
@touchstart.prevent="jog(0, 2, 1)", @touchend.prevent="release(0)")
use.button(xlink:href="#pie-2", v-if="enabled[0]",
transform="translate(115 121) rotate(135)",
@mousedown="jog(0, 2, -1)", @mouseup="release(0)",
@touchstart.prevent="jog(0, 2, -1)", @touchend.prevent="release(0)")
g.button(v-if="enabled[1]",
@mousedown="jog(1, 2, 1)", @mouseup="release(1)",
@touchstart.prevent="jog(1, 2, 1)", @touchend.prevent="release(1)")
use.button(xlink:href="#pie-2",
transform="translate(124 111) rotate(-135)")
text(x="125", y="48") {{text(2)}}
use.button(xlink:href="#pie-2", fill="transparent",
transform="translate(124 111) rotate(-135)")
use.button(xlink:href="#pie-2", v-if="enabled[1]",
transform="translate(124 130) rotate(45)",
@mousedown="jog(1, 2, -1)", @mouseup="release(1)",
@touchstart.prevent="jog(1, 2, -1)", @touchend.prevent="release(1)")
// 25% ring
g.ring(fill="#e2e2e2", filter="url(#shadow)")
use.button(xlink:href="#pie-3", v-if="enabled[0]",
transform="translate(134 121) rotate(-45)",
@mousedown="jog(0, 1, 1)", @mouseup="release(0)",
@touchstart.prevent="jog(0, 1, 1)", @touchend.prevent="release(0)")
use.button(xlink:href="#pie-3", v-if="enabled[0]",
transform="translate(115 121) rotate(135)",
@mousedown="jog(0, 1, -1)", @mouseup="release(0)",
@touchstart.prevent="jog(0, 1, -1)", @touchend.prevent="release(0)")
g.button(v-if="enabled[1]",
@mousedown="jog(1, 1, 1)", @mouseup="release(1)",
@touchstart.prevent="jog(1, 1, 1)", @touchend.prevent="release(1)")
use.button(xlink:href="#pie-3",
transform="translate(124 111) rotate(-135)")
text(x="125", y="69") {{text(1)}}
use.button(xlink:href="#pie-3", fill="transparent",
transform="translate(124 111) rotate(-135)")
use.button(xlink:href="#pie-3", v-if="enabled[1]",
transform="translate(124 130) rotate(45)",
@mousedown="jog(1, 1, -1)", @mouseup="release(1)",
@touchstart.prevent="jog(1, 1, -1)", @touchend.prevent="release(1)")
// 10% ring
g.ring(fill="#f7f7f7", filter="url(#shadow)")
use.button(xlink:href="#pie-4", v-if="enabled[0]",
transform="translate(134 121) rotate(-45)",
@mousedown="jog(0, 0, 1)", @mouseup="release(0)",
@touchstart.prevent="jog(0, 0, 1)", @touchend.prevent="release(0)")
use.button(xlink:href="#pie-4", v-if="enabled[0]",
transform="translate(115 121) rotate(135)",
@mousedown="jog(0, 0, -1)", @mouseup="release(0)",
@touchstart.prevent="jog(0, 0, -1)", @touchend.prevent="release(0)")
g.button(v-if="enabled[1]",
@mousedown="jog(1, 0, 1)", @mouseup="release(1)",
@touchstart.prevent="jog(1, 0, 1)", @touchend.prevent="release(1)")
use.button(xlink:href="#pie-4",
transform="translate(124 111) rotate(-135)")
text(x="125", y="91") {{text(0)}}
use.button(xlink:href="#pie-4", fill="transparent",
transform="translate(124 111) rotate(-135)")
use.button(xlink:href="#pie-4", v-if="enabled[1]",
transform="translate(124 130) rotate(45)",
@mousedown="jog(1, 0, -1)", @mouseup="release(1)",
@touchstart.prevent="jog(1, 0, -1)", @touchend.prevent="release(1)")
// +A
g.button.arrow(v-if="enabled[0]", transform="translate(230 120)",
@mousedown="jog(0, 3, 1)", @mouseup="release(0)",
@touchstart.prevent="jog(0, 3, 1)", @touchend.prevent="release(0)")
use(xlink:href="#arrow", fill="url(#{{colors[0]}}-1)")
text(x="-12", y="5", font-size="14", textLength="21") +{{axes[0]}}
// -A
g.button.arrow(v-if="enabled[0]", transform="translate(20 120)",
@mousedown="jog(0, 3, -1)", @mouseup="release(0)",
@touchstart.prevent="jog(0, 3, -1)", @touchend.prevent="release(0)")
use(xlink:href="#arrow", fill="url(#{{colors[0]}}-1)",
transform="rotate(180)")
text(x="-8", y="5", font-size="14", textLength="16") -{{axes[0]}}
// +B
g.button.arrow(v-if="enabled[1]", transform="translate(125, 18)",
@mousedown="jog(1, 3, 1)", @mouseup="release(1)",
@touchstart.prevent="jog(1, 3, 1)", @touchend.prevent="release(1)")
use(xlink:href="#arrow", fill="url(#{{colors[1]}}-1)",
transform="rotate(-90)")
text(x="-8", y="5", font-size="12", textLength="16") +{{axes[1]}}
// -B
g.button.arrow(v-if="enabled[1]", transform="translate(125, 225)",
@mousedown="jog(1, 3, -1)", @mouseup="release(1)",
@touchstart.prevent="jog(1, 3, -1)", @touchend.prevent="release(1)")
use(xlink:href="#arrow", fill="url(#{{colors[1]}}-1)",
transform="rotate(90)")
text(x="-7", y="5", font-size="12", textLength="14") -{{axes[1]}}
// Return to zero button
g.button.cicle(@mouseup="back2zero(0,1)",transform="translate(124,121)")
use(xlink:href="#centrebutton")
text(x="-12",y="3",font-size="9") {{axes[0]}}0{{axes[1]}}0