content: package marytts.util.display;
  
  import marytts.util.math.MathUtils;
  
  public class DisplayUtils {
  
      public static void plot(float[] x) {
          if (x != null)
              plot(x, 0, x.length - 1);
      }
  
      public static void plot(double[] x) {
          if (x != null)
              plot(x, 0, x.length - 1);
      }
  
      public static void plot(float[] x, int startInd, int endInd) {
          plot(x, startInd, endInd, "");
      }
  
      public static void plot(double[] x, int startInd, int endInd) {
          plot(x, startInd, endInd, "");
      }
  
      public static void plot(float[] x, String strTitle) {
          if (x != null)
              plot(x, 0, x.length - 1, strTitle, false);
      }
  
      public static void plot(double[] x, String strTitle) {
          if (x != null)
              plot(x, 0, x.length - 1, strTitle, false);
      }
  
      public static void plot(float[] x, int startInd, int endInd, String strTitle) {
          plot(x, startInd, endInd, strTitle, false);
      }
  
      public static void plot(double[] x, int startInd, int endInd, String strTitle) {
          plot(x, startInd, endInd, strTitle, false);
      }
  
      public static void plot(float[] x, int startInd, int endInd, String strTitle, boolean bAutoClose) {
          plot(x, startInd, endInd, strTitle, bAutoClose, 3000);
      }
  
      public static void plot(double[] x, int startInd, int endInd, String strTitle, boolean bAutoClose) {
          plot(x, startInd, endInd, strTitle, bAutoClose, 3000);
      }
  
      public static void plotZoomed(float[] x, String strTitle, double minVal) {
          plotZoomed(x, strTitle, minVal, MathUtils.getMax(x));
      }
  
      public static void plotZoomed(double[] x, String strTitle, double minVal) {
          if (x != null)
              plotZoomed(x, strTitle, minVal, MathUtils.getMax(x));
      }
  
      public static void plotZoomed(float[] x, String strTitle, double minVal, double maxVal) {
          plotZoomed(x, strTitle, minVal, maxVal, false);
      }
  
      public static void plotZoomed(double[] x, String strTitle, double minVal, double maxVal) {
          plotZoomed(x, strTitle, minVal, maxVal, false);
      }
  
      public static void plotZoomed(float[] x, String strTitle, double minVal, double maxVal, boolean bAutoClose) {
          plotZoomed(x, strTitle, minVal, maxVal, bAutoClose, 3000);
      }
  
      public static void plotZoomed(double[] x, String strTitle, double minVal, double maxVal, boolean bAutoClose) {
          plotZoomed(x, strTitle, minVal, maxVal, bAutoClose, 3000);
      }
  
      public static void plotZoomed(float[] x, String strTitle, double minVal, double maxVal, boolean bAutoClose, int milliSecondsToClose) {
          if (x != null) {
              double[] xd = new double[x.length];
              for (int i = 0; i < x.length; i++)
                  xd[i] = x[i];
  
              plotZoomed(xd, strTitle, minVal, maxVal, bAutoClose, milliSecondsToClose);
          }
      }
  
      public static void plotZoomed(double[] x, String strTitle, double minVal, double maxVal, boolean bAutoClose, int milliSecondsToClose) {
          if (x != null) {
              double[] y = null;
              if (minVal > maxVal) {
                  double tmp = minVal;
                  minVal = maxVal;
                  maxVal = tmp;
              }
              y = new double[x.length];
              for (int i = 0; i < x.length; i++) {
                  y[i] = x[i];
                  if (y[i] < minVal)
                      y[i] = minVal;
                  else if (y[i] > maxVal)
                      y[i] = maxVal;
              }
  
              plot(y, 0, y.length - 1, strTitle, bAutoClose, milliSecondsToClose);
          }
      }
  
      public static void plot(float[] xIn, int startInd, int endInd, String strTitle, boolean bAutoClose, int milliSecondsToClose) {
          if (xIn != null) {
              double[] xd = new double[endInd - startInd + 1];
              for (int i = startInd; i <= endInd; i++)
                  xd[i - startInd] = xIn[i];
  
              // FunctionGraph graph = new FunctionGraph(400, 200, 0, 1, xd);
  //	        JFrame frame = graph.showInJFrame(strTitle, 500, 300, true, false);
  //
  //	        if (bAutoClose)
  //	        {
  //	            try { Thread.sleep(milliSecondsToClose); } catch (InterruptedException e) {}
  //	            frame.dispose();
  //	        }
          }
      }
  
      // Plots the values in x
      // If bAutoClose is specified, the figure is closed after milliSecondsToClose milliseconds
      // milliSecondsToClose: has no effect if bAutoClose is false
      public static void plot(double[] xIn, int startInd, int endInd, String strTitle, boolean bAutoClose, int milliSecondsToClose) {
          if (xIn != null) {
              endInd = MathUtils.CheckLimits(endInd, 0, xIn.length - 1);
              startInd = MathUtils.CheckLimits(startInd, 0, endInd);
  
              double[] x = new double[endInd - startInd + 1];
              System.arraycopy(xIn, startInd, x, 0, x.length);
  
              //  FunctionGraph graph = new FunctionGraph(400, 200, 0, 1, x);
  //	        JFrame frame = graph.showInJFrame(strTitle, 500, 300, true, false);
  //
  //	        if (bAutoClose)
  //	        {
  //	            try { Thread.sleep(milliSecondsToClose); } catch (InterruptedException e) {}
  //	            frame.dispose();
  //	        }
          }
      }
  
  }
  