WorldRayCastWrapper.smali
.class Lorg/jbox2d/dynamics/WorldRayCastWrapper;
.super Ljava/lang/Object;
.source "World.java"
# interfaces
.implements Lorg/jbox2d/callbacks/TreeRayCastCallback;
# instance fields
.field broadPhase:Lorg/jbox2d/collision/broadphase/BroadPhase;
.field callback:Lorg/jbox2d/callbacks/RayCastCallback;
.field private final output:Lorg/jbox2d/collision/RayCastOutput;
.field private final point:Lorg/jbox2d/common/Vec2;
.field private final temp:Lorg/jbox2d/common/Vec2;
# direct methods
.method constructor <init>()V
.registers 2
.prologue
.line 2022
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2025
new-instance v0, Lorg/jbox2d/collision/RayCastOutput;
invoke-direct {v0}, Lorg/jbox2d/collision/RayCastOutput;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/WorldRayCastWrapper;->output:Lorg/jbox2d/collision/RayCastOutput;
.line 2026
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/WorldRayCastWrapper;->temp:Lorg/jbox2d/common/Vec2;
.line 2027
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/WorldRayCastWrapper;->point:Lorg/jbox2d/common/Vec2;
return-void
.end method
# virtual methods
.method public raycastCallback(Lorg/jbox2d/collision/RayCastInput;I)F
.registers 8
.prologue
.line 2030
iget-object v0, p0, Lorg/jbox2d/dynamics/WorldRayCastWrapper;->broadPhase:Lorg/jbox2d/collision/broadphase/BroadPhase;
invoke-interface {v0, p2}, Lorg/jbox2d/collision/broadphase/BroadPhase;->getUserData(I)Ljava/lang/Object;
move-result-object v0
.line 2031
check-cast v0, Lorg/jbox2d/dynamics/FixtureProxy;
.line 2032
iget-object v1, v0, Lorg/jbox2d/dynamics/FixtureProxy;->fixture:Lorg/jbox2d/dynamics/Fixture;
.line 2033
iget v0, v0, Lorg/jbox2d/dynamics/FixtureProxy;->childIndex:I
.line 2034
iget-object v2, p0, Lorg/jbox2d/dynamics/WorldRayCastWrapper;->output:Lorg/jbox2d/collision/RayCastOutput;
invoke-virtual {v1, v2, p1, v0}, Lorg/jbox2d/dynamics/Fixture;->raycast(Lorg/jbox2d/collision/RayCastOutput;Lorg/jbox2d/collision/RayCastInput;I)Z
move-result v0
.line 2036
if-eqz v0, :cond_44
.line 2037
iget-object v0, p0, Lorg/jbox2d/dynamics/WorldRayCastWrapper;->output:Lorg/jbox2d/collision/RayCastOutput;
iget v0, v0, Lorg/jbox2d/collision/RayCastOutput;->fraction:F
.line 2039
iget-object v2, p0, Lorg/jbox2d/dynamics/WorldRayCastWrapper;->temp:Lorg/jbox2d/common/Vec2;
iget-object v3, p1, Lorg/jbox2d/collision/RayCastInput;->p2:Lorg/jbox2d/common/Vec2;
invoke-virtual {v2, v3}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v2
invoke-virtual {v2, v0}, Lorg/jbox2d/common/Vec2;->mulLocal(F)Lorg/jbox2d/common/Vec2;
.line 2040
iget-object v2, p0, Lorg/jbox2d/dynamics/WorldRayCastWrapper;->point:Lorg/jbox2d/common/Vec2;
iget-object v3, p1, Lorg/jbox2d/collision/RayCastInput;->p1:Lorg/jbox2d/common/Vec2;
invoke-virtual {v2, v3}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v2
const/high16 v3, 0x3f800000 # 1.0f
sub-float/2addr v3, v0
invoke-virtual {v2, v3}, Lorg/jbox2d/common/Vec2;->mulLocal(F)Lorg/jbox2d/common/Vec2;
move-result-object v2
iget-object v3, p0, Lorg/jbox2d/dynamics/WorldRayCastWrapper;->temp:Lorg/jbox2d/common/Vec2;
invoke-virtual {v2, v3}, Lorg/jbox2d/common/Vec2;->addLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 2041
iget-object v2, p0, Lorg/jbox2d/dynamics/WorldRayCastWrapper;->callback:Lorg/jbox2d/callbacks/RayCastCallback;
iget-object v3, p0, Lorg/jbox2d/dynamics/WorldRayCastWrapper;->point:Lorg/jbox2d/common/Vec2;
iget-object v4, p0, Lorg/jbox2d/dynamics/WorldRayCastWrapper;->output:Lorg/jbox2d/collision/RayCastOutput;
iget-object v4, v4, Lorg/jbox2d/collision/RayCastOutput;->normal:Lorg/jbox2d/common/Vec2;
invoke-interface {v2, v1, v3, v4, v0}, Lorg/jbox2d/callbacks/RayCastCallback;->reportFixture(Lorg/jbox2d/dynamics/Fixture;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;F)F
move-result v0
.line 2044
:goto_43
return v0
:cond_44
iget v0, p1, Lorg/jbox2d/collision/RayCastInput;->maxFraction:F
goto :goto_43
.end method