All Downloads are FREE. Search and download functionalities are using the official Maven repository.

us.ihmc.scs2.sessionVisualizer.jfx.tools.ChartTools Maven / Gradle / Ivy

package us.ihmc.scs2.sessionVisualizer.jfx.tools;

import us.ihmc.scs2.definition.yoChart.ChartDoubleBoundsDefinition;
import us.ihmc.scs2.definition.yoChart.YoChartGroupModelDefinition;
import us.ihmc.scs2.definition.yoChart.YoChartIdentifierDefinition;
import us.ihmc.scs2.sessionVisualizer.jfx.charts.ChartDoubleBounds;
import us.ihmc.scs2.sessionVisualizer.jfx.charts.ChartGroupModel;
import us.ihmc.scs2.sessionVisualizer.jfx.charts.ChartIdentifier;
import us.ihmc.yoVariables.variable.*;

import java.util.List;
import java.util.stream.Collectors;

public class ChartTools
{
   public static ChartIdentifier toChartIdentifier(YoChartIdentifierDefinition xmlChartIdentifier)
   {
      return new ChartIdentifier(xmlChartIdentifier.getRow(), xmlChartIdentifier.getColumn());
   }

   public static ChartGroupModel toChartIdentifierList(YoChartGroupModelDefinition definition)
   {
      return new ChartGroupModel(definition.getName(),
                                 definition.getChartIdentifiers().stream().map(ChartTools::toChartIdentifier).collect(Collectors.toList()));
   }

   public static ChartDoubleBounds toChartDoubleBounds(ChartDoubleBoundsDefinition definition)
   {
      if (Double.isNaN(definition.getLower()) && Double.isNaN(definition.getUpper()))
         return null;
      else
         return new ChartDoubleBounds(definition.getLower(), definition.getUpper());
   }

   public static List toYoChartGroupModelDefinitions(List chartGroupModels)
   {
      return chartGroupModels.stream().map(ChartTools::toYoChartGroupModelDefinition).collect(Collectors.toList());
   }

   public static YoChartGroupModelDefinition toYoChartGroupModelDefinition(ChartGroupModel chartGroupModel)
   {
      YoChartGroupModelDefinition definition = new YoChartGroupModelDefinition();
      definition.setName(chartGroupModel.getName());
      definition.setChartIdentifiers(toYoChartIdentifierDefinitions(chartGroupModel.getChartIdentifiers()));
      return definition;
   }

   public static List toYoChartIdentifierDefinitions(List chartIdentifiers)
   {
      return chartIdentifiers.stream().map(ChartTools::toYoChartIdentifierDefinition).collect(Collectors.toList());
   }

   public static YoChartIdentifierDefinition toYoChartIdentifierDefinition(ChartIdentifier chartIdentifier)
   {
      if (chartIdentifier == null)
         return null;
      return new YoChartIdentifierDefinition(chartIdentifier.getRow(), chartIdentifier.getColumn());
   }

   public static ChartDoubleBoundsDefinition toChartDoubleBoundsDefinition(ChartDoubleBounds bounds)
   {
      if (bounds == null)
         return new ChartDoubleBoundsDefinition(Double.NaN, Double.NaN);
      else
         return new ChartDoubleBoundsDefinition(bounds.getLower(), bounds.getUpper());
   }

   public static String defaultYoVariableValueFormatter(YoVariable yoVariable, int precision)
   {
      if (yoVariable instanceof YoDouble yoDouble)
         return NumberFormatTools.doubleToString(yoDouble.getValue(), precision);
      else if (yoVariable instanceof YoBoolean yoBoolean)
         return Boolean.toString(yoBoolean.getValue());
      if (yoVariable instanceof YoInteger yoInteger)
         return Integer.toString(yoInteger.getValue());
      if (yoVariable instanceof YoLong yoLong)
         return Long.toString(yoLong.getValue());
      if (yoVariable instanceof YoEnum yoEnum)
         return yoEnum.getStringValue();

      throw new UnsupportedOperationException("Unsupported YoVariable type: " + yoVariable.getClass().getSimpleName());
   }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy