X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=BenMorrow.pde;h=e610155120eced021237936582d2e4758d8c477e;hb=ae80d37a7fc19c8bce45067cdcf4e041808f9339;hp=8b2b4f55ef47f4bb30d2fe103235c8de2a39d823;hpb=a1d396e5e60b812d1b7d0f250c7eff6a57706024;p=SugarCubes.git diff --git a/BenMorrow.pde b/BenMorrow.pde index 8b2b4f5..e610155 100644 --- 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