diff --git a/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/ScatterChartRenderer.kt b/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/ScatterChartRenderer.kt index 2b0dadde31..12da0a32a8 100644 --- a/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/ScatterChartRenderer.kt +++ b/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/ScatterChartRenderer.kt @@ -27,8 +27,9 @@ open class ScatterChartRenderer(@JvmField var chart: ScatterDataProvider, animat var pixelBuffer: FloatArray = FloatArray(2) - protected fun drawDataSet(canvas: Canvas?, dataSet: IScatterDataSet) { - if (dataSet.entryCount < 1) return + protected fun drawDataSet(canvas: Canvas, dataSet: IScatterDataSet) { + if (dataSet.entryCount < 1) + return val viewPortHandler = this.viewPortHandler diff --git a/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/ChevronDownShapeRenderer.java b/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/ChevronDownShapeRenderer.java deleted file mode 100644 index 3c31638e1b..0000000000 --- a/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/ChevronDownShapeRenderer.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.github.mikephil.charting.renderer.scatter; - -import android.graphics.Canvas; -import android.graphics.Paint; - -import com.github.mikephil.charting.interfaces.datasets.IScatterDataSet; -import com.github.mikephil.charting.utils.Utils; -import com.github.mikephil.charting.utils.ViewPortHandler; - -/** - * Created by wajdic on 15/06/2016. - * Created at Time 09:08 - */ -public class ChevronDownShapeRenderer implements IShapeRenderer -{ - - - @Override - public void renderShape(Canvas c, IScatterDataSet dataSet, ViewPortHandler viewPortHandler, - float posX, float posY, Paint renderPaint) { - - final float shapeHalf = Utils.convertDpToPixel(dataSet.getScatterShapeSize()) / 2f; - - renderPaint.setStyle(Paint.Style.STROKE); - renderPaint.setStrokeWidth(Utils.convertDpToPixel(1f)); - - c.drawLine( - posX, - posY + (2 * shapeHalf), - posX + (2 * shapeHalf), - posY, - renderPaint); - - c.drawLine( - posX, - posY + (2 * shapeHalf), - posX - (2 * shapeHalf), - posY, - renderPaint); - } -} diff --git a/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/ChevronDownShapeRenderer.kt b/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/ChevronDownShapeRenderer.kt new file mode 100644 index 0000000000..66315aa515 --- /dev/null +++ b/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/ChevronDownShapeRenderer.kt @@ -0,0 +1,35 @@ +package com.github.mikephil.charting.renderer.scatter + +import android.graphics.Canvas +import android.graphics.Paint +import com.github.mikephil.charting.interfaces.datasets.IScatterDataSet +import com.github.mikephil.charting.utils.Utils +import com.github.mikephil.charting.utils.ViewPortHandler + +class ChevronDownShapeRenderer : IShapeRenderer { + override fun renderShape( + canvas: Canvas, dataSet: IScatterDataSet, viewPortHandler: ViewPortHandler?, + posX: Float, posY: Float, renderPaint: Paint + ) { + val shapeHalf = Utils.convertDpToPixel(dataSet.getScatterShapeSize()) / 2f + + renderPaint.style = Paint.Style.STROKE + renderPaint.strokeWidth = Utils.convertDpToPixel(1f) + + canvas.drawLine( + posX, + posY + (2 * shapeHalf), + posX + (2 * shapeHalf), + posY, + renderPaint + ) + + canvas.drawLine( + posX, + posY + (2 * shapeHalf), + posX - (2 * shapeHalf), + posY, + renderPaint + ) + } +} diff --git a/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/ChevronUpShapeRenderer.java b/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/ChevronUpShapeRenderer.java deleted file mode 100644 index 9030135824..0000000000 --- a/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/ChevronUpShapeRenderer.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.github.mikephil.charting.renderer.scatter; - -import android.graphics.Canvas; -import android.graphics.Paint; - -import com.github.mikephil.charting.interfaces.datasets.IScatterDataSet; -import com.github.mikephil.charting.utils.Utils; -import com.github.mikephil.charting.utils.ViewPortHandler; - -/** - * Created by wajdic on 15/06/2016. - * Created at Time 09:08 - */ -public class ChevronUpShapeRenderer implements IShapeRenderer -{ - - - @Override - public void renderShape(Canvas c, IScatterDataSet dataSet, ViewPortHandler viewPortHandler, - float posX, float posY, Paint renderPaint) { - - final float shapeHalf = Utils.convertDpToPixel(dataSet.getScatterShapeSize()) / 2f; - - renderPaint.setStyle(Paint.Style.STROKE); - renderPaint.setStrokeWidth(Utils.convertDpToPixel(1f)); - - c.drawLine( - posX, - posY - (2 * shapeHalf), - posX + (2 * shapeHalf), - posY, - renderPaint); - - c.drawLine( - posX, - posY - (2 * shapeHalf), - posX - (2 * shapeHalf), - posY, - renderPaint); - - } -} diff --git a/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/ChevronUpShapeRenderer.kt b/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/ChevronUpShapeRenderer.kt new file mode 100644 index 0000000000..b972ccf580 --- /dev/null +++ b/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/ChevronUpShapeRenderer.kt @@ -0,0 +1,35 @@ +package com.github.mikephil.charting.renderer.scatter + +import android.graphics.Canvas +import android.graphics.Paint +import com.github.mikephil.charting.interfaces.datasets.IScatterDataSet +import com.github.mikephil.charting.utils.Utils +import com.github.mikephil.charting.utils.ViewPortHandler + +class ChevronUpShapeRenderer : IShapeRenderer { + override fun renderShape( + canvas: Canvas, dataSet: IScatterDataSet, viewPortHandler: ViewPortHandler?, + posX: Float, posY: Float, renderPaint: Paint + ) { + val shapeHalf = Utils.convertDpToPixel(dataSet.getScatterShapeSize()) / 2f + + renderPaint.style = Paint.Style.STROKE + renderPaint.strokeWidth = Utils.convertDpToPixel(1f) + + canvas.drawLine( + posX, + posY - (2 * shapeHalf), + posX + (2 * shapeHalf), + posY, + renderPaint + ) + + canvas.drawLine( + posX, + posY - (2 * shapeHalf), + posX - (2 * shapeHalf), + posY, + renderPaint + ) + } +} diff --git a/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/CircleShapeRenderer.java b/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/CircleShapeRenderer.java deleted file mode 100644 index 6e837559d9..0000000000 --- a/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/CircleShapeRenderer.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.github.mikephil.charting.renderer.scatter; - -import android.graphics.Canvas; -import android.graphics.Paint; - -import com.github.mikephil.charting.interfaces.datasets.IScatterDataSet; -import com.github.mikephil.charting.utils.ColorTemplate; -import com.github.mikephil.charting.utils.Utils; -import com.github.mikephil.charting.utils.ViewPortHandler; - -/** - * Created by wajdic on 15/06/2016. - * Created at Time 09:08 - */ -public class CircleShapeRenderer implements IShapeRenderer -{ - - @Override - public void renderShape(Canvas c, IScatterDataSet dataSet, ViewPortHandler viewPortHandler, - float posX, float posY, Paint renderPaint) { - - final float shapeSize = Utils.convertDpToPixel(dataSet.getScatterShapeSize()); - final float shapeHalf = shapeSize / 2f; - final float shapeHoleSizeHalf = Utils.convertDpToPixel(dataSet.getScatterShapeHoleRadius()); - final float shapeHoleSize = shapeHoleSizeHalf * 2.f; - final float shapeStrokeSize = (shapeSize - shapeHoleSize) / 2.f; - final float shapeStrokeSizeHalf = shapeStrokeSize / 2.f; - - final int shapeHoleColor = dataSet.getScatterShapeHoleColor(); - - if (shapeSize > 0.0) { - renderPaint.setStyle(Paint.Style.STROKE); - renderPaint.setStrokeWidth(shapeStrokeSize); - - c.drawCircle( - posX, - posY, - shapeHoleSizeHalf + shapeStrokeSizeHalf, - renderPaint); - - if (shapeHoleColor != ColorTemplate.COLOR_NONE) { - renderPaint.setStyle(Paint.Style.FILL); - - renderPaint.setColor(shapeHoleColor); - c.drawCircle( - posX, - posY, - shapeHoleSizeHalf, - renderPaint); - } - } else { - renderPaint.setStyle(Paint.Style.FILL); - - c.drawCircle( - posX, - posY, - shapeHalf, - renderPaint); - } - - } - -} diff --git a/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/CircleShapeRenderer.kt b/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/CircleShapeRenderer.kt new file mode 100644 index 0000000000..ef93d5058d --- /dev/null +++ b/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/CircleShapeRenderer.kt @@ -0,0 +1,57 @@ +package com.github.mikephil.charting.renderer.scatter + +import android.graphics.Canvas +import android.graphics.Paint +import com.github.mikephil.charting.interfaces.datasets.IScatterDataSet +import com.github.mikephil.charting.utils.ColorTemplate +import com.github.mikephil.charting.utils.Utils +import com.github.mikephil.charting.utils.ViewPortHandler + +class CircleShapeRenderer : IShapeRenderer { + override fun renderShape( + canvas: Canvas, dataSet: IScatterDataSet, viewPortHandler: ViewPortHandler?, + posX: Float, posY: Float, renderPaint: Paint + ) { + val shapeSize = Utils.convertDpToPixel(dataSet.getScatterShapeSize()) + val shapeHalf = shapeSize / 2f + val shapeHoleSizeHalf = Utils.convertDpToPixel(dataSet.getScatterShapeHoleRadius()) + val shapeHoleSize = shapeHoleSizeHalf * 2f + val shapeStrokeSize = (shapeSize - shapeHoleSize) / 2f + val shapeStrokeSizeHalf = shapeStrokeSize / 2f + + val shapeHoleColor = dataSet.getScatterShapeHoleColor() + + if (shapeSize > 0.0) { + renderPaint.style = Paint.Style.STROKE + renderPaint.strokeWidth = shapeStrokeSize + + canvas.drawCircle( + posX, + posY, + shapeHoleSizeHalf + shapeStrokeSizeHalf, + renderPaint + ) + + if (shapeHoleColor != ColorTemplate.COLOR_NONE) { + renderPaint.style = Paint.Style.FILL + + renderPaint.color = shapeHoleColor + canvas.drawCircle( + posX, + posY, + shapeHoleSizeHalf, + renderPaint + ) + } + } else { + renderPaint.style = Paint.Style.FILL + + canvas.drawCircle( + posX, + posY, + shapeHalf, + renderPaint + ) + } + } +} diff --git a/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/CrossShapeRenderer.java b/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/CrossShapeRenderer.java deleted file mode 100644 index 2a62bffd82..0000000000 --- a/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/CrossShapeRenderer.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.github.mikephil.charting.renderer.scatter; - -import android.graphics.Canvas; -import android.graphics.Paint; - -import com.github.mikephil.charting.interfaces.datasets.IScatterDataSet; -import com.github.mikephil.charting.utils.Utils; -import com.github.mikephil.charting.utils.ViewPortHandler; - -/** - * Created by wajdic on 15/06/2016. - * Created at Time 09:08 - */ -public class CrossShapeRenderer implements IShapeRenderer -{ - - - @Override - public void renderShape(Canvas c, IScatterDataSet dataSet, ViewPortHandler viewPortHandler, - float posX, float posY, Paint renderPaint) { - - final float shapeHalf = Utils.convertDpToPixel(dataSet.getScatterShapeSize()) / 2f; - - renderPaint.setStyle(Paint.Style.STROKE); - renderPaint.setStrokeWidth(Utils.convertDpToPixel(1f)); - - c.drawLine( - posX - shapeHalf, - posY, - posX + shapeHalf, - posY, - renderPaint); - c.drawLine( - posX, - posY - shapeHalf, - posX, - posY + shapeHalf, - renderPaint); - - } -} diff --git a/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/CrossShapeRenderer.kt b/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/CrossShapeRenderer.kt new file mode 100644 index 0000000000..406abf9c81 --- /dev/null +++ b/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/CrossShapeRenderer.kt @@ -0,0 +1,34 @@ +package com.github.mikephil.charting.renderer.scatter + +import android.graphics.Canvas +import android.graphics.Paint +import com.github.mikephil.charting.interfaces.datasets.IScatterDataSet +import com.github.mikephil.charting.utils.Utils +import com.github.mikephil.charting.utils.ViewPortHandler + +class CrossShapeRenderer : IShapeRenderer { + override fun renderShape( + canvas: Canvas, dataSet: IScatterDataSet, viewPortHandler: ViewPortHandler?, + posX: Float, posY: Float, renderPaint: Paint + ) { + val shapeHalf = Utils.convertDpToPixel(dataSet.getScatterShapeSize()) / 2f + + renderPaint.style = Paint.Style.STROKE + renderPaint.strokeWidth = Utils.convertDpToPixel(1f) + + canvas.drawLine( + posX - shapeHalf, + posY, + posX + shapeHalf, + posY, + renderPaint + ) + canvas.drawLine( + posX, + posY - shapeHalf, + posX, + posY + shapeHalf, + renderPaint + ) + } +} diff --git a/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/IShapeRenderer.java b/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/IShapeRenderer.java deleted file mode 100644 index 20b57a900d..0000000000 --- a/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/IShapeRenderer.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.github.mikephil.charting.renderer.scatter; - -import android.graphics.Canvas; -import android.graphics.Paint; - -import com.github.mikephil.charting.interfaces.datasets.IScatterDataSet; -import com.github.mikephil.charting.utils.ViewPortHandler; - -/** - * Created by wajdic on 15/06/2016. - * Created at Time 09:07 - */ -public interface IShapeRenderer -{ - - /** - * Renders the provided ScatterDataSet with a shape. - * - * @param c Canvas object for drawing the shape - * @param dataSet The DataSet to be drawn - * @param viewPortHandler Contains information about the current state of the view - * @param posX Position to draw the shape at - * @param posY Position to draw the shape at - * @param renderPaint Paint object used for styling and drawing - */ - void renderShape(Canvas c, IScatterDataSet dataSet, ViewPortHandler viewPortHandler, - float posX, float posY, Paint renderPaint); -} diff --git a/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/IShapeRenderer.kt b/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/IShapeRenderer.kt new file mode 100644 index 0000000000..4315b59890 --- /dev/null +++ b/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/IShapeRenderer.kt @@ -0,0 +1,23 @@ +package com.github.mikephil.charting.renderer.scatter + +import android.graphics.Canvas +import android.graphics.Paint +import com.github.mikephil.charting.interfaces.datasets.IScatterDataSet +import com.github.mikephil.charting.utils.ViewPortHandler + +interface IShapeRenderer { + /** + * Renders the provided ScatterDataSet with a shape. + * + * @param canvas Canvas object for drawing the shape + * @param dataSet The DataSet to be drawn + * @param viewPortHandler Contains information about the current state of the view + * @param posX Position to draw the shape at + * @param posY Position to draw the shape at + * @param renderPaint Paint object used for styling and drawing + */ + fun renderShape( + canvas: Canvas, dataSet: IScatterDataSet, viewPortHandler: ViewPortHandler?, + posX: Float, posY: Float, renderPaint: Paint + ) +} diff --git a/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/SquareShapeRenderer.java b/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/SquareShapeRenderer.java deleted file mode 100644 index c6a4bf1350..0000000000 --- a/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/SquareShapeRenderer.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.github.mikephil.charting.renderer.scatter; - -import android.graphics.Canvas; -import android.graphics.Paint; - -import com.github.mikephil.charting.interfaces.datasets.IScatterDataSet; -import com.github.mikephil.charting.utils.ColorTemplate; -import com.github.mikephil.charting.utils.Utils; -import com.github.mikephil.charting.utils.ViewPortHandler; - -/** - * Created by wajdic on 15/06/2016. - * Created at Time 09:08 - */ -public class SquareShapeRenderer implements IShapeRenderer -{ - - - @Override - public void renderShape(Canvas c, IScatterDataSet dataSet, ViewPortHandler viewPortHandler, - float posX, float posY, Paint renderPaint) { - - final float shapeSize = Utils.convertDpToPixel(dataSet.getScatterShapeSize()); - final float shapeHalf = shapeSize / 2f; - final float shapeHoleSizeHalf = Utils.convertDpToPixel(dataSet.getScatterShapeHoleRadius()); - final float shapeHoleSize = shapeHoleSizeHalf * 2.f; - final float shapeStrokeSize = (shapeSize - shapeHoleSize) / 2.f; - final float shapeStrokeSizeHalf = shapeStrokeSize / 2.f; - - final int shapeHoleColor = dataSet.getScatterShapeHoleColor(); - - if (shapeSize > 0.0) { - renderPaint.setStyle(Paint.Style.STROKE); - renderPaint.setStrokeWidth(shapeStrokeSize); - - c.drawRect(posX - shapeHoleSizeHalf - shapeStrokeSizeHalf, - posY - shapeHoleSizeHalf - shapeStrokeSizeHalf, - posX + shapeHoleSizeHalf + shapeStrokeSizeHalf, - posY + shapeHoleSizeHalf + shapeStrokeSizeHalf, - renderPaint); - - if (shapeHoleColor != ColorTemplate.COLOR_NONE) { - renderPaint.setStyle(Paint.Style.FILL); - - renderPaint.setColor(shapeHoleColor); - c.drawRect(posX - shapeHoleSizeHalf, - posY - shapeHoleSizeHalf, - posX + shapeHoleSizeHalf, - posY + shapeHoleSizeHalf, - renderPaint); - } - - } else { - renderPaint.setStyle(Paint.Style.FILL); - - c.drawRect(posX - shapeHalf, - posY - shapeHalf, - posX + shapeHalf, - posY + shapeHalf, - renderPaint); - } - } -} diff --git a/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/SquareShapeRenderer.kt b/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/SquareShapeRenderer.kt new file mode 100644 index 0000000000..71ccebf142 --- /dev/null +++ b/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/SquareShapeRenderer.kt @@ -0,0 +1,60 @@ +package com.github.mikephil.charting.renderer.scatter + +import android.graphics.Canvas +import android.graphics.Paint +import com.github.mikephil.charting.interfaces.datasets.IScatterDataSet +import com.github.mikephil.charting.utils.ColorTemplate +import com.github.mikephil.charting.utils.Utils +import com.github.mikephil.charting.utils.ViewPortHandler + +class SquareShapeRenderer : IShapeRenderer { + override fun renderShape( + canvas: Canvas, dataSet: IScatterDataSet, viewPortHandler: ViewPortHandler?, + posX: Float, posY: Float, renderPaint: Paint + ) { + val shapeSize = Utils.convertDpToPixel(dataSet.getScatterShapeSize()) + val shapeHalf = shapeSize / 2f + val shapeHoleSizeHalf = Utils.convertDpToPixel(dataSet.getScatterShapeHoleRadius()) + val shapeHoleSize = shapeHoleSizeHalf * 2f + val shapeStrokeSize = (shapeSize - shapeHoleSize) / 2f + val shapeStrokeSizeHalf = shapeStrokeSize / 2f + + val shapeHoleColor = dataSet.getScatterShapeHoleColor() + + if (shapeSize > 0.0) { + renderPaint.style = Paint.Style.STROKE + renderPaint.strokeWidth = shapeStrokeSize + + canvas.drawRect( + posX - shapeHoleSizeHalf - shapeStrokeSizeHalf, + posY - shapeHoleSizeHalf - shapeStrokeSizeHalf, + posX + shapeHoleSizeHalf + shapeStrokeSizeHalf, + posY + shapeHoleSizeHalf + shapeStrokeSizeHalf, + renderPaint + ) + + if (shapeHoleColor != ColorTemplate.COLOR_NONE) { + renderPaint.style = Paint.Style.FILL + + renderPaint.color = shapeHoleColor + canvas.drawRect( + posX - shapeHoleSizeHalf, + posY - shapeHoleSizeHalf, + posX + shapeHoleSizeHalf, + posY + shapeHoleSizeHalf, + renderPaint + ) + } + } else { + renderPaint.style = Paint.Style.FILL + + canvas.drawRect( + posX - shapeHalf, + posY - shapeHalf, + posX + shapeHalf, + posY + shapeHalf, + renderPaint + ) + } + } +} diff --git a/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/TriangleShapeRenderer.java b/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/TriangleShapeRenderer.java deleted file mode 100644 index c355c0da17..0000000000 --- a/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/TriangleShapeRenderer.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.github.mikephil.charting.renderer.scatter; - -import android.graphics.Canvas; -import android.graphics.Paint; -import android.graphics.Path; - -import com.github.mikephil.charting.interfaces.datasets.IScatterDataSet; -import com.github.mikephil.charting.utils.ColorTemplate; -import com.github.mikephil.charting.utils.Utils; -import com.github.mikephil.charting.utils.ViewPortHandler; - -/** - * Created by wajdic on 15/06/2016. - * Created at Time 09:08 - */ -public class TriangleShapeRenderer implements IShapeRenderer -{ - - protected Path mTrianglePathBuffer = new Path(); - - @Override - public void renderShape(Canvas c, IScatterDataSet dataSet, ViewPortHandler viewPortHandler, - float posX, float posY, Paint renderPaint) { - - final float shapeSize = Utils.convertDpToPixel(dataSet.getScatterShapeSize()); - final float shapeHalf = shapeSize / 2f; - final float shapeHoleSizeHalf = Utils.convertDpToPixel(dataSet.getScatterShapeHoleRadius()); - final float shapeHoleSize = shapeHoleSizeHalf * 2.f; - final float shapeStrokeSize = (shapeSize - shapeHoleSize) / 2.f; - - final int shapeHoleColor = dataSet.getScatterShapeHoleColor(); - - renderPaint.setStyle(Paint.Style.FILL); - - // create a triangle path - Path tri = mTrianglePathBuffer; - tri.reset(); - - tri.moveTo(posX, posY - shapeHalf); - tri.lineTo(posX + shapeHalf, posY + shapeHalf); - tri.lineTo(posX - shapeHalf, posY + shapeHalf); - - if (shapeSize > 0.0) { - tri.lineTo(posX, posY - shapeHalf); - - tri.moveTo(posX - shapeHalf + shapeStrokeSize, - posY + shapeHalf - shapeStrokeSize); - tri.lineTo(posX + shapeHalf - shapeStrokeSize, - posY + shapeHalf - shapeStrokeSize); - tri.lineTo(posX, - posY - shapeHalf + shapeStrokeSize); - tri.lineTo(posX - shapeHalf + shapeStrokeSize, - posY + shapeHalf - shapeStrokeSize); - } - - tri.close(); - - c.drawPath(tri, renderPaint); - tri.reset(); - - if (shapeSize > 0.0 && - shapeHoleColor != ColorTemplate.COLOR_NONE) { - - renderPaint.setColor(shapeHoleColor); - - tri.moveTo(posX, - posY - shapeHalf + shapeStrokeSize); - tri.lineTo(posX + shapeHalf - shapeStrokeSize, - posY + shapeHalf - shapeStrokeSize); - tri.lineTo(posX - shapeHalf + shapeStrokeSize, - posY + shapeHalf - shapeStrokeSize); - tri.close(); - - c.drawPath(tri, renderPaint); - tri.reset(); - } - - } - -} \ No newline at end of file diff --git a/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/TriangleShapeRenderer.kt b/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/TriangleShapeRenderer.kt new file mode 100644 index 0000000000..dd07df2e4b --- /dev/null +++ b/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/TriangleShapeRenderer.kt @@ -0,0 +1,85 @@ +package com.github.mikephil.charting.renderer.scatter + +import android.graphics.Canvas +import android.graphics.Paint +import android.graphics.Path +import com.github.mikephil.charting.interfaces.datasets.IScatterDataSet +import com.github.mikephil.charting.utils.ColorTemplate +import com.github.mikephil.charting.utils.Utils +import com.github.mikephil.charting.utils.ViewPortHandler + +open class TriangleShapeRenderer : IShapeRenderer { + protected var trianglePathBuffer: Path = Path() + + override fun renderShape( + canvas: Canvas, dataSet: IScatterDataSet, viewPortHandler: ViewPortHandler?, + posX: Float, posY: Float, renderPaint: Paint + ) { + val shapeSize = Utils.convertDpToPixel(dataSet.getScatterShapeSize()) + val shapeHalf = shapeSize / 2f + val shapeHoleSizeHalf = Utils.convertDpToPixel(dataSet.getScatterShapeHoleRadius()) + val shapeHoleSize = shapeHoleSizeHalf * 2f + val shapeStrokeSize = (shapeSize - shapeHoleSize) / 2f + + val shapeHoleColor = dataSet.getScatterShapeHoleColor() + + renderPaint.style = Paint.Style.FILL + + // create a triangle path + val tri = trianglePathBuffer + tri.reset() + + tri.moveTo(posX, posY - shapeHalf) + tri.lineTo(posX + shapeHalf, posY + shapeHalf) + tri.lineTo(posX - shapeHalf, posY + shapeHalf) + + if (shapeSize > 0.0) { + tri.lineTo(posX, posY - shapeHalf) + + tri.moveTo( + posX - shapeHalf + shapeStrokeSize, + posY + shapeHalf - shapeStrokeSize + ) + tri.lineTo( + posX + shapeHalf - shapeStrokeSize, + posY + shapeHalf - shapeStrokeSize + ) + tri.lineTo( + posX, + posY - shapeHalf + shapeStrokeSize + ) + tri.lineTo( + posX - shapeHalf + shapeStrokeSize, + posY + shapeHalf - shapeStrokeSize + ) + } + + tri.close() + + canvas.drawPath(tri, renderPaint) + tri.reset() + + if (shapeSize > 0.0 && + shapeHoleColor != ColorTemplate.COLOR_NONE + ) { + renderPaint.color = shapeHoleColor + + tri.moveTo( + posX, + posY - shapeHalf + shapeStrokeSize + ) + tri.lineTo( + posX + shapeHalf - shapeStrokeSize, + posY + shapeHalf - shapeStrokeSize + ) + tri.lineTo( + posX - shapeHalf + shapeStrokeSize, + posY + shapeHalf - shapeStrokeSize + ) + tri.close() + + canvas.drawPath(tri, renderPaint) + tri.reset() + } + } +} \ No newline at end of file diff --git a/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/XShapeRenderer.java b/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/XShapeRenderer.java deleted file mode 100644 index f4d1a40736..0000000000 --- a/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/XShapeRenderer.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.github.mikephil.charting.renderer.scatter; - -import android.graphics.Canvas; -import android.graphics.Paint; - -import com.github.mikephil.charting.interfaces.datasets.IScatterDataSet; -import com.github.mikephil.charting.utils.Utils; -import com.github.mikephil.charting.utils.ViewPortHandler; - -/** - * Created by wajdic on 15/06/2016. - * Created at Time 09:08 - */ -public class XShapeRenderer implements IShapeRenderer -{ - - - @Override - public void renderShape(Canvas c, IScatterDataSet dataSet, ViewPortHandler viewPortHandler, - float posX, float posY, Paint renderPaint) { - - final float shapeHalf = Utils.convertDpToPixel(dataSet.getScatterShapeSize()) / 2f; - - renderPaint.setStyle(Paint.Style.STROKE); - renderPaint.setStrokeWidth(Utils.convertDpToPixel(1f)); - - c.drawLine( - posX - shapeHalf, - posY - shapeHalf, - posX + shapeHalf, - posY + shapeHalf, - renderPaint); - c.drawLine( - posX + shapeHalf, - posY - shapeHalf, - posX - shapeHalf, - posY + shapeHalf, - renderPaint); - - } - -} \ No newline at end of file diff --git a/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/XShapeRenderer.kt b/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/XShapeRenderer.kt new file mode 100644 index 0000000000..e510607a02 --- /dev/null +++ b/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/scatter/XShapeRenderer.kt @@ -0,0 +1,34 @@ +package com.github.mikephil.charting.renderer.scatter + +import android.graphics.Canvas +import android.graphics.Paint +import com.github.mikephil.charting.interfaces.datasets.IScatterDataSet +import com.github.mikephil.charting.utils.Utils +import com.github.mikephil.charting.utils.ViewPortHandler + +class XShapeRenderer : IShapeRenderer { + override fun renderShape( + canvas: Canvas, dataSet: IScatterDataSet, viewPortHandler: ViewPortHandler?, + posX: Float, posY: Float, renderPaint: Paint + ) { + val shapeHalf = Utils.convertDpToPixel(dataSet.getScatterShapeSize()) / 2f + + renderPaint.style = Paint.Style.STROKE + renderPaint.strokeWidth = Utils.convertDpToPixel(1f) + + canvas.drawLine( + posX - shapeHalf, + posY - shapeHalf, + posX + shapeHalf, + posY + shapeHalf, + renderPaint + ) + canvas.drawLine( + posX + shapeHalf, + posY - shapeHalf, + posX - shapeHalf, + posY + shapeHalf, + renderPaint + ) + } +} \ No newline at end of file