Utils.smali
.class public Lcom/censivn/C3DEngine/utils/Utils;
.super Ljava/lang/Object;
.source "Utils.java"
# static fields
.field private static final BYTES_PER_FLOAT:I = 0x4
.field public static final DEG:F = 0.017453292f
# direct methods
.method public constructor <init>()V
.registers 1
.prologue
.line 30
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static Multiply(DDDDDD)D
.registers 18
.prologue
.line 577
sub-double v0, p4, p0
sub-double v2, p10, p2
mul-double/2addr v0, v2
sub-double v2, p8, p0
sub-double v4, p6, p2
mul-double/2addr v2, v4
sub-double/2addr v0, v2
return-wide v0
.end method
.method public static addQuad(Lcom/censivn/C3DEngine/coreapi/primitives/Object3d;IIII)V
.registers 9
.prologue
.line 254
invoke-virtual {p0}, Lcom/censivn/C3DEngine/coreapi/primitives/Object3d;->faces()Lcom/censivn/C3DEngine/api/element/FacesBufferedList;
move-result-object v0
int-to-short v1, p1
int-to-short v2, p3
int-to-short v3, p2
invoke-virtual {v0, v1, v2, v3}, Lcom/censivn/C3DEngine/api/element/FacesBufferedList;->add(SSS)V
.line 255
invoke-virtual {p0}, Lcom/censivn/C3DEngine/coreapi/primitives/Object3d;->faces()Lcom/censivn/C3DEngine/api/element/FacesBufferedList;
move-result-object v0
int-to-short v1, p1
int-to-short v2, p4
int-to-short v3, p3
invoke-virtual {v0, v1, v2, v3}, Lcom/censivn/C3DEngine/api/element/FacesBufferedList;->add(SSS)V
.line 256
return-void
.end method
.method public static calAngle(Lcom/censivn/C3DEngine/api/element/Number3d;Lcom/censivn/C3DEngine/api/element/Number3d;)D
.registers 6
.prologue
.line 396
iget v0, p1, Lcom/censivn/C3DEngine/api/element/Number3d;->y:F
iget v1, p0, Lcom/censivn/C3DEngine/api/element/Number3d;->y:F
sub-float/2addr v0, v1
float-to-double v0, v0
iget v2, p1, Lcom/censivn/C3DEngine/api/element/Number3d;->x:F
iget v3, p0, Lcom/censivn/C3DEngine/api/element/Number3d;->x:F
sub-float/2addr v2, v3
float-to-double v2, v2
invoke-static {v0, v1, v2, v3}, Ljava/lang/Math;->atan2(DD)D
move-result-wide v0
.line 398
return-wide v0
.end method
.method public static calAngle(FFFF)F
.registers 16
.prologue
const-wide v0, 0x4066800000000000L # 180.0
const-wide/high16 v10, 0x4000000000000000L # 2.0
const/4 v4, 0x0
.line 335
sub-float v5, p2, p0
.line 337
sub-float v6, p3, p1
.line 339
float-to-double v2, v5
invoke-static {v2, v3, v10, v11}, Ljava/lang/Math;->pow(DD)D
move-result-wide v2
float-to-double v8, v6
invoke-static {v8, v9, v10, v11}, Ljava/lang/Math;->pow(DD)D
move-result-wide v8
add-double/2addr v2, v8
invoke-static {v2, v3}, Ljava/lang/Math;->sqrt(D)D
move-result-wide v2
.line 341
const-wide/16 v8, 0x0
cmpl-double v7, v2, v8
if-nez v7, :cond_23
move v0, v4
.line 361
:goto_22
return v0
.line 347
:cond_23
float-to-double v8, v5
div-double v2, v8, v2
invoke-static {v2, v3}, Ljava/lang/Math;->acos(D)D
move-result-wide v2
.line 349
const-wide v8, 0x400921fb54442d18L # Math.PI
div-double v2, v8, v2
div-double v2, v0, v2
.line 351
cmpg-float v7, v6, v4
if-gez v7, :cond_3a
.line 353
neg-double v0, v2
.line 361
:cond_38
:goto_38
double-to-float v0, v0
goto :goto_22
.line 355
:cond_3a
cmpl-float v6, v6, v4
if-nez v6, :cond_42
cmpg-float v4, v5, v4
if-ltz v4, :cond_38
:cond_42
move-wide v0, v2
goto :goto_38
.end method
.method public static calPointsDistance(FFFF)F
.registers 10
.prologue
const-wide/high16 v4, 0x4000000000000000L # 2.0
.line 307
sub-float v0, p2, p0
float-to-double v0, v0
invoke-static {v0, v1, v4, v5}, Ljava/lang/Math;->pow(DD)D
move-result-wide v0
sub-float v2, p3, p1
float-to-double v2, v2
invoke-static {v2, v3, v4, v5}, Ljava/lang/Math;->pow(DD)D
move-result-wide v2
add-double/2addr v0, v2
invoke-static {v0, v1}, Ljava/lang/Math;->sqrt(D)D
move-result-wide v0
double-to-float v0, v0
return v0
.end method
.method public static calPointsDistance(Lcom/censivn/C3DEngine/api/element/Number3d;Lcom/censivn/C3DEngine/api/element/Number3d;)F
.registers 6
.prologue
.line 295
iget v0, p0, Lcom/censivn/C3DEngine/api/element/Number3d;->x:F
.line 296
iget v1, p0, Lcom/censivn/C3DEngine/api/element/Number3d;->y:F
.line 298
iget v2, p1, Lcom/censivn/C3DEngine/api/element/Number3d;->x:F
.line 299
iget v3, p1, Lcom/censivn/C3DEngine/api/element/Number3d;->y:F
.line 301
invoke-static {v0, v1, v2, v3}, Lcom/censivn/C3DEngine/utils/Utils;->calPointsDistance(FFFF)F
move-result v0
return v0
.end method
.method public static calPointsDistance(Lcom/censivn/C3DEngine/coreapi/primitives/Object3d;Lcom/censivn/C3DEngine/coreapi/primitives/Object3d;)F
.registers 6
.prologue
.line 283
invoke-virtual {p0}, Lcom/censivn/C3DEngine/coreapi/primitives/Object3d;->position()Lcom/censivn/C3DEngine/api/element/PositionNumber3d;
move-result-object v0
iget v0, v0, Lcom/censivn/C3DEngine/api/element/PositionNumber3d;->x:F
.line 284
invoke-virtual {p0}, Lcom/censivn/C3DEngine/coreapi/primitives/Object3d;->position()Lcom/censivn/C3DEngine/api/element/PositionNumber3d;
move-result-object v1
iget v1, v1, Lcom/censivn/C3DEngine/api/element/PositionNumber3d;->y:F
.line 286
invoke-virtual {p1}, Lcom/censivn/C3DEngine/coreapi/primitives/Object3d;->position()Lcom/censivn/C3DEngine/api/element/PositionNumber3d;
move-result-object v2
iget v2, v2, Lcom/censivn/C3DEngine/api/element/PositionNumber3d;->x:F
.line 287
invoke-virtual {p1}, Lcom/censivn/C3DEngine/coreapi/primitives/Object3d;->position()Lcom/censivn/C3DEngine/api/element/PositionNumber3d;
move-result-object v3
iget v3, v3, Lcom/censivn/C3DEngine/api/element/PositionNumber3d;->y:F
.line 289
invoke-static {v0, v1, v2, v3}, Lcom/censivn/C3DEngine/utils/Utils;->calPointsDistance(FFFF)F
move-result v0
return v0
.end method
.method public static checkGlError(Ljava/lang/String;)V
.registers 5
.annotation build Landroid/annotation/SuppressLint;
value = {
"NewApi"
}
.end annotation
.prologue
.line 660
invoke-static {}, Landroid/opengl/GLES20;->glGetError()I
move-result v0
if-eqz v0, :cond_3f
.line 661
const-string v1, "Censivn3D"
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
const-string v3, ": glError "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 662
new-instance v1, Ljava/lang/RuntimeException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
const-string v3, ": glError "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v1, v0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v1
.line 664
:cond_3f
return-void
.end method
.method public static conversionCoordinatesGS(FF)[F
.registers 5
.prologue
.line 403
const/4 v0, 0x2
new-array v0, v0, [F
.line 405
const/4 v1, 0x0
sget v2, Lcom/censivn/C3DEngine/core/CanvasInfo;->SCREEN_HALF_WIDTH:I
int-to-float v2, v2
add-float/2addr v2, p0
aput v2, v0, v1
.line 407
const/4 v1, 0x1
sget v2, Lcom/censivn/C3DEngine/core/CanvasInfo;->SCREEN_HALF_HEIGHT:I
int-to-float v2, v2
sub-float/2addr v2, p1
aput v2, v0, v1
.line 409
return-object v0
.end method
.method public static conversionCoordinatesSG(FF)[F
.registers 6
.prologue
.line 421
const/4 v0, 0x2
new-array v0, v0, [F
.line 423
const/4 v1, 0x0
sget v2, Lcom/censivn/C3DEngine/core/CanvasInfo;->SCREEN_HALF_WIDTH:I
int-to-float v2, v2
sub-float v2, p0, v2
aput v2, v0, v1
.line 425
const/4 v1, 0x1
const/4 v2, 0x0
sget v3, Lcom/censivn/C3DEngine/core/CanvasInfo;->SCREEN_HALF_HEIGHT:I
int-to-float v3, v3
sub-float v3, p1, v3
sub-float/2addr v2, v3
aput v2, v0, v1
.line 427
return-object v0
.end method
.method public static conversionCoordinatesSG(FF[F)[F
.registers 6
.prologue
.line 439
const/4 v0, 0x0
sget v1, Lcom/censivn/C3DEngine/core/CanvasInfo;->SCREEN_HALF_WIDTH:I
int-to-float v1, v1
sub-float v1, p0, v1
aput v1, p2, v0
.line 441
const/4 v0, 0x1
const/4 v1, 0x0
sget v2, Lcom/censivn/C3DEngine/core/CanvasInfo;->SCREEN_HALF_HEIGHT:I
int-to-float v2, v2
sub-float v2, p1, v2
sub-float/2addr v1, v2
aput v1, p2, v0
.line 443
return-object p2
.end method
.method public static conversionCoordinatesSG(Landroid/view/MotionEvent;)[F
.registers 3
.prologue
.line 415
invoke-virtual {p0}, Landroid/view/MotionEvent;->getX()F
move-result v0
invoke-virtual {p0}, Landroid/view/MotionEvent;->getY()F
move-result v1
invoke-static {v0, v1}, Lcom/censivn/C3DEngine/utils/Utils;->conversionCoordinatesSG(FF)[F
move-result-object v0
return-object v0
.end method
.method public static conversionCoordinatesSG(Landroid/view/MotionEvent;[F)[F
.registers 4
.prologue
.line 433
invoke-virtual {p0}, Landroid/view/MotionEvent;->getX()F
move-result v0
invoke-virtual {p0}, Landroid/view/MotionEvent;->getY()F
move-result v1
invoke-static {v0, v1, p1}, Lcom/censivn/C3DEngine/utils/Utils;->conversionCoordinatesSG(FF[F)[F
move-result-object v0
return-object v0
.end method
.method public static drawableToBitmap(Landroid/graphics/drawable/Drawable;)Landroid/graphics/Bitmap;
.registers 6
.prologue
const/4 v4, 0x0
.line 185
invoke-virtual {p0}, Landroid/graphics/drawable/Drawable;->getIntrinsicWidth()I
move-result v1
invoke-virtual {p0}, Landroid/graphics/drawable/Drawable;->getIntrinsicHeight()I
move-result v2
invoke-virtual {p0}, Landroid/graphics/drawable/Drawable;->getOpacity()I
move-result v0
const/4 v3, -0x1
if-eq v0, v3, :cond_2a
sget-object v0, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config;
:goto_12
invoke-static {v1, v2, v0}, Landroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
move-result-object v0
.line 186
new-instance v1, Landroid/graphics/Canvas;
invoke-direct {v1, v0}, Landroid/graphics/Canvas;-><init>(Landroid/graphics/Bitmap;)V
.line 189
invoke-virtual {p0}, Landroid/graphics/drawable/Drawable;->getIntrinsicWidth()I
move-result v2
invoke-virtual {p0}, Landroid/graphics/drawable/Drawable;->getIntrinsicHeight()I
move-result v3
invoke-virtual {p0, v4, v4, v2, v3}, Landroid/graphics/drawable/Drawable;->setBounds(IIII)V
.line 190
invoke-virtual {p0, v1}, Landroid/graphics/drawable/Drawable;->draw(Landroid/graphics/Canvas;)V
.line 191
return-object v0
.line 185
:cond_2a
sget-object v0, Landroid/graphics/Bitmap$Config;->RGB_565:Landroid/graphics/Bitmap$Config;
goto :goto_12
.end method
.method public static drawableToBitmap(Landroid/graphics/drawable/Drawable;II)Landroid/graphics/Bitmap;
.registers 6
.prologue
const/4 v2, 0x0
.line 174
invoke-virtual {p0}, Landroid/graphics/drawable/Drawable;->getOpacity()I
move-result v0
const/4 v1, -0x1
if-eq v0, v1, :cond_1a
sget-object v0, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config;
:goto_a
invoke-static {p1, p2, v0}, Landroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
move-result-object v0
.line 175
new-instance v1, Landroid/graphics/Canvas;
invoke-direct {v1, v0}, Landroid/graphics/Canvas;-><init>(Landroid/graphics/Bitmap;)V
.line 178
invoke-virtual {p0, v2, v2, p1, p2}, Landroid/graphics/drawable/Drawable;->setBounds(IIII)V
.line 179
invoke-virtual {p0, v1}, Landroid/graphics/drawable/Drawable;->draw(Landroid/graphics/Canvas;)V
.line 180
return-object v0
.line 174
:cond_1a
sget-object v0, Landroid/graphics/Bitmap$Config;->RGB_565:Landroid/graphics/Bitmap$Config;
goto :goto_a
.end method
.method public static fixAngle(F)F
.registers 4
.prologue
const/4 v2, 0x0
.line 366
float-to-int v0, p0
div-int/lit16 v0, v0, 0x168
invoke-static {v0}, Ljava/lang/Math;->abs(I)I
move-result v0
.line 370
cmpl-float v1, p0, v2
if-lez v1, :cond_19
.line 372
mul-int/lit16 v0, v0, 0x168
.line 374
int-to-float v0, v0
sub-float v0, p0, v0
.line 384
:goto_11
cmpg-float v1, v0, v2
if-gez v1, :cond_18
.line 386
const/high16 v1, 0x43b40000 # 360.0f
add-float/2addr v0, v1
.line 390
:cond_18
return v0
.line 378
:cond_19
neg-int v0, v0
mul-int/lit16 v0, v0, 0x168
.line 380
int-to-float v0, v0
sub-float v0, p0, v0
goto :goto_11
.end method
.method public static flattenBitmap(Landroid/graphics/Bitmap;)[B
.registers 4
.prologue
.line 238
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getWidth()I
move-result v0
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getHeight()I
move-result v1
mul-int/2addr v0, v1
mul-int/lit8 v0, v0, 0x4
.line 239
new-instance v1, Ljava/io/ByteArrayOutputStream;
invoke-direct {v1, v0}, Ljava/io/ByteArrayOutputStream;-><init>(I)V
.line 241
:try_start_10
sget-object v0, Landroid/graphics/Bitmap$CompressFormat;->PNG:Landroid/graphics/Bitmap$CompressFormat;
const/16 v2, 0x64
invoke-virtual {p0, v0, v2, v1}, Landroid/graphics/Bitmap;->compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z
.line 242
invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->flush()V
.line 243
invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->close()V
.line 244
invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
:try_end_20
.catch Ljava/io/IOException; {:try_start_10 .. :try_end_20} :catch_22
move-result-object v0
.line 247
:goto_21
return-object v0
.line 245
:catch_22
move-exception v0
.line 246
const-string v0, "Favorite"
const-string v1, "Could not write icon"
invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
.line 247
const/4 v0, 0x0
goto :goto_21
.end method
.method public static getFixSize(I)I
.registers 5
.prologue
.line 449
const/16 v0, 0xa
new-array v1, v0, [I
fill-array-data v1, :array_1a
.line 451
array-length v2, v1
.line 453
const/4 v0, 0x0
:goto_9
if-ge v0, v2, :cond_15
.line 455
aget v3, v1, v0
if-gt p0, v3, :cond_12
.line 457
aget v0, v1, v0
.line 463
:goto_11
return v0
.line 453
:cond_12
add-int/lit8 v0, v0, 0x1
goto :goto_9
.line 463
:cond_15
add-int/lit8 v0, v2, -0x1
aget v0, v1, v0
goto :goto_11
.line 449
:array_1a
.array-data 4
0x2
0x4
0x8
0x10
0x20
0x40
0x80
0x100
0x200
0x400
.end array-data
.end method
.method public static getGridItemFormat(IIIIII)[I
.registers 12
.prologue
const/4 v1, 0x2
.line 469
const/4 v0, 0x4
new-array v3, v0, [I
.line 473
mul-int/lit8 v0, p4, 0x2
sub-int v2, p0, v0
move v0, v1
.line 477
:goto_9
add-int/lit8 v4, v0, -0x1
div-int v4, v2, v4
if-le v4, p2, :cond_12
.line 479
add-int/lit8 v0, v0, 0x1
goto :goto_9
.line 483
:cond_12
add-int/lit8 v0, v0, -0x1
.line 491
if-ge v0, v1, :cond_17
move v0, v1
.line 499
:cond_17
mul-int/lit8 v2, p5, 0x2
sub-int v4, p1, v2
move v2, v1
.line 503
:goto_1c
add-int/lit8 v5, v2, -0x1
div-int v5, v4, v5
if-le v5, p3, :cond_25
.line 505
add-int/lit8 v2, v2, 0x1
goto :goto_1c
.line 509
:cond_25
add-int/lit8 v2, v2, -0x1
.line 517
if-ge v2, v1, :cond_2a
move v2, v1
.line 523
:cond_2a
const/4 v4, 0x0
aput v0, v3, v4
.line 524
const/4 v4, 0x1
aput v2, v3, v4
.line 525
mul-int/lit8 v4, p4, 0x2
sub-int v4, p0, v4
add-int/lit8 v0, v0, -0x1
div-int v0, v4, v0
aput v0, v3, v1
.line 526
const/4 v0, 0x3
mul-int/lit8 v1, p5, 0x2
sub-int v1, p1, v1
add-int/lit8 v2, v2, -0x1
div-int/2addr v1, v2
aput v1, v3, v0
.line 528
return-object v3
.end method
.method public static getRotation(FFFF)F
.registers 10
.prologue
const-wide v4, 0x3f91df46a2529d39L # 0.017453292519943295
.line 313
sub-float v0, p0, p2
.line 315
sub-float v1, p1, p3
.line 319
const/4 v2, 0x0
cmpl-float v2, v1, v2
if-lez v2, :cond_1a
.line 321
div-float/2addr v0, v1
float-to-double v0, v0
invoke-static {v0, v1}, Ljava/lang/Math;->atan(D)D
move-result-wide v0
div-double/2addr v0, v4
double-to-float v0, v0
const/high16 v1, 0x43340000 # 180.0f
add-float/2addr v0, v1
.line 329
:goto_19
return v0
.line 325
:cond_1a
div-float/2addr v0, v1
float-to-double v0, v0
invoke-static {v0, v1}, Ljava/lang/Math;->atan(D)D
move-result-wide v0
div-double/2addr v0, v4
double-to-float v0, v0
goto :goto_19
.end method
.method public static getString(Landroid/content/Context;I)Ljava/lang/String;
.registers 3
.prologue
const/4 v0, 0x0
.line 622
if-nez p0, :cond_4
.line 634
:cond_3
:goto_3
return-object v0
.line 628
:cond_4
if-eqz p1, :cond_3
.line 634
invoke-virtual {p0, p1}, Landroid/content/Context;->getString(I)Ljava/lang/String;
move-result-object v0
goto :goto_3
.end method
.method public static getString(Lcom/censivn/C3DEngine/Engine;I)Ljava/lang/String;
.registers 4
.prologue
const/4 v0, 0x0
.line 604
invoke-virtual {p0}, Lcom/censivn/C3DEngine/Engine;->getContext()Landroid/content/Context;
move-result-object v1
if-nez v1, :cond_8
.line 616
:cond_7
:goto_7
return-object v0
.line 610
:cond_8
if-eqz p1, :cond_7
.line 616
invoke-virtual {p0}, Lcom/censivn/C3DEngine/Engine;->getContext()Landroid/content/Context;
move-result-object v0
invoke-virtual {v0, p1}, Landroid/content/Context;->getString(I)Ljava/lang/String;
move-result-object v0
goto :goto_7
.end method
.method public static isIntersect(DDDDDDDD)Z
.registers 28
.prologue
.line 590
const/4 v0, 0x0
.line 591
sub-double v2, p4, p0
sub-double v4, p14, p10
mul-double/2addr v2, v4
sub-double v4, p6, p2
sub-double v6, p12, p8
mul-double/2addr v4, v6
sub-double/2addr v2, v4
.line 592
const-wide/16 v4, 0x0
cmpl-double v1, v2, v4
if-eqz v1, :cond_44
.line 593
sub-double v4, p2, p10
sub-double v6, p12, p8
mul-double/2addr v4, v6
sub-double v6, p0, p8
sub-double v8, p14, p10
mul-double/2addr v6, v8
sub-double/2addr v4, v6
div-double/2addr v4, v2
.line 594
sub-double v6, p2, p10
sub-double v8, p4, p0
mul-double/2addr v6, v8
sub-double v8, p0, p8
sub-double v10, p6, p2
mul-double/2addr v8, v10
sub-double/2addr v6, v8
div-double v2, v6, v2
.line 595
const-wide/16 v6, 0x0
cmpl-double v1, v4, v6
if-ltz v1, :cond_44
const-wide/high16 v6, 0x3ff0000000000000L # 1.0
cmpg-double v1, v4, v6
if-gtz v1, :cond_44
const-wide/16 v4, 0x0
cmpl-double v1, v2, v4
if-ltz v1, :cond_44
const-wide/high16 v4, 0x3ff0000000000000L # 1.0
cmpg-double v1, v2, v4
if-gtz v1, :cond_44
.line 596
const/4 v0, 0x1
.line 599
:cond_44
return v0
.end method
.method public static isPointInPolygon(DDLjava/util/ArrayList;Ljava/util/ArrayList;)Z
.registers 38
.annotation system Ldalvik/annotation/Signature;
value = {
"(DD",
"Ljava/util/ArrayList",
"<",
"Ljava/lang/Float;",
">;",
"Ljava/util/ArrayList",
"<",
"Ljava/lang/Float;",
">;)Z"
}
.end annotation
.prologue
.line 535
const/16 v28, 0x0
.line 536
const-wide v30, 0x3e112e0be826d695L # 1.0E-9
.line 537
const/4 v3, 0x0
.line 540
const-wide v22, 0x4066800000000000L # 180.0
.line 547
const/4 v2, 0x0
move/from16 v26, v2
move/from16 v27, v3
:goto_12
invoke-virtual/range {p4 .. p4}, Ljava/util/ArrayList;->size()I
move-result v2
add-int/lit8 v2, v2, -0x1
move/from16 v0, v26
if-ge v0, v2, :cond_b9
.line 548
move-object/from16 v0, p4
move/from16 v1, v26
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/lang/Float;
invoke-virtual {v2}, Ljava/lang/Float;->floatValue()F
move-result v2
float-to-double v6, v2
.line 549
move-object/from16 v0, p5
move/from16 v1, v26
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/lang/Float;
invoke-virtual {v2}, Ljava/lang/Float;->floatValue()F
move-result v2
float-to-double v8, v2
.line 550
add-int/lit8 v2, v26, 0x1
move-object/from16 v0, p4
invoke-virtual {v0, v2}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/lang/Float;
invoke-virtual {v2}, Ljava/lang/Float;->floatValue()F
move-result v2
float-to-double v10, v2
.line 551
add-int/lit8 v2, v26, 0x1
move-object/from16 v0, p5
invoke-virtual {v0, v2}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/lang/Float;
invoke-virtual {v2}, Ljava/lang/Float;->floatValue()F
move-result v2
float-to-double v12, v2
move-wide/from16 v2, p0
move-wide/from16 v4, p2
.line 552
invoke-static/range {v2 .. v13}, Lcom/censivn/C3DEngine/utils/Utils;->isPointOnLine(DDDDDD)Z
move-result v2
if-eqz v2, :cond_64
.line 553
const/4 v2, 0x1
.line 573
:goto_63
return v2
.line 555
:cond_64
sub-double v2, v12, v8
invoke-static {v2, v3}, Ljava/lang/Math;->abs(D)D
move-result-wide v2
cmpg-double v2, v2, v30
if-gez v2, :cond_77
move/from16 v3, v27
.line 547
:goto_70
add-int/lit8 v2, v26, 0x1
move/from16 v26, v2
move/from16 v27, v3
goto :goto_12
:cond_77
move-wide v14, v6
move-wide/from16 v16, v8
move-wide/from16 v18, p0
move-wide/from16 v20, p2
move-wide/from16 v24, p2
.line 559
invoke-static/range {v14 .. v25}, Lcom/censivn/C3DEngine/utils/Utils;->isPointOnLine(DDDDDD)Z
move-result v2
if-eqz v2, :cond_8f
.line 560
cmpl-double v2, v8, v12
if-lez v2, :cond_c3
.line 561
add-int/lit8 v27, v27, 0x1
move/from16 v3, v27
goto :goto_70
:cond_8f
move-wide/from16 v14, p0
move-wide/from16 v16, p2
move-wide/from16 v18, v22
move-wide/from16 v20, p2
.line 562
invoke-static/range {v10 .. v21}, Lcom/censivn/C3DEngine/utils/Utils;->isPointOnLine(DDDDDD)Z
move-result v2
if-eqz v2, :cond_a6
.line 563
cmpl-double v2, v12, v8
if-lez v2, :cond_c3
.line 564
add-int/lit8 v27, v27, 0x1
move/from16 v3, v27
goto :goto_70
:cond_a6
move-wide/from16 v14, p0
move-wide/from16 v16, p2
move-wide/from16 v18, v22
move-wide/from16 v20, p2
.line 565
invoke-static/range {v6 .. v21}, Lcom/censivn/C3DEngine/utils/Utils;->isIntersect(DDDDDDDD)Z
move-result v2
if-eqz v2, :cond_c3
.line 566
add-int/lit8 v27, v27, 0x1
move/from16 v3, v27
goto :goto_70
.line 569
:cond_b9
rem-int/lit8 v2, v27, 0x2
const/4 v3, 0x1
if-ne v2, v3, :cond_c0
.line 570
const/4 v2, 0x1
goto :goto_63
:cond_c0
move/from16 v2, v28
goto :goto_63
:cond_c3
move/from16 v3, v27
goto :goto_70
.end method
.method public static isPointOnLine(DDDDDD)Z
.registers 18
.prologue
.line 581
const/4 v0, 0x0
.line 582
const-wide v2, 0x3e112e0be826d695L # 1.0E-9
.line 583
invoke-static/range {p0 .. p11}, Lcom/censivn/C3DEngine/utils/Utils;->Multiply(DDDDDD)D
move-result-wide v4
invoke-static {v4, v5}, Ljava/lang/Math;->abs(D)D
move-result-wide v4
cmpg-double v1, v4, v2
if-gez v1, :cond_29
sub-double v2, p0, p4
sub-double v4, p0, p8
mul-double/2addr v2, v4
const-wide/16 v4, 0x0
cmpg-double v1, v2, v4
if-gtz v1, :cond_29
sub-double v2, p2, p6
sub-double v4, p2, p10
mul-double/2addr v2, v4
const-wide/16 v4, 0x0
cmpg-double v1, v2, v4
if-gtz v1, :cond_29
.line 584
const/4 v0, 0x1
.line 586
:cond_29
return v0
.end method
.method public static makeBitmapFromResourceId(Landroid/content/Context;I)Landroid/graphics/Bitmap;
.registers 3
.prologue
.line 37
invoke-virtual {p0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
move-result-object v0
invoke-static {v0, p1}, Lcom/censivn/C3DEngine/utils/Utils;->makeBitmapFromResourceId(Landroid/content/res/Resources;I)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.end method
.method public static makeBitmapFromResourceId(Landroid/content/Context;III)Landroid/graphics/Bitmap;
.registers 6
.prologue
.line 82
if-nez p0, :cond_4
.line 84
const/4 v1, 0x0
.line 106
:cond_3
:goto_3
return-object v1
.line 88
:cond_4
invoke-virtual {p0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
move-result-object v0
invoke-static {v0, p1}, Lcom/censivn/C3DEngine/utils/Utils;->makeBitmapFromResourceId(Landroid/content/res/Resources;I)Landroid/graphics/Bitmap;
move-result-object v1
.line 90
invoke-virtual {v1}, Landroid/graphics/Bitmap;->getWidth()I
move-result v0
if-ne v0, p2, :cond_18
invoke-virtual {v1}, Landroid/graphics/Bitmap;->getHeight()I
move-result v0
if-eq v0, p3, :cond_3
.line 96
:cond_18
const/4 v0, 0x1
invoke-static {v1, p2, p3, v0}, Landroid/graphics/Bitmap;->createScaledBitmap(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
move-result-object v0
.line 98
if-eq v0, v1, :cond_24
.line 100
invoke-virtual {v1}, Landroid/graphics/Bitmap;->recycle()V
:goto_22
move-object v1, v0
.line 106
goto :goto_3
:cond_24
move-object v0, v1
goto :goto_22
.end method
.method public static makeBitmapFromResourceId(Landroid/content/res/Resources;I)Landroid/graphics/Bitmap;
.registers 5
.prologue
.line 129
invoke-virtual {p0, p1}, Landroid/content/res/Resources;->openRawResource(I)Ljava/io/InputStream;
move-result-object v0
.line 133
:try_start_4
invoke-static {v0}, Landroid/graphics/BitmapFactory;->decodeStream(Ljava/io/InputStream;)Landroid/graphics/Bitmap;
:try_end_7
.catchall {:try_start_4 .. :try_end_7} :catchall_f
move-result-object v1
.line 136
:try_start_8
invoke-virtual {v0}, Ljava/io/InputStream;->close()V
:try_end_b
.catch Ljava/io/IOException; {:try_start_8 .. :try_end_b} :catch_1f
.line 142
:goto_b
if-nez v1, :cond_14
.line 144
const/4 v0, 0x0
.line 152
:goto_e
return-object v0
.line 135
:catchall_f
move-exception v1
.line 136
:try_start_10
invoke-virtual {v0}, Ljava/io/InputStream;->close()V
:try_end_13
.catch Ljava/io/IOException; {:try_start_10 .. :try_end_13} :catch_21
.line 139
:goto_13
throw v1
.line 148
:cond_14
sget-object v0, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config;
const/4 v2, 0x1
invoke-virtual {v1, v0, v2}, Landroid/graphics/Bitmap;->copy(Landroid/graphics/Bitmap$Config;Z)Landroid/graphics/Bitmap;
move-result-object v0
.line 150
invoke-virtual {v1}, Landroid/graphics/Bitmap;->recycle()V
goto :goto_e
.line 137
:catch_1f
move-exception v0
goto :goto_b
:catch_21
move-exception v0
goto :goto_13
.end method
.method public static makeBitmapFromResourceId(Landroid/content/res/Resources;III)Landroid/graphics/Bitmap;
.registers 6
.prologue
.line 111
invoke-static {p0, p1}, Lcom/censivn/C3DEngine/utils/Utils;->makeBitmapFromResourceId(Landroid/content/res/Resources;I)Landroid/graphics/Bitmap;
move-result-object v1
.line 113
const/4 v0, 0x1
invoke-static {v1, p2, p3, v0}, Landroid/graphics/Bitmap;->createScaledBitmap(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
move-result-object v0
.line 115
if-eq v0, v1, :cond_f
.line 117
invoke-virtual {v1}, Landroid/graphics/Bitmap;->recycle()V
.line 123
:goto_e
return-object v0
:cond_f
move-object v0, v1
goto :goto_e
.end method
.method public static makeBitmapFromResourceId(Lcom/censivn/C3DEngine/Engine;I)Landroid/graphics/Bitmap;
.registers 3
.prologue
.line 66
invoke-virtual {p0}, Lcom/censivn/C3DEngine/Engine;->getContext()Landroid/content/Context;
move-result-object v0
if-nez v0, :cond_8
.line 68
const/4 v0, 0x0
.line 71
:goto_7
return-object v0
:cond_8
invoke-virtual {p0}, Lcom/censivn/C3DEngine/Engine;->getContext()Landroid/content/Context;
move-result-object v0
invoke-virtual {v0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
move-result-object v0
invoke-static {v0, p1}, Lcom/censivn/C3DEngine/utils/Utils;->makeBitmapFromResourceId(Landroid/content/res/Resources;I)Landroid/graphics/Bitmap;
move-result-object v0
goto :goto_7
.end method
.method public static makeBitmapFromResourceId(Lcom/censivn/C3DEngine/Engine;III)Landroid/graphics/Bitmap;
.registers 5
.prologue
.line 76
invoke-virtual {p0}, Lcom/censivn/C3DEngine/Engine;->getContext()Landroid/content/Context;
move-result-object v0
invoke-static {v0, p1, p2, p3}, Lcom/censivn/C3DEngine/utils/Utils;->makeBitmapFromResourceId(Landroid/content/Context;III)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.end method
.method public static makeBitmapFromResourceId(Lcom/censivn/C3DEngine/Engine;Ljava/lang/String;I)Landroid/graphics/Bitmap;
.registers 6
.prologue
const/4 v0, 0x0
.line 43
invoke-virtual {p0}, Lcom/censivn/C3DEngine/Engine;->getContext()Landroid/content/Context;
move-result-object v1
if-nez v1, :cond_8
.line 62
:cond_7
:goto_7
return-object v0
.line 51
:cond_8
:try_start_8
invoke-virtual {p0}, Lcom/censivn/C3DEngine/Engine;->getContext()Landroid/content/Context;
move-result-object v1
invoke-virtual {p0}, Lcom/censivn/C3DEngine/Engine;->getContext()Landroid/content/Context;
invoke-virtual {p0}, Lcom/censivn/C3DEngine/Engine;->getContext()Landroid/content/Context;
const/4 v2, 0x3
invoke-virtual {v1, p1, v2}, Landroid/content/Context;->createPackageContext(Ljava/lang/String;I)Landroid/content/Context;
:try_end_16
.catch Landroid/content/pm/PackageManager$NameNotFoundException; {:try_start_8 .. :try_end_16} :catch_22
move-result-object v1
.line 56
:goto_17
if-eqz v1, :cond_7
.line 62
invoke-virtual {v1}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
move-result-object v0
invoke-static {v0, p2}, Lcom/censivn/C3DEngine/utils/Utils;->makeBitmapFromResourceId(Landroid/content/res/Resources;I)Landroid/graphics/Bitmap;
move-result-object v0
goto :goto_7
.line 52
:catch_22
move-exception v1
.line 53
invoke-virtual {v1}, Landroid/content/pm/PackageManager$NameNotFoundException;->printStackTrace()V
move-object v1, v0
goto :goto_17
.end method
.method public static makeFloatBuffer3(FFF)Ljava/nio/FloatBuffer;
.registers 5
.prologue
.line 259
const/16 v0, 0xc
invoke-static {v0}, Ljava/nio/ByteBuffer;->allocateDirect(I)Ljava/nio/ByteBuffer;
move-result-object v0
.line 260
invoke-static {}, Ljava/nio/ByteOrder;->nativeOrder()Ljava/nio/ByteOrder;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/nio/ByteBuffer;->order(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
.line 261
invoke-virtual {v0}, Ljava/nio/ByteBuffer;->asFloatBuffer()Ljava/nio/FloatBuffer;
move-result-object v0
.line 262
invoke-virtual {v0, p0}, Ljava/nio/FloatBuffer;->put(F)Ljava/nio/FloatBuffer;
.line 263
invoke-virtual {v0, p1}, Ljava/nio/FloatBuffer;->put(F)Ljava/nio/FloatBuffer;
.line 264
invoke-virtual {v0, p2}, Ljava/nio/FloatBuffer;->put(F)Ljava/nio/FloatBuffer;
.line 265
const/4 v1, 0x0
invoke-virtual {v0, v1}, Ljava/nio/FloatBuffer;->position(I)Ljava/nio/Buffer;
.line 266
return-object v0
.end method
.method public static makeFloatBuffer4(FFFF)Ljava/nio/FloatBuffer;
.registers 6
.prologue
.line 270
const/16 v0, 0x10
invoke-static {v0}, Ljava/nio/ByteBuffer;->allocateDirect(I)Ljava/nio/ByteBuffer;
move-result-object v0
.line 271
invoke-static {}, Ljava/nio/ByteOrder;->nativeOrder()Ljava/nio/ByteOrder;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/nio/ByteBuffer;->order(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
.line 272
invoke-virtual {v0}, Ljava/nio/ByteBuffer;->asFloatBuffer()Ljava/nio/FloatBuffer;
move-result-object v0
.line 273
invoke-virtual {v0, p0}, Ljava/nio/FloatBuffer;->put(F)Ljava/nio/FloatBuffer;
.line 274
invoke-virtual {v0, p1}, Ljava/nio/FloatBuffer;->put(F)Ljava/nio/FloatBuffer;
.line 275
invoke-virtual {v0, p2}, Ljava/nio/FloatBuffer;->put(F)Ljava/nio/FloatBuffer;
.line 276
invoke-virtual {v0, p3}, Ljava/nio/FloatBuffer;->put(F)Ljava/nio/FloatBuffer;
.line 277
const/4 v1, 0x0
invoke-virtual {v0, v1}, Ljava/nio/FloatBuffer;->position(I)Ljava/nio/Buffer;
.line 278
return-object v0
.end method
.method public static makeTextureFromResourceId(Lcom/censivn/C3DEngine/Engine;I)Lcom/censivn/C3DEngine/api/element/TextureElement;
.registers 5
.prologue
const/4 v2, 0x0
.line 212
invoke-virtual {p0}, Lcom/censivn/C3DEngine/Engine;->getContext()Landroid/content/Context;
move-result-object v0
if-nez v0, :cond_d
.line 214
new-instance v0, Lcom/censivn/C3DEngine/api/element/TextureElement;
invoke-direct {v0, v2, v2}, Lcom/censivn/C3DEngine/api/element/TextureElement;-><init>(IZ)V
.line 222
:goto_c
return-object v0
.line 218
:cond_d
invoke-virtual {p0}, Lcom/censivn/C3DEngine/Engine;->getContext()Landroid/content/Context;
move-result-object v0
invoke-virtual {v0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
move-result-object v0
invoke-static {v0, p1}, Lcom/censivn/C3DEngine/utils/Utils;->makeBitmapFromResourceId(Landroid/content/res/Resources;I)Landroid/graphics/Bitmap;
move-result-object v1
.line 219
invoke-virtual {p0}, Lcom/censivn/C3DEngine/Engine;->getTextureManager()Lcom/censivn/C3DEngine/coreapi/manager/TextureManager;
move-result-object v0
invoke-virtual {v0, v1, v2}, Lcom/censivn/C3DEngine/coreapi/manager/TextureManager;->createTexture(Landroid/graphics/Bitmap;Z)Lcom/censivn/C3DEngine/api/element/TextureElement;
move-result-object v0
.line 220
invoke-virtual {v1}, Landroid/graphics/Bitmap;->recycle()V
goto :goto_c
.end method
.method public static makeTextureFromResourceId(Lcom/censivn/C3DEngine/Engine;III)Lcom/censivn/C3DEngine/api/element/TextureElement;
.registers 7
.prologue
const/4 v2, 0x0
.line 196
invoke-virtual {p0}, Lcom/censivn/C3DEngine/Engine;->getContext()Landroid/content/Context;
move-result-object v0
if-nez v0, :cond_d
.line 198
new-instance v0, Lcom/censivn/C3DEngine/api/element/TextureElement;
invoke-direct {v0, v2, v2}, Lcom/censivn/C3DEngine/api/element/TextureElement;-><init>(IZ)V
.line 206
:goto_c
return-object v0
.line 202
:cond_d
invoke-virtual {p0}, Lcom/censivn/C3DEngine/Engine;->getContext()Landroid/content/Context;
move-result-object v0
invoke-virtual {v0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
move-result-object v0
invoke-static {v0, p1, p2, p3}, Lcom/censivn/C3DEngine/utils/Utils;->makeBitmapFromResourceId(Landroid/content/res/Resources;III)Landroid/graphics/Bitmap;
move-result-object v1
.line 203
invoke-virtual {p0}, Lcom/censivn/C3DEngine/Engine;->getTextureManager()Lcom/censivn/C3DEngine/coreapi/manager/TextureManager;
move-result-object v0
invoke-virtual {v0, v1, v2}, Lcom/censivn/C3DEngine/coreapi/manager/TextureManager;->createTexture(Landroid/graphics/Bitmap;Z)Lcom/censivn/C3DEngine/api/element/TextureElement;
move-result-object v0
.line 204
invoke-virtual {v1}, Landroid/graphics/Bitmap;->recycle()V
goto :goto_c
.end method
.method public static readTextFile(Ljava/io/InputStream;)Ljava/lang/String;
.registers 5
.prologue
.line 668
new-instance v0, Ljava/io/ByteArrayOutputStream;
invoke-direct {v0}, Ljava/io/ByteArrayOutputStream;-><init>()V
.line 670
const/16 v1, 0x400
new-array v1, v1, [B
.line 676
:goto_9
:try_start_9
invoke-virtual {p0, v1}, Ljava/io/InputStream;->read([B)I
move-result v2
const/4 v3, -0x1
if-eq v2, v3, :cond_1b
.line 678
const/4 v3, 0x0
invoke-virtual {v0, v1, v3, v2}, Ljava/io/ByteArrayOutputStream;->write([BII)V
:try_end_14
.catch Ljava/io/IOException; {:try_start_9 .. :try_end_14} :catch_15
goto :goto_9
.line 686
:catch_15
move-exception v1
.line 690
:goto_16
invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.line 682
:cond_1b
:try_start_1b
invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->close()V
.line 684
invoke-virtual {p0}, Ljava/io/InputStream;->close()V
:try_end_21
.catch Ljava/io/IOException; {:try_start_1b .. :try_end_21} :catch_15
goto :goto_16
.end method
.method public static rint(III)I
.registers 5
.prologue
.line 640
sub-int v0, p0, p1
invoke-static {v0}, Ljava/lang/Math;->abs(I)I
move-result v0
.line 641
sub-int v1, p0, p2
invoke-static {v1}, Ljava/lang/Math;->abs(I)I
move-result v1
.line 643
if-le v0, v1, :cond_f
.line 649
:goto_e
return p2
:cond_f
move p2, p1
goto :goto_e
.end method
.method public static writeBitmap(Landroid/graphics/Bitmap;)[B
.registers 2
.prologue
.line 227
if-eqz p0, :cond_7
.line 228
invoke-static {p0}, Lcom/censivn/C3DEngine/utils/Utils;->flattenBitmap(Landroid/graphics/Bitmap;)[B
move-result-object v0
.line 232
:goto_6
return-object v0
:cond_7
const/4 v0, 0x0
goto :goto_6
.end method