package curve;

class AxisCalculator {
  public int labelPower;
  public double labelSpacing;
  
  public AxisCalculator(double requestedSpacing) {
    labelPower=0;
    labelSpacing=requestedSpacing;
    while(labelSpacing>10) {
      labelSpacing/=10;
      labelPower++;
    };
    while(labelSpacing<1) {
      labelSpacing*=10;
      labelPower--;
    };

    //Pick label spacing
    switch((int)Math.round(labelSpacing)) {
      case 1:labelSpacing=1;break;
      case 2:case 3:case 4:labelSpacing=2;break;
      default:labelSpacing=5;break;
    };

    if(labelPower==-1) {
      labelSpacing/=10;
      labelPower=0;
    };
    if(labelPower>0 && labelPower<3) {
      labelSpacing*=Math.pow(10.0,(double)labelPower);
      labelPower=0;
    };
  };
};