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

I.Draw = function()
{
    {
        var MeshIndices_8_1_0 = this.parent.Mesh.GetUShortIndices();
        this.DrawOutline_InnerFuck_MeshFuck_ibo.SetData(new Uint16Array(MeshIndices_8_1_0));
        this.DrawOutline_InnerFuck_MeshFuck_VertexPosition_uIPwTxkspq_vbo.SetData(uglFloat3Array(this.parent.Mesh.Vertices, (10201 * 12)/12));
        this.DrawOutline_InnerFuck_MeshFuck_VertexNormal_ZCEosYsBug_vbo.SetData(uglFloat3Array(this.parent.Mesh.Normals, (10201 * 12)/12));
        var Camera_5_0_0 = Uno.Application.Camera();
        gl.useProgram(this.DrawOutline_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.disable(2929);
        gl.frontFace(Uno.Graphics.OpenGL.Interop.PolygonWindingToGLenum(1));
        gl.uniform1f(this.DrawOutline_InnerFuck_MeshFuck_thickness_13_9_0_ChdTMHozSe, this.parent.thickness);
        gl.uniformMatrix4fv(this.DrawOutline_InnerFuck_MeshFuck_World_8_30_0_hLAottmfrV, false, uglFloat4x4(this.parent.Transform.Absolute()));
        gl.uniformMatrix4fv(this.DrawOutline_InnerFuck_MeshFuck_View_8_13_0_GrgOgHfyKN, false, uglFloat4x4(Camera_5_0_0.View()));
        gl.uniformMatrix4fv(this.DrawOutline_InnerFuck_MeshFuck_Proj_8_14_0_nutqNmFVJm, false, uglFloat4x4(Camera_5_0_0.Proj()));
        gl.enableVertexAttribArray(this.DrawOutline_InnerFuck_MeshFuck_VertexPosition_uIPwTxkspq);
        gl.bindBuffer(34962, this.DrawOutline_InnerFuck_MeshFuck_VertexPosition_uIPwTxkspq_vbo.GLHandle());
        gl.vertexAttribPointer(this.DrawOutline_InnerFuck_MeshFuck_VertexPosition_uIPwTxkspq, 3, 5126, false, 0, 0);
        gl.enableVertexAttribArray(this.DrawOutline_InnerFuck_MeshFuck_VertexNormal_ZCEosYsBug);
        gl.bindBuffer(34962, this.DrawOutline_InnerFuck_MeshFuck_VertexNormal_ZCEosYsBug_vbo.GLHandle());
        gl.vertexAttribPointer(this.DrawOutline_InnerFuck_MeshFuck_VertexNormal_ZCEosYsBug, 3, 5126, false, 0, 0);
        gl.bindBuffer(34963, this.DrawOutline_InnerFuck_MeshFuck_ibo.GLHandle());
        gl.drawElements(Uno.Graphics.OpenGL.Interop.PrimitiveTypeToGLenum(0), MeshIndices_8_1_0.length, 5123, 0);
        gl.disableVertexAttribArray(this.DrawOutline_InnerFuck_MeshFuck_VertexPosition_uIPwTxkspq);
        gl.disableVertexAttribArray(this.DrawOutline_InnerFuck_MeshFuck_VertexNormal_ZCEosYsBug);
        Uno.Application.IncrementDrawCallCounter(MeshIndices_8_1_0.length);
    }
};

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

    {
        $this.DrawOutline_InnerFuck_MeshFuck_ibo = Uno.Graphics.IndexBuffer.$0(60000 * 2, false);
        $this.DrawOutline_InnerFuck_MeshFuck_VertexPosition_uIPwTxkspq_vbo = Uno.Graphics.VertexBuffer.$0(10201 * 12, false);
        $this.DrawOutline_InnerFuck_MeshFuck_VertexNormal_ZCEosYsBug_vbo = Uno.Graphics.VertexBuffer.$0(10201 * 12, false);
    }

    $this.DrawOutline_InnerFuck_MeshFuck_vs = uglCompileShader(35633, "ClusterFuck_DrawOutlineExposePoint_DrawOutline_InnerFuck_MeshFuck_vs", "uniform float thickness_13_9_0_ChdTMHozSe;\nuniform mat4 World_8_30_0_hLAottmfrV;\nuniform mat4 View_8_13_0_GrgOgHfyKN;\nuniform mat4 Proj_8_14_0_nutqNmFVJm;\n\nattribute vec3 VertexPosition_uIPwTxkspq;\nattribute vec3 VertexNormal_ZCEosYsBug;\n\nvoid main(void)\n{\n\tvec3 VertexPosition_8_2_0 = VertexPosition_uIPwTxkspq;\n\tvec3 VertexNormal_8_3_0 = VertexNormal_ZCEosYsBug;\n\tvec3 VertexPosition_14_0_0 = VertexPosition_uIPwTxkspq + (VertexNormal_ZCEosYsBug * thickness_13_9_0_ChdTMHozSe);\n\tvec3 WorldPosition_8_37_0 = (World_8_30_0_hLAottmfrV * vec4(VertexPosition_14_0_0,1.)).xyz;\n\tvec3 ViewPosition_8_18_0 = (View_8_13_0_GrgOgHfyKN * vec4(WorldPosition_8_37_0, 1.0)).xyz;\n\tvec4 ClipPosition_8_19_0 = Proj_8_14_0_nutqNmFVJm * vec4(ViewPosition_8_18_0, 1.0);\n\tgl_Position = Proj_8_14_0_nutqNmFVJm * vec4(ViewPosition_8_18_0, 1.0);\n}\n");
    $this.DrawOutline_InnerFuck_MeshFuck_ps = uglCompileShader(35632, "ClusterFuck_DrawOutlineExposePoint_DrawOutline_InnerFuck_MeshFuck_ps", "void main(void)\n{\n\tgl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);\n}\n");
    $this.DrawOutline_InnerFuck_MeshFuck_prog = uglLinkProgram($this.DrawOutline_InnerFuck_MeshFuck_vs, $this.DrawOutline_InnerFuck_MeshFuck_ps);
    $this.DrawOutline_InnerFuck_MeshFuck_VertexPosition_uIPwTxkspq = gl.getAttribLocation($this.DrawOutline_InnerFuck_MeshFuck_prog, "VertexPosition_uIPwTxkspq");
    $this.DrawOutline_InnerFuck_MeshFuck_VertexNormal_ZCEosYsBug = gl.getAttribLocation($this.DrawOutline_InnerFuck_MeshFuck_prog, "VertexNormal_ZCEosYsBug");
    $this.DrawOutline_InnerFuck_MeshFuck_thickness_13_9_0_ChdTMHozSe = gl.getUniformLocation($this.DrawOutline_InnerFuck_MeshFuck_prog, "thickness_13_9_0_ChdTMHozSe");
    $this.DrawOutline_InnerFuck_MeshFuck_World_8_30_0_hLAottmfrV = gl.getUniformLocation($this.DrawOutline_InnerFuck_MeshFuck_prog, "World_8_30_0_hLAottmfrV");
    $this.DrawOutline_InnerFuck_MeshFuck_View_8_13_0_GrgOgHfyKN = gl.getUniformLocation($this.DrawOutline_InnerFuck_MeshFuck_prog, "View_8_13_0_GrgOgHfyKN");
    $this.DrawOutline_InnerFuck_MeshFuck_Proj_8_14_0_nutqNmFVJm = gl.getUniformLocation($this.DrawOutline_InnerFuck_MeshFuck_prog, "Proj_8_14_0_nutqNmFVJm");
    return $this;
};
