var buffer_model = argument[0];
var x1 = argument[1];
var y1 = argument[2];
var z1 = argument[3];
var x2 = argument[4];
var y2 = argument[5];
var z2 = argument[6];
var c = argument[7];
// BOTTOM
//The first triangle
vertex_position_3d(buffer_model, x2, y1, z1);
//vertex_normal(buffer_model, 0, 0, 1);
vertex_colour(buffer_model, c, 1.0);
vertex_texcoord(buffer_model, 0, 0);
vertex_position_3d(buffer_model, x1, y1, z1);
//vertex_normal(buffer_model, 0, 0, 1);
vertex_colour(buffer_model, c, 1.0);
vertex_texcoord(buffer_model, 1, 0);
vertex_position_3d(buffer_model, x2, y2, z1);
//vertex_normal(buffer_model, 0, 0, 1);
vertex_colour(buffer_model, c, 1.0);
vertex_texcoord(buffer_model, 0, 1);
//The second triangle. The winding order has been maintained so drawing is consistent if culling is enabled.
vertex_position_3d(buffer_model, x1, y1, z1);
//vertex_normal(buffer_model, 0, 0, 1);
vertex_colour(buffer_model, c, 1.0);
vertex_texcoord(buffer_model, 1, 0);
vertex_position_3d(buffer_model, x1, y2, z1);
//vertex_normal(buffer_model, 0, 0, 1);
vertex_colour(buffer_model, c, 1.0);
vertex_texcoord(buffer_model, 1, 1);
vertex_position_3d(buffer_model, x2, y2, z1);
////vertex_normal(buffer_model, 0, 0, 1);
vertex_colour(buffer_model, c, 1.0);
vertex_texcoord(buffer_model, 0, 1);
// TOP
//The first triangle
vertex_position_3d(buffer_model, x1, y1, z2);
//vertex_normal(buffer_model, 0, 0, -1);
vertex_colour(buffer_model, c, 1.0);
vertex_texcoord(buffer_model, 0, 0);
vertex_position_3d(buffer_model, x2, y1, z2);
//vertex_normal(buffer_model, 0, 0, -1);
vertex_colour(buffer_model, c, 1.0);
vertex_texcoord(buffer_model, 1, 0);
vertex_position_3d(buffer_model, x1, y2, z2);
//vertex_normal(buffer_model, 0, 0, -1);
vertex_colour(buffer_model, c, 1.0);
vertex_texcoord(buffer_model, 0, 1);
//The second triangle. The winding order has been maintained so drawing is consistent if culling is enabled.
vertex_position_3d(buffer_model, x2, y1, z2);
//vertex_normal(buffer_model, 0, 0, -1);
vertex_colour(buffer_model, c, 1.0);
vertex_texcoord(buffer_model, 1, 0);
vertex_position_3d(buffer_model, x2, y2, z2);
//vertex_normal(buffer_model, 0, 0, -1);
vertex_colour(buffer_model, c, 1.0);
vertex_texcoord(buffer_model, 1, 1);
vertex_position_3d(buffer_model, x1, y2, z2);
//vertex_normal(buffer_model, 0, 0, -1);
vertex_colour(buffer_model, c, 1.0);
vertex_texcoord(buffer_model, 0, 1);
// LEFT
//The first triangle
vertex_position_3d(buffer_model, x1, y1, z2);
//vertex_normal(buffer_model, -1, 0, 0);
vertex_colour(buffer_model, c, 1.0);
vertex_texcoord(buffer_model, 0, 0);
vertex_position_3d(buffer_model, x1, y2, z2);
//vertex_normal(buffer_model, -1, 0, 0);
vertex_colour(buffer_model, c, 1.0);
vertex_texcoord(buffer_model, 1, 0);
vertex_position_3d(buffer_model, x1, y1, z1);
//vertex_normal(buffer_model, -1, 0, 0);
vertex_colour(buffer_model, c, 1.0);
vertex_texcoord(buffer_model, 0, 1);
//The second triangle. The winding order has been maintained so drawing is consistent if culling is enabled.
vertex_position_3d(buffer_model, x1, y2, z2);
//vertex_normal(buffer_model, -1, 0, 0);
vertex_colour(buffer_model, c, 1.0);
vertex_texcoord(buffer_model, 1, 0);
vertex_position_3d(buffer_model, x1, y2, z1);
//vertex_normal(buffer_model, -1, 0, 0);
vertex_colour(buffer_model, c, 1.0);
vertex_texcoord(buffer_model, 1, 1);
vertex_position_3d(buffer_model, x1, y1, z1);
//vertex_normal(buffer_model, -1, 0, 0);
vertex_colour(buffer_model, c, 1.0);
vertex_texcoord(buffer_model, 0, 1);
//RIGHT
//The first triangle
vertex_position_3d(buffer_model, x2, y2, z2);
//vertex_normal(buffer_model, 1, 0, 0);
vertex_colour(buffer_model, c, 1.0);
vertex_texcoord(buffer_model, 0, 0);
vertex_position_3d(buffer_model, x2, y1, z2);
//vertex_normal(buffer_model, 1, 0, 0);
vertex_colour(buffer_model, c, 1.0);
vertex_texcoord(buffer_model, 1, 0);
vertex_position_3d(buffer_model, x2, y2, z1);
//vertex_normal(buffer_model, 1, 0, 0);
vertex_colour(buffer_model, c, 1.0);
vertex_texcoord(buffer_model, 0, 1);
//The second triangle. The winding order has been maintained so drawing is consistent if culling is enabled.
vertex_position_3d(buffer_model, x2, y1, z2);
//vertex_normal(buffer_model, 1, 0, 0);
vertex_colour(buffer_model, c, 1.0);
vertex_texcoord(buffer_model, 1, 0);
vertex_position_3d(buffer_model, x2, y1, z1);
//vertex_normal(buffer_model, 1, 0, 0);
vertex_colour(buffer_model, c, 1.0);
vertex_texcoord(buffer_model, 1, 1);
vertex_position_3d(buffer_model, x2, y2, z1);
//vertex_normal(buffer_model, 1, 0, 0);
vertex_colour(buffer_model, c, 1.0);
vertex_texcoord(buffer_model, 0, 1);
// BACK
//The first triangle
vertex_position_3d(buffer_model, x2, y1, z2);
//vertex_normal(buffer_model, 0, -1, 0);
vertex_colour(buffer_model, c, 1.0);
vertex_texcoord(buffer_model, 0, 0);
vertex_position_3d(buffer_model, x1, y1, z2);
//vertex_normal(buffer_model, 0, -1, 0);
vertex_colour(buffer_model, c, 1.0);
vertex_texcoord(buffer_model, 1, 0);
vertex_position_3d(buffer_model, x2, y1, z1);
//vertex_normal(buffer_model, 0, -1, 0);
vertex_colour(buffer_model, c, 1.0);
vertex_texcoord(buffer_model, 0, 1);
//The second triangle. The winding order has been maintained so drawing is consistent if culling is enabled.
vertex_position_3d(buffer_model, x1, y1, z2);
//vertex_normal(buffer_model, 0, -1, 0);
vertex_colour(buffer_model, c, 1.0);
vertex_texcoord(buffer_model, 1, 0);
vertex_position_3d(buffer_model, x1, y1, z1);
//vertex_normal(buffer_model, 0, -1, 0);
vertex_colour(buffer_model, c, 1.0);
vertex_texcoord(buffer_model, 1, 1);
vertex_position_3d(buffer_model, x2, y1, z1);
//vertex_normal(buffer_model, 0, -1, 0);
vertex_colour(buffer_model, c, 1.0);
vertex_texcoord(buffer_model, 0, 1);
//FRONT
//The first triangle
vertex_position_3d(buffer_model, x1, y2, z2);
//vertex_normal(buffer_model, 0, 1, 0);
vertex_colour(buffer_model, c, 1.0);
vertex_texcoord(buffer_model, 0, 0);
vertex_position_3d(buffer_model, x2, y2, z2);
//vertex_normal(buffer_model, 0, 1, 0);
vertex_colour(buffer_model, c, 1.0);
vertex_texcoord(buffer_model, 1, 0);
vertex_position_3d(buffer_model, x1, y2, z1);
//vertex_normal(buffer_model, 0, 1, 0);
vertex_colour(buffer_model, c, 1.0);
vertex_texcoord(buffer_model, 0, 1);
//The second triangle. The winding order has been maintained so drawing is consistent if culling is enabled.
vertex_position_3d(buffer_model, x2, y2, z2);
//vertex_normal(buffer_model, 0, 1, 0);
vertex_colour(buffer_model, c, 1.0);
vertex_texcoord(buffer_model, 1, 0);
vertex_position_3d(buffer_model, x2, y2, z1);
//vertex_normal(buffer_model, 0, 1, 0);
vertex_colour(buffer_model, c, 1.0);
vertex_texcoord(buffer_model, 1, 1);
vertex_position_3d(buffer_model, x1, y2, z1);
//vertex_normal(buffer_model, 0, 1, 0);
vertex_colour(buffer_model, c, 1.0);
vertex_texcoord(buffer_model, 0, 1);