rsidwell icon

dc_cracklep.java

rsidwell | PRO | 03/21/17 02:14:37 AM UTC | 0 ⭐ | 563 👁️ | Never ⏰ | []
text |

5.55 KB

|

None

|

0 👍

/

0 👎

/*
  JWildfire - an image and animation processor written in Java 
  Copyright (C) 1995-2011 Andreas Maschke
   This is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser 
  General Public License as published by the Free Software Foundation; either version 2.1 of the 
  License, or (at your option) any later version.
   This 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 this software; 
  if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
 package org.jwildfire.create.tina.variation;
 import org.jwildfire.base.Tools;
 public class DCCracklePFunc extends DCCrackleWFFunc {
  private static final long serialVersionUID = 1L;
   public static final String PARAM_PRESET = "preset";
  public static final String PARAM_Z = "z";	// private in class CrackleFunc for some reason
   private static final String[] additionalParamNames = { PARAM_PRESET };
   private int preset = 0;
  private double pcellsize = 1.0;
  private double ppower = 0.2;
  private double pdistort = 0.0;
  private double pscale = 1.0;
  private double pz = 0.0;
   // dc_crackleP_wf by Brad Stefanov and Rick Sidwell
  // This is a specialization of dc_crackle_wf by Andreas Maschke, which is a specialization of crackle, originally invented
  // by Neil Slater, see http://slobo777.deviantart.com/art/Apo-Plugins-Hexes-And-Crackle-99243824.
  // It is based on the Crackle Styles Chooser script by Ian Anderson and Anu Wilde (adapted for JWildfire by Mick Hogan).
  // An additional parameter "preset" will set the other parameters; see the script for names of the values
    @Override
  public String getName() {
    return "dc_cracklep";
  }
   @Override
  public String[] getParameterNames() {
    return joinArrays(additionalParamNames, super.getParameterNames());
  }
   @Override
  public Object[] getParameterValues() {
    return joinArrays(new Object[] { preset }, super.getParameterValues() );
  }
   @Override
  public void setParameter(String pName, double pValue) {
	    if (PARAM_PRESET.equalsIgnoreCase(pName)) {
	        preset = Tools.FTOI(pValue);
	        switch (preset) {
	          case 0:
	              pcellsize = 1.0; ppower = 0.2; pdistort = 0.0; pscale = 1.00; pz=0.0;
	              break;
	          case 1:
	              pcellsize = 0.5; ppower = 0.5; pdistort = 1.0; pscale = 0.95; pz=10.0;
	              break;
	          case 2:
	              pcellsize = 0.5; ppower = 0.01; pdistort = 0.5; pscale = 1.0; pz=0.0;
	              break;
	            case 3:
	              pcellsize = 0.05; ppower = 0.9; pdistort = 0.9; pscale = 0.5; pz=0.0;
	              break;
	            case 4:
	              pcellsize = 0.5; ppower = 1.0; pdistort = 1.0; pscale = 0.93; pz=10.0;
	              break;
	            case 5:
	              pcellsize = 1.0; ppower = 1.0; pdistort = 0.0; pscale = 0.9; pz=0.0;
	              break;
	            case 6:
	              pcellsize = 0.8; ppower = 0.5; pdistort = 0.5; pscale = 0.8; pz=0.5;
	              break;
	            case 7:
	              pcellsize = 0.2; ppower = 0.01; pdistort = 0.0; pscale = 0.4; pz=2.0;
	              break;
	            case 8:
	              pcellsize = 1.0; ppower = 0.5; pdistort = 0.25; pscale = 0.5; pz=0.0;
	              break;
	            case 9:
	              pcellsize = 0.6; ppower = 0.75; pdistort = 1.0; pscale = 0.25; pz=0.75;
	              break;
	            case 10:
	              pcellsize = 0.5; ppower = 25.0; pdistort = 0.0; pscale = 9.0; pz=6.0;
	              break;
	            case 11:
	              pcellsize = 0.2; ppower = 1.0; pdistort = 0.0; pscale = 0.4; pz=0.0;
	              break;
	             case 12:
	              pcellsize = 1.5; ppower = 0.01; pdistort = 0.0; pscale = 0.4; pz=0.0;
	              break;
	            case 13:
	              pcellsize = 8.0; ppower = 0.01; pdistort = 0.0; pscale = 0.4; pz=0.0;
	              break;
	            case 14:
	              pcellsize = 0.2; ppower = 0.05; pdistort = 1.0; pscale = 5.0; pz=0.0;
	              break;
	            case 15:
	              pcellsize = 0.07; ppower = 0.05; pdistort = 0.5; pscale = 9.0; pz=6.0;
	              break;
	            case 16:
	              pcellsize = 0.2; ppower = 0.1; pdistort = 0.0; pscale = 1.5; pz=2.0;
	              break;
	            case 17:
	              pcellsize = 0.297494; ppower = 0.662265; pdistort = 0.0708866; pscale = 0.228156; pz=0.0;
	              break;
	            case 18:
	              pcellsize = 0.205939; ppower = 1.0; pdistort = 0.0; pscale = 0.6298; pz=0.35;
	              break;
	            case 19:
	              pcellsize = 0.5; ppower = 0.001; pdistort = 1.0; pscale = 2.0; pz=0.0;
	              break;
	            case 20:
	              pcellsize = 0.5; ppower = 0.0005; pdistort = 0.748; pscale = 1.465; pz=6.0;
	              break;
	        }
	       super.setParameter(PARAM_CELLSIZE, pcellsize);
	       super.setParameter(PARAM_POWER, ppower);
	       super.setParameter(PARAM_DISTORT, pdistort);
	       super.setParameter(PARAM_SCALE, pscale);
	       super.setParameter(PARAM_Z, pz);
	      }
    else
      super.setParameter(pName, pValue);
  }
 }

Comments