Skip to content

Instantly share code, notes, and snippets.

@vinc3m1
Last active March 17, 2023 02:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vinc3m1/d56ff294a73ad506a5fa5ffb3e46185f to your computer and use it in GitHub Desktop.
Save vinc3m1/d56ff294a73ad506a5fa5ffb3e46185f to your computer and use it in GitHub Desktop.
.class public Lfit/tempo/kinematic/app/ProcessDepth;
.super Ljava/lang/Object;
.source "ProcessDepth.java"
# direct methods
.method public constructor <init>()V
.registers 1
.line 5
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method static colorizeDepth(Ljava/nio/ShortBuffer;[BI)V
.registers 15
.param p0, "shortArray" # Ljava/nio/ShortBuffer;
.param p1, "bits" # [B
.param p2, "size" # I
.line 7
const/16 v0, 0xbb8
.line 8
.local v0, "maxRange":I
const/4 v1, 0x0
.local v1, "r":I
const/4 v2, 0x0
.local v2, "g":I
const/4 v3, 0x0
.line 10
.local v3, "b":I
const/4 v4, 0x0
.local v4, "i":I
:goto_6
if-ge v4, p2, :cond_8a
.line 11
invoke-virtual {p0, v4}, Ljava/nio/ShortBuffer;->get(I)S
move-result v5
const/4 v6, -0x1
if-lez v5, :cond_6f
.line 13
invoke-virtual {p0, v4}, Ljava/nio/ShortBuffer;->get(I)S
move-result v5
int-to-float v5, v5
int-to-float v7, v0
div-float/2addr v5, v7
.line 14
.local v5, "f":F
const/high16 v7, 0x3f800000 # 1.0f
cmpl-float v8, v5, v7
if-lez v8, :cond_1e
const/high16 v5, 0x3f800000 # 1.0f
.line 15
:cond_1e
sub-float/2addr v7, v5
float-to-double v7, v7
const-wide/high16 v9, 0x3fd0000000000000L # 0.25
div-double/2addr v7, v9
double-to-float v7, v7
.line 16
.local v7, "a":F
float-to-double v8, v7
invoke-static {v8, v9}, Ljava/lang/Math;->floor(D)D
move-result-wide v8
double-to-int v8, v8
.line 17
.local v8, "X":I
int-to-float v9, v8
sub-float v9, v7, v9
const/high16 v10, 0x437f0000 # 255.0f
mul-float/2addr v9, v10
float-to-double v9, v9
invoke-static {v9, v10}, Ljava/lang/Math;->floor(D)D
move-result-wide v9
double-to-int v9, v9
.line 18
.local v9, "Y":I
packed-switch v8, :pswitch_data_8c
goto :goto_55
.line 40
:pswitch_3a
const/4 v1, 0x0
.line 41
const/4 v2, 0x0
.line 42
const/16 v3, 0xff
goto :goto_55
.line 35
:pswitch_3f
const/4 v1, 0x0
.line 36
rsub-int v2, v9, 0xff
.line 37
const/16 v3, 0xff
.line 38
goto :goto_55
.line 30
:pswitch_45
const/4 v1, 0x0
.line 31
const/16 v2, 0xff
.line 32
move v3, v9
.line 33
goto :goto_55
.line 25
:pswitch_4a
rsub-int v1, v9, 0xff
.line 26
const/16 v2, 0xff
.line 27
const/4 v3, 0x0
.line 28
goto :goto_55
.line 20
:pswitch_50
const/16 v1, 0xff
.line 21
move v2, v9
.line 22
const/4 v3, 0x0
.line 23
nop
.line 45
:goto_55
mul-int/lit8 v10, v4, 0x4
int-to-byte v11, v1
aput-byte v11, p1, v10
.line 46
mul-int/lit8 v10, v4, 0x4
add-int/lit8 v10, v10, 0x1
int-to-byte v11, v2
aput-byte v11, p1, v10
.line 47
mul-int/lit8 v10, v4, 0x4
add-int/lit8 v10, v10, 0x2
int-to-byte v11, v3
aput-byte v11, p1, v10
.line 48
mul-int/lit8 v10, v4, 0x4
add-int/lit8 v10, v10, 0x3
aput-byte v6, p1, v10
.line 49
.end local v5 # "f":F
.end local v7 # "a":F
.end local v8 # "X":I
.end local v9 # "Y":I
goto :goto_86
.line 50
:cond_6f
mul-int/lit8 v5, v4, 0x4
const/4 v7, 0x0
aput-byte v7, p1, v5
.line 51
mul-int/lit8 v5, v4, 0x4
add-int/lit8 v5, v5, 0x1
aput-byte v7, p1, v5
.line 52
mul-int/lit8 v5, v4, 0x4
add-int/lit8 v5, v5, 0x2
aput-byte v7, p1, v5
.line 53
mul-int/lit8 v5, v4, 0x4
add-int/lit8 v5, v5, 0x3
aput-byte v6, p1, v5
.line 10
:goto_86
add-int/lit8 v4, v4, 0x1
goto/16 :goto_6
.line 56
.end local v4 # "i":I
:cond_8a
return-void
nop
:pswitch_data_8c
.packed-switch 0x0
:pswitch_50
:pswitch_4a
:pswitch_45
:pswitch_3f
:pswitch_3a
.end packed-switch
.end method
.class public final Lfit/tempo/kinematic/app/ProcessDepthKotlinKt;
.super Ljava/lang/Object;
.source "ProcessDepthKotlin.kt"
# annotations
.annotation runtime Lkotlin/Metadata;
d1 = {
"\u0000\u001a\n\u0000\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0012\n\u0000\n\u0002\u0010\u0008\n\u0000\u001a\u001e\u0010\u0000\u001a\u00020\u00012\u0006\u0010\u0002\u001a\u00020\u00032\u0006\u0010\u0004\u001a\u00020\u00052\u0006\u0010\u0006\u001a\u00020\u0007\u00a8\u0006\u0008"
}
d2 = {
"colorizeDepth",
"",
"shortArray",
"Ljava/nio/ShortBuffer;",
"bits",
"",
"size",
"",
"app_debug"
}
k = 0x2
mv = {
0x1,
0x8,
0x0
}
xi = 0x30
.end annotation
# direct methods
.method public static final colorizeDepth(Ljava/nio/ShortBuffer;[BI)V
.registers 14
.param p0, "shortArray" # Ljava/nio/ShortBuffer;
.param p1, "bits" # [B
.param p2, "size" # I
const-string v0, "shortArray"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
const-string v0, "bits"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
.line 6
sget-object v0, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v0}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Float$val-maxRange$fun-colorizeDepth()F
move-result v0
.line 7
.local v0, "maxRange":F
sget-object v1, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v1}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Int$val-r$fun-colorizeDepth()I
move-result v1
.line 8
.local v1, "r":I
sget-object v2, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v2}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Int$val-g$fun-colorizeDepth()I
move-result v2
.line 9
.local v2, "g":I
sget-object v3, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v3}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Int$val-b$fun-colorizeDepth()I
move-result v3
.line 10
.local v3, "b":I
const/4 v4, 0x0
.local v4, "i":I
:goto_23
if-ge v4, p2, :cond_18a
.line 11
invoke-virtual {p0, v4}, Ljava/nio/ShortBuffer;->get(I)S
move-result v5
sget-object v6, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v6}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Int$arg-1$call-greater$cond$if$body$loop$fun-colorizeDepth()I
move-result v6
if-le v5, v6, :cond_131
.line 13
invoke-virtual {p0, v4}, Ljava/nio/ShortBuffer;->get(I)S
move-result v5
int-to-float v5, v5
div-float/2addr v5, v0
.line 14
.local v5, "f":F
sget-object v6, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v6}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Float$arg-1$call-greater$cond$if$branch$if$body$loop$fun-colorizeDepth()F
move-result v6
cmpl-float v6, v5, v6
if-lez v6, :cond_47
sget-object v6, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v6}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Float$set-f$branch$if$branch$if$body$loop$fun-colorizeDepth()F
move-result v5
.line 15
:cond_47
sget-object v6, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v6}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Float$$this$call-minus$$this$call-div$val-a$branch$if$body$loop$fun-colorizeDepth()F
move-result v6
sub-float/2addr v6, v5
sget-object v7, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v7}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Float$arg-0$call-div$val-a$branch$if$body$loop$fun-colorizeDepth()F
move-result v7
div-float/2addr v6, v7
.line 16
.local v6, "a":F
float-to-double v7, v6
invoke-static {v7, v8}, Ljava/lang/Math;->floor(D)D
move-result-wide v7
double-to-int v7, v7
.line 18
.local v7, "X":I
sget-object v8, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v8}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Float$$this$call-times$$this$call-toDouble$arg-0$call-floor$$this$call-toInt$val-Y$branch$if$body$loop$fun-colorizeDepth()F
move-result v8
int-to-float v9, v7
sub-float v9, v6, v9
mul-float/2addr v8, v9
float-to-double v8, v8
invoke-static {v8, v9}, Ljava/lang/Math;->floor(D)D
move-result-wide v8
double-to-int v8, v8
.line 17
nop
.line 19
.local v8, "Y":I
nop
.line 20
sget-object v9, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v9}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Int$arg-1$call-EQEQ$cond$when$branch$if$body$loop$fun-colorizeDepth()I
move-result v9
if-ne v7, v9, :cond_83
.line 21
sget-object v9, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v9}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Int$set-r$branch$when$branch$if$body$loop$fun-colorizeDepth()I
move-result v1
.line 22
move v2, v8
.line 23
sget-object v9, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v9}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Int$set-b$branch$when$branch$if$body$loop$fun-colorizeDepth()I
move-result v3
goto :goto_ed
.line 25
:cond_83
sget-object v9, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v9}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Int$arg-1$call-EQEQ$cond-1$when$branch$if$body$loop$fun-colorizeDepth()I
move-result v9
if-ne v7, v9, :cond_a0
.line 26
sget-object v9, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v9}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Int$$this$call-minus$set-r$branch-1$when$branch$if$body$loop$fun-colorizeDepth()I
move-result v9
sub-int v1, v9, v8
.line 27
sget-object v9, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v9}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Int$set-g$branch-1$when$branch$if$body$loop$fun-colorizeDepth()I
move-result v2
.line 28
sget-object v9, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v9}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Int$set-b$branch-1$when$branch$if$body$loop$fun-colorizeDepth()I
move-result v3
goto :goto_ed
.line 30
:cond_a0
sget-object v9, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v9}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Int$arg-1$call-EQEQ$cond-2$when$branch$if$body$loop$fun-colorizeDepth()I
move-result v9
if-ne v7, v9, :cond_b6
.line 31
sget-object v9, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v9}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Int$set-r$branch-2$when$branch$if$body$loop$fun-colorizeDepth()I
move-result v1
.line 32
sget-object v9, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v9}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Int$set-g$branch-2$when$branch$if$body$loop$fun-colorizeDepth()I
move-result v2
.line 33
move v3, v8
goto :goto_ed
.line 35
:cond_b6
sget-object v9, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v9}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Int$arg-1$call-EQEQ$cond-3$when$branch$if$body$loop$fun-colorizeDepth()I
move-result v9
if-ne v7, v9, :cond_d3
.line 36
sget-object v9, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v9}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Int$set-r$branch-3$when$branch$if$body$loop$fun-colorizeDepth()I
move-result v1
.line 37
sget-object v9, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v9}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Int$$this$call-minus$set-g$branch-3$when$branch$if$body$loop$fun-colorizeDepth()I
move-result v9
sub-int v2, v9, v8
.line 38
sget-object v9, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v9}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Int$set-b$branch-3$when$branch$if$body$loop$fun-colorizeDepth()I
move-result v3
goto :goto_ed
.line 40
:cond_d3
sget-object v9, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v9}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Int$arg-1$call-EQEQ$cond-4$when$branch$if$body$loop$fun-colorizeDepth()I
move-result v9
if-ne v7, v9, :cond_ed
.line 41
sget-object v9, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v9}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Int$set-r$branch-4$when$branch$if$body$loop$fun-colorizeDepth()I
move-result v1
.line 42
sget-object v9, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v9}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Int$set-g$branch-4$when$branch$if$body$loop$fun-colorizeDepth()I
move-result v2
.line 43
sget-object v9, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v9}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Int$set-b$branch-4$when$branch$if$body$loop$fun-colorizeDepth()I
move-result v3
.line 46
:cond_ed
:goto_ed
sget-object v9, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v9}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Int$arg-0$call-times$arg-0$call-set$branch$if$body$loop$fun-colorizeDepth()I
move-result v9
mul-int/2addr v9, v4
int-to-byte v10, v1
aput-byte v10, p1, v9
.line 47
sget-object v9, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v9}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Int$arg-0$call-times$$this$call-plus$arg-0$call-set-1$branch$if$body$loop$fun-colorizeDepth()I
move-result v9
mul-int/2addr v9, v4
sget-object v10, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v10}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Int$arg-0$call-plus$arg-0$call-set-1$branch$if$body$loop$fun-colorizeDepth()I
move-result v10
add-int/2addr v9, v10
int-to-byte v10, v2
aput-byte v10, p1, v9
.line 48
sget-object v9, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v9}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Int$arg-0$call-times$$this$call-plus$arg-0$call-set-2$branch$if$body$loop$fun-colorizeDepth()I
move-result v9
mul-int/2addr v9, v4
sget-object v10, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v10}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Int$arg-0$call-plus$arg-0$call-set-2$branch$if$body$loop$fun-colorizeDepth()I
move-result v10
add-int/2addr v9, v10
int-to-byte v10, v3
aput-byte v10, p1, v9
.line 49
sget-object v9, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v9}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Int$arg-0$call-times$$this$call-plus$arg-0$call-set-3$branch$if$body$loop$fun-colorizeDepth()I
move-result v9
mul-int/2addr v9, v4
sget-object v10, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v10}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Int$arg-0$call-plus$arg-0$call-set-3$branch$if$body$loop$fun-colorizeDepth()I
move-result v10
add-int/2addr v9, v10
sget-object v10, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v10}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Int$$this$call-toByte$arg-1$call-set-3$branch$if$body$loop$fun-colorizeDepth()I
move-result v10
int-to-byte v10, v10
aput-byte v10, p1, v9
.end local v5 # "f":F
.end local v6 # "a":F
.end local v7 # "X":I
.end local v8 # "Y":I
goto :goto_186
.line 51
:cond_131
sget-object v5, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v5}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Int$arg-0$call-times$arg-0$call-set$else$if$body$loop$fun-colorizeDepth()I
move-result v5
mul-int/2addr v5, v4
sget-object v6, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v6}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Int$$this$call-toByte$arg-1$call-set$else$if$body$loop$fun-colorizeDepth()I
move-result v6
int-to-byte v6, v6
aput-byte v6, p1, v5
.line 52
sget-object v5, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v5}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Int$arg-0$call-times$$this$call-plus$arg-0$call-set-1$else$if$body$loop$fun-colorizeDepth()I
move-result v5
mul-int/2addr v5, v4
sget-object v6, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v6}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Int$arg-0$call-plus$arg-0$call-set-1$else$if$body$loop$fun-colorizeDepth()I
move-result v6
add-int/2addr v5, v6
sget-object v6, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v6}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Int$$this$call-toByte$arg-1$call-set-1$else$if$body$loop$fun-colorizeDepth()I
move-result v6
int-to-byte v6, v6
aput-byte v6, p1, v5
.line 53
sget-object v5, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v5}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Int$arg-0$call-times$$this$call-plus$arg-0$call-set-2$else$if$body$loop$fun-colorizeDepth()I
move-result v5
mul-int/2addr v5, v4
sget-object v6, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v6}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Int$arg-0$call-plus$arg-0$call-set-2$else$if$body$loop$fun-colorizeDepth()I
move-result v6
add-int/2addr v5, v6
sget-object v6, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v6}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Int$$this$call-toByte$arg-1$call-set-2$else$if$body$loop$fun-colorizeDepth()I
move-result v6
int-to-byte v6, v6
aput-byte v6, p1, v5
.line 54
sget-object v5, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v5}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Int$arg-0$call-times$$this$call-plus$arg-0$call-set-3$else$if$body$loop$fun-colorizeDepth()I
move-result v5
mul-int/2addr v5, v4
sget-object v6, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v6}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Int$arg-0$call-plus$arg-0$call-set-3$else$if$body$loop$fun-colorizeDepth()I
move-result v6
add-int/2addr v5, v6
sget-object v6, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->INSTANCE:Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;
invoke-virtual {v6}, Lfit/tempo/kinematic/app/LiveLiterals$ProcessDepthKotlinKt;->Int$$this$call-toByte$arg-1$call-set-3$else$if$body$loop$fun-colorizeDepth()I
move-result v6
int-to-byte v6, v6
aput-byte v6, p1, v5
.line 10
:goto_186
add-int/lit8 v4, v4, 0x1
goto/16 :goto_23
.line 57
.end local v4 # "i":I
:cond_18a
return-void
.end method
.class public final Lfit/tempo/kinematic/app/ProcessDepthKotlinKt;
.super Ljava/lang/Object;
.source "ProcessDepthKotlin.kt"
# annotations
.annotation runtime Lkotlin/Metadata;
d1 = {
"\u0000\u001a\n\u0000\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0012\n\u0000\n\u0002\u0010\u0008\n\u0000\u001a\u001e\u0010\u0000\u001a\u00020\u00012\u0006\u0010\u0002\u001a\u00020\u00032\u0006\u0010\u0004\u001a\u00020\u00052\u0006\u0010\u0006\u001a\u00020\u0007\u00a8\u0006\u0008"
}
d2 = {
"colorizeDepth",
"",
"shortArray",
"Ljava/nio/ShortBuffer;",
"bits",
"",
"size",
"",
"app_release"
}
k = 0x2
mv = {
0x1,
0x8,
0x0
}
xi = 0x30
.end annotation
# direct methods
.method public static final colorizeDepth(Ljava/nio/ShortBuffer;[BI)V
.registers 14
const-string v0, "shortArray"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
const-string v0, "bits"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
const/4 v0, 0x0
move v1, v0
move v2, v1
move v3, v2
move v4, v3
:goto_f
if-ge v1, p2, :cond_88
.line 11
invoke-virtual {p0, v1}, Ljava/nio/ShortBuffer;->get(I)S
move-result v5
const/4 v6, -0x1
const/4 v7, 0x3
if-lez v5, :cond_76
.line 13
invoke-virtual {p0, v1}, Ljava/nio/ShortBuffer;->get(I)S
move-result v5
int-to-float v5, v5
const v8, 0x453b8000 # 3000.0f
div-float/2addr v5, v8
const/high16 v8, 0x3f800000 # 1.0f
cmpl-float v9, v5, v8
if-lez v9, :cond_29
move v5, v8
:cond_29
sub-float/2addr v8, v5
const/high16 v5, 0x3e800000 # 0.25f
div-float/2addr v8, v5
float-to-double v9, v8
.line 16
invoke-static {v9, v10}, Ljava/lang/Math;->floor(D)D
move-result-wide v9
double-to-int v5, v9
int-to-float v9, v5
sub-float/2addr v8, v9
const/high16 v9, 0x437f0000 # 255.0f
mul-float/2addr v8, v9
float-to-double v8, v8
.line 18
invoke-static {v8, v9}, Ljava/lang/Math;->floor(D)D
move-result-wide v8
double-to-int v8, v8
const/16 v9, 0xff
if-eqz v5, :cond_60
const/4 v10, 0x1
if-eq v5, v10, :cond_5b
const/4 v10, 0x2
if-eq v5, v10, :cond_58
if-eq v5, v7, :cond_52
const/4 v8, 0x4
if-eq v5, v8, :cond_4e
goto :goto_63
:cond_4e
move v2, v0
move v3, v2
move v4, v9
goto :goto_63
:cond_52
rsub-int v2, v8, 0xff
move v3, v2
move v4, v9
move v2, v0
goto :goto_63
:cond_58
move v2, v0
move v4, v8
goto :goto_5e
:cond_5b
rsub-int v2, v8, 0xff
move v4, v0
:goto_5e
move v3, v9
goto :goto_63
:cond_60
move v4, v0
move v3, v8
move v2, v9
:goto_63
mul-int/lit8 v5, v1, 0x4
int-to-byte v8, v2
.line 46
aput-byte v8, p1, v5
add-int/lit8 v8, v5, 0x1
int-to-byte v9, v3
.line 47
aput-byte v9, p1, v8
add-int/lit8 v8, v5, 0x2
int-to-byte v9, v4
.line 48
aput-byte v9, p1, v8
add-int/2addr v5, v7
.line 49
aput-byte v6, p1, v5
goto :goto_85
:cond_76
mul-int/lit8 v5, v1, 0x4
.line 51
aput-byte v0, p1, v5
add-int/lit8 v8, v5, 0x1
.line 52
aput-byte v0, p1, v8
add-int/lit8 v8, v5, 0x2
.line 53
aput-byte v0, p1, v8
add-int/2addr v5, v7
.line 54
aput-byte v6, p1, v5
:goto_85
add-int/lit8 v1, v1, 0x1
goto :goto_f
:cond_88
return-void
.end method
package fit.tempo.kinematic.app;
import java.nio.ShortBuffer;
public class ProcessDepth {
static void colorizeDepth(ShortBuffer shortArray, byte[] bits, int size) {
int maxRange = 3000;
int r = 0, g = 0, b = 0;
for (int i = 0; i < size; i++) {
if (shortArray.get(i) > 0) {
//Short Rainbow
float f = (float) shortArray.get(i) / (maxRange);
if (f > 1) f = 1;
float a = (float) ((1 - f) / 0.25); //invert and group
int X = (int) Math.floor(a);
int Y = (int) Math.floor(255 * (a - X)); //fractional part from 0 to 255
switch (X) {
case 0:
r = 255;
g = Y;
b = 0;
break;
case 1:
r = 255 - Y;
g = 255;
b = 0;
break;
case 2:
r = 0;
g = 255;
b = Y;
break;
case 3:
r = 0;
g = 255 - Y;
b = 255;
break;
case 4:
r = 0;
g = 0;
b = 255;
break;
}
bits[i * 4] = (byte) r;
bits[i * 4 + 1] = (byte) g;
bits[i * 4 + 2] = (byte) b;
bits[i * 4 + 3] = (byte) 0xff;
} else {
bits[i * 4] = (byte) 0;
bits[i * 4 + 1] = (byte) 0;
bits[i * 4 + 2] = (byte) 0;
bits[i * 4 + 3] = (byte) 0xff;
}
}
}
}
package fit.tempo.kinematic.app
import java.nio.ShortBuffer
fun colorizeDepth(shortArray: ShortBuffer, bits: ByteArray, size: Int) {
val maxRange = 3000
var r = 0
var g = 0
var b = 0
for (i in 0 until size) {
if (shortArray[i] > 0) {
//Short Rainbow
var f = shortArray[i].toFloat() / maxRange
if (f > 1) f = 1f
val a = ((1 - f) / 0.25).toFloat() //invert and group
val X = Math.floor(a.toDouble()).toInt()
val Y =
Math.floor((255 * (a - X)).toDouble()).toInt() //fractional part from 0 to 255
when (X) {
0 -> {
r = 255
g = Y
b = 0
}
1 -> {
r = 255 - Y
g = 255
b = 0
}
2 -> {
r = 0
g = 255
b = Y
}
3 -> {
r = 0
g = 255 - Y
b = 255
}
4 -> {
r = 0
g = 0
b = 255
}
}
bits[i * 4] = r.toByte()
bits[i * 4 + 1] = g.toByte()
bits[i * 4 + 2] = b.toByte()
bits[i * 4 + 3] = 0xff.toByte()
} else {
bits[i * 4] = 0.toByte()
bits[i * 4 + 1] = 0.toByte()
bits[i * 4 + 2] = 0.toByte()
bits[i * 4 + 3] = 0xff.toByte()
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment