// Path: src/main/java/yk/senjin/DDDUtils.java
// public static void glMultMatrix4(Matrix4 m) {
//     m.store(multMatrixTemp);
//     multMatrixTemp.rewind();
//     GL11.glMultMatrix(multMatrixTemp);
// }
// 
// Path: src/main/java/yk/senjin/DDDUtils.java
// public static void glVec3f(Vec3f v) {
//     GL11.glVertex3f(v.x, v.y, v.z);
// }


import yk.jcommon.collections.YList;
import yk.jcommon.fastgeom.Quaternionf;
import yk.jcommon.fastgeom.Vec3f;
import java.awt.image.BufferedImage;
import static org.lwjgl.opengl.GL11.*;
import static yk.jcommon.collections.YArrayList.al;
import static yk.senjin.DDDUtils.glMultMatrix4;
import static yk.senjin.DDDUtils.glVec3f;
        if (enableTexture) st.enable(0);

        glBegin(GL_QUADS);
        glColor3f(1, 1, 1);
        glTexCoord2f(0, 1); glVec3f(pos);
        glTexCoord2f(1, 1); glVec3f(pos.add(vx));
        glTexCoord2f(1, 0); glVec3f(pos.add(vx).add(vy));
        glTexCoord2f(0, 0); glVec3f(pos.add(vy));
        glEnd();

//        glBegin(GL_LINES);
//        glColor3f(1, 1, 1);
//
//        glVec3f(pos);
//        glVec3f(pos.add(vx));
//        glVec3f(pos.add(vx));
//        glVec3f(pos.add(vx).add(vy));
//        glVec3f(pos.add(vx).add(vy));
//        glVec3f(pos.add(vy));
//        glVec3f(pos);
//
//        glEnd();

        if (enableTexture) st.disable();
    }

    private void render2(Vec3f camPos) {
        glMatrixMode(GL_MODELVIEW);
        glPushMatrix();
        glTranslatef(camPos.x, camPos.y, camPos.z);
// Path: src/main/java/yk/senjin/DDDUtils.java
// public static void glMultMatrix4(Matrix4 m) {
//     m.store(multMatrixTemp);
//     multMatrixTemp.rewind();
//     GL11.glMultMatrix(multMatrixTemp);
// }
// 
// Path: src/main/java/yk/senjin/DDDUtils.java
// public static void glVec3f(Vec3f v) {
//     GL11.glVertex3f(v.x, v.y, v.z);
// }


// Path: src/main/java/yk/senjin/SkyBox.java
import yk.jcommon.collections.YList;
import yk.jcommon.fastgeom.Quaternionf;
import yk.jcommon.fastgeom.Vec3f;
import java.awt.image.BufferedImage;
import static org.lwjgl.opengl.GL11.*;
import static yk.jcommon.collections.YArrayList.al;
import static yk.senjin.DDDUtils.glMultMatrix4;
import static yk.senjin.DDDUtils.glVec3f;

        if (enableTexture) st.enable(0);

        glBegin(GL_QUADS);
        glColor3f(1, 1, 1);
        glTexCoord2f(0, 1); glVec3f(pos);
        glTexCoord2f(1, 1); glVec3f(pos.add(vx));
        glTexCoord2f(1, 0); glVec3f(pos.add(vx).add(vy));
        glTexCoord2f(0, 0); glVec3f(pos.add(vy));
        glEnd();

//        glBegin(GL_LINES);
//        glColor3f(1, 1, 1);
//
//        glVec3f(pos);
//        glVec3f(pos.add(vx));
//        glVec3f(pos.add(vx));
//        glVec3f(pos.add(vx).add(vy));
//        glVec3f(pos.add(vx).add(vy));
//        glVec3f(pos.add(vy));
//        glVec3f(pos);
//
//        glEnd();

        if (enableTexture) st.disable();
    }

    private void render2(Vec3f camPos) {
        glMatrixMode(GL_MODELVIEW);
        glPushMatrix();
        glTranslatef(camPos.x, camPos.y, camPos.z);
        if (rot != null) glMultMatrix4(rot.toMatrix4());