content: package com.github.mikephil.charting.renderer;
  
  import com.github.mikephil.charting.data.BarData;
  import com.github.mikephil.charting.data.Entry;
  import com.github.mikephil.charting.interfaces.ChartInterface;
  
  import java.util.ArrayList;
  
  public class ColumnToBarTransformer extends Transformer
  {
  	/**
  	 * Prepares the matrix that transforms values to pixels.
  	 *
  	 * @param chart
  	 */
  	@Override
  	public void prepareMatrixValuePx(ChartInterface chart)
  	{
  		float scaleX = (chart.getWidth() - chart.getOffsetRight() - chart.getOffsetLeft()) / chart.getDeltaY();
  		float scaleY = (chart.getHeight() - chart.getOffsetTop() - chart.getOffsetBottom()) / chart.getDeltaX();
  
  		// setup all matrices
  		mMatrixValueToPx.reset();
  		mMatrixValueToPx.postTranslate(0, -chart.getYChartMin());
  		mMatrixValueToPx.postScale(scaleX, -scaleY);
  	}
  
  
  	/**
  	 * Transforms an arraylist of Entry into a float array containing the x and
  	 * y values transformed with all matrices for the BARCHART.
  	 *
  	 * @param entries
  	 * @param dataSet the dataset index
  	 * @return
  	 */
  	public float[] generateTransformedValuesBarChart(ArrayList<? extends Entry> entries,
  													 int dataSet, BarData bd, float phaseY) {
  
  		float[] valuePoints = new float[entries.size() * 2];
  
  		int setCount = bd.getDataSetCount();
  		float space = bd.getGroupSpace();
  
  		for (int j = 0; j < valuePoints.length; j += 2) {
  
  			int index = j/2;
  			Entry e = entries.get(index);
  
  			//TODO: Need to find a better value than 1, should be dependant on yMax, I think
  			float x = e.getVal() + 1;
  			// calculate the y-position, depending on datasetcount
  			float y = e.getXIndex() + (index * (setCount - 1)) + dataSet + 0.5f + space * index
  					+ space / 2f;
  
  			valuePoints[j] = x;
  			valuePoints[j + 1] = y;
  		}
  
  		pointValuesToPixel(valuePoints);
  
  		return valuePoints;
  	}
  
  }
  