X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=BenMorrow.pde;h=9314c3ce44318661de3af7095c8b0eaa48a259a3;hb=e27a8652bec75b053fbc2a10d0757f0da7ca4766;hp=8b2b4f55ef47f4bb30d2fe103235c8de2a39d823;hpb=a1d396e5e60b812d1b7d0f250c7eff6a57706024;p=SugarCubes.git diff --git a/BenMorrow.pde b/BenMorrow.pde old mode 100644 new mode 100755 index 8b2b4f5..9314c3c --- a/BenMorrow.pde +++ b/BenMorrow.pde @@ -116,9 +116,10 @@ class GranimTestPattern2 extends GranimPattern class DriveableCrossSections extends CrossSections { - BasicParameter xd = new BasicParameter("XD", 1.0); - BasicParameter yd = new BasicParameter("YD", 1.0); - BasicParameter zd = new BasicParameter("ZD", 1.0); + BasicParameter xd; + BasicParameter yd; + BasicParameter zd; + BasicParameter mode; DriveableCrossSections(GLucose glucose) { super(glucose); @@ -126,27 +127,60 @@ class DriveableCrossSections extends CrossSections public void addParams() { + mode = new BasicParameter("Mode", 0.0); + xd = new BasicParameter("XD", 0.0); + yd = new BasicParameter("YD", 0.0); + zd = new BasicParameter("ZD", 0.0); + addParameter(mode); addParameter(xd); addParameter(yd); addParameter(zd); - addParameter(xr); - addParameter(yr); - addParameter(zr); - addParameter(xw); - addParameter(xl); - addParameter(yl); - addParameter(zl); - addParameter(yw); - addParameter(zw); + + super.addParams(); + } + + public void onParameterChanged(LXParameter p) { + if(p == mode) + { + if(interactive()) + { + copyValuesToKnobs(); + }else{ + copyKnobsToValues(); + } + } + } + + void copyValuesToKnobs() + { + xd.setValue(x.getValue()/200); + yd.setValue(y.getValue()/115); + zd.setValue(z.getValue()/100); } + void copyKnobsToValues() + { + x.setValue(xd.getValue()*200); + y.setValue(yd.getValue()*115); + z.setValue(zd.getValue()*100); + } + boolean interactive() + { + return Math.round(mode.getValuef())>0.5; + } public void updateXYZVals() { - xv = xd.getValuef(); - yv = yd.getValuef(); - zv = zd.getValuef(); + if(interactive()) + { + xv = xd.getValuef()*200; + yv = yd.getValuef()*115; + zv = zd.getValuef()*100; + }else{ + super.updateXYZVals(); + copyValuesToKnobs(); + } } -} \ No newline at end of file +}