-
Notifications
You must be signed in to change notification settings - Fork 35
Expand file tree
/
Copy pathBubbleEntryDouble.kt
More file actions
46 lines (35 loc) · 1.6 KB
/
BubbleEntryDouble.kt
File metadata and controls
46 lines (35 loc) · 1.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package info.appdev.charting.data
import android.annotation.SuppressLint
import android.graphics.drawable.Drawable
import kotlin.math.abs
/**
* High-precision bubble entry that stores x, y and size as Double, extending [BubbleEntryFloat]
* so it works seamlessly in the existing bubble chart rendering pipeline.
* Use [xDouble], [yDouble] and [sizeDouble] for full-precision access.
*/
@SuppressLint("ParcelCreator")
open class BubbleEntryDouble : BubbleEntryFloat {
var xDouble: Double = 0.0
var yDouble: Double = 0.0
var sizeDouble: Double = 0.0
override var x: Float
get() = xDouble.toFloat()
set(value) { xDouble = value.toDouble() }
override var y: Float
get() = yDouble.toFloat()
set(value) { yDouble = value.toDouble() }
constructor(x: Double, y: Double, size: Double) : super(x.toFloat(), y.toFloat(), size.toFloat()) {
xDouble = x; yDouble = y; sizeDouble = size
this.size = size.toFloat()
}
constructor(x: Double, y: Double, size: Double, data: Any?) : super(x.toFloat(), y.toFloat(), size.toFloat(), data) {
xDouble = x; yDouble = y; sizeDouble = size
this.size = size.toFloat()
}
constructor(x: Double, y: Double, size: Double, icon: Drawable?) : super(x.toFloat(), y.toFloat(), size.toFloat(), icon) {
xDouble = x; yDouble = y; sizeDouble = size
this.size = size.toFloat()
}
override fun copy(): BubbleEntryDouble = BubbleEntryDouble(xDouble, yDouble, sizeDouble, data)
override fun toString(): String = "BubbleEntryDouble xDouble=$xDouble yDouble=$yDouble sizeDouble=$sizeDouble"
}