Simplified judgement model by having time as an Int instead of Double
This commit is contained in:
parent
dbc6570fd5
commit
53bd826e91
@ -55,7 +55,7 @@ class CompressJudgements {
|
||||
|
||||
fun compress(judgements: List<Judgement>): ByteArray {
|
||||
val byteStream = ByteArrayOutputStream()
|
||||
var lastTimestamp = 0.0
|
||||
var lastTimestamp = 0
|
||||
|
||||
judgements.forEach { judgement ->
|
||||
byteStream.use { stream ->
|
||||
@ -63,7 +63,7 @@ class CompressJudgements {
|
||||
* We allocate an arbitrary amount of buffer which *hopefully* is enough.
|
||||
*/
|
||||
ByteBuffer.allocate(4096).let { buffer ->
|
||||
buffer.putVLQ((judgement.time - lastTimestamp).toInt())
|
||||
buffer.putVLQ((judgement.time - lastTimestamp))
|
||||
buffer.putVLQ(round(judgement.x * 100).toInt())
|
||||
buffer.putVLQ(round(judgement.y * 100).toInt())
|
||||
buffer.put(judgement.type.ordinal.toByte())
|
||||
@ -85,7 +85,7 @@ class CompressJudgements {
|
||||
|
||||
val buffer = ByteBuffer.wrap(data)
|
||||
val judgements = mutableListOf<Judgement>()
|
||||
var lastTime = 0.0
|
||||
var lastTime = 0
|
||||
|
||||
while (buffer.hasRemaining()) {
|
||||
val deltaTime = buffer.getVLQ()
|
||||
|
||||
@ -9,7 +9,7 @@ import kotlinx.serialization.Serializable
|
||||
*/
|
||||
@Serializable
|
||||
data class Judgement(
|
||||
val time: Double,
|
||||
val time: Int,
|
||||
val x: Double,
|
||||
val y: Double,
|
||||
val type: Type,
|
||||
|
||||
@ -9,8 +9,8 @@ class CompressJudgementsTest {
|
||||
@Test
|
||||
fun testCompress() {
|
||||
val judgements = listOf(
|
||||
Judgement(time = 1.0, x = 1.0, y = 1.0, type = Judgement.Type.THREE_HUNDRED, distanceToCenter = 1.0, distanceToEdge = 1.0, error = 1.0),
|
||||
Judgement(time = 2.0, x = 2.0, y = 2.0, type = Judgement.Type.THREE_HUNDRED, distanceToCenter = 2.0, distanceToEdge = 2.0, error = 2.0)
|
||||
Judgement(time = 1, x = 1.0, y = 1.0, type = Judgement.Type.THREE_HUNDRED, distanceToCenter = 1.0, distanceToEdge = 1.0, error = 1.0),
|
||||
Judgement(time = 2, x = 2.0, y = 2.0, type = Judgement.Type.THREE_HUNDRED, distanceToCenter = 2.0, distanceToEdge = 2.0, error = 2.0)
|
||||
)
|
||||
val compressedData = CompressJudgements.compress(judgements)
|
||||
assertTrue(compressedData.isNotEmpty())
|
||||
@ -19,8 +19,8 @@ class CompressJudgementsTest {
|
||||
@Test
|
||||
fun testCompressAndDecompress() {
|
||||
val originalJudgements = listOf(
|
||||
Judgement(time = 1.123456789123456, x = 1.0, y = 1.0, type = Judgement.Type.THREE_HUNDRED, distanceToCenter = 1.0, distanceToEdge = 1.0, error = 1.0),
|
||||
Judgement(time = 2.123456789123456, x = 2.0, y = 2.0, type = Judgement.Type.THREE_HUNDRED, distanceToCenter = 2.0, distanceToEdge = 2.0, error = 2.0)
|
||||
Judgement(time = 1, x = 1.0, y = 1.0, type = Judgement.Type.THREE_HUNDRED, distanceToCenter = 1.0, distanceToEdge = 1.0, error = 1.0),
|
||||
Judgement(time = 2, x = 2.0, y = 2.0, type = Judgement.Type.THREE_HUNDRED, distanceToCenter = 2.0, distanceToEdge = 2.0, error = 2.0)
|
||||
)
|
||||
val compressedData = CompressJudgements.compress(originalJudgements)
|
||||
val decompressedJudgements = CompressJudgements.decompress(compressedData)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user