I=(S=ClusterFuck.DrawExposePoint = function(){
}).prototype;

I.Draw = function()
{
    var temp_unique7485 = new Uno.Float4;
    var temp_unique7484 = new Uno.Float4;
    var temp_unique7483 = new Uno.Float4;
    var temp_unique7478 = new Uno.Float4;
    var temp_unique7477 = new Uno.Float4;
    var temp_unique7476 = new Uno.Float4;
    {
        var MeshIndices_8_1_0 = this.parent.Mesh.GetUShortIndices();
        this.Draw_InnerFuck_MeshFuck_ibo.SetData(new Uint16Array(MeshIndices_8_1_0));
        this.Draw_InnerFuck_MeshFuck_VertexPosition_VEwcQvLQhr_vbo.SetData(uglFloat3Array(this.parent.Mesh.Vertices, (10201 * 12)/12));
        var World_8_30_0 = this.parent.Transform.Absolute();
        var Camera_5_0_0 = Uno.Application.Camera();
        var View_8_13_0 = Camera_5_0_0.View();
        this.Draw_InnerFuck_MeshFuck_VertexNormal_lsuSIzoUxb_vbo.SetData(uglFloat3Array(this.parent.Mesh.Normals, (10201 * 12)/12));
        var WorldInverse_8_31_0 = Uno.Matrix.Invert_1(World_8_30_0);
        var WorldInverseTranspose_8_32_0 = Uno.Matrix.Transpose(WorldInverse_8_31_0);
        gl.useProgram(this.Draw_InnerFuck_MeshFuck_prog);
        gl.colorMask(true, true, true, true);
        gl.depthMask(true);
        gl.disable(3042);
        gl.cullFace(Uno.Graphics.OpenGL.Interop.PolygonFaceToGLenum(2));
        gl.enable(2884);
        gl.enable(2929);
        gl.frontFace(Uno.Graphics.OpenGL.Interop.PolygonWindingToGLenum(1));
        gl.uniformMatrix4fv(this.Draw_InnerFuck_MeshFuck_World_8_30_0_BYsgHWrJfD, false, uglFloat4x4(this.parent.Transform.Absolute()));
        gl.uniformMatrix4fv(this.Draw_InnerFuck_MeshFuck_View_8_13_0_SsozsLktwp, false, uglFloat4x4(Camera_5_0_0.View()));
        gl.uniformMatrix4fv(this.Draw_InnerFuck_MeshFuck_Proj_8_14_0_JbKyIFcSet, false, uglFloat4x4(Camera_5_0_0.Proj()));
        gl.uniformMatrix3fv(this.Draw_InnerFuck_MeshFuck_World3x3_8_33_0_TyEMsgwAxB, false, uglFloat3x3(Uno.Float3x3.$1((temp_unique7476 = WorldInverseTranspose_8_32_0.indexer(0), Uno.Float3.$1(temp_unique7476.X, temp_unique7476.Y, temp_unique7476.Z)), (temp_unique7477 = WorldInverseTranspose_8_32_0.indexer(1), Uno.Float3.$1(temp_unique7477.X, temp_unique7477.Y, temp_unique7477.Z)), (temp_unique7478 = WorldInverseTranspose_8_32_0.indexer(2), Uno.Float3.$1(temp_unique7478.X, temp_unique7478.Y, temp_unique7478.Z)))));
        gl.uniformMatrix3fv(this.Draw_InnerFuck_MeshFuck_View3x3_8_29_0_RDrBMmFFvf, false, uglFloat3x3(Uno.Float3x3.$1((temp_unique7483 = View_8_13_0.indexer(0), Uno.Float3.$1(temp_unique7483.X, temp_unique7483.Y, temp_unique7483.Z)), (temp_unique7484 = View_8_13_0.indexer(1), Uno.Float3.$1(temp_unique7484.X, temp_unique7484.Y, temp_unique7484.Z)), (temp_unique7485 = View_8_13_0.indexer(2), Uno.Float3.$1(temp_unique7485.X, temp_unique7485.Y, temp_unique7485.Z)))));
        gl.activeTexture(33984);
        gl.bindTexture(3553, this.Draw_InnerFuck_MeshFuck_textureMap_12_1_0_lMVNbQTGbU_val.GLHandle());
        gl.uniform1i(this.Draw_InnerFuck_MeshFuck_textureMap_12_1_0_lMVNbQTGbU, 0);
        gl.activeTexture(33985);
        gl.bindTexture(3553, this.Draw_InnerFuck_MeshFuck_envMap_12_2_0_pfiZiTsdfB_val.GLHandle());
        gl.uniform1i(this.Draw_InnerFuck_MeshFuck_envMap_12_2_0_pfiZiTsdfB, 1);
        gl.activeTexture(33986);
        gl.bindTexture(3553, this.Draw_InnerFuck_MeshFuck_envMap2_12_3_0_gQAinIbSgv_val.GLHandle());
        gl.uniform1i(this.Draw_InnerFuck_MeshFuck_envMap2_12_3_0_gQAinIbSgv, 2);
        gl.enableVertexAttribArray(this.Draw_InnerFuck_MeshFuck_VertexPosition_VEwcQvLQhr);
        gl.bindBuffer(34962, this.Draw_InnerFuck_MeshFuck_VertexPosition_VEwcQvLQhr_vbo.GLHandle());
        gl.vertexAttribPointer(this.Draw_InnerFuck_MeshFuck_VertexPosition_VEwcQvLQhr, 3, 5126, false, 0, 0);
        gl.enableVertexAttribArray(this.Draw_InnerFuck_MeshFuck_VertexNormal_lsuSIzoUxb);
        gl.bindBuffer(34962, this.Draw_InnerFuck_MeshFuck_VertexNormal_lsuSIzoUxb_vbo.GLHandle());
        gl.vertexAttribPointer(this.Draw_InnerFuck_MeshFuck_VertexNormal_lsuSIzoUxb, 3, 5126, false, 0, 0);
        gl.bindBuffer(34963, this.Draw_InnerFuck_MeshFuck_ibo.GLHandle());
        gl.drawElements(Uno.Graphics.OpenGL.Interop.PrimitiveTypeToGLenum(0), MeshIndices_8_1_0.length, 5123, 0);
        gl.disableVertexAttribArray(this.Draw_InnerFuck_MeshFuck_VertexPosition_VEwcQvLQhr);
        gl.disableVertexAttribArray(this.Draw_InnerFuck_MeshFuck_VertexNormal_lsuSIzoUxb);
        Uno.Application.IncrementDrawCallCounter(MeshIndices_8_1_0.length);
    }
};

S.$0 = function(parent, $this) {
    if (!$this) $this = new ClusterFuck.DrawExposePoint;
    {
        $this.parent = parent;
    }

    {
        $this.Draw_InnerFuck_MeshFuck_ibo = Uno.Graphics.IndexBuffer.$0(60000 * 2, false);
        $this.Draw_InnerFuck_MeshFuck_VertexPosition_VEwcQvLQhr_vbo = Uno.Graphics.VertexBuffer.$0(10201 * 12, false);
        $this.Draw_InnerFuck_MeshFuck_textureMap_12_1_0_lMVNbQTGbU_val = Uno.ResourceManager.GetResource("textureMap_FdRcNFYYfw");
        $this.Draw_InnerFuck_MeshFuck_VertexNormal_lsuSIzoUxb_vbo = Uno.Graphics.VertexBuffer.$0(10201 * 12, false);
        $this.Draw_InnerFuck_MeshFuck_envMap_12_2_0_pfiZiTsdfB_val = Uno.ResourceManager.GetResource("envMap_qFlfgRgAcd");
        $this.Draw_InnerFuck_MeshFuck_envMap2_12_3_0_gQAinIbSgv_val = Uno.ResourceManager.GetResource("envMap2_okOmvBDYMN");
    }

    $this.Draw_InnerFuck_MeshFuck_vs = uglCompileShader(35633, "ClusterFuck_DrawExposePoint_Draw_InnerFuck_MeshFuck_vs", "uniform mat4 World_8_30_0_BYsgHWrJfD;\nuniform mat4 View_8_13_0_SsozsLktwp;\nuniform mat4 Proj_8_14_0_JbKyIFcSet;\nuniform mat3 World3x3_8_33_0_TyEMsgwAxB;\nuniform mat3 View3x3_8_29_0_RDrBMmFFvf;\n\nvarying vec4 BinOpCallBinOpCall_CZiabeRKMW;\nvarying vec2 BinOpCall_UIysMOqFEy;\n\nattribute vec3 VertexPosition_VEwcQvLQhr;\nattribute vec3 VertexNormal_lsuSIzoUxb;\n\nvoid main(void)\n{\n\tvec3 VertexPosition_8_2_0 = VertexPosition_VEwcQvLQhr;\n\tvec3 WorldPosition_8_37_0 = (World_8_30_0_BYsgHWrJfD * vec4(VertexPosition_VEwcQvLQhr,1.)).xyz;\n\tvec3 ViewPosition_8_18_0 = (View_8_13_0_SsozsLktwp * vec4(WorldPosition_8_37_0, 1.0)).xyz;\n\tvec4 ClipPosition_8_19_0 = Proj_8_14_0_JbKyIFcSet * vec4(ViewPosition_8_18_0, 1.0);\n\tgl_Position = Proj_8_14_0_JbKyIFcSet * vec4(ViewPosition_8_18_0, 1.0);\n\tBinOpCallBinOpCall_CZiabeRKMW.xy = normalize(VertexPosition_VEwcQvLQhr).xy * vec2(4.0);\n\tvec3 VertexNormal_8_3_0 = VertexNormal_lsuSIzoUxb;\n\tvec3 WorldNormal_8_38_0 = normalize(World3x3_8_33_0_TyEMsgwAxB * VertexNormal_lsuSIzoUxb);\n\tvec3 ViewNormal_8_39_0 = normalize(View3x3_8_29_0_RDrBMmFFvf * WorldNormal_8_38_0);\n\tBinOpCallBinOpCall_CZiabeRKMW.zw = (ViewNormal_8_39_0.xy * 0.5) + 0.5;\n\tBinOpCall_UIysMOqFEy = (ViewNormal_8_39_0.zx * 0.5) + 0.5;\n}\n");
    $this.Draw_InnerFuck_MeshFuck_ps = uglCompileShader(35632, "ClusterFuck_DrawExposePoint_Draw_InnerFuck_MeshFuck_ps", "uniform sampler2D textureMap_12_1_0_lMVNbQTGbU;\nuniform sampler2D envMap_12_2_0_pfiZiTsdfB;\nuniform sampler2D envMap2_12_3_0_gQAinIbSgv;\n\nvarying vec4 BinOpCallBinOpCall_CZiabeRKMW;\nvarying vec2 BinOpCall_UIysMOqFEy;\n\nvoid main(void)\n{\n\tvec4 diffuseColor_12_4_0 = texture2D(textureMap_12_1_0_lMVNbQTGbU, BinOpCallBinOpCall_CZiabeRKMW.xy) * 0.5;\n\tvec4 PixelColor_12_5_0 = diffuseColor_12_4_0 + ((texture2D(envMap_12_2_0_pfiZiTsdfB, BinOpCallBinOpCall_CZiabeRKMW.zw) + texture2D(envMap2_12_3_0_gQAinIbSgv, BinOpCall_UIysMOqFEy)) * (diffuseColor_12_4_0 + 0.4));\n\tvec4 PixelColor_12_6_0 = vec4(PixelColor_12_5_0.x * PixelColor_12_5_0.x, PixelColor_12_5_0.y * PixelColor_12_5_0.y, PixelColor_12_5_0.z * PixelColor_12_5_0.z, 2.0) * 0.5;\n\tgl_FragColor = vec4(PixelColor_12_5_0.x * PixelColor_12_5_0.x, PixelColor_12_5_0.y * PixelColor_12_5_0.y, PixelColor_12_5_0.z * PixelColor_12_5_0.z, 2.0) * 0.5;\n}\n");
    $this.Draw_InnerFuck_MeshFuck_prog = uglLinkProgram($this.Draw_InnerFuck_MeshFuck_vs, $this.Draw_InnerFuck_MeshFuck_ps);
    $this.Draw_InnerFuck_MeshFuck_VertexPosition_VEwcQvLQhr = gl.getAttribLocation($this.Draw_InnerFuck_MeshFuck_prog, "VertexPosition_VEwcQvLQhr");
    $this.Draw_InnerFuck_MeshFuck_VertexNormal_lsuSIzoUxb = gl.getAttribLocation($this.Draw_InnerFuck_MeshFuck_prog, "VertexNormal_lsuSIzoUxb");
    $this.Draw_InnerFuck_MeshFuck_World_8_30_0_BYsgHWrJfD = gl.getUniformLocation($this.Draw_InnerFuck_MeshFuck_prog, "World_8_30_0_BYsgHWrJfD");
    $this.Draw_InnerFuck_MeshFuck_View_8_13_0_SsozsLktwp = gl.getUniformLocation($this.Draw_InnerFuck_MeshFuck_prog, "View_8_13_0_SsozsLktwp");
    $this.Draw_InnerFuck_MeshFuck_Proj_8_14_0_JbKyIFcSet = gl.getUniformLocation($this.Draw_InnerFuck_MeshFuck_prog, "Proj_8_14_0_JbKyIFcSet");
    $this.Draw_InnerFuck_MeshFuck_World3x3_8_33_0_TyEMsgwAxB = gl.getUniformLocation($this.Draw_InnerFuck_MeshFuck_prog, "World3x3_8_33_0_TyEMsgwAxB");
    $this.Draw_InnerFuck_MeshFuck_View3x3_8_29_0_RDrBMmFFvf = gl.getUniformLocation($this.Draw_InnerFuck_MeshFuck_prog, "View3x3_8_29_0_RDrBMmFFvf");
    $this.Draw_InnerFuck_MeshFuck_textureMap_12_1_0_lMVNbQTGbU = gl.getUniformLocation($this.Draw_InnerFuck_MeshFuck_prog, "textureMap_12_1_0_lMVNbQTGbU");
    $this.Draw_InnerFuck_MeshFuck_envMap_12_2_0_pfiZiTsdfB = gl.getUniformLocation($this.Draw_InnerFuck_MeshFuck_prog, "envMap_12_2_0_pfiZiTsdfB");
    $this.Draw_InnerFuck_MeshFuck_envMap2_12_3_0_gQAinIbSgv = gl.getUniformLocation($this.Draw_InnerFuck_MeshFuck_prog, "envMap2_12_3_0_gQAinIbSgv");
    return $this;
};
