@@ -0,0 +1,2247 @@
+package net.cazzar.corelib.client.rendering;%0A%0Aimport net.minecraft.client.renderer.Tessellator;%0Aimport net.minecraft.util.IIcon;%0Aimport net.minecraftforge.client.model.obj.*;%0A%0Aimport static java.lang.Math.*;%0A%0Apublic class RenderHelper %7B%0A    public static void renderWithIcon(WavefrontObject model, IIcon icon, Tessellator tes) %7B%0A        for (GroupObject go : model.groupObjects) %7B%0A            for (Face f : go.faces) %7B%0A                Vertex n = f.faceNormal;%0A                tes.setNormal(n.x, n.y, n.z);%0A                for (int i = 0; i %3C f.vertices.length; i++) %7B%0A                    Vertex v = f.vertices%5Bi%5D;%0A                    TextureCoordinate t = f.textureCoordinates%5Bi%5D;%0A                    tes.addVertexWithUV(v.x, v.y, v.z,%0A                            icon.getInterpolatedU(t.u * 16),%0A                            icon.getInterpolatedV(t.v * 16));%0A                %7D%0A            %7D%0A        %7D%0A    %7D%0A%0A    public static void rotateModel(WavefrontObject model, double degrees, double x, double y, double z) %7B%0A        double c = cos(toRadians(degrees));%0A        double s = sin(toRadians(degrees));%0A        for (GroupObject go : model.groupObjects) %7B%0A            for (Face f : go.faces) %7B%0A                Vertex n = f.faceNormal;%0A                Vertex n1 = new Vertex(n.x, n.y, n.z);%0A                n.x = (float) ((x * x * (1 - c) + c) * n1.x + (x * y * (1 - c) - z * s) * n1.y + (x * z * (1 - c) + y * s) * n1.z);%0A                n.y = (float) ((y * x * (1 - c) + z * s) * n1.x + (y * y * (1 - c) + c) * n1.y + (y * z * (1 - c) - x * s) * n1.z);%0A                n.z = (float) ((x * z * (1 - c) - y * s) * n1.x + (y * z * (1 - c) + x * s) * n1.y + (z * z * (1 - c) + c) * n1.z);%0A%0A                for (Vertex v : f.vertices) %7B%0A                    Vertex v1 = new Vertex(v.x, v.y, v.z);%0A                    v.x = (float) ((x * x * (1 - c) + c) * v1.x + (x * y * (1 - c) - z * s) * v1.y + (x * z * (1 - c) + y * s) * v1.z);%0A                    v.y = (float) ((y * x * (1 - c) + z * s) * v1.x + (y * y * (1 - c) + c) * v1.y + (y * z * (1 - c) - x * s) * v1.z);%0A                    v.z = (float) ((x * z * (1 - c) - y * s) * v1.x + (y * z * (1 - c) + x * s) * v1.y + (z * z * (1 - c) + c) * v1.z);%0A                %7D%0A            %7D%0A        %7D%0A    %7D%0A%7D

Add a small render helper if GL functions do not rotate.