Toggle navigation
Explora
(current)
Aprende
Crea
Retos
×
Aspectos básicos
void main() {...}
for ( int i = 0 ; i < N ; i++ ) {...}
while (condición) {...}
do {...} while (condición);
if (condición) {...}
if (condición) {...} else {...}
switch (valor) {...}
Mostrar y pedir datos
print()
println()
readInteger()
readDouble()
readChar()
readString()
Funciones matemáticas
abs(n)
log(n)
sqrt(n)
pow(b,e)
floor(n)
ceil(n)
round(n)
sin(n)
cos(n)
tan(n)
asin(n)
acos(n)
atan(n)
random(n)
Funciones gráficas
point(x,y)
line(x1,y1,x2,y2)
ellipse(x,y,w,h)
rect(x,y,w,h)
triangle(x1,y1,x2,y2,x3,y3)
text(msg,x,y)
textWidth(msg)
textSize(n)
background(r,g,b,a)
strokeWeight(n)
stroke(r,g,b,a)
noStroke()
fill(r,g,b,a)
noFill()
image(url, x,y,w,h)
Nuevo
Ayuda
Probar
...
//---CONSTANTES---// final double ANCHO = 320; final double ALTO = 320; void main() { //iniciar controles c_Mouse.init(); //iniciar graficos c_Graficos.init(); //iniciar objetos f_objects_init(); //controles readString("--// --- MIRAR CONTROLES ABAJO --- //--"); println("-- CONTROLES --"); println(); println("CLICK IZQUIERDO: arrastrar para mover figura."); println(); println("CLICK DERECHO: arrastrar para rotar figura."); println(); println("CLICK CENTRAL: arrastrar para escalar figura."); println(); println("¡Dale a Siguiente figura! :)"); animate(f_principal, 1); } double dt; double avgdt=1.0/60.0; double olddt = 0.0; //prevenir dibujar en cada fotograma y ser mas eficientes. boolean actualizar_dibujo = true; void f_principal() { //actualizar dt = millis()/1000.0 - olddt; avgdt = (dt + avgdt*255)/256.0; olddt = millis()/1000.0; c_Mouse.update(); if(dt < 1.0) { c_Graficos.actualizar(dt); //dibujar objeto if(actualizar_dibujo) { background(51,0,88); c_Graficos.dibujar(); } } //dibujar gui c_Graficos.dibujar_gui(); c_Graficos.dibujar_FPS(); } class c_Graficos { //escalar, trasladar y rotar para obtener una bonita tetera private static c_Transform TF; private static boolean z_culling; private static c_Boton[] botones; private static c_Object[] objetos; private static int objetoN; private static int objeto_selI; private static boolean calcular_z_culling; private static boolean calcular_transform; //un efecto bonito :-) private static boolean rotar_objeto; private static boolean escalar_objeto; private static double escalar_objeto_t; //rotar con el mouse private static boolean rotar_mouse; //trasladar con el mouse private static boolean mover_mouse; //escalar con el mouse private static boolean escalar_mouse; private static c_Vec prev_mouse_pos; //punto de luz private static c_Vec point_light; //mostrar punto medio private static boolean mostrar_normales; public static void init() { TF = new c_Transform(); z_culling = true; point_light = new c_Vec(ANCHO/2, ALTO/2, -ANCHO); //funciones de transformacion con el mouse rotar_mouse = false; mover_mouse = false; escalar_mouse = false; prev_mouse_pos = new c_Vec(mouseX, mouseY, 0.0); //para que se vea en medio de la pantalla grande f_origen(); botones = new c_Boton[6]; botones[0] = new c_Boton((int)ANCHO-90, (int)ALTO-20, 90, 20, "ROTAR: ", 10); botones[0].setTextoExtra("Si"); rotar_objeto = true; botones[1] = new c_Boton( 0, (int)ALTO-25, 100, 25, "Siguiente figura", 10); botones[2] = new c_Boton((int)ANCHO-90, 2, 90, 19, "WIREFRAME: ", 7); botones[2].setTextoExtra("No"); botones[3] = new c_Boton((int)ANCHO-60, 24, 60, 14, "ORIGEN", 9); botones[4] = new c_Boton((int)ANCHO-90, (int)ALTO-40, 90, 20, "ESCALAR: ", 9); botones[4].setTextoExtra("No"); escalar_objeto = false; escalar_objeto_t = PI/2; botones[5] = new c_Boton((int)ANCHO-90, (int)ALTO-58, 90, 18, "Normales: ", 8); botones[5].setTextoExtra("No"); mostrar_normales = false; objetos = new c_Object[10]; objetoN = 0; objeto_selI = 1; calcular_z_culling = true; //escala y traslacion no modifican el z culling. calcular_transform = true; } static void actualizar(double dt) { //rotar automaticamente if(rotar_objeto) { f_rotar(new c_Vec(1, 1, 1), PI/16*dt);} //escalar automaticamente if(escalar_objeto) { escalar_objeto_t += dt; f_escalar(pow(2, 0.5*dt*sin(escalar_objeto_t)), pow(2, 0.5*dt*cos(escalar_objeto_t)), pow(2, 0.5*dt*sin(escalar_objeto_t))); } //funciones de transformacion con el mouse //rotar con el mouse if(rotar_mouse) { double dx = mouseX - prev_mouse_pos.getX(); double dy = mouseY - prev_mouse_pos.getY(); double alpha = dy * PI/ALTO; double beta = dx * PI/ANCHO; double l = sqrt(dx*dx + dy*dy); if(l==0.0) l=1; dx /= l; dy /= l; f_rotar(new c_Vec(dy, -dx, 0), sqrt(alpha*alpha + beta*beta)); } //mover con el mouse if(mover_mouse) { double dx = mouseX - prev_mouse_pos.getX(); double dy = mouseY - prev_mouse_pos.getY(); f_mover(dx, dy, 0); } //escalar con el mouse if(escalar_mouse) { double dy = mouseY - prev_mouse_pos.getY(); double s = pow(2, -dy*2/ALTO); f_escalar(s, s, s); } if(rotar_mouse || mover_mouse || escalar_mouse){ prev_mouse_pos.setY(mouseY); prev_mouse_pos.setX(mouseX); } if(z_culling) { point_light.setX(mouseX); point_light.setY(mouseY); double tx = mouseX - ANCHO/2; double ty = mouseY - ALTO/2; point_light.setZ(((ty*ty + tx*tx)*4/(ANCHO*ANCHO+ALTO*ALTO)-0.5)*TF.getEscala().getZ()*4); actualizar_dibujo = true; } actualizar_gui(dt); } static void dibujar() { //dibujar objeto fill(255,255,255); f_dibujar_obj(objeto_selI); //dibujar coordenadas dibujar_coord(40/ANCHO); if(actualizar_dibujo) actualizar_dibujo = false; } static void actualizar_gui(double dt) { for(int i = 0; i < sizeOf(botones); i++) botones[i].actualizar(dt); } static void dibujar_gui() { for(int i = 0; i < sizeOf(botones); i++) botones[i].dibujar(); } //controles del mouse// static void mousepressed(String b) { boolean gui_clicked = false; for(int i = 0; i < sizeOf(botones); i++) { botones[i].mousepressed(b); // if(botones[i].getHover()) gui_clicked = true; } if(!gui_clicked) { if(b=="r") { rotar_mouse = true;} else if(b=="l") { mover_mouse = true;} else if(b=="m") { escalar_mouse = true;} prev_mouse_pos = new c_Vec(mouseX, mouseY, 0.0); } } static void mousereleased(String b) { for(int i = 0; i < sizeOf(botones); i++) { if(botones[i].getHover() && botones[i].getPressed()) { if(botones[i].getTexto() == "Siguiente figura") { objeto_selI++; if(objeto_selI >= objetoN) { objeto_selI = 0;} calcular_z_culling = true; actualizar_dibujo = true; } else if(botones[i].getTexto() == "ROTAR: ") { if(botones[i].getTextoExtra() == "No") { rotar_objeto = true; botones[i].setTextoExtra("Si"); } else if(botones[i].getTextoExtra() == "Si") { rotar_objeto = false; botones[i].setTextoExtra("No"); } } else if(botones[i].getTexto() == "WIREFRAME: ") { if(botones[i].getTextoExtra() == "No") { z_culling = false; actualizar_dibujo = true; botones[i].setTextoExtra("Si"); } else if(botones[i].getTextoExtra() == "Si") { z_culling = true; actualizar_dibujo = true; botones[i].setTextoExtra("No"); } } else if(botones[i].getTexto() == "ORIGEN") { f_origen(); } else if(botones[i].getTexto() == "ESCALAR: ") { if(botones[i].getTextoExtra() == "No") { escalar_objeto = true; escalar_objeto_t = PI/2; botones[i].setTextoExtra("Si"); } else if(botones[i].getTextoExtra() == "Si") { escalar_objeto = false; botones[i].setTextoExtra("No"); } } else if(botones[i].getTexto() == "Normales: ") { if(botones[i].getTextoExtra() == "No") { mostrar_normales = true; botones[i].setTextoExtra("Si"); } else if(botones[i].getTextoExtra() == "Si") { mostrar_normales = false; botones[i].setTextoExtra("No"); } } } botones[i].mousereleased(b); } if(b=="r") { rotar_mouse = false;} else if(b=="l") { mover_mouse = false;} else if(b=="m") { escalar_mouse = false;} } //dibujar ejes de coordenadas static void dibujar_coord(double s) { c_Matriz m = TF.get(); double tx = TF.getTraslacion().getX(); double ty = TF.getTraslacion().getY(); c_Vec X = m.Transformar(m,new c_Vec(s, 0, 0)); c_Vec Y = m.Transformar(m,new c_Vec(0, s, 0)); c_Vec Z = m.Transformar(m,new c_Vec(0, 0, s)); //eje X stroke(255, 0, 0); line(tx, ty, X.getX(), X.getY()); //eje Y stroke(0, 255, 0); line(tx, ty, Y.getX(), Y.getY()); //eje Z stroke(0, 0, 255); line(tx, ty, Z.getX(), Z.getY()); } //dibujar fotogramas por segundo static void dibujar_FPS() { fill(0, 0, 0); rect(0, 0, 108, 20); fill(47,165,7); textSize(18); text("FPS: " + floor(1/dt), 5, 18); } static void f_linea(c_Vec vec1, c_Vec vec2) { line(vec1.getX(), vec1.getY(), vec2.getX(), vec2.getY()); } static void f_triangulo(c_Vec vec1, c_Vec vec2, c_Vec vec3) { //int f = floor(128 - 127.5*c_Util.min(vec1.getZ(),vec2.getZ(),vec3.getZ())/TF.getEscala().getZ()); //stroke(f, 0, 255-f); triangle(vec1.getX(), vec1.getY(), vec2.getX(), vec2.getY(), vec3.getX(), vec3.getY()); } static void f_triangulo_sha(c_Vec vec1, c_Vec vec2, c_Vec vec3, c_Vec norm, c_Vec punto_medio) { //efectos de luz c_Vec lightDir = c_Vec.normalize(c_Vec.sub(point_light, punto_medio)); int f = floor(255*c_Util.max(0.2, norm.dot(lightDir))); fill(f, f, f); stroke(f, f, f); triangle(vec1.getX(), vec1.getY(), vec2.getX(), vec2.getY(), vec3.getX(), vec3.getY()); if(mostrar_normales) { stroke(195,0,203); f_linea(punto_medio, c_Vec.add(punto_medio, c_Vec.mul(norm, 6))); } } static void f_mover(double tx, double ty, double tz) { calcular_transform = true; actualizar_dibujo = true; TF.mover(tx, ty, tz); } static void f_escalar(double sx, double sy, double sz) { calcular_transform = true; actualizar_dibujo = true; TF.escalar(sx, sy, sz); } static void f_rotar(c_Vec eje, double angulo) { calcular_z_culling = true; actualizar_dibujo = true; TF.rotar(eje, angulo); } static void f_origen() { calcular_z_culling = true; actualizar_dibujo = true; TF.origen(); f_escalar(ANCHO/2, -ALTO/2, ANCHO/2); f_mover(ANCHO/2-10, ALTO/2, 0); } //guardar nuevo objeto static void nuevo_objeto(c_Vec[] vertices, c_Vec[] normales, int[][][] caras) { if(objetoN >= 10){ println("Array de objetos lleno."); return;} objetos[objetoN] = new c_Object(vertices, normales, caras); objetoN++; } //funcion para dibujar objetos static void f_dibujar_obj(int objI) { //enseñar solo las cosas que estan mas adelante hacia la camara. if(z_culling) { //calcular los puntos medios de las caras si se usa el objeto por primera vez. if(!objetos[objI].inicializado) objetos[objI].init(); if(calcular_z_culling) { //println("z culling"); objetos[objI].calcular_zCull(TF); calcular_z_culling = false; } else if(calcular_transform) { //println("transform"); objetos[objI].transform(TF); calcular_transform = false; } objetos[objI].dibujar_zCull(point_light, TF); } else { c_Vec[] Vert = objetos[objI].getVertices(); c_Vec[] Vert_N = objetos[objI].getVerticesNormales(); int[][][] Caras = objetos[objI].getCaras(); c_Matriz m = TF.get(); noFill(); background(255, 255, 255); stroke(0,0,0); //las caras nos dicen que grupos de tres vertices forman un triangulo o cara. for(int caraI=0; caraI < sizeOf(Caras, 1); caraI++) f_triangulo(m.Transformar(m, Vert[Caras[caraI][0][0]-1]), m.Transformar(m, Vert[Caras[caraI][1][0]-1]), m.Transformar(m, Vert[Caras[caraI][2][0]-1])); } } } // Clase de controles de raton class c_Mouse { private static boolean[] b_down; public static void init() { b_down = new boolean[3]; } static void update() { if(mousePressed) { if(mouseButton == LEFTBUTTON) { if(!b_down[0]) pressed("l"); b_down[0] = true; } if(mouseButton == RIGHTBUTTON) { if(!b_down[1]) pressed("r"); b_down[1] = true; } if(mouseButton == MIDDLEBUTTON) { if(!b_down[2]) pressed("m"); b_down[2] = true; } } else { for(int i=0; i < sizeOf(b_down); i++) { if(b_down[i]) { if(i==0) { released("l");} else if(i==1) { released("r");} else if(i==2) { released("m");} } b_down[i] = false; } } } static void pressed(String b) { c_Graficos.mousepressed(b); } static void released(String b) { c_Graficos.mousereleased(b); } static boolean isDown(String b) { if(b == "l") return b_down[0]; if(b == "r") return b_down[1]; if(b == "m") return b_down[2]; return false; } } // Clase de Botones class c_Boton { private int x; private int y; private int ancho; private int alto; private String texto; private String texto_extra; private int textX; private int textY; private int textS; private boolean hover; private boolean pressed; public c_Boton(int x, int y, int ancho, int alto, String texto) { this.x = x; this.y = y; this.ancho = ancho; this.alto = alto; this.textS = 18; textSize(textS); this.texto = texto; this.texto_extra = ""; this.textX = x + (int)(ancho - textWidth(texto))/2.0; this.textY = y + (int)(alto + textS)/2.0; this.hover = false; this.pressed = false; } c_Boton(int x, int y, int ancho, int alto, String texto, int textS) { this.x = x; this.y = y; this.ancho = ancho; this.alto = alto; this.textS = textS; textSize(textS); this.texto = texto; this.texto_extra = ""; this.textX = x + (int)(ancho - textWidth(texto))/2.0; this.textY = y + (int)(alto + textS)/2.0; this.hover = false; } void actualizar(double dt) { if(mouseX > x && mouseX < x+ancho && mouseY > y && mouseY < y+alto) hover = true; else hover = false; } void dibujar() { //cuadro if(pressed) { fill(88,88,88); stroke(241,241,241); } else if(hover) { fill(255,255,255); stroke(112,112,112); } else { fill(231,231,231); stroke(90,90,90); } rect(x, y, ancho, alto); //texto if(pressed) { fill(239,239,239);} else if(hover) { fill(118,118,118);} else { fill(84,84,84);} textSize(textS); text(texto + texto_extra, textX, textY); } void mousepressed(String b) { if(hover) pressed = true; } void mousereleased(String b) { pressed = false; } boolean getHover() { return hover;} boolean getPressed() { return pressed;} String getTexto() { return texto;} String getTextoExtra() { return texto_extra;} void setTextoExtra(String s) { texto_extra = s; textSize(textS); textX = x + (int)(ancho - textWidth(texto+texto_extra))/2.0; } } //-- Clase de Transformaciones class c_Transform { static private c_Vec traslacion; static private c_Cuaternion rot; static private c_Vec escala; static private c_Matriz m; static private c_Matriz rotM; static private c_Matriz escM; static private c_Matriz trasM; static private boolean b_update; public c_Transform() { traslacion = new c_Vec(0, 0, 0); rot = new c_Cuaternion(0, 0, 0, 1); escala = new c_Vec(1, 1, 1); } c_Matriz get() { if(b_update) this.update_matriz(); return m } c_Matriz getRotMatriz() { if(b_update) this.update_matriz(); return rotM } c_Matriz getEscMatriz() { if(b_update) this.update_matriz(); return escM } c_Matriz getTrasMatriz() { if(b_update) this.update_matriz(); return trasM } void update_matriz() { trasM = new c_Matriz().initTraslacion(traslacion.getX(), traslacion.getY(), traslacion.getZ()); rotM = c_Cuaternion.aMatrizRotacion(rot); escM = new c_Matriz().InitEscala(escala.getX(), escala.getY(), escala.getZ()); m = c_Matriz.mul(trasM, c_Matriz.mul(rotM, escM)); b_update = false; } void mover(double dx, double dy, double dz) { b_update = true; traslacion = c_Vec.add(traslacion, new c_Vec(dx, dy, dz)); } void rotar(c_Vec eje, double angulo) { b_update = true; rot = new c_Cuaternion(eje, angulo).mul(rot); rot = c_Cuaternion.normalized(rot); } void escalar(double sx, double sy, double sz) { b_update = true; escala = c_Vec.mul(escala, new c_Vec(sx, sy, sz)); } void origen() { b_update = true; traslacion = new c_Vec(0, 0, 0); rot = new c_Cuaternion(0, 0, 0, 1); escala = new c_Vec(1, 1, 1); } c_Vec getTraslacion(){return traslacion;} void setTraslacion(double x, double y, double z) {b_update=true; traslacion = new c_Vec(x, y, z);} void setTraslacion(c_Vec r) {b_update=true; traslacion = r;} c_Cuaternion getRot(){return rot;} void setRot(c_Cuaternion rotacion) {b_update=true; rot = rotacion;} c_Vec getEscala(){return escala;} void setEscala(c_Vec s) {b_update=true; escala = s;} } //-- Clase de objetos 3D class c_Object { private c_Vec[] vertices; private c_Vec[] vertices_normales; //vertices transformados para el dibujo private c_Vec[] vertices_T; private c_Vec[] vertices_normales_T; private int NcarasVisibles; private int[] order_list; private int[][][] caras; private c_Vec[] caras_punto_medio; private c_Vec[] caras_punto_medio_T; public boolean inicializado = false; c_Object(c_Vec[] Vert, c_Vec[] Vert_N, int[][][] Caras) { this.vertices = Vert; this.vertices_normales = Vert_N; this.caras = Caras; this.vertices_T = new c_Vec[sizeOf(Vert)]; this.vertices_normales_T = new c_Vec[sizeOf(Vert_N)]; this.NcarasVisibles = 0; this.order_list = new int[sizeOf(Caras)]; } void init() { inicializado = true; //calcular el punto medio de las caras// int carasN = sizeOf(caras); this.caras_punto_medio = new c_Vec[carasN]; this.caras_punto_medio_T = new c_Vec[carasN]; //los triangulos de Caras que componen en conjunto una sola cara. int[] cara_triangulos = new int[carasN]; //nº de triangulos que tiene esa cara. int Ntriangulos_cara; // los triangulos ya analizados boolean[] tri_analizado = new boolean[carasN]; //punto medio de la cara c_Vec punto_medio; //para que se manejen mejor las variables y no de error. c_Vec V1; c_Vec V2; c_Vec V3; for(int caraI = 0; caraI < carasN; caraI++) { //si ya se ha analizado este triangulo if(tri_analizado[caraI]) continue; cara_triangulos[0] = caraI; Ntriangulos_cara = 1; for(int caraJ = caraI + 1; caraJ < carasN; caraJ++) { //si entre los dos triangulos coincide un vertice boolean mismo_vertice = caras[caraI][0][0] == caras[caraJ][0][0] || caras[caraI][0][0] == caras[caraJ][1][0] || caras[caraI][0][0] == caras[caraJ][2][0]; mismo_vertice = mismo_vertice || caras[caraI][1][0] == caras[caraJ][0][0] || caras[caraI][1][0] == caras[caraJ][1][0] || caras[caraI][1][0] == caras[caraJ][2][0]; mismo_vertice = mismo_vertice || caras[caraI][2][0] == caras[caraJ][0][0] || caras[caraI][2][0] == caras[caraJ][1][0] || caras[caraI][2][0] == caras[caraJ][2][0]; //si las normales de los dos triangulos son iguales y coincide un vertice if(caras[caraI][0][1] == caras[caraJ][0][1] && mismo_vertice) { cara_triangulos[Ntriangulos_cara] = caraJ; // este tri ahora es parte de una cara. Ntriangulos_cara++; tri_analizado[caraJ] = true; // marcar triangulo como analizado. } } //calcular el punto medio de la cara punto_medio = new c_Vec(0, 0, 0); for(int triI = 0; triI < Ntriangulos_cara; triI++) { V1 = vertices[caras[cara_triangulos[triI]][0][0]-1]; V2 = vertices[caras[cara_triangulos[triI]][1][0]-1]; V3 = vertices[caras[cara_triangulos[triI]][2][0]-1]; punto_medio = c_Vec.add(punto_medio, c_Vec.add(V1, c_Vec.add(V2, V3))); } punto_medio = c_Vec.div(punto_medio, Ntriangulos_cara*3); //establecer el punto medio en todos los triangulos for(int triI = 0; triI < Ntriangulos_cara; triI++) { caras_punto_medio[cara_triangulos[triI]] = punto_medio; } } } //transformar los vertices y normales del objeto segun la traslacion y la escala void transform(c_Transform TF) { c_Matriz m = TF.get(); //el matriz para las normales. Solo se rotan y escalan. c_Matriz NM = c_Matriz.mul(TF.getRotMatriz(), TF.getEscMatriz()); boolean[] transformado = new boolean[sizeOf(vertices)]; //para que se manejen mejor las variables y no de error. c_Vec N; c_Vec V1; c_Vec V2; c_Vec V3; c_Vec PM; int I; for(int i=0; i < NcarasVisibles; i++) { I = caras[order_list[i]][0][0]-1; if(!transformado[I]) { transformado[I] = true; V1 = vertices[I]; vertices_T[I] = m.Transformar(m, V1); } I = caras[order_list[i]][1][0]-1; if(!transformado[I]) { transformado[I] = true; V2 = vertices[I]; vertices_T[I] = m.Transformar(m, V2); } I = caras[order_list[i]][2][0]-1; if(!transformado[I]) { transformado[I] = true; V3 = vertices[I]; vertices_T[I] = m.Transformar(m, V3); } PM = caras_punto_medio[order_list[i]]; caras_punto_medio_T[order_list[i]] = m.Transformar(m, PM); N = vertices_normales[caras[order_list[i]][2][1]-1]; vertices_normales_T[caras[order_list[i]][2][1]-1] = c_Vec.normalize(NM.Transformar(NM, N)); } } void calcular_zCull(c_Transform TF) { //el matriz para las normales. Solo se rotan y escalan. c_Matriz NM = c_Matriz.mul(TF.getRotMatriz(), TF.getEscMatriz()); //matriz rotacion, escala, traslacion. c_Matriz m = TF.get(); int Ncaras = sizeOf(caras); double[] z_list = new double[Ncaras]; //z min de las caras int i = 0; //cuenta las caras visibles //para que se manejen mejor las variables y no de error. c_Vec N;c_Vec V1; c_Vec V2; c_Vec V3; c_Vec PM; for(int caraI=0; caraI < Ncaras; caraI++) { //transformar normales N = vertices_normales[caras[caraI][2][1]-1]; vertices_normales_T[caras[caraI][2][1]-1] = c_Vec.normalize(NM.Transformar(NM, N)); N = vertices_normales_T[caras[caraI][2][1]-1]; //no dibujar los que no miren a la camara if(N.getZ() > 0) continue; PM = caras_punto_medio[caraI]; caras_punto_medio_T[caraI] = m.Transformar(m, PM); //transformar los vertices de la cara a como se ven en la pantalla V1 = vertices[caras[caraI][0][0]-1]; vertices_T[caras[caraI][0][0]-1] = m.Transformar(m, V1); V1 = vertices_T[caras[caraI][0][0]-1]; V2 = vertices[caras[caraI][1][0]-1]; vertices_T[caras[caraI][1][0]-1] = m.Transformar(m, V2); V2 = vertices_T[caras[caraI][1][0]-1]; V3 = vertices[caras[caraI][2][0]-1]; vertices_T[caras[caraI][2][0]-1] = m.Transformar(m, V3); V3 = vertices_T[caras[caraI][2][0]-1]; //guardar z de la cara en la lista z_list[caraI] = c_Util.min(V1.getZ(), V2.getZ(), V3.getZ()); order_list[i] = caraI; if(i > 0) { int j = i; //ordenar segun la z. La mayor z implica estar primero en la lista de dibujo. while(z_list[caraI] > z_list[order_list[j-1]]) { order_list[j] = order_list[j-1]; order_list[j-1] = caraI; j--; if(j==0) break; } } i++; } NcarasVisibles = i; } void dibujar_zCull(c_Vec point_light, c_Transform TF) { double pz = point_light.getZ(); boolean calculate_p_light = true; //dibujar las caras segun el orden de dibujo //para que se manejen mejor las variables y no de error. c_Vec N; c_Vec V1; c_Vec V2; c_Vec V3; c_Vec PM; for(int i=0; i < NcarasVisibles; i++) { V1 = vertices_T[caras[order_list[i]][0][0]-1]; V2 = vertices_T[caras[order_list[i]][1][0]-1]; V3 = vertices_T[caras[order_list[i]][2][0]-1]; N = vertices_normales_T[caras[order_list[i]][2][1]-1]; PM = caras_punto_medio_T[order_list[i]]; //dibujar punto de luz if(calculate_p_light && pz > c_Util.min(V1.getZ(), V2.getZ(), V3.getZ())) { calculate_p_light = false; int px = floor(point_light.getX()); int py = floor(point_light.getY()); int r = floor(10-3.5*point_light.getZ()/TF.getEscala().getZ()); stroke(189,189,189); fill(255,255,255); ellipse(px, py, r*2, r*2); } c_Graficos.f_triangulo_sha(V1,V2,V3, N, PM); } //dibujar punto de luz if(calculate_p_light) { int px = floor(point_light.getX()); int py = floor(point_light.getY()); int r = floor(10-3.5*point_light.getZ()/TF.getEscala().getZ()); stroke(189,189,189); fill(255,255,255); ellipse(px, py, r*2, r*2); } } c_Vec[] getVertices(){ return vertices;} c_Vec[] getVerticesNormales(){ return vertices_normales;} int[][][] getCaras(){ return caras;} } //-- Clase de vectores 3D class c_Vec { private double x; private double y; private double z; public c_Vec(double x, double y, double z) { this.x = x; this.y = y; this.z = z; } double length() { return sqrt(x*x + y*y + z*z); } double dot(c_Vec r) { return x*r.getX() + y*r.getY() + z*r.getZ(); } c_Vec cross(c_Vec r) { double x_ = y*r.getZ() - z*r.getY(); double y_ = z*r.getX() - x*r.getZ(); double z_ = x*r.getY() - y*r.getX(); return new c_Vec(x_, y_, z_); } static c_Vec normalize(c_Vec v) { double l = v.length(); v = c_Vec.div(v, l); return v } static c_Vec add(c_Vec v, c_Vec r) {return new c_Vec(v.getX()+r.getX(), v.getY()+r.getY(), v.getZ()+r.getZ())} static c_Vec add(c_Vec v, double r) {return new c_Vec(v.getX()+r, v.getY()+r, v.getZ()+r)} static c_Vec sub(c_Vec v, c_Vec r) {return new c_Vec(v.getX()-r.getX(), v.getY()-r.getY(), v.getZ()-r.getZ())} static c_Vec sub(c_Vec v, double r) {return new c_Vec(v.getX()-r, v.getY()-r, v.getZ()-r)} static c_Vec mul(c_Vec v, c_Vec r) {return new c_Vec(v.getX()*r.getX(), v.getY()*r.getY(), v.getZ()*r.getZ())} static c_Vec mul(c_Vec v, double r) {return new c_Vec(v.getX()*r, v.getY()*r, v.getZ()*r)} static c_Vec div(c_Vec v, c_Vec r) {return new c_Vec(v.getX()/r.getX(), v.getY()/r.getY(), v.getZ()/r.getZ())} static c_Vec div(c_Vec v, double r) {return new c_Vec(v.getX()/r, v.getY()/r, v.getZ()/r)} double getX(){return x;} void setX(double v){x=v;} double getY(){return y;} void setY(double v){y=v;} double getZ(){return z;} void setZ(double v){z=v;} } //-- Clase de cuaterniones class c_Cuaternion { private double x; private double y; private double z; private double w; public c_Cuaternion(double x, double y, double z, double w) { this.x = x; this.y = y; this.z = z; this.w = w; } c_Cuaternion(c_Vec eje, double angle) { double sinMedioAngulo = sin(angle / 2); double cosMedioAngulo = cos(angle / 2); this.x = eje.getX() * sinMedioAngulo; this.y = eje.getY() * sinMedioAngulo; this.z = eje.getZ() * sinMedioAngulo; this.w = cosMedioAngulo; } double length() { return sqrt(x*x + y*y + z*z + w*w); } static c_Cuaternion normalized(c_Cuaternion c) { double l = c.length(); return new c_Cuaternion(c.x / l, c.y / l, c.z / l, c.w / l); } static c_Cuaternion normalize(c_Cuaternion c) { double l = c.length(); c.x /= l; c.y /= l; c.z /= l; c.w /= l; return c; } c_Cuaternion conjugar() { return new c_Cuaternion(-x, -y, -z, w); } c_Cuaternion mul(double r) { return new c_Cuaternion(x * r, y * r, z * r, w * r); } static c_Matriz aMatrizRotacion(c_Cuaternion c) { double x = c.getX(); double y = c.getY(); double z = c.getZ(); double w = c.getW(); c_Vec forward =new c_Vec(2.0 * (x * z - w * y), 2.0 * (y * z + w * x), 1.0 - 2.0 * (x * x + y * y)); c_Vec up = new c_Vec(2.0 * (x * y + w * z), 1.0 - 2.0 * (x * x + z * z), 2.0 * (y * z - w * x)); c_Vec right = new c_Vec(1.0 - 2.0 * (y * y + z * z), 2.0 * (x * y - w * z), 2.0 * (x * z + w * y)); return new c_Matriz().InitRotacion(forward, up, right); } c_Cuaternion mul(c_Cuaternion r) { double w_ = w*r.getW() - x*r.getX() - y*r.getY() - z*r.getZ(); double x_ = x*r.getW() + w*r.getX() + y*r.getZ() - z*r.getY(); double y_ = y*r.getW() + w*r.getY() + z*r.getX() - x*r.getZ(); double z_ = z*r.getW() + w*r.getZ() + x*r.getY() - y*r.getX(); return new c_Cuaternion(x_, y_, z_, w_); } c_Cuaternion mul(c_Vec r) { double w_ = -x*r.getX() - y*r.getY() - z*r.getZ(); double x_ = w*r.getX() + y*r.getZ() - z*r.getY(); double y_ = w*r.getY() + z*r.getX() - x*r.getZ(); double z_ = w*r.getZ() + x*r.getY() - y*r.getX(); return new c_Cuaternion(x_, y_, z_, w_); } double getX(){return x;} void setX(double v){x=v;} double getY(){return y;} void setY(double v){y=v;} double getZ(){return z;} void setZ(double v){z=v;} double getW(){return w;} void setW(double v){w=v;} } //-- Clase de matrices 4x4 class c_Matriz { private double[][] m; public c_Matriz() { m = new double[4][4]; } c_Matriz initIdentidad() { m[0][0] = 1; m[0][1] = 0; m[0][2] = 0; m[0][3] = 0; m[1][0] = 0; m[1][1] = 1; m[1][2] = 0; m[1][3] = 0; m[2][0] = 0; m[2][1] = 0; m[2][2] = 1; m[2][3] = 0; m[3][0] = 0; m[3][1] = 0; m[3][2] = 0; m[3][3] = 1; return this; } c_Matriz initTraslacion(double x, double y, double z) { m[0][0] = 1; m[0][1] = 0; m[0][2] = 0; m[0][3] = x; m[1][0] = 0; m[1][1] = 1; m[1][2] = 0; m[1][3] = y; m[2][0] = 0; m[2][1] = 0; m[2][2] = 1; m[2][3] = z; m[3][0] = 0; m[3][1] = 0; m[3][2] = 0; m[3][3] = 1; return this; } c_Matriz InitRotacion(c_Vec forward, c_Vec up, c_Vec right) { c_Vec f = forward; c_Vec r = right; c_Vec u = up; m[0][0] = r.getX(); m[0][1] = r.getY(); m[0][2] = r.getZ(); m[0][3] = 0; m[1][0] = u.getX(); m[1][1] = u.getY(); m[1][2] = u.getZ(); m[1][3] = 0; m[2][0] = f.getX(); m[2][1] = f.getY(); m[2][2] = f.getZ(); m[2][3] = 0; m[3][0] = 0; m[3][1] = 0; m[3][2] = 0; m[3][3] = 1; return this; } c_Matriz InitEscala(double x, double y, double z) { m[0][0] = x; m[0][1] = 0; m[0][2] = 0; m[0][3] = 0; m[1][0] = 0; m[1][1] = y; m[1][2] = 0; m[1][3] = 0; m[2][0] = 0; m[2][1] = 0; m[2][2] = z; m[2][3] = 0; m[3][0] = 0; m[3][1] = 0; m[3][2] = 0; m[3][3] = 1; return this; } static c_Vec Transformar(c_Matriz m, c_Vec r) { return new c_Vec(m.get(0,0) * r.getX() + m.get(0,1) * r.getY() + m.get(0,2) * r.getZ() + m.get(0,3), m.get(1,0) * r.getX() + m.get(1,1) * r.getY() + m.get(1,2) * r.getZ() + m.get(1,3), m.get(2,0) * r.getX() + m.get(2,1) * r.getY() + m.get(2,2) * r.getZ() + m.get(2,3)); } static c_Matriz mul(c_Matriz m, c_Matriz r) { c_Matriz res = new c_Matriz(); for(int i = 0; i < 4; i++) for(int j = 0; j < 4; j++) res.set(i, j, m.get(i,0) * r.get(0, j) + m.get(i,1) * r.get(1, j) + m.get(i,2) * r.get(2, j) + m.get(i,3) * r.get(3, j)); return res; } double get(int x, int y) { return m[x][y]; } void set(int x, int y, double value) { m[x][y] = value; } } //-- Clase de utilidades class c_Util { public static double min(double a, double b) { if(a < b) return a return b } static double min(double a, double b, double c) { if(a < b && a < c) return a if(b < c) return b return c } static double max(double a, double b) { if(a > b) return a return b } static double[] copiar_array_1_d(double[] a) { double[] b = new double[sizeOf(a)]; for(int i=0; i < sizeOf(a); i++) b[i] = a[i]; return b; } static double[] copiar_array_1_d(double[][] a, int i) { double[] b = new double[sizeOf(a)]; for(int j=0; j < sizeOf(a, 2); j++) b[j] = a[i][j]; return b; } static double[] copiar_array_1_d(double[][][] a, int i, int j) { double[] b = new double[sizeOf(a)]; for(int k=0; k < sizeOf(a, 2); k++) b[k] = a[i][j][k]; return b; } static double[][] copiar_array_2_d(double[][] a) { double[][] b = new double[sizeOf(a, 1)][sizeOf(a, 2)]; for(int i=0; i < sizeOf(a, 1); i++) for(int j=0; j < sizeOf(a, 2); j++) b[i][j] = a[i][j]; return b; } static double[][] copiar_array_2_d(double[][][] a, int i) { double[][] b = new double[sizeOf(a, 1)][sizeOf(a, 2)]; for(int j=0; j < sizeOf(a, 2); j++) for(int k=0; k < sizeOf(a, 3); k++) b[j][k] = a[i][j][k]; return b; } } void f_objects_init() { //--------//CODIGO TETERA//--------// final c_Vec[] TETERA_VERTICES = { new c_Vec(-0.839186, 0.635829, -0.048337), new c_Vec(-0.522797, 0.658050, 0.052123), new c_Vec(-0.852121, 0.605331, -0.009299), new c_Vec(-0.902982, 0.641354, 0.074361), new c_Vec(-0.882355, 0.603020, 0.068243), new c_Vec(-0.595739, 0.445100, 0.164032), new c_Vec(-0.419842, 0.801708, 0.184193), new c_Vec(-0.954373, 0.550616, 0.046011), new c_Vec(-0.499265, 0.706069, 0.057511), new c_Vec(-0.863991, 0.705009, -0.006466), new c_Vec(-0.946986, 0.618757, -0.046822), new c_Vec(-0.883252, 0.663214, -0.072788), new c_Vec(-0.615611, 0.450331, -0.081420), new c_Vec(-0.499581, 0.706162, -0.061183), new c_Vec(-0.366341, 0.801727, -0.277486), new c_Vec(-0.448161, 0.800694, -0.057454), new c_Vec(-0.840351, 0.465624, -0.044982), new c_Vec(-0.842392, 0.443417, 0.056169), new c_Vec(-0.641579, 0.281878, -0.010748), new c_Vec(-0.629997, 0.272616, 0.047814), new c_Vec(-0.893781, 0.416588, 0.066510), new c_Vec(-0.614675, 0.201215, 0.053171), new c_Vec(-0.772538, 0.286483, 0.047995), new c_Vec(-0.899580, 0.439661, -0.069609), new c_Vec(-0.617058, 0.193787, -0.040107), new c_Vec(-0.558821, 0.172267, 0.248998), new c_Vec(-0.775448, 0.362774, -0.057201), new c_Vec(-0.618063, 0.222857, -0.071429), new c_Vec(0.738654, 0.526778, 0.044702), new c_Vec(0.606945, 0.456955, 0.001037), new c_Vec(0.601276, 0.418662, 0.094587), new c_Vec(0.767929, 0.462217, 0.125969), new c_Vec(0.848864, 0.752291, 0.046946), new c_Vec(0.622165, 0.319243, 0.163273), new c_Vec(0.820756, 0.369027, 0.075749), new c_Vec(0.920325, 0.666170, 0.042057), new c_Vec(1.016902, 0.785670, 0.055231), new c_Vec(1.093708, 0.790329, 0.012790), new c_Vec(0.721291, 0.266474, -0.094832), new c_Vec(-0.599052, 0.304281, 0.266348), new c_Vec(0.798273, 0.410546, -0.127503), new c_Vec(0.912159, 0.671872, -0.051887), new c_Vec(1.057162, 0.791339, -0.045064), new c_Vec(0.838120, 0.687165, -0.067909), new c_Vec(0.605101, 0.399712, -0.137265), new c_Vec(0.759032, 0.512901, -0.095910), new c_Vec(0.908013, 0.786648, -0.025393), new c_Vec(0.913194, 0.775966, 0.023022), new c_Vec(0.926787, 0.748876, 0.018242), new c_Vec(0.934082, 0.748932, -0.038409), new c_Vec(0.442955, 0.799388, 0.077013), new c_Vec(0.436768, 0.749898, 0.121690), new c_Vec(0.362756, 0.749723, 0.279318), new c_Vec(0.366342, 0.801727, 0.277486), new c_Vec(0.179012, 0.749718, 0.420793), new c_Vec(0.182848, 0.801726, 0.421080), new c_Vec(-0.058068, 0.797463, 0.442240), new c_Vec(-0.063901, 0.771686, 0.477990), new c_Vec(-0.064189, 0.749455, 0.451305), new c_Vec(-0.279321, 0.749723, 0.362756), new c_Vec(-0.277484, 0.801728, 0.366341), new c_Vec(-0.420797, 0.749719, 0.179013), new c_Vec(-0.451305, 0.749455, -0.064198), new c_Vec(-0.362762, 0.749725, -0.279319), new c_Vec(-0.179022, 0.749720, -0.420795), new c_Vec(-0.182847, 0.801726, -0.421079), new c_Vec(0.058068, 0.797464, -0.442240), new c_Vec(0.063904, 0.771689, -0.477988), new c_Vec(0.177634, 0.749718, -0.421368), new c_Vec(0.283524, 0.801541, -0.359983), new c_Vec(0.361868, 0.749725, -0.280478), new c_Vec(0.421079, 0.801726, -0.182849), new c_Vec(0.452275, 0.749862, -0.064814), new c_Vec(0.513582, 0.708526, 0.083646), new c_Vec(0.511943, 0.357703, 0.395231), new c_Vec(0.415498, 0.033502, -0.230948), new c_Vec(0.617684, 0.235930, 0.085941), new c_Vec(0.473845, 0.033245, 0.011407), new c_Vec(0.251918, 0.357702, 0.594847), new c_Vec(-0.087862, 0.357847, 0.638839), new c_Vec(-0.395231, 0.357707, 0.511944), new c_Vec(-0.511943, 0.357704, -0.395233), new c_Vec(-0.611151, 0.245172, -0.175922), new c_Vec(-0.251917, 0.357703, -0.594846), new c_Vec(0.087861, 0.357846, -0.638838), new c_Vec(0.392224, 0.386303, -0.507955), new c_Vec(0.321791, 0.204831, -0.542608), new c_Vec(0.553258, 0.356551, -0.324575), new c_Vec(0.586270, 0.464753, -0.162044), new c_Vec(0.630016, 0.244325, -0.114754), new c_Vec(0.575307, 0.185350, 0.235969), new c_Vec(0.405502, 0.033516, 0.248306), new c_Vec(0.375927, 0.180075, 0.490767), new c_Vec(0.230945, 0.033502, 0.415498), new c_Vec(0.163309, 0.181292, 0.590337), new c_Vec(-0.086684, 0.179889, 0.610180), new c_Vec(-0.011410, 0.033244, 0.473845), new c_Vec(-0.379838, 0.180110, 0.487786), new c_Vec(-0.248307, 0.033516, 0.405499), new c_Vec(-0.415498, 0.033503, 0.230947), new c_Vec(-0.473846, 0.033245, -0.011408), new c_Vec(-0.556759, 0.173292, -0.254471), new c_Vec(-0.405500, 0.033515, -0.248307), new c_Vec(-0.375927, 0.180079, -0.490765), new c_Vec(-0.230947, 0.033503, -0.415498), new c_Vec(-0.163309, 0.181293, -0.590337), new c_Vec(0.086683, 0.179889, -0.610179), new c_Vec(0.011410, 0.033244, -0.473845), new c_Vec(0.248306, 0.033516, -0.405501), new c_Vec(0.490767, 0.180076, -0.375929), new c_Vec(0.605101, 0.399712, -0.137265), new c_Vec(0.319703, 0.009678, 0.261804), new c_Vec(-0.196279, -0.002240, 0.233518), new c_Vec(0.261804, 0.009679, -0.319703), new c_Vec(-0.319702, 0.009678, -0.261804), new c_Vec(0.054056, 0.850213, 0.059283), new c_Vec(0.047210, 0.890445, 0.035720), new c_Vec(-0.035720, 0.890445, 0.047210), new c_Vec(-0.074970, 0.851257, 0.031285), new c_Vec(-0.047210, 0.890445, -0.035720), new c_Vec(-0.029549, 0.850978, -0.070949), new c_Vec(0.035720, 0.890445, -0.047210), new c_Vec(0.060864, 0.850125, -0.045673), new c_Vec(0.364771, 0.791795, -0.167784), new c_Vec(0.363729, 0.789630, 0.147019), new c_Vec(0.437356, 0.743230, -0.118630), new c_Vec(0.435892, 0.743442, 0.124032), new c_Vec(0.167782, 0.791794, 0.364772), new c_Vec(0.231853, 0.742651, 0.390311), new c_Vec(0.002684, 0.742907, 0.452446), new c_Vec(-0.147022, 0.789630, 0.363731), new c_Vec(-0.124032, 0.743442, 0.435891), new c_Vec(-0.364774, 0.791794, 0.167784), new c_Vec(-0.390311, 0.742651, 0.231852), new c_Vec(-0.437356, 0.743230, 0.118630), new c_Vec(-0.363733, 0.789630, -0.147024), new c_Vec(-0.392677, 0.742760, -0.227780), new c_Vec(-0.167785, 0.791794, -0.364773), new c_Vec(-0.231849, 0.742597, -0.390313), new c_Vec(-0.002680, 0.742849, -0.452447), new c_Vec(0.147024, 0.789630, -0.363731), new c_Vec(0.227784, 0.742704, -0.392674), new c_Vec(0.390313, 0.742598, -0.231847), new c_Vec(0.102337, 0.974241, 0.078079), new c_Vec(0.070515, 1.003633, 0.049719), new c_Vec(-0.048206, 0.985690, 0.114504), new c_Vec(-0.096684, 0.974905, 0.075687), new c_Vec(-0.104075, 0.980493, -0.078379), new c_Vec(0.048205, 0.985690, -0.114503), new c_Vec(0.096683, 0.974905, -0.075686), new c_Vec(-0.453012, 0.750009, 0.000000), new c_Vec(-0.230198, 0.750009, 0.391939), new c_Vec(-0.521535, 0.657718, -0.057542), new c_Vec(0.000000, 0.750009, -0.453012), new c_Vec(-0.321639, 0.750009, -0.321639), new c_Vec(0.321638, 0.750009, -0.321639), new c_Vec(0.453011, 0.750009, 0.000000), new c_Vec(0.391939, 0.750009, 0.230197), new c_Vec(-0.121642, 0.750009, -0.437072), new c_Vec(0.121642, 0.750009, -0.437072), new c_Vec(0.121642, 0.750009, 0.437072), new c_Vec(-0.437073, 0.750009, -0.121642), new c_Vec(-0.321639, 0.750009, 0.321639), new c_Vec(0.321638, 0.750009, 0.321639) }; final c_Vec[] TETERA_VERTICES_NORMALES = { new c_Vec( 0.231100, -0.802400, -0.550300), new c_Vec( 0.064600, -0.901700, 0.427500), new c_Vec( 0.848900, 0.402100, 0.343000), new c_Vec( -0.878400, 0.420400, 0.227400), new c_Vec( -0.133500, -0.225900, 0.965000), new c_Vec( -0.104700, 0.805200, 0.583600), new c_Vec( -0.880800, 0.403900, 0.247300), new c_Vec( -0.746600, 0.648100, 0.150300), new c_Vec( -0.875000, 0.420800, 0.239300), new c_Vec( -0.623300, 0.730400, -0.279300), new c_Vec( -0.846100, 0.410600, -0.339800), new c_Vec( -0.831000, 0.464100, -0.306800), new c_Vec( -0.928600, 0.361600, 0.082900), new c_Vec( 0.931700, -0.014200, 0.362900), new c_Vec( 0.968800, 0.237200, 0.071600), new c_Vec( 0.651900, 0.737800, 0.175100), new c_Vec( 0.626700, 0.779300, -0.000700), new c_Vec( 0.208200, -0.021800, 0.977800), new c_Vec( 0.135200, 0.120100, 0.983500), new c_Vec( 0.125000, 0.100900, 0.987000), new c_Vec( -0.476600, 0.845900, 0.239600), new c_Vec( -0.301300, 0.009600, 0.953500), new c_Vec( -0.861900, 0.442700, 0.247400), new c_Vec( -0.204100, -0.321800, 0.924500), new c_Vec( -0.946200, -0.220300, -0.237000), new c_Vec( -0.908900, -0.415800, -0.031800), new c_Vec( -0.734900, -0.673100, -0.082800), new c_Vec( -0.386300, 0.015100, -0.922300), new c_Vec( 0.536500, -0.833200, -0.134100), new c_Vec( -0.657000, -0.750000, 0.076500), new c_Vec( -0.608200, -0.734900, -0.300100), new c_Vec( 0.462500, -0.046400, -0.885400), new c_Vec( 0.391600, -0.020800, -0.919900), new c_Vec( 0.263400, 0.276000, -0.924400), new c_Vec( 0.401900, 0.528100, -0.748000), new c_Vec( 0.571100, 0.688000, -0.447800), new c_Vec( 0.949300, -0.000300, 0.314300), new c_Vec( 0.510800, 0.412000, -0.754600), new c_Vec( -0.522100, 0.799900, 0.295800), new c_Vec( -0.304000, 0.689600, 0.657300), new c_Vec( -0.748900, 0.360400, 0.556100), new c_Vec( -0.285200, 0.503500, 0.815600), new c_Vec( 0.439100, -0.220400, 0.871000), new c_Vec( 0.582800, -0.103900, 0.805900), new c_Vec( 0.280000, 0.178800, 0.943200), new c_Vec( -0.032500, -0.083500, 0.996000), new c_Vec( 0.452600, -0.450600, 0.769500), new c_Vec( 0.359900, -0.877300, 0.317600), new c_Vec( -0.925200, -0.310600, 0.218000), new c_Vec( -0.069600, 0.062000, 0.995600), new c_Vec( 0.846000, -0.496300, -0.195000), new c_Vec( 0.928400, -0.330400, -0.170200), new c_Vec( 0.922400, -0.372300, -0.102800), new c_Vec( 0.568300, -0.816900, -0.099000), new c_Vec( 0.596600, -0.701900, -0.389100), new c_Vec( 0.242000, 0.170900, -0.955100), new c_Vec( 0.177200, -0.159600, -0.971100), new c_Vec( 0.031000, 0.305600, -0.951700), new c_Vec( -0.169400, 0.230800, -0.958100), new c_Vec( -0.130100, 0.465500, -0.875400), new c_Vec( -0.502000, 0.801500, -0.325000), new c_Vec( -0.423900, 0.893200, -0.149600), new c_Vec( -0.884500, 0.434000, -0.171000), new c_Vec( -0.888900, 0.429200, -0.160200), new c_Vec( -0.720400, 0.630000, -0.289900), new c_Vec( -0.257800, 0.937300, 0.234400), new c_Vec( -0.198700, 0.909300, 0.365700), new c_Vec( -0.081400, 0.996000, -0.038000), new c_Vec( -0.067200, 0.140600, -0.987800), new c_Vec( -0.232700, 0.958700, 0.163700), new c_Vec( -0.327500, 0.944000, -0.041200), new c_Vec( 0.134400, -0.239000, 0.961700), new c_Vec( 0.895800, 0.429100, 0.115800), new c_Vec( -0.873600, -0.261300, -0.410500), new c_Vec( -0.932700, 0.051700, -0.357000), new c_Vec( -0.610000, 0.014200, -0.792300), new c_Vec( -0.615500, 0.049700, -0.786600), new c_Vec( -0.087700, 0.012000, -0.996100), new c_Vec( 0.037400, 0.807700, 0.588500), new c_Vec( 0.371300, -0.217800, -0.902600), new c_Vec( 0.327400, 0.053500, -0.943400), new c_Vec( -0.176700, 0.811800, 0.556500), new c_Vec( 0.792300, 0.014100, -0.610000), new c_Vec( 0.787000, 0.046800, -0.615100), new c_Vec( 0.993200, -0.006600, -0.116400), new c_Vec( 0.919500, -0.106200, 0.378300), new c_Vec( 0.935900, 0.052100, 0.348300), new c_Vec( 0.610000, 0.014100, 0.792300), new c_Vec( 0.615500, 0.049600, 0.786600), new c_Vec( 0.087700, 0.011900, 0.996100), new c_Vec( -0.037400, 0.807700, -0.588500), new c_Vec( -0.308600, -0.394500, 0.865500), new c_Vec( 0.187500, 0.811000, -0.554200), new c_Vec( -0.581800, 0.287600, 0.760800), new c_Vec( -0.765600, -0.244900, 0.594800), new c_Vec( -0.877200, 0.308800, 0.367500), new c_Vec( -0.920000, -0.385000, 0.074000), new c_Vec( 0.790200, 0.609800, -0.061000), new c_Vec( 0.748200, 0.602000, 0.278900), new c_Vec( 0.815000, 0.382600, 0.435100), new c_Vec( 0.832200, -0.516700, -0.200900), new c_Vec( 0.570000, 0.380100, 0.728400), new c_Vec( 0.564400, 0.375500, 0.735200), new c_Vec( 0.163400, 0.381500, 0.909800), new c_Vec( 0.120300, 0.353600, 0.927600), new c_Vec( -0.394100, 0.352700, 0.848700), new c_Vec( -0.353900, 0.374800, 0.856900), new c_Vec( -0.728800, 0.380000, 0.569600), new c_Vec( -0.754500, 0.362200, 0.547300), new c_Vec( -0.797900, 0.366500, 0.478600), new c_Vec( -0.993100, 0.083100, 0.082200), new c_Vec( -0.003000, 1.000000, 0.000800), new c_Vec( -0.839800, 0.378600, -0.389200), new c_Vec( -0.927100, 0.140000, -0.347600), new c_Vec( -0.570000, 0.380100, -0.728400), new c_Vec( -0.564400, 0.375500, -0.735200), new c_Vec( -0.163400, 0.381500, -0.909800), new c_Vec( -0.120300, 0.353600, -0.927600), new c_Vec( 0.391600, 0.398100, -0.829500), new c_Vec( 0.340500, 0.357700, -0.869600), new c_Vec( 0.393100, 0.022900, -0.919200), new c_Vec( 0.726600, 0.391400, -0.564700), new c_Vec( 0.721100, 0.395300, -0.569100), new c_Vec( 0.825000, 0.378500, -0.419600), new c_Vec( 0.951000, 0.110700, -0.288700), new c_Vec( 0.903600, 0.395000, 0.165800), new c_Vec( 0.890200, 0.426500, -0.159800), new c_Vec( 0.241000, -0.970200, -0.025800), new c_Vec( 0.661900, -0.724700, 0.191800), new c_Vec( 0.761900, -0.265700, 0.590700), new c_Vec( 0.609200, -0.643600, 0.463300), new c_Vec( 0.608500, -0.039600, 0.792600), new c_Vec( 0.475900, -0.725800, 0.496800), new c_Vec( 0.411700, -0.229400, 0.882000), new c_Vec( 0.315000, -0.661200, 0.680800), new c_Vec( 0.127800, -0.089500, 0.987700), new c_Vec( 0.079000, -0.158000, 0.984300), new c_Vec( 0.056400, -0.751600, 0.657200), new c_Vec( 0.184900, -0.616600, 0.765300), new c_Vec( -0.377200, -0.149700, 0.913900), new c_Vec( -0.380600, -0.157000, 0.911300), new c_Vec( -0.265400, -0.726000, 0.634400), new c_Vec( -0.218300, -0.619300, 0.754200), new c_Vec( -0.743900, -0.153000, 0.650600), new c_Vec( -0.756800, -0.306500, 0.577300), new c_Vec( -0.539700, -0.724700, 0.428400), new c_Vec( -0.554100, -0.641300, 0.530800), new c_Vec( -0.687500, -0.721200, 0.084800), new c_Vec( -0.749800, -0.636400, 0.181200), new c_Vec( -0.875000, -0.439000, -0.204200), new c_Vec( -0.726300, -0.672900, -0.140000), new c_Vec( -0.870900, -0.146400, -0.469100), new c_Vec( -0.661900, -0.724700, -0.191800), new c_Vec( -0.761900, -0.265700, -0.590700), new c_Vec( -0.588800, -0.657900, -0.469500), new c_Vec( -0.608500, -0.039600, -0.792600), new c_Vec( -0.475900, -0.725800, -0.496800), new c_Vec( -0.411700, -0.229300, -0.882000), new c_Vec( -0.315100, -0.661200, -0.680800), new c_Vec( -0.127800, -0.089500, -0.987800), new c_Vec( -0.079000, -0.158000, -0.984300), new c_Vec( -0.056400, -0.751600, -0.657200), new c_Vec( -0.184900, -0.616600, -0.765300), new c_Vec( 0.288000, -0.154100, -0.945200), new c_Vec( 0.260100, -0.725700, -0.637000), new c_Vec( 0.208000, -0.664000, -0.718200), new c_Vec( 0.686600, -0.129900, -0.715300), new c_Vec( 0.472600, -0.665300, -0.577900), new c_Vec( 0.743900, -0.070000, -0.664600), new c_Vec( 0.496800, -0.725800, -0.475900), new c_Vec( 0.958500, 0.135400, 0.250800), new c_Vec( 0.000000, 0.000000, 1.000000), new c_Vec( 0.941400, 0.159300, -0.297300), new c_Vec( 0.967800, -0.245400, 0.056600), new c_Vec( -0.978300, 0.068800, -0.195500), new c_Vec( -0.970000, -0.179800, 0.163400), new c_Vec( 0.743700, -0.622600, -0.243400), new c_Vec( 0.023200, -0.999700, -0.002300), new c_Vec( 0.130500, -0.991400, -0.013000), new c_Vec( 0.177700, -0.983100, -0.043800), new c_Vec( 0.312700, -0.901300, -0.299600), new c_Vec( 0.081500, -0.956900, -0.278700), new c_Vec( -0.002300, -0.999700, -0.023500), new c_Vec( -0.013000, -0.991400, -0.130500), new c_Vec( -0.043800, -0.983100, -0.177700), new c_Vec( -0.299600, -0.901300, -0.312700), new c_Vec( -0.278700, -0.956900, -0.081500), new c_Vec( -0.135400, -0.990700, 0.009900), new c_Vec( -0.161200, -0.986100, 0.039900), new c_Vec( -0.160800, -0.974900, 0.154100), new c_Vec( -0.055100, -0.980800, 0.187200), new c_Vec( 0.015500, -0.990800, 0.134400), new c_Vec( 0.043800, -0.983100, 0.177700), new c_Vec( 0.299600, -0.901300, 0.312700), new c_Vec( 0.278700, -0.956900, 0.081500), new c_Vec( 0.117500, 0.516700, 0.848100), new c_Vec( -0.210000, -0.180200, 0.961000), new c_Vec( -0.723100, 0.683500, 0.100200), new c_Vec( -0.912900, -0.046600, -0.405500), new c_Vec( -0.106000, 0.635400, -0.764900), new c_Vec( 0.268100, 0.130800, -0.954500), new c_Vec( 0.844700, 0.522300, -0.117000), new c_Vec( 0.977100, 0.203300, 0.063200), new c_Vec( 0.193000, 0.981100, 0.011700), new c_Vec( 0.190000, 0.981800, 0.007400), new c_Vec( 0.552500, 0.833500, 0.007600), new c_Vec( 0.539700, 0.841900, 0.002500), new c_Vec( 0.154900, 0.979400, 0.129600), new c_Vec( 0.573100, 0.641900, 0.509400), new c_Vec( 0.471400, 0.803500, 0.363600), new c_Vec( 0.200700, 0.644900, 0.737500), new c_Vec( -0.035600, 0.979100, 0.200500), new c_Vec( -0.007400, 0.983500, 0.180700), new c_Vec( -0.007600, 0.879400, 0.476000), new c_Vec( -0.068800, 0.830200, 0.553300), new c_Vec( -0.128600, 0.979700, 0.153700), new c_Vec( -0.509400, 0.641900, 0.573200), new c_Vec( -0.363600, 0.803500, 0.471400), new c_Vec( -0.656700, 0.701700, 0.276500), new c_Vec( -0.251000, 0.961200, -0.114100), new c_Vec( -0.178900, 0.983800, -0.007400), new c_Vec( -0.552500, 0.833500, -0.007600), new c_Vec( -0.761300, 0.640800, -0.099100), new c_Vec( -0.151200, 0.980400, -0.126300), new c_Vec( -0.397900, 0.848200, -0.349700), new c_Vec( -0.435000, 0.790400, -0.431300), new c_Vec( -0.200800, 0.644400, -0.737800), new c_Vec( 0.073500, 0.970400, -0.230000), new c_Vec( 0.007400, 0.982700, -0.184900), new c_Vec( 0.007600, 0.879200, -0.476500), new c_Vec( 0.175300, 0.717500, -0.674100), new c_Vec( 0.127000, 0.980200, -0.152000), new c_Vec( 0.349900, 0.847900, -0.398300), new c_Vec( 0.431100, 0.790400, -0.435100), new c_Vec( 0.656800, 0.701400, -0.276800), new c_Vec( 0.201600, 0.784300, 0.586700), new c_Vec( 0.161600, -0.527800, 0.833800), new c_Vec( 0.113400, -0.563400, 0.818400), new c_Vec( -0.440700, -0.555800, 0.704900), new c_Vec( -0.141700, 0.989800, 0.014400), new c_Vec( -0.252800, 0.966400, 0.047200), new c_Vec( -0.807900, -0.589000, 0.017400), new c_Vec( -0.864100, -0.488900, 0.119700), new c_Vec( -0.057800, 0.993200, -0.100700), new c_Vec( -0.181600, -0.512300, -0.839400), new c_Vec( -0.113400, -0.563400, -0.818400), new c_Vec( 0.440800, -0.555800, -0.704900), new c_Vec( 0.325000, 0.934400, -0.146200), new c_Vec( 0.688900, 0.724500, -0.022200), new c_Vec( 0.805200, -0.592100, -0.032200), new c_Vec( 0.856000, -0.503200, -0.118600), new c_Vec( 0.218700, 0.975400, 0.026900), new c_Vec( 0.134500, 0.974500, -0.179300), new c_Vec( 0.818100, -0.414300, 0.398900), new c_Vec( 0.947100, 0.291600, 0.134000), new c_Vec( -0.823600, 0.559200, 0.094200), new c_Vec( -0.910100, 0.414200, -0.011700), new c_Vec( -0.080000, 0.853600, -0.514700), new c_Vec( -0.878500, 0.477700, 0.002700), new c_Vec( 0.921900, 0.374600, -0.099000), new c_Vec( 0.057500, -0.134100, -0.989300), new c_Vec( -0.910800, 0.412900, 0.002100), new c_Vec( -0.499000, -0.643100, -0.580900), new c_Vec( 0.809700, -0.586000, 0.031100), new c_Vec( 0.697300, -0.716600, 0.012900), new c_Vec( -0.958400, -0.259700, -0.118800), new c_Vec( -0.969800, 0.205000, 0.132300), new c_Vec( 0.991200, -0.044500, -0.124300), new c_Vec( -0.995300, 0.049700, -0.082800), new c_Vec( -0.175400, -0.008900, 0.984500), new c_Vec( 0.162700, -0.403500, 0.900400), new c_Vec( -0.122500, -0.169000, -0.978000), new c_Vec( 0.304100, 0.904200, 0.300000), new c_Vec( -0.301000, 0.903600, 0.304800), new c_Vec( -0.377600, 0.926000, -0.003100), new c_Vec( -0.179300, 0.974500, -0.134500), new c_Vec( 0.105900, 0.912900, 0.394300), new c_Vec( -0.101200, 0.914300, 0.392300), new c_Vec( -0.105200, 0.914000, -0.391800), new c_Vec( -0.746800, 0.044200, -0.663600), new c_Vec( -0.475700, -0.875800, 0.081900), new c_Vec( -0.986300, -0.135600, -0.094200), new c_Vec( 0.280400, -0.352300, -0.892900), new c_Vec( 0.875600, 0.318500, 0.363200), new c_Vec( 0.827700, 0.560000, 0.035000), new c_Vec( 0.231200, 0.972400, 0.030300), new c_Vec( 0.148300, 0.969900, -0.192900), new c_Vec( 0.965100, 0.237100, -0.111000), new c_Vec( -0.966800, -0.195100, 0.165200), new c_Vec( -0.335200, 0.773100, 0.538500), new c_Vec( -0.192900, 0.969900, -0.148300), new c_Vec( 0.940300, 0.291100, 0.176200), new c_Vec( 0.885000, -0.189700, -0.425200), new c_Vec( 0.022400, -0.645600, -0.763400), new c_Vec( 0.040500, -0.093100, -0.994800), new c_Vec( 0.068900, -0.997600, 0.003800), new c_Vec( 0.064000, -0.142200, 0.987800), new c_Vec( 0.895700, -0.075600, 0.438200), new c_Vec( 0.954100, -0.229600, 0.192100) }; final int[][][] TETERA_CARAS = { {{1,1}, {2,1}, {3,1}}, {{3,2}, {2,2}, {4,2}}, {{5,3}, {3,3}, {4,3}}, {{2,4}, {6,4}, {7,4}}, {{5,5}, {4,5}, {8,5}}, {{4,6}, {9,6}, {10,6}}, {{9,7}, {2,7}, {7,7}}, {{4,8}, {10,8}, {11,8}}, {{8,9}, {4,9}, {11,9}}, {{11,10}, {10,10}, {12,10}}, {{13,11}, {14,11}, {15,11}}, {{14,12}, {16,12}, {15,12}}, {{6,13}, {2,13}, {13,13}}, {{17,14}, {3,14}, {5,14}}, {{17,15}, {5,15}, {18,15}}, {{19,16}, {17,16}, {18,16}}, {{19,17}, {18,17}, {20,17}}, {{18,18}, {5,18}, {21,18}}, {{20,19}, {18,19}, {21,19}}, {{20,20}, {21,20}, {22,21}}, {{21,22}, {5,22}, {8,22}}, {{22,23}, {21,24}, {23,24}}, {{8,25}, {11,25}, {24,25}}, {{21,26}, {8,26}, {24,26}}, {{23,27}, {21,27}, {24,27}}, {{24,28}, {11,28}, {12,28}}, {{22,29}, {25,30}, {26,30}}, {{23,31}, {24,31}, {25,31}}, {{24,32}, {12,32}, {1,32}}, {{24,33}, {1,33}, {17,33}}, {{24,34}, {17,34}, {27,34}}, {{28,35}, {24,35}, {27,35}}, {{28,36}, {27,36}, {19,36}}, {{17,37}, {1,37}, {3,37}}, {{27,38}, {17,38}, {19,38}}, {{29,39}, {30,39}, {31,39}}, {{29,40}, {31,40}, {32,40}}, {{33,41}, {29,41}, {32,41}}, {{32,42}, {31,42}, {34,42}}, {{32,43}, {34,43}, {35,43}}, {{32,44}, {35,44}, {36,44}}, {{33,45}, {32,45}, {36,45}}, {{37,46}, {33,46}, {36,46}}, {{37,47}, {36,47}, {38,47}}, {{35,48}, {34,48}, {39,48}}, {{26,49}, {40,49}, {22,50}}, {{35,51}, {39,51}, {41,51}}, {{36,52}, {35,52}, {41,52}}, {{36,53}, {41,53}, {42,53}}, {{38,54}, {36,54}, {42,54}}, {{38,55}, {42,55}, {43,55}}, {{42,56}, {41,56}, {44,56}}, {{43,57}, {42,57}, {44,57}}, {{41,58}, {45,58}, {46,58}}, {{44,59}, {41,59}, {46,59}}, {{43,60}, {44,60}, {47,60}}, {{45,61}, {30,61}, {46,61}}, {{46,62}, {30,62}, {29,62}}, {{46,63}, {29,63}, {33,63}}, {{44,64}, {46,64}, {33,64}}, {{47,65}, {44,65}, {33,65}}, {{48,66}, {47,66}, {33,66}}, {{48,67}, {33,67}, {37,67}}, {{48,68}, {37,68}, {38,68}}, {{49,69}, {48,69}, {38,69}}, {{49,70}, {38,70}, {43,70}}, {{49,71}, {43,71}, {50,71}}, {{50,72}, {43,72}, {47,72}}, {{48,73}, {49,73}, {50,73}}, {{51,74}, {52,74}, {53,74}}, {{51,75}, {53,75}, {54,75}}, {{54,76}, {53,76}, {55,76}}, {{54,77}, {55,77}, {56,77}}, {{56,78}, {55,78}, {57,78}}, {{56,79}, {57,79}, {58,79}}, {{57,80}, {59,80}, {60,80}}, {{57,81}, {60,81}, {61,81}}, {{58,82}, {57,82}, {61,82}}, {{61,83}, {60,83}, {62,83}}, {{61,84}, {62,84}, {7,84}}, {{7,85}, {62,85}, {16,85}}, {{16,86}, {63,86}, {64,86}}, {{16,87}, {64,87}, {15,87}}, {{15,88}, {64,88}, {65,88}}, {{15,89}, {65,89}, {66,89}}, {{66,90}, {65,90}, {67,90}}, {{66,91}, {67,91}, {68,91}}, {{67,92}, {69,92}, {70,92}}, {{68,93}, {67,93}, {70,93}}, {{70,94}, {69,94}, {71,94}}, {{70,95}, {71,95}, {72,95}}, {{72,96}, {71,96}, {73,96}}, {{72,97}, {73,97}, {51,97}}, {{72,98}, {51,98}, {74,98}}, {{74,99}, {51,99}, {54,99}}, {{74,100}, {54,100}, {75,100}}, {{76,101}, {77,101}, {78,101}}, {{75,102}, {54,102}, {56,102}}, {{75,103}, {56,103}, {79,103}}, {{79,104}, {56,104}, {58,104}}, {{79,105}, {58,105}, {80,105}}, {{80,106}, {58,106}, {61,106}}, {{80,107}, {61,107}, {81,107}}, {{81,108}, {61,108}, {7,108}}, {{81,109}, {7,109}, {40,109}}, {{40,110}, {7,110}, {6,110}}, {{40,111}, {6,111}, {13,111}}, {{14,112}, {10,112}, {9,112}}, {{13,113}, {15,113}, {82,113}}, {{83,114}, {13,114}, {82,114}}, {{82,115}, {15,115}, {66,115}}, {{82,116}, {66,116}, {84,116}}, {{84,117}, {66,117}, {68,117}}, {{84,118}, {68,118}, {85,118}}, {{68,119}, {70,119}, {86,119}}, {{85,120}, {68,120}, {86,120}}, {{85,121}, {86,121}, {87,121}}, {{86,122}, {70,122}, {72,122}}, {{86,123}, {72,123}, {88,123}}, {{88,124}, {72,124}, {89,124}}, {{88,125}, {45,126}, {90,125}}, {{89,127}, {72,127}, {74,127}}, {{77,128}, {90,128}, {39,128}}, {{78,129}, {91,129}, {92,129}}, {{91,130}, {75,130}, {93,130}}, {{92,131}, {91,131}, {93,131}}, {{93,132}, {75,132}, {79,132}}, {{92,133}, {93,133}, {94,133}}, {{93,134}, {79,134}, {95,134}}, {{94,135}, {93,135}, {95,135}}, {{95,136}, {79,136}, {80,136}}, {{95,137}, {80,137}, {96,137}}, {{94,138}, {95,138}, {96,138}}, {{94,139}, {96,139}, {97,139}}, {{96,140}, {80,140}, {81,140}}, {{96,141}, {81,141}, {98,141}}, {{97,142}, {96,142}, {98,142}}, {{97,143}, {98,143}, {99,143}}, {{98,144}, {81,144}, {40,144}}, {{98,145}, {40,145}, {26,145}}, {{99,146}, {98,146}, {26,146}}, {{99,147}, {26,147}, {100,147}}, {{100,148}, {26,148}, {25,148}}, {{100,149}, {25,149}, {101,149}}, {{25,150}, {83,150}, {102,150}}, {{101,151}, {25,151}, {102,151}}, {{83,152}, {82,152}, {102,152}}, {{101,153}, {102,153}, {103,153}}, {{102,154}, {82,154}, {104,154}}, {{103,155}, {102,155}, {104,155}}, {{104,156}, {82,156}, {84,156}}, {{103,157}, {104,157}, {105,157}}, {{104,158}, {84,158}, {106,158}}, {{105,159}, {104,159}, {106,159}}, {{106,160}, {84,160}, {85,160}}, {{106,161}, {85,161}, {107,161}}, {{105,162}, {106,162}, {107,162}}, {{105,163}, {107,163}, {108,163}}, {{107,164}, {85,164}, {87,164}}, {{108,165}, {107,165}, {87,165}}, {{108,166}, {87,166}, {109,166}}, {{87,167}, {86,167}, {110,167}}, {{109,168}, {87,168}, {110,168}}, {{110,169}, {86,169}, {88,169}}, {{109,170}, {110,170}, {76,170}}, {{45,171}, {89,172}, {111,172}}, {{88,173}, {89,173}, {45,174}}, {{19,175}, {13,175}, {83,175}}, {{40,176}, {19,176}, {20,176}}, {{76,177}, {110,177}, {90,177}}, {{112,178}, {113,178}, {114,178}}, {{78,179}, {112,179}, {114,179}}, {{78,180}, {114,180}, {76,180}}, {{76,181}, {114,181}, {109,181}}, {{109,182}, {114,182}, {108,182}}, {{114,183}, {113,183}, {115,183}}, {{108,184}, {114,184}, {115,184}}, {{108,185}, {115,185}, {105,185}}, {{105,186}, {115,186}, {103,186}}, {{103,187}, {115,187}, {101,187}}, {{101,188}, {115,188}, {113,188}}, {{101,189}, {113,189}, {100,189}}, {{100,190}, {113,190}, {99,190}}, {{99,191}, {113,191}, {97,191}}, {{97,192}, {113,192}, {112,192}}, {{97,193}, {112,193}, {94,193}}, {{94,194}, {112,194}, {92,194}}, {{92,195}, {112,195}, {78,195}}, {{116,196}, {117,196}, {118,196}}, {{116,197}, {118,197}, {119,197}}, {{119,198}, {118,198}, {120,198}}, {{119,199}, {120,199}, {121,199}}, {{121,200}, {120,200}, {122,200}}, {{121,201}, {122,201}, {123,201}}, {{123,202}, {122,202}, {117,202}}, {{117,203}, {116,203}, {123,203}}, {{124,204}, {123,204}, {116,204}}, {{124,205}, {116,205}, {125,205}}, {{126,206}, {124,206}, {125,206}}, {{126,207}, {125,207}, {127,207}}, {{125,208}, {116,208}, {128,208}}, {{127,209}, {125,209}, {128,209}}, {{127,210}, {128,210}, {129,210}}, {{129,211}, {128,211}, {130,211}}, {{128,212}, {116,212}, {119,212}}, {{128,213}, {119,213}, {131,213}}, {{130,214}, {128,214}, {131,214}}, {{130,215}, {131,215}, {132,215}}, {{131,216}, {119,216}, {133,216}}, {{132,217}, {131,217}, {133,217}}, {{132,218}, {133,218}, {134,218}}, {{134,219}, {133,219}, {135,219}}, {{133,220}, {119,220}, {121,220}}, {{133,221}, {121,221}, {136,221}}, {{135,222}, {133,222}, {136,222}}, {{135,223}, {136,223}, {137,223}}, {{136,224}, {121,224}, {138,224}}, {{137,225}, {136,225}, {138,225}}, {{137,226}, {138,226}, {139,226}}, {{139,227}, {138,227}, {140,227}}, {{138,228}, {121,228}, {123,228}}, {{138,229}, {123,229}, {141,229}}, {{140,230}, {138,230}, {141,230}}, {{140,231}, {141,231}, {142,231}}, {{141,232}, {123,232}, {124,232}}, {{142,233}, {141,233}, {124,233}}, {{142,234}, {124,234}, {143,234}}, {{143,235}, {124,235}, {126,235}}, {{144,236}, {145,236}, {146,236}}, {{117,237}, {144,237}, {146,237}}, {{117,238}, {146,238}, {118,238}}, {{118,239}, {146,239}, {147,239}}, {{146,240}, {145,240}, {148,240}}, {{147,241}, {146,241}, {148,241}}, {{118,242}, {147,242}, {148,242}}, {{118,243}, {148,243}, {120,243}}, {{148,244}, {145,244}, {149,244}}, {{120,245}, {148,245}, {149,245}}, {{120,246}, {149,246}, {122,246}}, {{122,247}, {149,247}, {150,247}}, {{150,248}, {149,248}, {145,248}}, {{150,249}, {145,249}, {144,249}}, {{122,250}, {150,250}, {144,250}}, {{122,251}, {144,251}, {117,251}}, {{135,252}, {137,252}, {151,252}}, {{132,253}, {134,253}, {152,253}}, {{39,254}, {34,254}, {77,254}}, {{31,255}, {74,255}, {34,255}}, {{7,256}, {16,256}, {9,256}}, {{13,257}, {2,257}, {153,257}}, {{12,258}, {10,258}, {14,258}}, {{16,259}, {14,259}, {9,259}}, {{89,260}, {74,260}, {30,260}}, {{90,261}, {45,261}, {41,261}}, {{14,262}, {13,262}, {153,262}}, {{25,263}, {24,263}, {28,263}}, {{78,264}, {77,264}, {91,264}}, {{76,265}, {90,265}, {77,265}}, {{28,266}, {19,266}, {83,266}}, {{40,267}, {13,267}, {19,267}}, {{63,268}, {16,268}, {62,268}}, {{52,269}, {51,269}, {73,269}}, {{69,270}, {67,270}, {154,270}}, {{154,271}, {67,271}, {65,271}}, {{55,272}, {59,272}, {57,272}}, {{139,273}, {155,273}, {137,273}}, {{143,274}, {156,274}, {142,274}}, {{126,275}, {127,275}, {157,275}}, {{127,276}, {129,276}, {158,276}}, {{139,277}, {140,277}, {159,277}}, {{142,278}, {160,278}, {140,278}}, {{130,279}, {161,279}, {129,279}}, {{22,280}, {23,281}, {25,281}}, {{25,282}, {28,282}, {83,282}}, {{41,283}, {39,283}, {90,283}}, {{34,284}, {74,284}, {75,284}}, {{47,285}, {48,285}, {50,285}}, {{137,286}, {162,286}, {151,286}}, {{134,287}, {163,287}, {152,287}}, {{89,288}, {30,288}, {111,288}}, {{40,289}, {20,289}, {22,290}}, {{129,291}, {164,291}, {158,291}}, {{30,292}, {74,292}, {31,292}}, {{110,293}, {88,293}, {90,293}}, {{1,294}, {12,294}, {153,294}}, {{153,295}, {12,295}, {14,295}}, {{2,296}, {1,296}, {153,296}}, {{4,297}, {2,297}, {9,297}}, {{91,298}, {34,298}, {75,298}}, {{77,299}, {34,299}, {91,299}} }; //--------//CODIGO SUZANNE//--------// c_Vec[] SUZANNE_VERTICES = { new c_Vec(0.218750, 0.082031, 0.382812), new c_Vec(-0.218750, 0.082031, 0.382812), new c_Vec(0.250000, 0.046875, 0.343750), new c_Vec(-0.250000, 0.046875, 0.343750), new c_Vec(0.273438, 0.027344, 0.289062), new c_Vec(-0.273438, 0.027344, 0.289062), new c_Vec(0.175781, -0.011719, 0.308594), new c_Vec(-0.175781, -0.011719, 0.308594), new c_Vec(0.175781, 0.015625, 0.359375), new c_Vec(-0.175781, 0.015625, 0.359375), new c_Vec(0.175781, 0.066406, 0.390625), new c_Vec(-0.175781, 0.066406, 0.390625), new c_Vec(0.136719, 0.082031, 0.398438), new c_Vec(-0.136719, 0.082031, 0.398438), new c_Vec(0.101562, 0.046875, 0.371094), new c_Vec(-0.101562, 0.046875, 0.371094), new c_Vec(0.078125, 0.027344, 0.324219), new c_Vec(-0.078125, 0.027344, 0.324219), new c_Vec(0.039062, 0.121094, 0.328125), new c_Vec(-0.039062, 0.121094, 0.328125), new c_Vec(0.070312, 0.121094, 0.371094), new c_Vec(-0.070312, 0.121094, 0.371094), new c_Vec(0.121094, 0.121094, 0.398438), new c_Vec(-0.121094, 0.121094, 0.398438), new c_Vec(0.136719, 0.164062, 0.398438), new c_Vec(-0.136719, 0.164062, 0.398438), new c_Vec(0.101562, 0.195312, 0.371094), new c_Vec(-0.101562, 0.195312, 0.371094), new c_Vec(0.078125, 0.218750, 0.324219), new c_Vec(-0.078125, 0.218750, 0.324219), new c_Vec(0.175781, 0.257812, 0.308594), new c_Vec(-0.175781, 0.257812, 0.308594), new c_Vec(0.175781, 0.226562, 0.359375), new c_Vec(-0.175781, 0.226562, 0.359375), new c_Vec(0.175781, 0.179688, 0.390625), new c_Vec(-0.175781, 0.179688, 0.390625), new c_Vec(0.218750, 0.164062, 0.382812), new c_Vec(-0.218750, 0.164062, 0.382812), new c_Vec(0.250000, 0.195312, 0.343750), new c_Vec(-0.250000, 0.195312, 0.343750), new c_Vec(0.273438, 0.218750, 0.289062), new c_Vec(-0.273438, 0.218750, 0.289062), new c_Vec(0.312500, 0.121094, 0.281250), new c_Vec(-0.312500, 0.121094, 0.281250), new c_Vec(0.281250, 0.121094, 0.335938), new c_Vec(-0.281250, 0.121094, 0.335938), new c_Vec(0.234375, 0.121094, 0.378906), new c_Vec(-0.234375, 0.121094, 0.378906), new c_Vec(0.238281, 0.121094, 0.386719), new c_Vec(-0.238281, 0.121094, 0.386719), new c_Vec(0.222656, 0.167969, 0.390625), new c_Vec(-0.222656, 0.167969, 0.390625), new c_Vec(0.175781, 0.187500, 0.402344), new c_Vec(-0.175781, 0.187500, 0.402344), new c_Vec(0.132812, 0.167969, 0.410156), new c_Vec(-0.132812, 0.167969, 0.410156), new c_Vec(0.113281, 0.121094, 0.410156), new c_Vec(-0.113281, 0.121094, 0.410156), new c_Vec(0.132812, 0.078125, 0.410156), new c_Vec(-0.132812, 0.078125, 0.410156), new c_Vec(0.175781, 0.121094, 0.414062), new c_Vec(-0.175781, 0.121094, 0.414062), new c_Vec(0.175781, 0.058594, 0.402344), new c_Vec(-0.175781, 0.058594, 0.402344), new c_Vec(0.222656, 0.078125, 0.390625), new c_Vec(-0.222656, 0.078125, 0.390625), new c_Vec(0.000000, 0.214844, 0.371094), new c_Vec(0.000000, 0.175781, 0.410156), new c_Vec(0.000000, -0.339844, 0.367188), new c_Vec(0.000000, -0.160156, 0.390625), new c_Vec(0.000000, -0.093750, 0.398438), new c_Vec(0.000000, -0.386719, 0.359375), new c_Vec(0.000000, 0.203125, 0.300781), new c_Vec(0.000000, 0.285156, 0.285156), new c_Vec(0.000000, 0.449219, -0.273438), new c_Vec(0.000000, 0.281250, -0.425781), new c_Vec(0.000000, 0.035156, -0.414062), new c_Vec(0.000000, -0.191406, -0.175781), new c_Vec(0.101562, -0.093750, 0.281250), new c_Vec(-0.101562, -0.093750, 0.281250), new c_Vec(0.156250, -0.218750, 0.285156), new c_Vec(-0.156250, -0.218750, 0.285156), new c_Vec(0.175781, -0.347656, 0.285156), new c_Vec(-0.175781, -0.347656, 0.285156), new c_Vec(0.183594, -0.445312, 0.265625), new c_Vec(-0.183594, -0.445312, 0.265625), new c_Vec(0.164062, -0.472656, 0.261719), new c_Vec(-0.164062, -0.472656, 0.261719), new c_Vec(0.089844, -0.484375, 0.277344), new c_Vec(-0.089844, -0.484375, 0.277344), new c_Vec(0.000000, -0.492188, 0.289062), new c_Vec(0.218750, -0.070312, 0.265625), new c_Vec(-0.218750, -0.070312, 0.265625), new c_Vec(0.316406, -0.019531, 0.269531), new c_Vec(-0.316406, -0.019531, 0.269531), new c_Vec(0.414062, 0.074219, 0.222656), new c_Vec(-0.414062, 0.074219, 0.222656), new c_Vec(0.429688, 0.214844, 0.296875), new c_Vec(-0.429688, 0.214844, 0.296875), new c_Vec(0.355469, 0.242188, 0.312500), new c_Vec(-0.355469, 0.242188, 0.312500), new c_Vec(0.246094, 0.300781, 0.343750), new c_Vec(-0.246094, 0.300781, 0.343750), new c_Vec(0.160156, 0.378906, 0.367188), new c_Vec(-0.160156, 0.378906, 0.367188), new c_Vec(0.078125, 0.359375, 0.378906), new c_Vec(-0.078125, 0.359375, 0.378906), new c_Vec(0.031250, 0.246094, 0.375000), new c_Vec(-0.031250, 0.246094, 0.375000), new c_Vec(0.082031, 0.207031, 0.386719), new c_Vec(-0.082031, 0.207031, 0.386719), new c_Vec(0.062500, 0.152344, 0.382812), new c_Vec(-0.062500, 0.152344, 0.382812), new c_Vec(0.101562, 0.046875, 0.371094), new c_Vec(-0.101562, 0.046875, 0.371094), new c_Vec(0.187500, 0.007812, 0.351562), new c_Vec(-0.187500, 0.007812, 0.351562), new c_Vec(0.246094, 0.031250, 0.335938), new c_Vec(-0.246094, 0.031250, 0.335938), new c_Vec(0.312500, 0.093750, 0.324219), new c_Vec(-0.312500, 0.093750, 0.324219), new c_Vec(0.320312, 0.148438, 0.324219), new c_Vec(-0.320312, 0.148438, 0.324219), new c_Vec(0.300781, 0.187500, 0.332031), new c_Vec(-0.300781, 0.187500, 0.332031), new c_Vec(0.214844, 0.218750, 0.359375), new c_Vec(-0.214844, 0.218750, 0.359375), new c_Vec(0.125000, 0.234375, 0.378906), new c_Vec(-0.125000, 0.234375, 0.378906), new c_Vec(0.000000, -0.382812, 0.367188), new c_Vec(0.054688, -0.359375, 0.367188), new c_Vec(-0.054688, -0.359375, 0.367188), new c_Vec(0.058594, -0.417969, 0.355469), new c_Vec(-0.058594, -0.417969, 0.355469), new c_Vec(0.031250, -0.441406, 0.347656), new c_Vec(-0.031250, -0.441406, 0.347656), new c_Vec(0.000000, -0.445312, 0.343750), new c_Vec(0.000000, -0.097656, 0.375000), new c_Vec(0.000000, -0.070312, 0.371094), new c_Vec(0.050781, -0.074219, 0.371094), new c_Vec(-0.050781, -0.074219, 0.371094), new c_Vec(0.062500, -0.113281, 0.375000), new c_Vec(-0.062500, -0.113281, 0.375000), new c_Vec(0.042969, -0.144531, 0.371094), new c_Vec(-0.042969, -0.144531, 0.371094), new c_Vec(0.199219, -0.023438, 0.335938), new c_Vec(-0.199219, -0.023438, 0.335938), new c_Vec(0.308594, 0.027344, 0.312500), new c_Vec(-0.308594, 0.027344, 0.312500), new c_Vec(0.363281, 0.101562, 0.300781), new c_Vec(-0.363281, 0.101562, 0.300781), new c_Vec(0.371094, 0.187500, 0.328125), new c_Vec(-0.371094, 0.187500, 0.328125), new c_Vec(0.343750, 0.207031, 0.363281), new c_Vec(-0.343750, 0.207031, 0.363281), new c_Vec(0.218750, 0.273438, 0.398438), new c_Vec(-0.218750, 0.273438, 0.398438), new c_Vec(0.156250, 0.320312, 0.417969), new c_Vec(-0.156250, 0.320312, 0.417969), new c_Vec(0.101562, 0.308594, 0.425781), new c_Vec(-0.101562, 0.308594, 0.425781), new c_Vec(0.050781, 0.214844, 0.421875), new c_Vec(-0.050781, 0.214844, 0.421875), new c_Vec(0.062500, -0.050781, 0.406250), new c_Vec(-0.062500, -0.050781, 0.406250), new c_Vec(0.105469, -0.222656, 0.355469), new c_Vec(-0.105469, -0.222656, 0.355469), new c_Vec(0.125000, -0.351562, 0.343750), new c_Vec(-0.125000, -0.351562, 0.343750), new c_Vec(0.132812, -0.410156, 0.332031), new c_Vec(-0.132812, -0.410156, 0.332031), new c_Vec(0.117188, -0.457031, 0.316406), new c_Vec(-0.117188, -0.457031, 0.316406), new c_Vec(0.082031, -0.464844, 0.316406), new c_Vec(-0.082031, -0.464844, 0.316406), new c_Vec(0.000000, -0.472656, 0.320312), new c_Vec(0.000000, 0.023438, 0.363281), new c_Vec(0.000000, 0.105469, 0.382812), new c_Vec(0.164062, 0.238281, 0.371094), new c_Vec(-0.164062, 0.238281, 0.371094), new c_Vec(0.082031, 0.070312, 0.375000), new c_Vec(-0.082031, 0.070312, 0.375000), new c_Vec(0.066406, 0.105469, 0.378906), new c_Vec(-0.066406, 0.105469, 0.378906), new c_Vec(0.058594, -0.343750, 0.367188), new c_Vec(-0.058594, -0.343750, 0.367188), new c_Vec(0.039062, -0.222656, 0.375000), new c_Vec(-0.039062, -0.222656, 0.375000), new c_Vec(0.000000, -0.222656, 0.375000), new c_Vec(0.000000, -0.164062, 0.371094), new c_Vec(0.046875, -0.136719, 0.390625), new c_Vec(-0.046875, -0.136719, 0.390625), new c_Vec(0.066406, -0.113281, 0.398438), new c_Vec(-0.066406, -0.113281, 0.398438), new c_Vec(0.054688, -0.066406, 0.390625), new c_Vec(-0.054688, -0.066406, 0.390625), new c_Vec(0.019531, -0.062500, 0.390625), new c_Vec(-0.019531, -0.062500, 0.390625), new c_Vec(0.000000, -0.101562, 0.414062), new c_Vec(0.023438, -0.074219, 0.406250), new c_Vec(-0.023438, -0.074219, 0.406250), new c_Vec(0.046875, -0.078125, 0.406250), new c_Vec(-0.046875, -0.078125, 0.406250), new c_Vec(0.054688, -0.113281, 0.414062), new c_Vec(-0.054688, -0.113281, 0.414062), new c_Vec(0.039062, -0.125000, 0.402344), new c_Vec(-0.039062, -0.125000, 0.402344), new c_Vec(0.000000, -0.144531, 0.402344), new c_Vec(0.128906, -0.156250, 0.277344), new c_Vec(-0.128906, -0.156250, 0.277344), new c_Vec(0.082031, -0.121094, 0.355469), new c_Vec(-0.082031, -0.121094, 0.355469), new c_Vec(0.089844, -0.156250, 0.355469), new c_Vec(-0.089844, -0.156250, 0.355469), new c_Vec(0.117188, -0.125000, 0.277344), new c_Vec(-0.117188, -0.125000, 0.277344), new c_Vec(0.000000, -0.437500, 0.343750), new c_Vec(0.023438, -0.433594, 0.343750), new c_Vec(-0.023438, -0.433594, 0.343750), new c_Vec(0.046875, -0.410156, 0.355469), new c_Vec(-0.046875, -0.410156, 0.355469), new c_Vec(0.046875, -0.371094, 0.363281), new c_Vec(-0.046875, -0.371094, 0.363281), new c_Vec(0.000000, -0.390625, 0.328125), new c_Vec(0.046875, -0.375000, 0.332031), new c_Vec(-0.046875, -0.375000, 0.332031), new c_Vec(0.046875, -0.406250, 0.320312), new c_Vec(-0.046875, -0.406250, 0.320312), new c_Vec(0.023438, -0.425781, 0.316406), new c_Vec(-0.023438, -0.425781, 0.316406), new c_Vec(0.000000, -0.429688, 0.316406), new c_Vec(0.085938, 0.109375, 0.390625), new c_Vec(-0.085938, 0.109375, 0.390625), new c_Vec(0.093750, 0.078125, 0.386719), new c_Vec(-0.093750, 0.078125, 0.386719), new c_Vec(0.167969, 0.214844, 0.378906), new c_Vec(-0.167969, 0.214844, 0.378906), new c_Vec(0.136719, 0.210938, 0.386719), new c_Vec(-0.136719, 0.210938, 0.386719), new c_Vec(0.210938, 0.199219, 0.386719), new c_Vec(-0.210938, 0.199219, 0.386719), new c_Vec(0.281250, 0.175781, 0.347656), new c_Vec(-0.281250, 0.175781, 0.347656), new c_Vec(0.292969, 0.144531, 0.343750), new c_Vec(-0.292969, 0.144531, 0.343750), new c_Vec(0.289062, 0.097656, 0.339844), new c_Vec(-0.289062, 0.097656, 0.339844), new c_Vec(0.238281, 0.050781, 0.359375), new c_Vec(-0.238281, 0.050781, 0.359375), new c_Vec(0.187500, 0.031250, 0.371094), new c_Vec(-0.187500, 0.031250, 0.371094), new c_Vec(0.113281, 0.054688, 0.390625), new c_Vec(-0.113281, 0.054688, 0.390625), new c_Vec(0.089844, 0.148438, 0.390625), new c_Vec(-0.089844, 0.148438, 0.390625), new c_Vec(0.105469, 0.187500, 0.390625), new c_Vec(-0.105469, 0.187500, 0.390625), new c_Vec(0.117188, 0.179688, 0.378906), new c_Vec(-0.117188, 0.179688, 0.378906), new c_Vec(0.097656, 0.148438, 0.378906), new c_Vec(-0.097656, 0.148438, 0.378906), new c_Vec(0.121094, 0.062500, 0.378906), new c_Vec(-0.121094, 0.062500, 0.378906), new c_Vec(0.187500, 0.042969, 0.363281), new c_Vec(-0.187500, 0.042969, 0.363281), new c_Vec(0.230469, 0.058594, 0.351562), new c_Vec(-0.230469, 0.058594, 0.351562), new c_Vec(0.273438, 0.105469, 0.335938), new c_Vec(-0.273438, 0.105469, 0.335938), new c_Vec(0.277344, 0.140625, 0.335938), new c_Vec(-0.277344, 0.140625, 0.335938), new c_Vec(0.265625, 0.167969, 0.339844), new c_Vec(-0.265625, 0.167969, 0.339844), new c_Vec(0.207031, 0.195312, 0.375000), new c_Vec(-0.207031, 0.195312, 0.375000), new c_Vec(0.140625, 0.199219, 0.382812), new c_Vec(-0.140625, 0.199219, 0.382812), new c_Vec(0.167969, 0.203125, 0.375000), new c_Vec(-0.167969, 0.203125, 0.375000), new c_Vec(0.101562, 0.085938, 0.375000), new c_Vec(-0.101562, 0.085938, 0.375000), new c_Vec(0.097656, 0.113281, 0.375000), new c_Vec(-0.097656, 0.113281, 0.375000), new c_Vec(0.054688, 0.230469, 0.304688), new c_Vec(-0.054688, 0.230469, 0.304688), new c_Vec(0.097656, 0.332031, 0.308594), new c_Vec(-0.097656, 0.332031, 0.308594), new c_Vec(0.167969, 0.343750, 0.296875), new c_Vec(-0.167969, 0.343750, 0.296875), new c_Vec(0.242188, 0.277344, 0.277344), new c_Vec(-0.242188, 0.277344, 0.277344), new c_Vec(0.339844, 0.226562, 0.246094), new c_Vec(-0.339844, 0.226562, 0.246094), new c_Vec(0.398438, 0.203125, 0.230469), new c_Vec(-0.398438, 0.203125, 0.230469), new c_Vec(0.386719, 0.082031, 0.187500), new c_Vec(-0.386719, 0.082031, 0.187500), new c_Vec(0.300781, 0.000000, 0.207031), new c_Vec(-0.300781, 0.000000, 0.207031), new c_Vec(0.218750, -0.046875, 0.234375), new c_Vec(-0.218750, -0.046875, 0.234375), new c_Vec(0.000000, 0.449219, 0.144531), new c_Vec(0.000000, 0.492188, -0.039062), new c_Vec(0.000000, -0.097656, -0.335938), new c_Vec(0.000000, -0.230469, 0.093750), new c_Vec(0.000000, -0.488281, 0.230469), new c_Vec(0.000000, -0.402344, 0.171875), new c_Vec(0.000000, -0.285156, 0.160156), new c_Vec(0.000000, -0.242188, 0.140625), new c_Vec(0.425781, 0.117188, 0.027344), new c_Vec(-0.425781, 0.117188, 0.027344), new c_Vec(0.429688, 0.160156, -0.023438), new c_Vec(-0.429688, 0.160156, -0.023438), new c_Vec(0.386719, 0.132812, -0.218750), new c_Vec(-0.386719, 0.132812, -0.218750), new c_Vec(0.230469, 0.218750, -0.351562), new c_Vec(-0.230469, 0.218750, -0.351562), new c_Vec(0.367188, -0.023438, 0.035156), new c_Vec(-0.367188, -0.023438, 0.035156), new c_Vec(0.296875, -0.062500, -0.082031), new c_Vec(-0.296875, -0.062500, -0.082031), new c_Vec(0.320312, -0.003906, -0.214844), new c_Vec(-0.320312, -0.003906, -0.214844), new c_Vec(0.167969, 0.027344, -0.332031), new c_Vec(-0.167969, 0.027344, -0.332031), new c_Vec(0.117188, -0.175781, 0.203125), new c_Vec(-0.117188, -0.175781, 0.203125), new c_Vec(0.089844, -0.207031, 0.128906), new c_Vec(-0.089844, -0.207031, 0.128906), new c_Vec(0.144531, -0.355469, 0.191406), new c_Vec(-0.144531, -0.355469, 0.191406), new c_Vec(0.125000, -0.250000, 0.195312), new c_Vec(-0.125000, -0.250000, 0.195312), new c_Vec(0.164062, -0.457031, 0.199219), new c_Vec(-0.164062, -0.457031, 0.199219), new c_Vec(0.070312, -0.378906, 0.183594), new c_Vec(-0.070312, -0.378906, 0.183594), new c_Vec(0.062500, -0.269531, 0.179688), new c_Vec(-0.062500, -0.269531, 0.179688), new c_Vec(0.082031, -0.472656, 0.218750), new c_Vec(-0.082031, -0.472656, 0.218750), new c_Vec(0.109375, -0.140625, 0.214844), new c_Vec(-0.109375, -0.140625, 0.214844), new c_Vec(0.105469, -0.113281, 0.234375), new c_Vec(-0.105469, -0.113281, 0.234375), new c_Vec(0.101562, -0.085938, 0.250000), new c_Vec(-0.101562, -0.085938, 0.250000), new c_Vec(0.105469, -0.195312, 0.082031), new c_Vec(-0.105469, -0.195312, 0.082031), new c_Vec(0.148438, -0.156250, -0.132812), new c_Vec(-0.148438, -0.156250, -0.132812), new c_Vec(0.171875, -0.074219, -0.269531), new c_Vec(-0.171875, -0.074219, -0.269531), new c_Vec(0.226562, 0.433594, -0.191406), new c_Vec(-0.226562, 0.433594, -0.191406), new c_Vec(0.226562, 0.464844, -0.035156), new c_Vec(-0.226562, 0.464844, -0.035156), new c_Vec(0.226562, 0.425781, 0.117188), new c_Vec(-0.226562, 0.425781, 0.117188), new c_Vec(0.230469, 0.261719, 0.214844), new c_Vec(-0.230469, 0.261719, 0.214844), new c_Vec(0.363281, 0.203125, 0.167969), new c_Vec(-0.363281, 0.203125, 0.167969), new c_Vec(0.316406, 0.226562, 0.140625), new c_Vec(-0.316406, 0.226562, 0.140625), new c_Vec(0.320312, 0.351562, 0.027344), new c_Vec(-0.320312, 0.351562, 0.027344), new c_Vec(0.398438, 0.281250, 0.062500), new c_Vec(-0.398438, 0.281250, 0.062500), new c_Vec(0.398438, 0.308594, -0.058594), new c_Vec(-0.398438, 0.308594, -0.058594), new c_Vec(0.320312, 0.375000, -0.097656), new c_Vec(-0.320312, 0.375000, -0.097656), new c_Vec(0.320312, 0.339844, -0.222656), new c_Vec(-0.320312, 0.339844, -0.222656), new c_Vec(0.398438, 0.269531, -0.179688), new c_Vec(-0.398438, 0.269531, -0.179688), new c_Vec(0.308594, 0.164062, -0.292969), new c_Vec(-0.308594, 0.164062, -0.292969), new c_Vec(0.242188, 0.011719, -0.273438), new c_Vec(-0.242188, 0.011719, -0.273438), new c_Vec(0.410156, 0.164062, -0.101562), new c_Vec(-0.410156, 0.164062, -0.101562), new c_Vec(0.203125, -0.085938, 0.074219), new c_Vec(-0.203125, -0.085938, 0.074219), new c_Vec(0.214844, -0.097656, -0.105469), new c_Vec(-0.214844, -0.097656, -0.105469), new c_Vec(0.445312, 0.203125, -0.117188), new c_Vec(-0.445312, 0.203125, -0.117188), new c_Vec(0.386719, -0.070312, -0.062500), new c_Vec(-0.386719, -0.070312, -0.062500), new c_Vec(0.519531, -0.050781, -0.164062), new c_Vec(-0.519531, -0.050781, -0.164062), new c_Vec(0.640625, 0.027344, -0.214844), new c_Vec(-0.640625, 0.027344, -0.214844), new c_Vec(0.675781, 0.160156, -0.210938), new c_Vec(-0.675781, 0.160156, -0.210938), new c_Vec(0.617188, 0.253906, -0.210938), new c_Vec(-0.617188, 0.253906, -0.210938), new c_Vec(0.511719, 0.238281, -0.156250), new c_Vec(-0.511719, 0.238281, -0.156250), new c_Vec(0.507812, 0.207031, -0.144531), new c_Vec(-0.507812, 0.207031, -0.144531), new c_Vec(0.593750, 0.218750, -0.195312), new c_Vec(-0.593750, 0.218750, -0.195312), new c_Vec(0.632812, 0.144531, -0.203125), new c_Vec(-0.632812, 0.144531, -0.203125), new c_Vec(0.605469, 0.039062, -0.203125), new c_Vec(-0.605469, 0.039062, -0.203125), new c_Vec(0.515625, -0.019531, -0.152344), new c_Vec(-0.515625, -0.019531, -0.152344), new c_Vec(0.414062, -0.035156, -0.066406), new c_Vec(-0.414062, -0.035156, -0.066406), new c_Vec(0.460938, 0.179688, -0.109375), new c_Vec(-0.460938, 0.179688, -0.109375), new c_Vec(0.472656, 0.152344, -0.144531), new c_Vec(-0.472656, 0.152344, -0.144531), new c_Vec(0.441406, -0.011719, -0.105469), new c_Vec(-0.441406, -0.011719, -0.105469), new c_Vec(0.519531, 0.000000, -0.183594), new c_Vec(-0.519531, 0.000000, -0.183594), new c_Vec(0.593750, 0.046875, -0.222656), new c_Vec(-0.593750, 0.046875, -0.222656), new c_Vec(0.617188, 0.125000, -0.222656), new c_Vec(-0.617188, 0.125000, -0.222656), new c_Vec(0.585938, 0.179688, -0.218750), new c_Vec(-0.585938, 0.179688, -0.218750), new c_Vec(0.511719, 0.171875, -0.179688), new c_Vec(-0.511719, 0.171875, -0.179688), new c_Vec(0.421875, 0.144531, -0.105469), new c_Vec(-0.421875, 0.144531, -0.105469), new c_Vec(0.417969, 0.085938, -0.136719), new c_Vec(-0.417969, 0.085938, -0.136719), new c_Vec(0.378906, 0.046875, -0.136719), new c_Vec(-0.378906, 0.046875, -0.136719), new c_Vec(0.410156, 0.042969, -0.136719), new c_Vec(-0.410156, 0.042969, -0.136719), new c_Vec(0.421875, 0.007812, -0.136719), new c_Vec(-0.421875, 0.007812, -0.136719), new c_Vec(0.406250, -0.007812, -0.136719), new c_Vec(-0.406250, -0.007812, -0.136719), new c_Vec(0.363281, 0.000000, -0.035156), new c_Vec(-0.363281, 0.000000, -0.035156), new c_Vec(0.359375, -0.011719, -0.085938), new c_Vec(-0.359375, -0.011719, -0.085938), new c_Vec(0.359375, 0.019531, -0.093750), new c_Vec(-0.359375, 0.019531, -0.093750), new c_Vec(0.398438, 0.101562, -0.105469), new c_Vec(-0.398438, 0.101562, -0.105469), new c_Vec(0.445312, 0.121094, -0.132812), new c_Vec(-0.445312, 0.121094, -0.132812), new c_Vec(0.445312, 0.117188, -0.160156), new c_Vec(-0.445312, 0.117188, -0.160156), new c_Vec(0.406250, -0.007812, -0.160156), new c_Vec(-0.406250, -0.007812, -0.160156), new c_Vec(0.425781, 0.007812, -0.160156), new c_Vec(-0.425781, 0.007812, -0.160156), new c_Vec(0.414062, 0.039062, -0.160156), new c_Vec(-0.414062, 0.039062, -0.160156), new c_Vec(0.382812, 0.046875, -0.160156), new c_Vec(-0.382812, 0.046875, -0.160156), new c_Vec(0.421875, 0.085938, -0.160156), new c_Vec(-0.421875, 0.085938, -0.160156), new c_Vec(0.519531, 0.164062, -0.207031), new c_Vec(-0.519531, 0.164062, -0.207031), new c_Vec(0.593750, 0.171875, -0.242188), new c_Vec(-0.593750, 0.171875, -0.242188), new c_Vec(0.628906, 0.121094, -0.246094), new c_Vec(-0.628906, 0.121094, -0.246094), new c_Vec(0.605469, 0.042969, -0.242188), new c_Vec(-0.605469, 0.042969, -0.242188), new c_Vec(0.523438, 0.000000, -0.210938), new c_Vec(-0.523438, 0.000000, -0.210938), new c_Vec(0.441406, -0.007812, -0.132812), new c_Vec(-0.441406, -0.007812, -0.132812), new c_Vec(0.476562, 0.144531, -0.171875), new c_Vec(-0.476562, 0.144531, -0.171875), new c_Vec(0.445312, 0.054688, -0.164062), new c_Vec(-0.445312, 0.054688, -0.164062), new c_Vec(0.468750, 0.031250, -0.167969), new c_Vec(-0.468750, 0.031250, -0.167969), new c_Vec(0.500000, 0.062500, -0.183594), new c_Vec(-0.500000, 0.062500, -0.183594), new c_Vec(0.480469, 0.085938, -0.175781), new c_Vec(-0.480469, 0.085938, -0.175781), new c_Vec(0.507812, 0.117188, -0.187500), new c_Vec(-0.507812, 0.117188, -0.187500), new c_Vec(0.527344, 0.093750, -0.191406), new c_Vec(-0.527344, 0.093750, -0.191406), new c_Vec(0.554688, 0.105469, -0.195312), new c_Vec(-0.554688, 0.105469, -0.195312), new c_Vec(0.542969, 0.136719, -0.195312), new c_Vec(-0.542969, 0.136719, -0.195312), new c_Vec(0.511719, 0.218750, -0.242188), new c_Vec(-0.511719, 0.218750, -0.242188), new c_Vec(0.625000, 0.234375, -0.273438), new c_Vec(-0.625000, 0.234375, -0.273438), new c_Vec(0.683594, 0.148438, -0.250000), new c_Vec(-0.683594, 0.148438, -0.250000), new c_Vec(0.656250, 0.027344, -0.265625), new c_Vec(-0.656250, 0.027344, -0.265625), new c_Vec(0.519531, -0.042969, -0.246094), new c_Vec(-0.519531, -0.042969, -0.246094), new c_Vec(0.394531, -0.062500, -0.164062), new c_Vec(-0.394531, -0.062500, -0.164062), new c_Vec(0.429688, 0.191406, -0.191406), new c_Vec(-0.429688, 0.191406, -0.191406) }; c_Vec[] SUZANNE_VERTICES_NORMALES = { new c_Vec(0.671300, -0.197100, 0.714500), new c_Vec(-0.671300, -0.197100, 0.714500), new c_Vec(0.832600, -0.301700, 0.464600), new c_Vec(-0.832600, -0.301700, 0.464600), new c_Vec(0.425800, -0.796700, 0.429000), new c_Vec(-0.425800, -0.796700, 0.429000), new c_Vec(0.326500, -0.495400, 0.805000), new c_Vec(-0.326500, -0.495400, 0.805000), new c_Vec(-0.064900, -0.571400, 0.818100), new c_Vec(0.064900, -0.571400, 0.818100), new c_Vec(-0.273800, -0.831500, 0.483400), new c_Vec(0.273800, -0.831500, 0.483400), new c_Vec(-0.760600, -0.340000, 0.553100), new c_Vec(0.782400, -0.329400, 0.528500), new c_Vec(-0.464900, -0.195800, 0.863400), new c_Vec(0.476700, -0.190700, 0.858100), new c_Vec(-0.498300, 0.181200, 0.847800), new c_Vec(0.498300, 0.181200, 0.847800), new c_Vec(-0.768300, 0.329300, 0.548800), new c_Vec(0.765600, 0.322300, 0.556800), new c_Vec(-0.248700, 0.824900, 0.507600), new c_Vec(0.256000, 0.807300, 0.531700), new c_Vec(-0.101700, 0.551800, 0.827700), new c_Vec(0.082100, 0.602300, 0.794000), new c_Vec(0.386100, 0.544600, 0.744500), new c_Vec(-0.332900, 0.523100, 0.784600), new c_Vec(0.405900, 0.764100, 0.501400), new c_Vec(-0.424600, 0.771100, 0.474500), new c_Vec(0.829900, 0.294000, 0.474200), new c_Vec(-0.825100, 0.296800, 0.480800), new c_Vec(0.661700, 0.202600, 0.721900), new c_Vec(-0.688800, 0.186800, 0.700500), new c_Vec(0.781600, 0.305800, -0.543700), new c_Vec(-0.840000, 0.343600, -0.420000), new c_Vec(0.203700, 0.814600, -0.543100), new c_Vec(-0.207400, 0.829600, -0.518500), new c_Vec(-0.438100, 0.798800, -0.412300), new c_Vec(0.405600, 0.760500, -0.507000), new c_Vec(-0.786100, 0.327600, -0.524100), new c_Vec(0.864200, 0.314300, -0.392800), new c_Vec(-0.851900, -0.340800, -0.397600), new c_Vec(0.851900, -0.340800, -0.397600), new c_Vec(-0.405600, -0.760500, -0.507000), new c_Vec(0.405600, -0.760500, -0.507000), new c_Vec(0.207400, -0.829600, -0.518500), new c_Vec(-0.207400, -0.829600, -0.518500), new c_Vec(0.829700, -0.373400, -0.414900), new c_Vec(-0.829700, -0.373400, -0.414900), new c_Vec(0.400000, -0.062300, 0.914400), new c_Vec(-0.400000, -0.062300, 0.914400), new c_Vec(0.306900, -0.175400, 0.935400), new c_Vec(-0.306900, -0.175400, 0.935400), new c_Vec(0.094500, -0.183500, 0.978500), new c_Vec(-0.094500, -0.183500, 0.978500), new c_Vec(-0.062400, -0.028300, 0.997700), new c_Vec(0.062400, -0.028300, 0.997700), new c_Vec(-0.062400, 0.026000, 0.997700), new c_Vec(0.062400, 0.026000, 0.997700), new c_Vec(0.099600, 0.172900, 0.979900), new c_Vec(-0.099600, 0.172900, 0.979900), new c_Vec(0.303600, 0.165600, 0.938300), new c_Vec(-0.303600, 0.165600, 0.938300), new c_Vec(0.400200, 0.057200, 0.914700), new c_Vec(-0.400200, 0.057200, 0.914700), new c_Vec(0.105400, -0.843300, 0.527000), new c_Vec(-0.136700, -0.874800, 0.464800), new c_Vec(0.191600, -0.862000, 0.469300), new c_Vec(-0.230300, -0.865600, 0.444700), new c_Vec(0.595900, -0.425600, 0.681000), new c_Vec(-0.595900, -0.425600, 0.681000), new c_Vec(0.756300, -0.029900, 0.653500), new c_Vec(-0.756300, -0.029900, 0.653500), new c_Vec(0.806900, 0.068900, 0.586600), new c_Vec(-0.806900, 0.068900, 0.586600), new c_Vec(0.233400, -0.777900, 0.583400), new c_Vec(-0.233400, -0.777900, 0.583400), new c_Vec(0.417700, -0.575100, 0.703400), new c_Vec(-0.355700, -0.729000, 0.584800), new c_Vec(0.687200, -0.419100, 0.593400), new c_Vec(-0.687200, -0.419100, 0.593400), new c_Vec(0.553700, -0.297800, 0.777700), new c_Vec(-0.702800, -0.391500, 0.593900), new c_Vec(0.822700, 0.360600, 0.439500), new c_Vec(-0.312700, 0.342500, 0.886000), new c_Vec(0.504100, 0.644800, 0.574500), new c_Vec(-0.509100, 0.648200, 0.566300), new c_Vec(0.615500, 0.492400, 0.615500), new c_Vec(-0.615500, 0.492400, 0.615500), new c_Vec(-0.037100, 0.668500, 0.742800), new c_Vec(0.048600, 0.656000, 0.753200), new c_Vec(-0.738600, 0.376800, 0.559000), new c_Vec(0.710400, 0.271500, 0.649400), new c_Vec(-0.577400, 0.577400, 0.577400), new c_Vec(0.601300, 0.526200, 0.601300), new c_Vec(0.536400, -0.323000, 0.779700), new c_Vec(-0.507000, -0.628100, 0.590300), new c_Vec(0.218100, -0.468500, 0.856100), new c_Vec(-0.218100, -0.468500, 0.856100), new c_Vec(-0.107300, -0.501000, 0.858800), new c_Vec(0.034800, -0.579200, 0.814400), new c_Vec(-0.077000, -0.575900, 0.813900), new c_Vec(0.089900, -0.784300, 0.613800), new c_Vec(0.027900, -0.864500, 0.501900), new c_Vec(-0.054700, -0.169500, 0.984000), new c_Vec(0.168700, -0.312800, 0.934700), new c_Vec(-0.426000, -0.060900, 0.902700), new c_Vec(0.435000, -0.181200, 0.882000), new c_Vec(-0.335200, -0.182800, 0.924300), new c_Vec(0.322300, -0.276200, 0.905400), new c_Vec(-0.357900, -0.306800, 0.881900), new c_Vec(0.428400, 0.149400, 0.891100), new c_Vec(-0.428400, 0.149400, 0.891100), new c_Vec(-0.031700, -0.189900, 0.981300), new c_Vec(0.031700, -0.189900, 0.981300), new c_Vec(0.185400, -0.495600, 0.848500), new c_Vec(-0.681900, -0.291500, 0.670900), new c_Vec(0.262300, -0.349800, 0.899400), new c_Vec(-0.262300, -0.349800, 0.899400), new c_Vec(0.058500, -0.084500, 0.994700), new c_Vec(0.006600, -0.231600, 0.972800), new c_Vec(-0.013600, -0.650700, 0.759200), new c_Vec(0.013600, -0.650700, 0.759200), new c_Vec(0.240400, -0.547600, 0.801400), new c_Vec(-0.240400, -0.547600, 0.801400), new c_Vec(0.314300, -0.392800, 0.864200), new c_Vec(-0.312800, -0.166200, 0.935200), new c_Vec(0.282100, -0.016400, 0.959200), new c_Vec(-0.282100, -0.016400, 0.959200), new c_Vec(0.327300, -0.143200, 0.934000), new c_Vec(-0.327300, -0.143200, 0.934000), new c_Vec(0.000000, 0.066500, 0.997800), new c_Vec(0.023200, 0.051100, 0.998400), new c_Vec(0.000000, -0.066500, 0.997800), new c_Vec(0.004300, -0.065100, 0.997900), new c_Vec(0.000000, 0.000000, 1.000000), new c_Vec(0.782600, -0.608700, -0.130400), new c_Vec(-0.782600, -0.608700, -0.130400), new c_Vec(0.963500, 0.214100, -0.160600), new c_Vec(-0.925600, 0.249200, -0.284800), new c_Vec(0.101800, 0.916500, -0.387000), new c_Vec(-0.069300, 0.900400, -0.429400), new c_Vec(-0.690500, 0.549200, 0.470800), new c_Vec(1.000000, 0.000000, 0.000000), new c_Vec(0.431900, -0.863900, 0.259200), new c_Vec(-0.407100, -0.895600, 0.179100), new c_Vec(0.287300, -0.574700, 0.766300), new c_Vec(-0.287300, -0.574700, 0.766300), new c_Vec(-0.666700, 0.666700, 0.333300), new c_Vec(0.666700, 0.666700, 0.333300), new c_Vec(0.134800, 0.808600, 0.572700), new c_Vec(-0.134800, 0.808600, 0.572700), new c_Vec(0.763900, 0.297100, 0.572900), new c_Vec(-0.753200, 0.287000, 0.591800), new c_Vec(0.411600, -0.857500, 0.308700), new c_Vec(-0.411600, -0.857500, 0.308700), new c_Vec(0.037500, 0.224700, 0.973700), new c_Vec(-0.050200, 0.234300, 0.970900), new c_Vec(0.130400, -0.260900, 0.956500), new c_Vec(-0.130400, -0.260900, 0.956500), new c_Vec(-0.063100, -0.820600, 0.568100), new c_Vec(0.063100, -0.820600, 0.568100), new c_Vec(0.732500, 0.281700, 0.619800), new c_Vec(-0.732500, 0.281700, 0.619800), new c_Vec(0.331900, 0.073800, 0.940400), new c_Vec(-0.546000, -0.431000, 0.718400), new c_Vec(0.281500, 0.066200, 0.957300), new c_Vec(-0.323100, 0.031100, 0.945900), new c_Vec(0.875300, 0.205900, 0.437600), new c_Vec(-0.735700, 0.391000, 0.553100), new c_Vec(0.897300, 0.199400, 0.393800), new c_Vec(-0.848000, 0.318000, 0.424000), new c_Vec(0.958600, 0.066400, 0.276700), new c_Vec(-0.958600, 0.066400, 0.276700), new c_Vec(0.252400, -0.865500, 0.432700), new c_Vec(-0.178300, -0.416100, 0.891700), new c_Vec(-0.175100, -0.204300, 0.963100), new c_Vec(0.175100, -0.204300, 0.963100), new c_Vec(-0.121900, -0.182900, 0.975500), new c_Vec(0.121900, -0.182900, 0.975500), new c_Vec(-0.156200, 0.312300, 0.937000), new c_Vec(0.156200, 0.312300, 0.937000), new c_Vec(-0.158200, 0.949400, 0.271300), new c_Vec(0.158200, 0.949400, 0.271300), new c_Vec(-0.723800, 0.685700, 0.076200), new c_Vec(0.723800, 0.685700, 0.076200), new c_Vec(-1.000000, 0.000000, 0.000000), new c_Vec(0.305100, -0.945000, 0.118100), new c_Vec(-0.305100, -0.945000, 0.118100), new c_Vec(0.047800, -0.287000, 0.956700), new c_Vec(-0.047800, -0.287000, 0.956700), new c_Vec(0.135300, -0.347900, 0.927700), new c_Vec(-0.135300, -0.347900, 0.927700), new c_Vec(-0.548800, -0.329300, 0.768300), new c_Vec(0.548800, -0.329300, 0.768300), new c_Vec(-0.494500, -0.113000, 0.861800), new c_Vec(0.494500, -0.113000, 0.861800), new c_Vec(-0.259500, 0.103800, 0.960100), new c_Vec(0.171700, -0.009000, 0.985100), new c_Vec(-0.668400, -0.459500, 0.584900), new c_Vec(0.433200, -0.487400, 0.758100), new c_Vec(-0.115600, -0.635900, 0.763100), new c_Vec(0.115600, -0.635900, 0.763100), new c_Vec(0.424200, -0.621100, 0.659000), new c_Vec(-0.424200, -0.621100, 0.659000), new c_Vec(0.476700, -0.355700, 0.803900), new c_Vec(-0.476700, -0.355700, 0.803900), new c_Vec(0.587100, -0.083900, 0.805200), new c_Vec(-0.587100, -0.083900, 0.805200), new c_Vec(0.577400, 0.115500, 0.808300), new c_Vec(-0.565700, 0.119700, 0.815900), new c_Vec(0.521400, 0.657400, 0.544100), new c_Vec(-0.408200, 0.408200, 0.816500), new c_Vec(0.335800, 0.347800, 0.875400), new c_Vec(-0.335800, 0.347800, 0.875400), new c_Vec(0.145200, 0.377400, 0.914600), new c_Vec(-0.145200, 0.377400, 0.914600), new c_Vec(0.030100, 0.230600, 0.972600), new c_Vec(-0.030100, 0.230600, 0.972600), new c_Vec(0.447500, -0.469900, 0.760800), new c_Vec(-0.447500, -0.469900, 0.760800), new c_Vec(0.262700, -0.225200, 0.938200), new c_Vec(-0.262700, -0.225200, 0.938200), new c_Vec(-0.063100, -0.315600, 0.946800), new c_Vec(0.376600, -0.833900, 0.403500), new c_Vec(-0.201600, -0.907100, 0.369600), new c_Vec(-0.082300, -0.782200, 0.617500), new c_Vec(-0.335600, -0.239700, 0.911000), new c_Vec(0.335600, -0.239700, 0.911000), new c_Vec(-0.456800, 0.050800, 0.888100), new c_Vec(0.269200, -0.057700, 0.961400), new c_Vec(-0.024700, 0.407200, 0.913000), new c_Vec(0.024700, 0.407200, 0.913000), new c_Vec(-0.048700, 0.681500, 0.730200), new c_Vec(0.021300, 0.554600, 0.831900), new c_Vec(0.337800, 0.522100, 0.783100), new c_Vec(-0.377800, 0.634200, 0.674600), new c_Vec(0.498800, 0.530000, 0.685800), new c_Vec(-0.498800, 0.530000, 0.685800), new c_Vec(0.789500, -0.315800, 0.526300), new c_Vec(-0.789500, -0.315800, 0.526300), new c_Vec(0.807000, -0.080700, 0.585100), new c_Vec(-0.807000, -0.080700, 0.585100), new c_Vec(0.786800, 0.121000, 0.605200), new c_Vec(-0.786800, 0.121000, 0.605200), new c_Vec(-0.635700, 0.681100, -0.363300), new c_Vec(0.635700, 0.681100, -0.363300), new c_Vec(-0.850700, 0.365000, -0.378300), new c_Vec(0.850700, 0.365000, -0.378300), new c_Vec(-0.219700, 0.862600, -0.455700), new c_Vec(0.266400, 0.871000, -0.412700), new c_Vec(0.591400, 0.748900, -0.299100), new c_Vec(-0.593200, 0.744500, -0.306300), new c_Vec(0.365300, 0.883300, -0.293800), new c_Vec(-0.371400, 0.868500, -0.328400), new c_Vec(0.276000, 0.915900, -0.291500), new c_Vec(-0.276000, 0.915900, -0.291500), new c_Vec(0.796400, 0.132300, -0.590100), new c_Vec(-0.887300, 0.134300, -0.441200), new c_Vec(0.544200, -0.752400, -0.371200), new c_Vec(-0.544200, -0.752400, -0.371200), new c_Vec(0.402700, -0.732300, -0.549200), new c_Vec(-0.402700, -0.732300, -0.549200), new c_Vec(0.164900, -0.664400, -0.728900), new c_Vec(-0.361700, -0.385800, -0.848700), new c_Vec(0.301100, -0.012500, -0.953500), new c_Vec(-0.195200, -0.097600, -0.975900), new c_Vec(0.256200, -0.311200, -0.915200), new c_Vec(0.010700, -0.563300, -0.826200), new c_Vec(0.077900, -0.994800, -0.066300), new c_Vec(-0.077900, -0.994800, -0.066300), new c_Vec(0.109400, -0.971800, -0.208900), new c_Vec(-0.109400, -0.971800, -0.208900), new c_Vec(0.815000, -0.562100, -0.140500), new c_Vec(-0.815000, -0.562100, -0.140500), new c_Vec(0.935800, 0.139600, -0.323600), new c_Vec(-0.935800, 0.139600, -0.323600), new c_Vec(0.113200, -0.027400, -0.993200), new c_Vec(-0.113200, -0.027400, -0.993200), new c_Vec(-0.149700, -0.363500, -0.919500), new c_Vec(-0.121100, -0.053000, -0.991200), new c_Vec(0.370600, -0.678000, -0.634900), new c_Vec(-0.909400, 0.137100, -0.392700), new c_Vec(0.919300, 0.139300, -0.368200), new c_Vec(-0.919300, 0.139300, -0.368200), new c_Vec(0.945700, 0.267300, -0.185000), new c_Vec(-0.917300, 0.344000, -0.200700), new c_Vec(0.933700, 0.281300, -0.221500), new c_Vec(-0.900400, 0.364200, -0.238000), new c_Vec(0.950100, 0.245500, -0.192200), new c_Vec(-0.894500, 0.433700, 0.108400), new c_Vec(0.183500, -0.786400, -0.589800), new c_Vec(-0.159600, -0.957700, -0.239400), new c_Vec(0.372700, -0.475900, -0.796600), new c_Vec(-0.369300, -0.471200, -0.801000), new c_Vec(0.326300, -0.834200, -0.444600), new c_Vec(-0.298600, -0.823600, -0.482100), new c_Vec(0.262000, -0.957400, -0.121700), new c_Vec(-0.262000, -0.957400, -0.121700), new c_Vec(0.299600, -0.944300, -0.136200), new c_Vec(-0.299600, -0.944300, -0.136200), new c_Vec(0.864200, -0.473700, 0.169600), new c_Vec(-0.830500, 0.333300, -0.446300), new c_Vec(0.686900, -0.635800, 0.352100), new c_Vec(-0.686900, -0.635800, 0.352100), new c_Vec(0.418900, -0.226500, -0.879300), new c_Vec(-0.295000, -0.045400, -0.954400), new c_Vec(0.111900, 0.962600, 0.246800), new c_Vec(-0.127200, 0.965800, 0.226000), new c_Vec(0.120800, 0.973400, -0.194700), new c_Vec(-0.120800, 0.973400, -0.194700), new c_Vec(0.314000, 0.571100, -0.758500), new c_Vec(-0.314000, 0.571100, -0.758500), new c_Vec(0.323100, 0.928800, -0.181700), new c_Vec(-0.323100, 0.928800, -0.181700), new c_Vec(0.045200, 0.795500, 0.604300), new c_Vec(-0.045200, 0.795500, 0.604300), new c_Vec(0.614400, 0.769600, 0.173800), new c_Vec(-0.614400, 0.769600, 0.173800), new c_Vec(0.693500, 0.685700, -0.221200), new c_Vec(-0.693500, 0.685700, -0.221200), new c_Vec(0.630400, 0.251700, -0.734300), new c_Vec(-0.710400, 0.136400, -0.690400), new c_Vec(0.317900, 0.570400, -0.757400), new c_Vec(-0.317900, 0.570400, -0.757400), new c_Vec(0.628900, 0.762400, -0.152500), new c_Vec(-0.628900, 0.762400, -0.152500), new c_Vec(0.708800, 0.683300, 0.175200), new c_Vec(-0.708800, 0.683300, 0.175200), new c_Vec(0.688500, 0.383000, 0.615800), new c_Vec(-0.688500, 0.383000, 0.615800), new c_Vec(0.323800, 0.943400, -0.072000), new c_Vec(-0.366900, 0.884000, -0.289800), new c_Vec(0.154800, 0.508000, 0.847300), new c_Vec(-0.285400, 0.623700, 0.727700), new c_Vec(-0.178200, 0.089100, -0.980000), new c_Vec(0.170200, 0.109700, -0.979300), new c_Vec(-0.263800, 0.946200, -0.187100), new c_Vec(0.263800, 0.946200, -0.187100), new c_Vec(-0.161600, 0.184700, 0.969400), new c_Vec(0.161600, 0.184700, 0.969400), new c_Vec(0.934000, 0.225500, 0.277300), new c_Vec(-0.868100, 0.089300, -0.488300), new c_Vec(0.975800, 0.124100, 0.180000), new c_Vec(-0.975800, 0.124100, 0.180000), new c_Vec(0.961300, 0.147200, -0.233000), new c_Vec(-0.961300, 0.147200, -0.233000), new c_Vec(0.995600, 0.089300, -0.028800), new c_Vec(-0.981700, -0.030400, -0.188200), new c_Vec(0.637400, -0.765100, 0.091500), new c_Vec(-0.746600, -0.664600, 0.028500), new c_Vec(0.372000, -0.924400, 0.084500), new c_Vec(-0.372300, -0.924300, 0.084700), new c_Vec(0.528100, -0.835400, 0.152200), new c_Vec(-0.528100, -0.835400, 0.152200), new c_Vec(0.307000, -0.523700, 0.794600), new c_Vec(-0.307000, -0.523700, 0.794600), new c_Vec(0.732500, -0.636800, 0.240700), new c_Vec(-0.732500, -0.636800, 0.240700), new c_Vec(0.263700, -0.449900, 0.853300), new c_Vec(-0.263700, -0.449900, 0.853300), new c_Vec(0.523600, -0.329000, -0.785900), new c_Vec(-0.588100, -0.307000, -0.748300), new c_Vec(0.539600, -0.334300, -0.772700), new c_Vec(-0.469400, -0.240000, -0.849800), new c_Vec(0.214400, -0.834100, -0.508200), new c_Vec(-0.446300, -0.845200, -0.294100), new c_Vec(0.736500, -0.615400, -0.280800), new c_Vec(-0.697300, -0.661000, -0.277100), new c_Vec(0.497200, -0.440800, -0.747300), new c_Vec(-0.497200, -0.440800, -0.747300), new c_Vec(0.324400, 0.486700, 0.811100), new c_Vec(-0.369100, 0.285500, 0.884400), new c_Vec(0.464900, 0.259300, 0.846500), new c_Vec(-0.464900, 0.259300, 0.846500), new c_Vec(0.181700, -0.007900, 0.983300), new c_Vec(-0.318800, 0.199300, 0.926600), new c_Vec(0.292500, -0.075800, 0.953300), new c_Vec(-0.207600, -0.083600, 0.974600), new c_Vec(0.584700, -0.219800, 0.780900), new c_Vec(-0.339800, 0.082400, 0.936900), new c_Vec(0.650900, -0.193900, 0.734000), new c_Vec(-0.650900, -0.193900, 0.734000), new c_Vec(0.407500, 0.750600, 0.520100), new c_Vec(-0.407500, 0.750600, 0.520100), new c_Vec(-0.265500, 0.829600, 0.491100), new c_Vec(0.265500, 0.829600, 0.491100), new c_Vec(-0.788500, 0.236600, 0.567700), new c_Vec(0.857600, 0.222300, 0.463700), new c_Vec(-0.524200, -0.354800, 0.774200), new c_Vec(0.525700, -0.357900, 0.771700), new c_Vec(0.439000, -0.525200, 0.729000), new c_Vec(-0.466300, -0.599100, 0.650900), new c_Vec(0.688800, -0.442800, 0.574000), new c_Vec(-0.688800, -0.442800, 0.574000), new c_Vec(0.630200, -0.765800, 0.128200), new c_Vec(-0.750700, -0.613100, -0.246100), new c_Vec(-0.217500, 0.273300, 0.937000), new c_Vec(0.178800, 0.292300, 0.939500), new c_Vec(0.904600, -0.386900, -0.179200), new c_Vec(-0.904600, -0.386900, -0.179200), new c_Vec(0.178200, -0.089100, 0.980000), new c_Vec(-0.178200, -0.089100, 0.980000), new c_Vec(-0.233500, 0.897200, 0.374900), new c_Vec(0.233500, 0.897200, 0.374900), new c_Vec(0.717700, 0.168900, 0.675500), new c_Vec(-0.448000, -0.448000, 0.773700), new c_Vec(0.531300, 0.584400, 0.613400), new c_Vec(-0.531300, 0.584400, 0.613400), new c_Vec(0.900800, -0.407500, 0.150100), new c_Vec(-0.553400, -0.553400, 0.622500), new c_Vec(0.581500, -0.521700, 0.624300), new c_Vec(-0.572400, -0.312200, 0.758200), new c_Vec(0.613800, -0.257100, 0.746500), new c_Vec(-0.559700, -0.553300, 0.616900), new c_Vec(0.171200, -0.093400, 0.980800), new c_Vec(-0.955100, -0.163600, -0.247000), new c_Vec(0.871700, -0.444600, -0.206300), new c_Vec(-0.922700, -0.376500, -0.082500), new c_Vec(0.997200, -0.018100, -0.072500), new c_Vec(-0.997200, -0.018100, -0.072500), new c_Vec(0.766100, -0.636300, 0.090900), new c_Vec(-0.766100, -0.636300, 0.090900), new c_Vec(0.793000, -0.594700, 0.132200), new c_Vec(-0.781500, -0.617600, 0.088200), new c_Vec(0.702200, -0.702200, 0.117000), new c_Vec(-0.702200, -0.702200, 0.117000), new c_Vec(0.240800, 0.963100, -0.120400), new c_Vec(-0.124000, 0.992100, 0.020700), new c_Vec(0.925100, 0.346900, 0.154200), new c_Vec(-0.943500, 0.314500, 0.104800), new c_Vec(0.707100, -0.707100, 0.000000), new c_Vec(-0.707100, -0.707100, 0.000000), new c_Vec(-0.015700, 0.989800, 0.141400), new c_Vec(0.015700, 0.989800, 0.141400), new c_Vec(0.626600, -0.721100, 0.295600), new c_Vec(-0.626600, -0.721100, 0.295600), new c_Vec(0.271400, -0.902200, 0.335300), new c_Vec(-0.271400, -0.902200, 0.335300), new c_Vec(-0.865100, -0.485300, -0.126600), new c_Vec(0.865100, -0.485300, -0.126600), new c_Vec(-0.853800, 0.232800, -0.465700), new c_Vec(0.809600, 0.242900, -0.534300), new c_Vec(-0.543300, 0.698500, -0.465700), new c_Vec(0.562100, 0.823100, -0.080300), new c_Vec(-0.109600, 0.993900, -0.015700), new c_Vec(0.007100, 0.989900, 0.141400), new c_Vec(0.173800, 0.009700, 0.984700), new c_Vec(-0.104600, 0.039200, 0.993700), new c_Vec(0.413400, 0.041300, 0.909600), new c_Vec(-0.246100, 0.085200, 0.965500), new c_Vec(0.322800, -0.046100, 0.945300), new c_Vec(-0.322800, -0.046100, 0.945300), new c_Vec(0.122000, 0.045800, 0.991500), new c_Vec(-0.210400, 0.012400, 0.977500), new c_Vec(0.567900, 0.191600, 0.800500), new c_Vec(-0.567900, 0.191600, 0.800500), new c_Vec(0.424400, -0.032000, 0.904900), new c_Vec(-0.378700, -0.036400, 0.924800), new c_Vec(0.257000, 0.072300, 0.963700), new c_Vec(-0.253000, -0.189700, 0.948700), new c_Vec(0.135100, -0.022500, 0.990600), new c_Vec(-0.135100, -0.022500, 0.990600), new c_Vec(-0.298100, 0.745400, 0.596300), new c_Vec(0.487000, 0.608800, 0.626200), new c_Vec(0.557100, -0.148600, 0.817100), new c_Vec(-0.557100, -0.148600, 0.817100), new c_Vec(0.472300, -0.198600, 0.858800), new c_Vec(-0.438800, -0.200800, 0.875900), new c_Vec(0.297500, -0.406200, 0.864000), new c_Vec(-0.578600, -0.133400, 0.804600), new c_Vec(0.577100, 0.216400, 0.787500), new c_Vec(-0.577100, 0.216400, 0.787500), new c_Vec(0.298000, 0.580200, 0.758000), new c_Vec(-0.298000, 0.580200, 0.758000), new c_Vec(0.093100, -0.993200, -0.069200), new c_Vec(-0.093100, -0.993200, -0.069200), new c_Vec(0.516100, -0.852700, -0.081200), new c_Vec(-0.516100, -0.852700, -0.081200), new c_Vec(0.926400, -0.246000, 0.285100), new c_Vec(-0.930900, -0.254100, 0.262400), new c_Vec(0.826700, 0.562700, -0.003500), new c_Vec(-0.846500, 0.529100, -0.059500), new c_Vec(-0.214600, 0.924300, -0.315700), new c_Vec(0.251100, 0.943900, -0.214500), new c_Vec(-0.419600, 0.885100, -0.201200), new c_Vec(0.484100, 0.874300, -0.036100), new c_Vec(-0.547000, -0.014400, -0.837000), new c_Vec(0.525600, -0.003000, -0.850700), new c_Vec(-0.255600, -0.074900, -0.963900), new c_Vec(0.255600, -0.074900, -0.963900), new c_Vec(0.404600, 0.026600, -0.914100), new c_Vec(-0.404600, 0.026600, -0.914100), new c_Vec(-0.733000, 0.678600, 0.047200), new c_Vec(0.807300, 0.590100, 0.004100), new c_Vec(0.684400, -0.171100, -0.708800), new c_Vec(-0.684400, -0.171100, -0.708800), new c_Vec(-0.360400, -0.828300, -0.429000), new c_Vec(0.360400, -0.828300, -0.429000), new c_Vec(0.661700, -0.202600, 0.721900), new c_Vec(-0.661700, -0.202600, 0.721900), new c_Vec(0.826800, -0.305100, 0.472500), new c_Vec(-0.826800, -0.305100, 0.472500), new c_Vec(0.407600, -0.790500, 0.457000), new c_Vec(-0.407600, -0.790500, 0.457000), new c_Vec(0.379100, -0.516300, 0.767900), new c_Vec(-0.379100, -0.516300, 0.767900), new c_Vec(-0.085900, -0.522200, 0.848500), new c_Vec(0.085900, -0.522200, 0.848500), new c_Vec(-0.266400, -0.848700, 0.457000), new c_Vec(0.266400, -0.848700, 0.457000), new c_Vec(-0.782400, -0.329400, 0.528500), new c_Vec(0.760600, -0.340000, 0.553100), new c_Vec(-0.476700, -0.190700, 0.858100), new c_Vec(0.464900, -0.195800, 0.863400), new c_Vec(-0.464900, 0.195800, 0.863400), new c_Vec(0.464900, 0.195800, 0.863400), new c_Vec(-0.765600, 0.322300, 0.556800), new c_Vec(0.768300, 0.329300, 0.548800), new c_Vec(-0.256000, 0.807300, 0.531700), new c_Vec(0.248700, 0.824900, 0.507600), new c_Vec(-0.082100, 0.602300, 0.794000), new c_Vec(0.101700, 0.551800, 0.827700), new c_Vec(0.332900, 0.523100, 0.784600), new c_Vec(-0.386100, 0.544600, 0.744500), new c_Vec(0.424600, 0.771100, 0.474500), new c_Vec(-0.405900, 0.764100, 0.501400), new c_Vec(0.825100, 0.296800, 0.480800), new c_Vec(-0.829900, 0.294000, 0.474200), new c_Vec(0.688800, 0.186800, 0.700500), new c_Vec(-0.661700, 0.202600, 0.721900), new c_Vec(0.840000, 0.343600, -0.420000), new c_Vec(-0.781600, 0.305800, -0.543700), new c_Vec(0.207400, 0.829600, -0.518500), new c_Vec(-0.203700, 0.814600, -0.543100), new c_Vec(-0.405600, 0.760500, -0.507000), new c_Vec(0.438100, 0.798800, -0.412300), new c_Vec(-0.864200, 0.314300, -0.392800), new c_Vec(0.786100, 0.327600, -0.524100), new c_Vec(-0.778200, -0.353700, -0.518800), new c_Vec(0.778200, -0.353700, -0.518800), new c_Vec(-0.438100, -0.798800, -0.412300), new c_Vec(0.438100, -0.798800, -0.412300), new c_Vec(0.203700, -0.814600, -0.543100), new c_Vec(-0.203700, -0.814600, -0.543100), new c_Vec(0.768300, -0.329300, -0.548800), new c_Vec(-0.768300, -0.329300, -0.548800), new c_Vec(0.136700, -0.874800, 0.464800), new c_Vec(-0.105400, -0.843300, 0.527000), new c_Vec(0.230300, -0.865600, 0.444700), new c_Vec(-0.191600, -0.862000, 0.469300), new c_Vec(0.578800, -0.504900, 0.640400), new c_Vec(-0.578800, -0.504900, 0.640400), new c_Vec(0.776300, -0.063300, 0.627200), new c_Vec(-0.776300, -0.063300, 0.627200), new c_Vec(0.747100, 0.113200, 0.655000), new c_Vec(-0.747100, 0.113200, 0.655000), new c_Vec(0.374700, -0.834500, 0.404000), new c_Vec(-0.374700, -0.834500, 0.404000), new c_Vec(0.355700, -0.729000, 0.584800), new c_Vec(-0.417700, -0.575100, 0.703400), new c_Vec(0.694700, -0.419700, 0.584100), new c_Vec(-0.694700, -0.419700, 0.584100), new c_Vec(0.702800, -0.391500, 0.593900), new c_Vec(-0.553700, -0.297800, 0.777700), new c_Vec(0.312700, 0.342500, 0.886000), new c_Vec(-0.822700, 0.360600, 0.439500), new c_Vec(0.509100, 0.648200, 0.566300), new c_Vec(-0.504100, 0.644800, 0.574500), new c_Vec(0.597700, 0.556500, 0.577100), new c_Vec(-0.597700, 0.556500, 0.577100), new c_Vec(-0.048600, 0.656000, 0.753200), new c_Vec(0.037100, 0.668500, 0.742800), new c_Vec(-0.710400, 0.271500, 0.649400), new c_Vec(0.738600, 0.376800, 0.559000), new c_Vec(-0.601300, 0.526200, 0.601300), new c_Vec(0.577400, 0.577400, 0.577400), new c_Vec(0.507000, -0.628100, 0.590300), new c_Vec(-0.536400, -0.323000, 0.779700), new c_Vec(0.222600, -0.469400, 0.854500), new c_Vec(-0.222600, -0.469400, 0.854500), new c_Vec(-0.034800, -0.579200, 0.814400), new c_Vec(0.107300, -0.501000, 0.858800), new c_Vec(-0.089900, -0.784300, 0.613800), new c_Vec(0.077000, -0.575900, 0.813900), new c_Vec(0.054700, -0.169500, 0.984000), new c_Vec(-0.027900, -0.864500, 0.501900), new c_Vec(0.426000, -0.060900, 0.902700), new c_Vec(-0.168700, -0.312800, 0.934700), new c_Vec(0.335200, -0.182800, 0.924300), new c_Vec(-0.435000, -0.181200, 0.882000), new c_Vec(0.357900, -0.306800, 0.881900), new c_Vec(-0.322300, -0.276200, 0.905400), new c_Vec(0.000000, -0.447200, 0.894400), new c_Vec(-0.159800, 0.390300, 0.906700), new c_Vec(0.159800, 0.390300, 0.906700), new c_Vec(0.681900, -0.291500, 0.670900), new c_Vec(-0.185400, -0.495600, 0.848500), new c_Vec(0.058500, -0.078100, 0.995200), new c_Vec(-0.058500, -0.078100, 0.995200), new c_Vec(-0.006600, -0.231600, 0.972800), new c_Vec(-0.058500, -0.084500, 0.994700), new c_Vec(0.100800, -0.710300, 0.696600), new c_Vec(-0.100800, -0.710300, 0.696600), new c_Vec(0.132200, -0.594700, 0.793000), new c_Vec(-0.132200, -0.594700, 0.793000), new c_Vec(0.312800, -0.166200, 0.935200), new c_Vec(-0.314300, -0.392800, 0.864200), new c_Vec(0.328800, -0.036000, 0.943700), new c_Vec(-0.328800, -0.036000, 0.943700), new c_Vec(0.323300, -0.080800, 0.942900), new c_Vec(-0.323300, -0.080800, 0.942900), new c_Vec(-0.023200, 0.051100, 0.998400), new c_Vec(-0.004300, -0.065100, 0.997900), new c_Vec(0.844700, -0.533500, 0.044500), new c_Vec(-0.844700, -0.533500, 0.044500), new c_Vec(0.925600, 0.249200, -0.284800), new c_Vec(-0.963500, 0.214100, -0.160600), new c_Vec(0.069300, 0.900400, -0.429400), new c_Vec(-0.101800, 0.916500, -0.387000), new c_Vec(0.690500, 0.549200, 0.470800), new c_Vec(0.407100, -0.895600, 0.179100), new c_Vec(-0.431900, -0.863900, 0.259200), new c_Vec(-0.632600, 0.535300, 0.559600), new c_Vec(0.632600, 0.535300, 0.559600), new c_Vec(0.086200, 0.775900, 0.625000), new c_Vec(-0.086200, 0.775900, 0.625000), new c_Vec(0.753200, 0.287000, 0.591800), new c_Vec(-0.763900, 0.297100, 0.572900), new c_Vec(0.341600, -0.540900, 0.768600), new c_Vec(-0.341600, -0.540900, 0.768600), new c_Vec(0.050200, 0.234300, 0.970900), new c_Vec(-0.037500, 0.224700, 0.973700), new c_Vec(-0.130400, -0.608700, 0.782600), new c_Vec(0.130400, -0.608700, 0.782600), new c_Vec(-0.505900, 0.071600, 0.859600), new c_Vec(0.505900, 0.071600, 0.859600), new c_Vec(-0.577400, -0.577400, 0.577400), new c_Vec(0.577400, -0.577400, 0.577400), new c_Vec(0.546000, -0.431000, 0.718400), new c_Vec(-0.331900, 0.073800, 0.940400), new c_Vec(0.323100, 0.031100, 0.945900), new c_Vec(-0.281500, 0.066200, 0.957300), new c_Vec(0.735700, 0.391000, 0.553100), new c_Vec(-0.875300, 0.205900, 0.437600), new c_Vec(0.848000, 0.318000, 0.424000), new c_Vec(-0.897300, 0.199400, 0.393800), new c_Vec(0.850500, 0.379800, 0.363800), new c_Vec(-0.850500, 0.379800, 0.363800), new c_Vec(0.178300, -0.416100, 0.891700), new c_Vec(-0.252400, -0.865500, 0.432700), new c_Vec(-0.129600, -0.194500, 0.972300), new c_Vec(0.129600, -0.194500, 0.972300), new c_Vec(-0.447200, 0.000000, 0.894400), new c_Vec(0.447200, 0.000000, 0.894400), new c_Vec(-0.646300, 0.733700, 0.209600), new c_Vec(0.646300, 0.733700, 0.209600), new c_Vec(0.021700, -0.303100, 0.952700), new c_Vec(-0.021700, -0.303100, 0.952700), new c_Vec(-0.468100, -0.223900, 0.854800), new c_Vec(0.468100, -0.223900, 0.854800), new c_Vec(-0.271000, 0.027100, 0.962200), new c_Vec(0.271000, 0.027100, 0.962200), new c_Vec(-0.171700, -0.009000, 0.985100), new c_Vec(0.259500, 0.103800, 0.960100), new c_Vec(-0.433200, -0.487400, 0.758100), new c_Vec(0.668400, -0.459500, 0.584900), new c_Vec(-0.159900, -0.879700, 0.447800), new c_Vec(0.159900, -0.879700, 0.447800), new c_Vec(0.390000, -0.589500, 0.707400), new c_Vec(-0.390000, -0.589500, 0.707400), new c_Vec(0.654700, -0.458900, 0.600700), new c_Vec(-0.654700, -0.458900, 0.600700), new c_Vec(0.537800, -0.114400, 0.835300), new c_Vec(-0.537800, -0.114400, 0.835300), new c_Vec(0.565700, 0.119700, 0.815900), new c_Vec(-0.577400, 0.115500, 0.808300), new c_Vec(0.408200, 0.408200, 0.816500), new c_Vec(-0.521400, 0.657400, 0.544100), new c_Vec(0.179600, 0.788200, 0.588600), new c_Vec(-0.179600, 0.788200, 0.588600), new c_Vec(0.188100, 0.338700, 0.921900), new c_Vec(-0.188100, 0.338700, 0.921900), new c_Vec(-0.087000, 0.275600, 0.957300), new c_Vec(0.087000, 0.275600, 0.957300), new c_Vec(0.082900, -0.290200, 0.953400), new c_Vec(-0.082900, -0.290200, 0.953400), new c_Vec(0.301500, -0.301500, 0.904500), new c_Vec(-0.301500, -0.301500, 0.904500), new c_Vec(-0.376600, -0.833900, 0.403500), new c_Vec(0.063100, -0.315600, 0.946800), new c_Vec(0.082300, -0.782200, 0.617500), new c_Vec(0.201600, -0.907100, 0.369600), new c_Vec(-0.370700, -0.285100, 0.883900), new c_Vec(0.370700, -0.285100, 0.883900), new c_Vec(-0.269200, -0.057700, 0.961400), new c_Vec(0.456800, 0.050800, 0.888100), new c_Vec(-0.279700, 0.524500, 0.804200), new c_Vec(0.279700, 0.524500, 0.804200), new c_Vec(-0.021300, 0.554600, 0.831900), new c_Vec(0.048700, 0.681500, 0.730200), new c_Vec(0.377800, 0.634200, 0.674600), new c_Vec(-0.337800, 0.522100, 0.783100), new c_Vec(0.542500, -0.339100, 0.768600), new c_Vec(-0.542500, -0.339100, 0.768600), new c_Vec(0.830500, -0.061500, 0.553600), new c_Vec(-0.830500, -0.061500, 0.553600), new c_Vec(0.781400, 0.111600, 0.614000), new c_Vec(-0.781400, 0.111600, 0.614000), new c_Vec(-0.433800, 0.888800, -0.148100), new c_Vec(0.433800, 0.888800, -0.148100), new c_Vec(-0.851500, 0.374400, -0.367000), new c_Vec(0.851500, 0.374400, -0.367000), new c_Vec(-0.266400, 0.871000, -0.412700), new c_Vec(0.219700, 0.862600, -0.455700), new c_Vec(0.593200, 0.744500, -0.306300), new c_Vec(-0.591400, 0.748900, -0.299100), new c_Vec(0.371400, 0.868500, -0.328400), new c_Vec(-0.365300, 0.883300, -0.293800), new c_Vec(0.290100, 0.914100, -0.283300), new c_Vec(-0.290100, 0.914100, -0.283300), new c_Vec(0.887300, 0.134300, -0.441200), new c_Vec(-0.796400, 0.132300, -0.590100), new c_Vec(0.510800, -0.664900, -0.545000), new c_Vec(-0.510800, -0.664900, -0.545000), new c_Vec(0.369500, -0.856600, -0.360100), new c_Vec(-0.369500, -0.856600, -0.360100), new c_Vec(0.361700, -0.385800, -0.848700), new c_Vec(-0.164900, -0.664400, -0.728900), new c_Vec(0.195200, -0.097600, -0.975900), new c_Vec(-0.301100, -0.012500, -0.953500), new c_Vec(-0.010700, -0.563300, -0.826200), new c_Vec(-0.256200, -0.311200, -0.915200), new c_Vec(0.153300, -0.964900, -0.213400), new c_Vec(-0.153300, -0.964900, -0.213400), new c_Vec(0.126000, -0.962400, -0.240600), new c_Vec(-0.126000, -0.962400, -0.240600), new c_Vec(0.939600, 0.157300, -0.304100), new c_Vec(-0.939600, 0.157300, -0.304100), new c_Vec(0.927800, 0.183800, -0.324600), new c_Vec(-0.927800, 0.183800, -0.324600), new c_Vec(0.219200, 0.076600, -0.972700), new c_Vec(-0.219200, 0.076600, -0.972700), new c_Vec(0.121100, -0.053000, -0.991200), new c_Vec(0.149700, -0.363500, -0.919500), new c_Vec(0.909400, 0.137100, -0.392700), new c_Vec(-0.370600, -0.678000, -0.634900), new c_Vec(0.920200, 0.135500, -0.367200), new c_Vec(-0.920200, 0.135500, -0.367200), new c_Vec(0.917300, 0.344000, -0.200700), new c_Vec(-0.945700, 0.267300, -0.185000), new c_Vec(0.900400, 0.364200, -0.238000), new c_Vec(-0.933700, 0.281300, -0.221500), new c_Vec(0.894500, 0.433700, 0.108400), new c_Vec(-0.950100, 0.245500, -0.192200), new c_Vec(0.159600, -0.957700, -0.239400), new c_Vec(-0.183500, -0.786400, -0.589800), new c_Vec(0.369300, -0.471200, -0.801000), new c_Vec(-0.372700, -0.475900, -0.796600), new c_Vec(0.298600, -0.823600, -0.482100), new c_Vec(-0.326300, -0.834200, -0.444600), new c_Vec(0.299500, -0.944200, -0.136800), new c_Vec(-0.299500, -0.944200, -0.136800), new c_Vec(0.328700, -0.916300, -0.229100), new c_Vec(-0.328700, -0.916300, -0.229100), new c_Vec(0.830500, 0.333300, -0.446300), new c_Vec(-0.864200, -0.473700, 0.169600), new c_Vec(0.916600, -0.374000, 0.141400), new c_Vec(-0.916600, -0.374000, 0.141400), new c_Vec(0.295000, -0.045400, -0.954400), new c_Vec(-0.418900, -0.226500, -0.879300), new c_Vec(0.127200, 0.965800, 0.226000), new c_Vec(-0.111900, 0.962600, 0.246800), new c_Vec(0.132000, 0.975000, -0.178800), new c_Vec(-0.132000, 0.975000, -0.178800), new c_Vec(0.387800, 0.619200, -0.682800), new c_Vec(-0.387800, 0.619200, -0.682800), new c_Vec(0.495100, 0.861800, -0.110000), new c_Vec(-0.495100, 0.861800, -0.110000), new c_Vec(0.256100, 0.644700, 0.720200), new c_Vec(-0.256100, 0.644700, 0.720200), new c_Vec(0.596600, 0.788800, 0.147900), new c_Vec(-0.596600, 0.788800, 0.147900), new c_Vec(0.712500, 0.675500, -0.190000), new c_Vec(-0.712500, 0.675500, -0.190000), new c_Vec(0.710400, 0.136400, -0.690400), new c_Vec(-0.630400, 0.251700, -0.734300), new c_Vec(0.682300, 0.231800, -0.693300), new c_Vec(-0.682300, 0.231800, -0.693300), new c_Vec(0.657400, 0.725400, -0.204000), new c_Vec(-0.657400, 0.725400, -0.204000), new c_Vec(0.728900, 0.672900, 0.126200), new c_Vec(-0.728900, 0.672900, 0.126200), new c_Vec(0.779100, 0.407400, 0.476400), new c_Vec(-0.779100, 0.407400, 0.476400), new c_Vec(0.366900, 0.884000, -0.289800), new c_Vec(-0.323800, 0.943400, -0.072000), new c_Vec(0.285400, 0.623700, 0.727700), new c_Vec(-0.154800, 0.508000, 0.847300), new c_Vec(-0.170200, 0.109700, -0.979300), new c_Vec(0.178200, 0.089100, -0.980000), new c_Vec(0.292500, 0.567400, 0.769700), new c_Vec(-0.292500, 0.567400, 0.769700), new c_Vec(0.868100, 0.089300, -0.488300), new c_Vec(-0.934000, 0.225500, 0.277300), new c_Vec(0.927600, 0.076200, 0.365700), new c_Vec(-0.927600, 0.076200, 0.365700), new c_Vec(0.975000, 0.216900, 0.049000), new c_Vec(-0.975000, 0.216900, 0.049000), new c_Vec(0.981700, -0.030400, -0.188200), new c_Vec(-0.995600, 0.089300, -0.028800), new c_Vec(0.746600, -0.664600, 0.028500), new c_Vec(-0.637400, -0.765100, 0.091500), new c_Vec(0.372300, -0.924300, 0.084700), new c_Vec(-0.372000, -0.924400, 0.084500), new c_Vec(0.398600, -0.875400, 0.273400), new c_Vec(-0.398600, -0.875400, 0.273400), new c_Vec(0.632800, -0.764200, 0.124700), new c_Vec(-0.632800, -0.764200, 0.124700), new c_Vec(0.588100, -0.307000, -0.748300), new c_Vec(-0.523600, -0.329000, -0.785900), new c_Vec(0.469400, -0.240000, -0.849800), new c_Vec(-0.539600, -0.334300, -0.772700), new c_Vec(0.446300, -0.845200, -0.294100), new c_Vec(-0.214400, -0.834100, -0.508200), new c_Vec(0.697300, -0.661000, -0.277100), new c_Vec(-0.736500, -0.615400, -0.280800), new c_Vec(0.369100, 0.285500, 0.884400), new c_Vec(-0.324400, 0.486700, 0.811100), new c_Vec(0.446700, 0.097500, 0.889400), new c_Vec(-0.446700, 0.097500, 0.889400), new c_Vec(0.318800, 0.199300, 0.926600), new c_Vec(-0.181700, -0.007900, 0.983300), new c_Vec(0.207600, -0.083600, 0.974600), new c_Vec(-0.292500, -0.075800, 0.953300), new c_Vec(0.339800, 0.082400, 0.936900), new c_Vec(-0.584700, -0.219800, 0.780900), new c_Vec(0.595700, -0.385000, 0.704900), new c_Vec(-0.595700, -0.385000, 0.704900), new c_Vec(0.484300, 0.558000, 0.673800), new c_Vec(-0.484300, 0.558000, 0.673800), new c_Vec(-0.267500, 0.831800, 0.486400), new c_Vec(0.267500, 0.831800, 0.486400), new c_Vec(-0.857600, 0.222300, 0.463700), new c_Vec(0.788500, 0.236600, 0.567700), new c_Vec(-0.525700, -0.357900, 0.771700), new c_Vec(0.524200, -0.354800, 0.774200), new c_Vec(0.466300, -0.599100, 0.650900), new c_Vec(-0.439000, -0.525200, 0.729000), new c_Vec(0.710400, -0.456700, 0.535600), new c_Vec(-0.710400, -0.456700, 0.535600), new c_Vec(0.750700, -0.613100, -0.246100), new c_Vec(-0.630200, -0.765800, 0.128200), new c_Vec(-0.178800, 0.292300, 0.939500), new c_Vec(0.217500, 0.273300, 0.937000), new c_Vec(0.904200, -0.357800, -0.233200), new c_Vec(-0.904200, -0.357800, -0.233200), new c_Vec(0.040000, 0.339900, 0.939600), new c_Vec(-0.040000, 0.339900, 0.939600), new c_Vec(0.273400, 0.906400, 0.322100), new c_Vec(-0.273400, 0.906400, 0.322100), new c_Vec(0.448000, -0.448000, 0.773700), new c_Vec(-0.717700, 0.168900, 0.675500), new c_Vec(0.553400, -0.553400, 0.622500), new c_Vec(-0.900800, -0.407500, 0.150100), new c_Vec(0.572400, -0.312200, 0.758200), new c_Vec(-0.581500, -0.521700, 0.624300), new c_Vec(0.559700, -0.553300, 0.616900), new c_Vec(-0.613800, -0.257100, 0.746500), new c_Vec(0.955100, -0.163600, -0.247000), new c_Vec(-0.171200, -0.093400, 0.980800), new c_Vec(0.922700, -0.376500, -0.082500), new c_Vec(-0.871700, -0.444600, -0.206300), new c_Vec(0.689500, -0.664400, 0.288300), new c_Vec(-0.689500, -0.664400, 0.288300), new c_Vec(0.781500, -0.617600, 0.088200), new c_Vec(-0.793000, -0.594700, 0.132200), new c_Vec(0.124000, 0.992100, 0.020700), new c_Vec(-0.240800, 0.963100, -0.120400), new c_Vec(0.943500, 0.314500, 0.104800), new c_Vec(-0.925100, 0.346900, 0.154200), new c_Vec(0.621300, -0.776700, 0.103600), new c_Vec(-0.621300, -0.776700, 0.103600), new c_Vec(0.000000, 1.000000, 0.000000), new c_Vec(0.619700, -0.689900, 0.374200), new c_Vec(-0.619700, -0.689900, 0.374200), new c_Vec(0.275200, -0.880800, 0.385300), new c_Vec(-0.275200, -0.880800, 0.385300), new c_Vec(-0.792900, -0.525200, -0.308900), new c_Vec(0.792900, -0.525200, -0.308900), new c_Vec(-0.809600, 0.242900, -0.534300), new c_Vec(0.853800, 0.232800, -0.465700), new c_Vec(-0.562100, 0.823100, -0.080300), new c_Vec(0.543300, 0.698500, -0.465700), new c_Vec(-0.007100, 0.989900, 0.141400), new c_Vec(0.109600, 0.993900, -0.015700), new c_Vec(0.104600, 0.039200, 0.993700), new c_Vec(-0.173800, 0.009700, 0.984700), new c_Vec(0.246100, 0.085200, 0.965500), new c_Vec(-0.413400, 0.041300, 0.909600), new c_Vec(0.300900, 0.092600, 0.949100), new c_Vec(-0.300900, 0.092600, 0.949100), new c_Vec(0.210400, 0.012400, 0.977500), new c_Vec(-0.122000, 0.045800, 0.991500), new c_Vec(-0.009900, 0.386700, 0.922100), new c_Vec(0.009900, 0.386700, 0.922100), new c_Vec(0.378700, -0.036400, 0.924800), new c_Vec(-0.424400, -0.032000, 0.904900), new c_Vec(0.253000, -0.189700, 0.948700), new c_Vec(-0.257000, 0.072300, 0.963700), new c_Vec(-0.487000, 0.608800, 0.626200), new c_Vec(0.298100, 0.745400, 0.596300), new c_Vec(0.669300, 0.180200, 0.720800), new c_Vec(-0.669300, 0.180200, 0.720800), new c_Vec(0.438800, -0.200800, 0.875900), new c_Vec(-0.472300, -0.198600, 0.858800), new c_Vec(0.578600, -0.133400, 0.804600), new c_Vec(-0.297500, -0.406200, 0.864000), new c_Vec(0.500200, 0.283300, 0.818200), new c_Vec(-0.500200, 0.283300, 0.818200), new c_Vec(0.092900, -0.991200, -0.094400), new c_Vec(-0.092900, -0.991200, -0.094400), new c_Vec(0.468800, -0.871500, 0.144200), new c_Vec(-0.468800, -0.871500, 0.144200), new c_Vec(0.930900, -0.254100, 0.262400), new c_Vec(-0.926400, -0.246000, 0.285100), new c_Vec(0.846500, 0.529100, -0.059500), new c_Vec(-0.826700, 0.562700, -0.003500), new c_Vec(-0.251100, 0.943900, -0.214500), new c_Vec(0.214600, 0.924300, -0.315700), new c_Vec(-0.484100, 0.874300, -0.036100), new c_Vec(0.419600, 0.885100, -0.201200), new c_Vec(-0.525600, -0.003000, -0.850700), new c_Vec(0.547000, -0.014400, -0.837000), new c_Vec(-0.146600, 0.010400, -0.989100), new c_Vec(0.146600, 0.010400, -0.989100), new c_Vec(-0.807300, 0.590100, 0.004100), new c_Vec(0.733000, 0.678600, 0.047200), new c_Vec(0.420000, -0.229100, -0.878100), new c_Vec(-0.420000, -0.229100, -0.878100), new c_Vec(-0.068700, -0.994300, -0.081800), new c_Vec(0.068700, -0.994300, -0.081800) }; int[][][] SUZANNE_CARAS = { {{47,1}, {1,1}, {3,1}}, {{4,2}, {2,2}, {48,2}}, {{45,3}, {3,3}, {5,3}}, {{6,4}, {4,4}, {46,4}}, {{3,5}, {9,5}, {7,5}}, {{8,6}, {10,6}, {4,6}}, {{1,7}, {11,7}, {9,7}}, {{10,8}, {12,8}, {2,8}}, {{11,9}, {13,9}, {15,9}}, {{16,10}, {14,10}, {12,10}}, {{9,11}, {15,11}, {17,11}}, {{18,12}, {16,12}, {10,12}}, {{21,13}, {19,13}, {17,13}}, {{22,14}, {16,14}, {18,14}}, {{23,15}, {21,15}, {15,15}}, {{24,16}, {14,16}, {16,16}}, {{23,17}, {25,17}, {27,17}}, {{28,18}, {26,18}, {24,18}}, {{27,19}, {29,19}, {19,19}}, {{28,20}, {22,20}, {20,20}}, {{33,21}, {31,21}, {29,21}}, {{34,22}, {28,22}, {30,22}}, {{35,23}, {33,23}, {27,23}}, {{36,24}, {26,24}, {28,24}}, {{37,25}, {39,25}, {33,25}}, {{38,26}, {36,26}, {34,26}}, {{39,27}, {41,27}, {31,27}}, {{40,28}, {34,28}, {32,28}}, {{45,29}, {43,29}, {41,29}}, {{46,30}, {40,30}, {42,30}}, {{47,31}, {45,31}, {39,31}}, {{48,32}, {38,32}, {40,32}}, {{37,33}, {51,33}, {49,33}}, {{38,34}, {48,34}, {50,34}}, {{35,35}, {53,35}, {51,35}}, {{36,36}, {38,36}, {52,36}}, {{25,37}, {55,37}, {53,37}}, {{26,38}, {36,38}, {54,38}}, {{23,39}, {57,39}, {55,39}}, {{24,40}, {26,40}, {56,40}}, {{23,41}, {13,41}, {59,41}}, {{60,42}, {14,42}, {24,42}}, {{13,43}, {11,43}, {63,43}}, {{64,44}, {12,44}, {14,44}}, {{11,45}, {1,45}, {65,45}}, {{66,46}, {2,46}, {12,46}}, {{1,47}, {47,47}, {49,47}}, {{50,48}, {48,48}, {2,48}}, {{61,49}, {65,49}, {49,49}}, {{50,50}, {66,50}, {62,50}}, {{63,51}, {65,51}, {61,51}}, {{62,52}, {66,52}, {64,52}}, {{61,53}, {59,53}, {63,53}}, {{64,54}, {60,54}, {62,54}}, {{61,55}, {57,55}, {59,55}}, {{60,56}, {58,56}, {62,56}}, {{61,57}, {55,57}, {57,57}}, {{58,58}, {56,58}, {62,58}}, {{61,59}, {53,59}, {55,59}}, {{56,60}, {54,60}, {62,60}}, {{61,61}, {51,61}, {53,61}}, {{54,62}, {52,62}, {62,62}}, {{61,63}, {49,63}, {51,63}}, {{52,64}, {50,64}, {62,64}}, {{174,65}, {176,65}, {91,65}}, {{175,66}, {90,66}, {91,66}}, {{172,67}, {174,67}, {89,67}}, {{173,68}, {88,68}, {90,68}}, {{85,69}, {170,69}, {172,69}}, {{173,70}, {171,70}, {86,70}}, {{83,71}, {168,71}, {170,71}}, {{171,72}, {169,72}, {84,72}}, {{81,73}, {166,73}, {168,73}}, {{169,74}, {167,74}, {82,74}}, {{79,75}, {92,75}, {146,75}}, {{147,76}, {93,76}, {80,76}}, {{94,77}, {148,77}, {146,77}}, {{95,78}, {93,78}, {147,78}}, {{94,79}, {96,79}, {150,79}}, {{151,80}, {97,80}, {95,80}}, {{98,81}, {152,81}, {150,81}}, {{99,82}, {97,82}, {151,82}}, {{100,83}, {154,83}, {152,83}}, {{101,84}, {99,84}, {153,84}}, {{102,85}, {156,85}, {154,85}}, {{103,86}, {101,86}, {155,86}}, {{102,87}, {104,87}, {158,87}}, {{159,88}, {105,88}, {103,88}}, {{106,89}, {160,89}, {158,89}}, {{107,90}, {105,90}, {159,90}}, {{108,91}, {162,91}, {160,91}}, {{109,92}, {107,92}, {161,92}}, {{67,93}, {68,93}, {162,93}}, {{67,94}, {109,94}, {163,94}}, {{128,95}, {160,95}, {162,95}}, {{129,96}, {111,96}, {163,96}}, {{128,97}, {179,97}, {158,97}}, {{159,98}, {180,98}, {129,98}}, {{156,99}, {158,99}, {179,99}}, {{157,100}, {127,100}, {180,100}}, {{154,101}, {156,101}, {126,101}}, {{155,102}, {125,102}, {127,102}}, {{152,103}, {154,103}, {124,103}}, {{153,104}, {123,104}, {125,104}}, {{150,105}, {152,105}, {122,105}}, {{151,106}, {121,106}, {123,106}}, {{148,107}, {150,107}, {120,107}}, {{149,108}, {119,108}, {121,108}}, {{146,109}, {148,109}, {118,109}}, {{147,110}, {117,110}, {119,110}}, {{114,111}, {164,111}, {146,111}}, {{147,112}, {165,112}, {115,112}}, {{114,113}, {181,113}, {177,113}}, {{177,114}, {182,114}, {115,114}}, {{162,115}, {68,115}, {112,115}}, {{163,116}, {111,116}, {113,116}}, {{112,117}, {68,117}, {178,117}}, {{178,118}, {68,118}, {113,118}}, {{181,119}, {183,119}, {178,119}}, {{182,120}, {177,120}, {178,120}}, {{135,121}, {137,121}, {176,121}}, {{176,122}, {137,122}, {136,122}}, {{133,123}, {135,123}, {174,123}}, {{175,124}, {136,124}, {134,124}}, {{133,125}, {172,125}, {170,125}}, {{134,126}, {132,126}, {171,126}}, {{166,127}, {187,127}, {185,127}}, {{186,128}, {188,128}, {167,128}}, {{131,129}, {170,129}, {168,129}}, {{169,130}, {171,130}, {132,130}}, {{190,131}, {189,131}, {187,131}}, {{190,132}, {145,132}, {188,132}}, {{187,133}, {189,133}, {69,133}}, {{188,134}, {186,134}, {69,134}}, {{131,135}, {185,135}, {69,135}}, {{132,135}, {130,135}, {69,135}}, {{142,136}, {193,136}, {191,136}}, {{192,137}, {194,137}, {143,137}}, {{195,138}, {193,138}, {142,138}}, {{196,139}, {141,139}, {143,139}}, {{197,140}, {195,140}, {140,140}}, {{198,141}, {139,141}, {141,141}}, {{71,142}, {197,142}, {139,142}}, {{71,143}, {138,143}, {139,143}}, {{144,144}, {191,144}, {70,144}}, {{145,145}, {190,145}, {70,145}}, {{191,146}, {206,146}, {208,146}}, {{192,147}, {70,147}, {208,147}}, {{71,148}, {199,148}, {200,148}}, {{201,149}, {199,149}, {71,149}}, {{197,150}, {200,150}, {202,150}}, {{203,151}, {201,151}, {198,151}}, {{202,152}, {204,152}, {193,152}}, {{203,153}, {196,153}, {194,153}}, {{193,154}, {204,154}, {206,154}}, {{207,155}, {205,155}, {194,155}}, {{204,156}, {202,156}, {200,156}}, {{205,157}, {199,157}, {201,157}}, {{199,158}, {208,158}, {206,158}}, {{207,159}, {208,159}, {199,159}}, {{139,160}, {140,160}, {164,160}}, {{165,161}, {141,161}, {139,161}}, {{140,162}, {142,162}, {211,162}}, {{212,163}, {143,163}, {141,163}}, {{144,164}, {213,164}, {211,164}}, {{145,165}, {143,165}, {212,165}}, {{187,166}, {166,166}, {213,166}}, {{188,167}, {145,167}, {214,167}}, {{209,168}, {213,168}, {166,168}}, {{210,169}, {82,169}, {167,169}}, {{215,170}, {211,170}, {213,170}}, {{216,171}, {210,171}, {214,171}}, {{79,172}, {164,172}, {211,172}}, {{212,173}, {165,173}, {80,173}}, {{130,174}, {72,174}, {222,174}}, {{130,175}, {132,175}, {223,175}}, {{133,176}, {131,176}, {222,176}}, {{223,177}, {132,177}, {134,177}}, {{135,178}, {133,178}, {220,178}}, {{221,179}, {134,179}, {136,179}}, {{137,180}, {135,180}, {218,180}}, {{219,181}, {136,181}, {137,181}}, {{218,182}, {229,182}, {231,182}}, {{219,183}, {217,183}, {231,183}}, {{218,184}, {220,184}, {227,184}}, {{228,185}, {221,185}, {219,185}}, {{220,186}, {222,186}, {225,186}}, {{226,143}, {223,143}, {221,143}}, {{72,187}, {224,187}, {225,187}}, {{72,188}, {223,188}, {226,188}}, {{224,189}, {231,189}, {229,189}}, {{230,190}, {231,190}, {224,190}}, {{225,191}, {229,191}, {227,191}}, {{228,192}, {230,192}, {226,192}}, {{183,193}, {181,193}, {234,193}}, {{235,194}, {182,194}, {184,194}}, {{112,195}, {183,195}, {232,195}}, {{233,196}, {184,196}, {113,196}}, {{112,197}, {254,197}, {256,197}}, {{113,198}, {111,198}, {257,198}}, {{114,199}, {252,199}, {234,199}}, {{115,200}, {182,200}, {235,200}}, {{114,201}, {116,201}, {250,201}}, {{251,202}, {117,202}, {115,202}}, {{116,203}, {118,203}, {248,203}}, {{249,204}, {119,204}, {117,204}}, {{118,205}, {120,205}, {246,205}}, {{247,206}, {121,206}, {119,206}}, {{120,207}, {122,207}, {244,207}}, {{245,208}, {123,208}, {121,208}}, {{124,209}, {242,209}, {244,209}}, {{125,210}, {123,210}, {245,210}}, {{126,211}, {240,211}, {242,211}}, {{127,212}, {125,212}, {243,212}}, {{126,213}, {179,213}, {236,213}}, {{237,214}, {180,214}, {127,214}}, {{179,215}, {128,215}, {238,215}}, {{239,216}, {129,216}, {180,216}}, {{128,217}, {110,217}, {256,217}}, {{257,218}, {111,218}, {129,218}}, {{238,219}, {256,219}, {258,219}}, {{259,220}, {257,220}, {239,220}}, {{236,221}, {238,221}, {276,221}}, {{277,222}, {239,222}, {237,222}}, {{236,223}, {278,223}, {274,223}}, {{237,224}, {241,224}, {275,224}}, {{240,225}, {274,225}, {272,225}}, {{241,226}, {243,226}, {273,226}}, {{244,227}, {242,227}, {272,227}}, {{273,228}, {243,228}, {245,228}}, {{244,229}, {270,229}, {268,229}}, {{245,230}, {247,230}, {269,230}}, {{248,231}, {246,231}, {268,231}}, {{269,232}, {247,232}, {249,232}}, {{248,233}, {266,233}, {264,233}}, {{249,234}, {251,234}, {265,234}}, {{250,235}, {264,235}, {262,235}}, {{251,236}, {253,236}, {263,236}}, {{234,237}, {252,237}, {262,237}}, {{263,238}, {253,238}, {235,238}}, {{256,239}, {254,239}, {260,239}}, {{261,240}, {255,240}, {257,240}}, {{254,241}, {232,241}, {282,241}}, {{283,242}, {233,242}, {255,242}}, {{232,243}, {234,243}, {280,243}}, {{281,244}, {235,244}, {233,244}}, {{67,245}, {108,245}, {284,245}}, {{285,246}, {109,246}, {67,246}}, {{108,247}, {106,247}, {286,247}}, {{287,248}, {107,248}, {109,248}}, {{104,249}, {288,249}, {286,249}}, {{105,250}, {107,250}, {287,250}}, {{102,251}, {290,251}, {288,251}}, {{103,252}, {105,252}, {289,252}}, {{100,253}, {292,253}, {290,253}}, {{101,254}, {103,254}, {291,254}}, {{100,255}, {98,255}, {294,255}}, {{295,256}, {99,256}, {101,256}}, {{96,257}, {296,257}, {294,257}}, {{97,258}, {99,258}, {295,258}}, {{96,259}, {94,259}, {298,259}}, {{299,260}, {95,260}, {97,260}}, {{94,261}, {92,261}, {300,261}}, {{301,262}, {93,262}, {95,262}}, {{309,263}, {328,263}, {338,263}}, {{309,264}, {308,264}, {339,264}}, {{308,265}, {338,265}, {336,265}}, {{308,266}, {307,266}, {337,266}}, {{307,267}, {336,267}, {340,267}}, {{307,268}, {306,268}, {341,268}}, {{89,269}, {91,269}, {306,269}}, {{306,270}, {91,270}, {90,270}}, {{87,271}, {89,271}, {340,271}}, {{341,272}, {90,272}, {88,272}}, {{85,273}, {87,273}, {334,273}}, {{335,274}, {88,274}, {86,274}}, {{83,275}, {85,275}, {330,275}}, {{331,276}, {86,276}, {84,276}}, {{330,277}, {336,277}, {338,277}}, {{339,278}, {337,278}, {331,278}}, {{334,279}, {340,279}, {336,279}}, {{335,280}, {331,280}, {337,280}}, {{332,281}, {338,281}, {328,281}}, {{333,282}, {327,282}, {329,282}}, {{81,283}, {83,283}, {332,283}}, {{333,284}, {84,284}, {82,284}}, {{342,285}, {344,285}, {215,285}}, {{343,286}, {210,286}, {216,286}}, {{326,287}, {342,287}, {209,287}}, {{327,288}, {82,288}, {210,288}}, {{215,289}, {344,289}, {346,289}}, {{216,290}, {80,290}, {347,290}}, {{346,291}, {300,291}, {92,291}}, {{347,292}, {80,292}, {93,292}}, {{324,293}, {352,293}, {304,293}}, {{325,294}, {77,294}, {304,294}}, {{352,295}, {350,295}, {78,295}}, {{353,296}, {304,296}, {78,296}}, {{78,297}, {350,297}, {348,297}}, {{349,298}, {351,298}, {78,298}}, {{305,299}, {348,299}, {328,299}}, {{329,300}, {349,300}, {305,300}}, {{328,301}, {348,301}, {342,301}}, {{329,302}, {327,302}, {343,302}}, {{296,303}, {298,303}, {318,303}}, {{319,304}, {299,304}, {297,304}}, {{316,305}, {324,305}, {77,305}}, {{317,306}, {76,306}, {77,306}}, {{358,307}, {356,307}, {303,307}}, {{359,308}, {302,308}, {303,308}}, {{303,309}, {356,309}, {354,309}}, {{355,310}, {357,310}, {303,310}}, {{75,311}, {354,311}, {316,311}}, {{317,312}, {355,312}, {75,312}}, {{292,313}, {294,313}, {362,313}}, {{363,314}, {295,314}, {293,314}}, {{364,315}, {362,315}, {368,315}}, {{369,316}, {363,316}, {365,316}}, {{366,317}, {368,317}, {370,317}}, {{371,318}, {369,318}, {367,318}}, {{372,319}, {370,319}, {376,319}}, {{377,320}, {371,320}, {373,320}}, {{378,321}, {374,321}, {376,321}}, {{379,322}, {315,322}, {377,322}}, {{316,323}, {354,323}, {374,323}}, {{375,324}, {355,324}, {317,324}}, {{354,325}, {356,325}, {372,325}}, {{373,326}, {357,326}, {355,326}}, {{356,327}, {358,327}, {366,327}}, {{367,328}, {359,328}, {357,328}}, {{358,329}, {360,329}, {364,329}}, {{365,330}, {361,330}, {359,330}}, {{292,331}, {364,331}, {360,331}}, {{293,332}, {291,332}, {361,332}}, {{360,333}, {358,333}, {302,333}}, {{361,334}, {74,334}, {302,334}}, {{286,335}, {288,335}, {290,335}}, {{287,336}, {285,336}, {291,336}}, {{284,337}, {290,337}, {360,337}}, {{361,338}, {291,338}, {285,338}}, {{73,339}, {284,339}, {74,339}}, {{74,340}, {285,340}, {73,340}}, {{296,341}, {310,341}, {362,341}}, {{297,342}, {295,342}, {363,342}}, {{310,343}, {312,343}, {368,343}}, {{369,344}, {313,344}, {311,344}}, {{312,345}, {382,345}, {370,345}}, {{371,346}, {383,346}, {313,346}}, {{376,347}, {370,347}, {382,347}}, {{377,348}, {315,348}, {383,348}}, {{350,349}, {386,349}, {384,349}}, {{351,350}, {349,350}, {385,350}}, {{384,351}, {386,351}, {320,351}}, {{385,352}, {319,352}, {321,352}}, {{298,353}, {300,353}, {384,353}}, {{385,354}, {301,354}, {299,354}}, {{300,355}, {344,355}, {342,355}}, {{343,356}, {345,356}, {301,356}}, {{342,357}, {348,357}, {384,357}}, {{385,358}, {349,358}, {343,358}}, {{300,359}, {346,359}, {344,359}}, {{345,360}, {347,360}, {301,360}}, {{322,361}, {380,361}, {378,361}}, {{323,362}, {315,362}, {379,362}}, {{378,363}, {380,363}, {324,363}}, {{379,364}, {317,364}, {325,364}}, {{386,365}, {380,365}, {322,365}}, {{387,366}, {321,366}, {323,366}}, {{352,367}, {380,367}, {386,367}}, {{353,368}, {351,368}, {387,368}}, {{324,369}, {380,369}, {352,369}}, {{353,370}, {381,370}, {325,370}}, {{388,371}, {414,371}, {402,371}}, {{389,372}, {401,372}, {403,372}}, {{400,373}, {402,373}, {404,373}}, {{405,374}, {403,374}, {401,374}}, {{404,375}, {406,375}, {396,375}}, {{405,376}, {399,376}, {397,376}}, {{406,377}, {408,377}, {394,377}}, {{407,378}, {397,378}, {395,378}}, {{408,379}, {410,379}, {392,379}}, {{409,380}, {395,380}, {393,380}}, {{392,381}, {410,381}, {412,381}}, {{413,382}, {411,382}, {393,382}}, {{410,383}, {420,383}, {418,383}}, {{419,384}, {421,384}, {411,384}}, {{408,385}, {422,385}, {420,385}}, {{421,386}, {423,386}, {409,386}}, {{424,387}, {422,387}, {408,387}}, {{425,388}, {407,388}, {409,388}}, {{426,389}, {424,389}, {406,389}}, {{427,390}, {405,390}, {407,390}}, {{428,391}, {426,391}, {404,391}}, {{429,392}, {403,392}, {405,392}}, {{402,393}, {414,393}, {416,393}}, {{417,394}, {415,394}, {403,394}}, {{320,395}, {444,395}, {442,395}}, {{321,396}, {319,396}, {443,396}}, {{390,397}, {412,397}, {444,397}}, {{391,398}, {321,398}, {445,398}}, {{310,399}, {318,399}, {442,399}}, {{443,400}, {319,400}, {311,400}}, {{382,401}, {430,401}, {414,401}}, {{415,402}, {431,402}, {383,402}}, {{412,403}, {418,403}, {440,403}}, {{441,404}, {419,404}, {413,404}}, {{446,405}, {444,405}, {440,405}}, {{447,406}, {439,406}, {441,406}}, {{434,407}, {446,407}, {438,407}}, {{439,408}, {447,408}, {435,408}}, {{448,409}, {446,409}, {434,409}}, {{449,410}, {433,410}, {435,410}}, {{448,411}, {432,411}, {450,411}}, {{449,412}, {431,412}, {451,412}}, {{430,413}, {450,413}, {416,413}}, {{431,414}, {415,414}, {417,414}}, {{448,415}, {430,415}, {382,415}}, {{449,416}, {313,416}, {383,416}}, {{442,417}, {446,417}, {448,417}}, {{443,418}, {313,418}, {449,418}}, {{442,419}, {444,419}, {446,419}}, {{447,420}, {445,420}, {443,420}}, {{416,421}, {450,421}, {452,421}}, {{453,422}, {451,422}, {417,422}}, {{432,423}, {462,423}, {452,423}}, {{433,424}, {451,424}, {453,424}}, {{432,425}, {434,425}, {460,425}}, {{461,426}, {435,426}, {433,426}}, {{436,427}, {458,427}, {460,427}}, {{437,428}, {435,428}, {461,428}}, {{438,429}, {456,429}, {458,429}}, {{439,430}, {437,430}, {459,430}}, {{438,431}, {440,431}, {454,431}}, {{455,432}, {441,432}, {439,432}}, {{440,433}, {418,433}, {474,433}}, {{475,434}, {419,434}, {441,434}}, {{428,435}, {416,435}, {476,435}}, {{477,436}, {417,436}, {429,436}}, {{426,437}, {428,437}, {464,437}}, {{465,438}, {429,438}, {427,438}}, {{424,439}, {426,439}, {466,439}}, {{467,440}, {427,440}, {425,440}}, {{424,441}, {468,441}, {470,441}}, {{425,442}, {423,442}, {471,442}}, {{422,443}, {470,443}, {472,443}}, {{423,444}, {421,444}, {473,444}}, {{420,445}, {472,445}, {474,445}}, {{421,446}, {419,446}, {475,446}}, {{456,447}, {480,447}, {478,447}}, {{457,448}, {459,448}, {479,448}}, {{480,449}, {482,449}, {484,449}}, {{481,450}, {479,450}, {485,450}}, {{484,451}, {482,451}, {488,451}}, {{489,452}, {483,452}, {485,452}}, {{488,453}, {490,453}, {492,453}}, {{489,454}, {487,454}, {493,454}}, {{464,455}, {476,455}, {486,455}}, {{487,456}, {477,456}, {465,456}}, {{484,457}, {486,457}, {476,457}}, {{485,458}, {453,458}, {477,458}}, {{462,459}, {478,459}, {484,459}}, {{463,460}, {453,460}, {485,460}}, {{458,461}, {478,461}, {462,461}}, {{463,462}, {479,462}, {459,462}}, {{474,463}, {480,463}, {456,463}}, {{475,464}, {455,464}, {457,464}}, {{472,465}, {482,465}, {480,465}}, {{481,466}, {483,466}, {473,466}}, {{488,467}, {482,467}, {472,467}}, {{489,468}, {471,468}, {473,468}}, {{490,469}, {488,469}, {470,469}}, {{491,470}, {469,470}, {471,470}}, {{466,471}, {492,471}, {490,471}}, {{491,472}, {493,472}, {467,472}}, {{464,473}, {492,473}, {466,473}}, {{467,474}, {493,474}, {465,474}}, {{392,475}, {390,475}, {504,475}}, {{505,476}, {391,476}, {393,476}}, {{394,477}, {392,477}, {502,477}}, {{503,478}, {393,478}, {395,478}}, {{394,479}, {500,479}, {498,479}}, {{395,480}, {397,480}, {499,480}}, {{396,481}, {498,481}, {496,481}}, {{397,482}, {399,482}, {497,482}}, {{398,483}, {496,483}, {494,483}}, {{399,484}, {401,484}, {495,484}}, {{400,485}, {494,485}, {506,485}}, {{401,486}, {389,486}, {507,486}}, {{502,487}, {504,487}, {506,487}}, {{503,488}, {495,488}, {507,488}}, {{494,489}, {496,489}, {500,489}}, {{501,490}, {497,490}, {495,490}}, {{496,491}, {498,491}, {500,491}}, {{501,492}, {499,492}, {497,492}}, {{382,493}, {388,493}, {506,493}}, {{383,494}, {315,494}, {507,494}}, {{314,495}, {506,495}, {504,495}}, {{505,496}, {507,496}, {315,496}}, {{320,497}, {322,497}, {504,497}}, {{505,498}, {323,498}, {321,498}}, {{45,499}, {47,499}, {3,499}}, {{46,500}, {4,500}, {48,500}}, {{43,501}, {45,501}, {5,501}}, {{44,502}, {6,502}, {46,502}}, {{5,503}, {3,503}, {7,503}}, {{6,504}, {8,504}, {4,504}}, {{3,505}, {1,505}, {9,505}}, {{4,506}, {10,506}, {2,506}}, {{9,507}, {11,507}, {15,507}}, {{10,508}, {16,508}, {12,508}}, {{7,509}, {9,509}, {17,509}}, {{8,510}, {18,510}, {10,510}}, {{15,511}, {21,511}, {17,511}}, {{20,512}, {22,512}, {18,512}}, {{13,513}, {23,513}, {15,513}}, {{22,514}, {24,514}, {16,514}}, {{21,515}, {23,515}, {27,515}}, {{22,516}, {28,516}, {24,516}}, {{21,517}, {27,517}, {19,517}}, {{30,518}, {28,518}, {20,518}}, {{27,519}, {33,519}, {29,519}}, {{32,520}, {34,520}, {30,520}}, {{25,521}, {35,521}, {27,521}}, {{34,522}, {36,522}, {28,522}}, {{35,523}, {37,523}, {33,523}}, {{40,524}, {38,524}, {34,524}}, {{33,525}, {39,525}, {31,525}}, {{42,526}, {40,526}, {32,526}}, {{39,527}, {45,527}, {41,527}}, {{44,528}, {46,528}, {42,528}}, {{37,529}, {47,529}, {39,529}}, {{46,530}, {48,530}, {40,530}}, {{47,531}, {37,531}, {49,531}}, {{52,532}, {38,532}, {50,532}}, {{37,533}, {35,533}, {51,533}}, {{54,534}, {36,534}, {52,534}}, {{35,535}, {25,535}, {53,535}}, {{56,536}, {26,536}, {54,536}}, {{25,537}, {23,537}, {55,537}}, {{58,538}, {24,538}, {56,538}}, {{57,539}, {23,539}, {59,539}}, {{58,540}, {60,540}, {24,540}}, {{59,541}, {13,541}, {63,541}}, {{60,542}, {64,542}, {14,542}}, {{63,543}, {11,543}, {65,543}}, {{64,544}, {66,544}, {12,544}}, {{65,545}, {1,545}, {49,545}}, {{66,546}, {50,546}, {2,546}}, {{89,547}, {174,547}, {91,547}}, {{176,548}, {175,548}, {91,548}}, {{87,549}, {172,549}, {89,549}}, {{175,550}, {173,550}, {90,550}}, {{87,551}, {85,551}, {172,551}}, {{88,552}, {173,552}, {86,552}}, {{85,553}, {83,553}, {170,553}}, {{86,554}, {171,554}, {84,554}}, {{83,555}, {81,555}, {168,555}}, {{84,556}, {169,556}, {82,556}}, {{164,557}, {79,557}, {146,557}}, {{165,558}, {147,558}, {80,558}}, {{92,559}, {94,559}, {146,559}}, {{149,560}, {95,560}, {147,560}}, {{148,561}, {94,561}, {150,561}}, {{149,562}, {151,562}, {95,562}}, {{96,563}, {98,563}, {150,563}}, {{153,564}, {99,564}, {151,564}}, {{98,565}, {100,565}, {152,565}}, {{155,566}, {101,566}, {153,566}}, {{100,567}, {102,567}, {154,567}}, {{157,568}, {103,568}, {155,568}}, {{156,569}, {102,569}, {158,569}}, {{157,570}, {159,570}, {103,570}}, {{104,571}, {106,571}, {158,571}}, {{161,572}, {107,572}, {159,572}}, {{106,573}, {108,573}, {160,573}}, {{163,574}, {109,574}, {161,574}}, {{108,575}, {67,575}, {162,575}}, {{68,576}, {67,576}, {163,576}}, {{110,577}, {128,577}, {162,577}}, {{161,578}, {129,578}, {163,578}}, {{160,579}, {128,579}, {158,579}}, {{161,580}, {159,580}, {129,580}}, {{126,581}, {156,581}, {179,581}}, {{159,582}, {157,582}, {180,582}}, {{124,583}, {154,583}, {126,583}}, {{157,584}, {155,584}, {127,584}}, {{122,585}, {152,585}, {124,585}}, {{155,586}, {153,586}, {125,586}}, {{120,587}, {150,587}, {122,587}}, {{153,588}, {151,588}, {123,588}}, {{118,589}, {148,589}, {120,589}}, {{151,590}, {149,590}, {121,590}}, {{116,591}, {146,591}, {118,591}}, {{149,592}, {147,592}, {119,592}}, {{116,593}, {114,593}, {146,593}}, {{117,593}, {147,593}, {115,593}}, {{164,594}, {114,594}, {177,594}}, {{165,595}, {177,595}, {115,595}}, {{110,596}, {162,596}, {112,596}}, {{68,597}, {163,597}, {113,597}}, {{183,598}, {112,598}, {178,598}}, {{184,599}, {178,599}, {113,599}}, {{177,600}, {181,600}, {178,600}}, {{184,601}, {182,601}, {178,601}}, {{174,602}, {135,602}, {176,602}}, {{175,603}, {176,603}, {136,603}}, {{172,604}, {133,604}, {174,604}}, {{173,605}, {175,605}, {134,605}}, {{131,606}, {133,606}, {170,606}}, {{173,607}, {134,607}, {171,607}}, {{168,608}, {166,608}, {185,608}}, {{169,609}, {186,609}, {167,609}}, {{185,610}, {131,610}, {168,610}}, {{186,611}, {169,611}, {132,611}}, {{144,612}, {190,612}, {187,612}}, {{189,131}, {190,131}, {188,131}}, {{185,613}, {187,613}, {69,613}}, {{189,133}, {188,133}, {69,133}}, {{130,135}, {131,135}, {69,135}}, {{186,135}, {132,135}, {69,135}}, {{144,614}, {142,614}, {191,614}}, {{145,615}, {192,615}, {143,615}}, {{140,616}, {195,616}, {142,616}}, {{194,617}, {196,617}, {143,617}}, {{139,618}, {197,618}, {140,618}}, {{196,619}, {198,619}, {141,619}}, {{138,186}, {71,186}, {139,186}}, {{198,620}, {71,620}, {139,620}}, {{190,621}, {144,621}, {70,621}}, {{192,622}, {145,622}, {70,622}}, {{70,146}, {191,146}, {208,146}}, {{207,147}, {192,147}, {208,147}}, {{197,623}, {71,623}, {200,623}}, {{198,624}, {201,624}, {71,624}}, {{195,625}, {197,625}, {202,625}}, {{196,626}, {203,626}, {198,626}}, {{195,627}, {202,627}, {193,627}}, {{205,628}, {203,628}, {194,628}}, {{191,629}, {193,629}, {206,629}}, {{192,630}, {207,630}, {194,630}}, {{199,631}, {204,631}, {200,631}}, {{203,632}, {205,632}, {201,632}}, {{204,633}, {199,633}, {206,633}}, {{205,634}, {207,634}, {199,634}}, {{177,635}, {139,635}, {164,635}}, {{177,636}, {165,636}, {139,636}}, {{164,637}, {140,637}, {211,637}}, {{165,638}, {212,638}, {141,638}}, {{142,639}, {144,639}, {211,639}}, {{214,640}, {145,640}, {212,640}}, {{144,641}, {187,641}, {213,641}}, {{167,642}, {188,642}, {214,642}}, {{81,643}, {209,643}, {166,643}}, {{214,644}, {210,644}, {167,644}}, {{209,645}, {215,645}, {213,645}}, {{212,646}, {216,646}, {214,646}}, {{215,647}, {79,647}, {211,647}}, {{216,648}, {212,648}, {80,648}}, {{131,649}, {130,649}, {222,649}}, {{72,650}, {130,650}, {223,650}}, {{220,651}, {133,651}, {222,651}}, {{221,652}, {223,652}, {134,652}}, {{218,653}, {135,653}, {220,653}}, {{219,654}, {221,654}, {136,654}}, {{217,135}, {137,135}, {218,135}}, {{217,135}, {219,135}, {137,135}}, {{217,182}, {218,182}, {231,182}}, {{230,183}, {219,183}, {231,183}}, {{229,655}, {218,655}, {227,655}}, {{230,656}, {228,656}, {219,656}}, {{227,186}, {220,186}, {225,186}}, {{228,143}, {226,143}, {221,143}}, {{222,187}, {72,187}, {225,187}}, {{224,188}, {72,188}, {226,188}}, {{225,657}, {224,657}, {229,657}}, {{226,658}, {230,658}, {224,658}}, {{232,659}, {183,659}, {234,659}}, {{233,660}, {235,660}, {184,660}}, {{254,661}, {112,661}, {232,661}}, {{255,662}, {233,662}, {113,662}}, {{110,663}, {112,663}, {256,663}}, {{255,664}, {113,664}, {257,664}}, {{181,665}, {114,665}, {234,665}}, {{253,666}, {115,666}, {235,666}}, {{252,667}, {114,667}, {250,667}}, {{253,668}, {251,668}, {115,668}}, {{250,669}, {116,669}, {248,669}}, {{251,670}, {249,670}, {117,670}}, {{248,671}, {118,671}, {246,671}}, {{249,672}, {247,672}, {119,672}}, {{246,673}, {120,673}, {244,673}}, {{247,674}, {245,674}, {121,674}}, {{122,675}, {124,675}, {244,675}}, {{243,676}, {125,676}, {245,676}}, {{124,677}, {126,677}, {242,677}}, {{241,678}, {127,678}, {243,678}}, {{240,679}, {126,679}, {236,679}}, {{241,680}, {237,680}, {127,680}}, {{236,681}, {179,681}, {238,681}}, {{237,682}, {239,682}, {180,682}}, {{238,683}, {128,683}, {256,683}}, {{239,684}, {257,684}, {129,684}}, {{276,685}, {238,685}, {258,685}}, {{277,686}, {259,686}, {239,686}}, {{278,687}, {236,687}, {276,687}}, {{279,688}, {277,688}, {237,688}}, {{240,689}, {236,689}, {274,689}}, {{279,690}, {237,690}, {275,690}}, {{242,691}, {240,691}, {272,691}}, {{275,692}, {241,692}, {273,692}}, {{270,693}, {244,693}, {272,693}}, {{271,694}, {273,694}, {245,694}}, {{246,695}, {244,695}, {268,695}}, {{271,696}, {245,696}, {269,696}}, {{266,697}, {248,697}, {268,697}}, {{267,698}, {269,698}, {249,698}}, {{250,699}, {248,699}, {264,699}}, {{267,700}, {249,700}, {265,700}}, {{252,701}, {250,701}, {262,701}}, {{265,702}, {251,702}, {263,702}}, {{280,237}, {234,237}, {262,237}}, {{281,238}, {263,238}, {235,238}}, {{258,703}, {256,703}, {260,703}}, {{259,704}, {261,704}, {257,704}}, {{260,705}, {254,705}, {282,705}}, {{261,706}, {283,706}, {255,706}}, {{282,707}, {232,707}, {280,707}}, {{283,708}, {281,708}, {233,708}}, {{73,709}, {67,709}, {284,709}}, {{73,710}, {285,710}, {67,710}}, {{284,711}, {108,711}, {286,711}}, {{285,712}, {287,712}, {109,712}}, {{106,713}, {104,713}, {286,713}}, {{289,714}, {105,714}, {287,714}}, {{104,715}, {102,715}, {288,715}}, {{291,716}, {103,716}, {289,716}}, {{102,717}, {100,717}, {290,717}}, {{293,718}, {101,718}, {291,718}}, {{292,719}, {100,719}, {294,719}}, {{293,720}, {295,720}, {101,720}}, {{98,721}, {96,721}, {294,721}}, {{297,722}, {97,722}, {295,722}}, {{296,723}, {96,723}, {298,723}}, {{297,724}, {299,724}, {97,724}}, {{298,725}, {94,725}, {300,725}}, {{299,726}, {301,726}, {95,726}}, {{308,727}, {309,727}, {338,727}}, {{329,728}, {309,728}, {339,728}}, {{307,729}, {308,729}, {336,729}}, {{339,730}, {308,730}, {337,730}}, {{306,731}, {307,731}, {340,731}}, {{337,732}, {307,732}, {341,732}}, {{340,733}, {89,733}, {306,733}}, {{341,734}, {306,734}, {90,734}}, {{334,735}, {87,735}, {340,735}}, {{335,736}, {341,736}, {88,736}}, {{330,737}, {85,737}, {334,737}}, {{331,738}, {335,738}, {86,738}}, {{332,739}, {83,739}, {330,739}}, {{333,740}, {331,740}, {84,740}}, {{332,741}, {330,741}, {338,741}}, {{333,742}, {339,742}, {331,742}}, {{330,743}, {334,743}, {336,743}}, {{341,744}, {335,744}, {337,744}}, {{326,745}, {332,745}, {328,745}}, {{339,746}, {333,746}, {329,746}}, {{326,747}, {81,747}, {332,747}}, {{327,748}, {333,748}, {82,748}}, {{209,749}, {342,749}, {215,749}}, {{345,750}, {343,750}, {216,750}}, {{81,751}, {326,751}, {209,751}}, {{343,752}, {327,752}, {210,752}}, {{79,753}, {215,753}, {346,753}}, {{345,754}, {216,754}, {347,754}}, {{79,755}, {346,755}, {92,755}}, {{301,756}, {347,756}, {93,756}}, {{77,757}, {324,757}, {304,757}}, {{353,758}, {325,758}, {304,758}}, {{304,759}, {352,759}, {78,759}}, {{351,760}, {353,760}, {78,760}}, {{305,761}, {78,761}, {348,761}}, {{305,762}, {349,762}, {78,762}}, {{309,763}, {305,763}, {328,763}}, {{309,764}, {329,764}, {305,764}}, {{326,765}, {328,765}, {342,765}}, {{349,766}, {329,766}, {343,766}}, {{310,767}, {296,767}, {318,767}}, {{311,768}, {319,768}, {297,768}}, {{76,769}, {316,769}, {77,769}}, {{325,770}, {317,770}, {77,770}}, {{302,771}, {358,771}, {303,771}}, {{357,772}, {359,772}, {303,772}}, {{75,773}, {303,773}, {354,773}}, {{75,774}, {355,774}, {303,774}}, {{76,775}, {75,775}, {316,775}}, {{76,776}, {317,776}, {75,776}}, {{364,777}, {292,777}, {362,777}}, {{365,778}, {363,778}, {293,778}}, {{366,779}, {364,779}, {368,779}}, {{367,780}, {369,780}, {365,780}}, {{372,781}, {366,781}, {370,781}}, {{373,782}, {371,782}, {367,782}}, {{374,783}, {372,783}, {376,783}}, {{375,784}, {377,784}, {373,784}}, {{314,785}, {378,785}, {376,785}}, {{375,786}, {379,786}, {377,786}}, {{378,787}, {316,787}, {374,787}}, {{379,788}, {375,788}, {317,788}}, {{374,789}, {354,789}, {372,789}}, {{375,790}, {373,790}, {355,790}}, {{372,791}, {356,791}, {366,791}}, {{373,792}, {367,792}, {357,792}}, {{366,793}, {358,793}, {364,793}}, {{367,794}, {365,794}, {359,794}}, {{290,795}, {292,795}, {360,795}}, {{365,796}, {293,796}, {361,796}}, {{74,797}, {360,797}, {302,797}}, {{359,798}, {361,798}, {302,798}}, {{284,799}, {286,799}, {290,799}}, {{289,800}, {287,800}, {291,800}}, {{74,801}, {284,801}, {360,801}}, {{74,802}, {361,802}, {285,802}}, {{294,803}, {296,803}, {362,803}}, {{311,804}, {297,804}, {363,804}}, {{362,805}, {310,805}, {368,805}}, {{363,806}, {369,806}, {311,806}}, {{368,807}, {312,807}, {370,807}}, {{369,808}, {371,808}, {313,808}}, {{314,809}, {376,809}, {382,809}}, {{371,810}, {377,810}, {383,810}}, {{348,811}, {350,811}, {384,811}}, {{387,812}, {351,812}, {385,812}}, {{318,813}, {384,813}, {320,813}}, {{387,814}, {385,814}, {321,814}}, {{318,815}, {298,815}, {384,815}}, {{319,816}, {385,816}, {299,816}}, {{384,817}, {300,817}, {342,817}}, {{385,818}, {343,818}, {301,818}}, {{314,819}, {322,819}, {378,819}}, {{381,820}, {323,820}, {379,820}}, {{316,821}, {378,821}, {324,821}}, {{381,822}, {379,822}, {325,822}}, {{320,823}, {386,823}, {322,823}}, {{381,824}, {387,824}, {323,824}}, {{350,825}, {352,825}, {386,825}}, {{381,826}, {353,826}, {387,826}}, {{400,827}, {388,827}, {402,827}}, {{415,828}, {389,828}, {403,828}}, {{398,829}, {400,829}, {404,829}}, {{399,830}, {405,830}, {401,830}}, {{398,831}, {404,831}, {396,831}}, {{407,832}, {405,832}, {397,832}}, {{396,833}, {406,833}, {394,833}}, {{409,834}, {407,834}, {395,834}}, {{394,835}, {408,835}, {392,835}}, {{411,836}, {409,836}, {393,836}}, {{390,837}, {392,837}, {412,837}}, {{391,838}, {413,838}, {393,838}}, {{412,839}, {410,839}, {418,839}}, {{413,840}, {419,840}, {411,840}}, {{410,841}, {408,841}, {420,841}}, {{411,842}, {421,842}, {409,842}}, {{406,843}, {424,843}, {408,843}}, {{423,844}, {425,844}, {409,844}}, {{404,845}, {426,845}, {406,845}}, {{425,846}, {427,846}, {407,846}}, {{402,847}, {428,847}, {404,847}}, {{427,848}, {429,848}, {405,848}}, {{428,849}, {402,849}, {416,849}}, {{429,850}, {417,850}, {403,850}}, {{318,851}, {320,851}, {442,851}}, {{445,852}, {321,852}, {443,852}}, {{320,853}, {390,853}, {444,853}}, {{413,854}, {391,854}, {445,854}}, {{312,855}, {310,855}, {442,855}}, {{313,856}, {443,856}, {311,856}}, {{388,857}, {382,857}, {414,857}}, {{389,858}, {415,858}, {383,858}}, {{444,859}, {412,859}, {440,859}}, {{445,860}, {441,860}, {413,860}}, {{438,861}, {446,861}, {440,861}}, {{445,862}, {447,862}, {441,862}}, {{436,135}, {434,135}, {438,135}}, {{437,135}, {439,135}, {435,135}}, {{432,863}, {448,863}, {434,863}}, {{447,864}, {449,864}, {435,864}}, {{430,865}, {448,865}, {450,865}}, {{433,866}, {449,866}, {451,866}}, {{414,867}, {430,867}, {416,867}}, {{451,868}, {431,868}, {417,868}}, {{312,869}, {448,869}, {382,869}}, {{431,870}, {449,870}, {383,870}}, {{312,871}, {442,871}, {448,871}}, {{447,872}, {443,872}, {449,872}}, {{476,873}, {416,873}, {452,873}}, {{477,874}, {453,874}, {417,874}}, {{450,875}, {432,875}, {452,875}}, {{463,876}, {433,876}, {453,876}}, {{462,425}, {432,425}, {460,425}}, {{463,426}, {461,426}, {433,426}}, {{434,877}, {436,877}, {460,877}}, {{459,878}, {437,878}, {461,878}}, {{436,879}, {438,879}, {458,879}}, {{457,880}, {439,880}, {459,880}}, {{456,881}, {438,881}, {454,881}}, {{457,882}, {455,882}, {439,882}}, {{454,883}, {440,883}, {474,883}}, {{455,883}, {475,883}, {441,883}}, {{464,884}, {428,884}, {476,884}}, {{465,885}, {477,885}, {429,885}}, {{466,886}, {426,886}, {464,886}}, {{467,887}, {465,887}, {427,887}}, {{468,888}, {424,888}, {466,888}}, {{469,889}, {467,889}, {425,889}}, {{422,890}, {424,890}, {470,890}}, {{469,891}, {425,891}, {471,891}}, {{420,892}, {422,892}, {472,892}}, {{471,893}, {423,893}, {473,893}}, {{418,894}, {420,894}, {474,894}}, {{473,895}, {421,895}, {475,895}}, {{458,896}, {456,896}, {478,896}}, {{481,897}, {457,897}, {479,897}}, {{478,898}, {480,898}, {484,898}}, {{483,899}, {481,899}, {485,899}}, {{486,900}, {484,900}, {488,900}}, {{487,901}, {489,901}, {485,901}}, {{486,902}, {488,902}, {492,902}}, {{491,903}, {489,903}, {493,903}}, {{492,904}, {464,904}, {486,904}}, {{493,905}, {487,905}, {465,905}}, {{452,906}, {484,906}, {476,906}}, {{487,907}, {485,907}, {477,907}}, {{452,908}, {462,908}, {484,908}}, {{479,909}, {463,909}, {485,909}}, {{460,135}, {458,135}, {462,135}}, {{461,135}, {463,135}, {459,135}}, {{454,910}, {474,910}, {456,910}}, {{481,911}, {475,911}, {457,911}}, {{474,912}, {472,912}, {480,912}}, {{475,913}, {481,913}, {473,913}}, {{470,914}, {488,914}, {472,914}}, {{483,915}, {489,915}, {473,915}}, {{468,916}, {490,916}, {470,916}}, {{489,917}, {491,917}, {471,917}}, {{468,918}, {466,918}, {490,918}}, {{469,919}, {491,919}, {467,919}}, {{502,920}, {392,920}, {504,920}}, {{503,921}, {505,921}, {393,921}}, {{500,922}, {394,922}, {502,922}}, {{501,923}, {503,923}, {395,923}}, {{396,924}, {394,924}, {498,924}}, {{501,925}, {395,925}, {499,925}}, {{398,926}, {396,926}, {496,926}}, {{499,927}, {397,927}, {497,927}}, {{400,928}, {398,928}, {494,928}}, {{497,929}, {399,929}, {495,929}}, {{388,930}, {400,930}, {506,930}}, {{495,931}, {401,931}, {507,931}}, {{494,932}, {502,932}, {506,932}}, {{505,933}, {503,933}, {507,933}}, {{502,934}, {494,934}, {500,934}}, {{503,935}, {501,935}, {495,935}}, {{314,936}, {382,936}, {506,936}}, {{389,937}, {383,937}, {507,937}}, {{322,938}, {314,938}, {504,938}}, {{323,939}, {505,939}, {315,939}}, {{390,940}, {320,940}, {504,940}}, {{391,941}, {505,941}, {321,941}} }; //--------//CODIGO PLANO//--------// c_Vec[] PLANO_VERTICES = { new c_Vec(-0.5, 0.5, 0.0), new c_Vec( 0.5, 0.5, 0.0), new c_Vec( 0.5, -0.5, 0.0), new c_Vec(-0.5, -0.5, 0.0) }; c_Vec[] PLANO_VERTICES_NORMALES = { new c_Vec(0.0, 0.0, -1.0), new c_Vec(0.0, 0.0, 1.0)}; int[][][] PLANO_CARAS = { {{1, 1}, {2, 1}, {3, 1}}, {{1, 1}, {3, 1}, {4, 1}}, {{1, 2}, {2, 2}, {3, 2}}, {{1, 2}, {3, 2}, {4, 2}} }; //--------//CODIGO CUBO//--------// c_Vec[] CUBO_VERTICES = { new c_Vec(0.500000, -0.500000, -0.500000), new c_Vec(0.500000, -0.500000, 0.500000), new c_Vec(-0.500000, -0.500000, 0.500000), new c_Vec(-0.500000, -0.500000, -0.500000), new c_Vec(0.500000, 0.500000, -0.500000), new c_Vec(0.500000, 0.500000, 0.500000), new c_Vec(-0.500000, 0.500000, 0.500000), new c_Vec(-0.500000, 0.500000, -0.500000) }; c_Vec[] CUBO_VERTICES_NORMALES = { new c_Vec(0.000000, -1.000000, 0.000000), new c_Vec(0.000000, 1.000000, 0.000000), new c_Vec(1.000000, 0.000000, 0.000000), new c_Vec(-0.000000, 0.000000, 1.000000), new c_Vec(-1.000000, -0.000000, -0.000000), new c_Vec(0.000000, 0.000000, -1.000000) }; int[][][] CUBO_CARAS = { {{1,1}, {2,1}, {3,1}}, {{8,2}, {7,2}, {6,2}}, {{5,3}, {6,3}, {2,3}}, {{6,4}, {7,4}, {3,4}}, {{3,5}, {7,5}, {8,5}}, {{1,6}, {4,6}, {8,6}}, {{1,1}, {4,1}, {3,1}}, {{8,2}, {5,2}, {6,2}}, {{5,3}, {1,3}, {2,3}}, {{6,4}, {2,4}, {3,4}}, {{3,5}, {4,5}, {8,5}}, {{1,6}, {5,6}, {8,6}} }; //------------//CODIGO ESFERA//------------// c_Vec[] ESFERA_VERTICES = { new c_Vec(0.000000, -0.500000, 0.000000), new c_Vec(0.361804, -0.223610, 0.262863), new c_Vec(-0.138194, -0.223610, 0.425325), new c_Vec(-0.447213, -0.223608, 0.000000), new c_Vec(-0.138194, -0.223610, -0.425325), new c_Vec(0.361804, -0.223610, -0.262863), new c_Vec(0.138194, 0.223610, 0.425325), new c_Vec(-0.361804, 0.223610, 0.262863), new c_Vec(-0.361804, 0.223610, -0.262863), new c_Vec(0.138194, 0.223610, -0.425325), new c_Vec(0.447213, 0.223608, 0.000000), new c_Vec(0.000000, 0.500000, 0.000000), new c_Vec(-0.116411, -0.328760, 0.358282), new c_Vec(-0.081228, -0.425327, 0.249998), new c_Vec(-0.038803, -0.483975, 0.119426), new c_Vec(0.101590, -0.483975, 0.073809), new c_Vec(0.212661, -0.425327, 0.154506), new c_Vec(0.304773, -0.328759, 0.221428), new c_Vec(0.265970, -0.251151, 0.340856), new c_Vec(0.131434, -0.262869, 0.404506), new c_Vec(-0.014820, -0.251151, 0.432092), new c_Vec(0.406365, -0.251150, -0.147619), new c_Vec(0.425324, -0.262868, 0.000000), new c_Vec(0.406365, -0.251150, 0.147619), new c_Vec(0.101590, -0.483975, -0.073809), new c_Vec(0.212661, -0.425327, -0.154506), new c_Vec(0.304773, -0.328759, -0.221428), new c_Vec(-0.376721, -0.328757, 0.000000), new c_Vec(-0.262865, -0.425326, 0.000000), new c_Vec(-0.125573, -0.483974, 0.000000), new c_Vec(-0.241986, -0.251151, 0.358282), new c_Vec(-0.344095, -0.262868, 0.249998), new c_Vec(-0.415525, -0.251149, 0.119427), new c_Vec(-0.116411, -0.328760, -0.358282), new c_Vec(-0.081228, -0.425327, -0.249998), new c_Vec(-0.038803, -0.483975, -0.119426), new c_Vec(-0.415525, -0.251149, -0.119427), new c_Vec(-0.344095, -0.262868, -0.249998), new c_Vec(-0.241986, -0.251151, -0.358282), new c_Vec(-0.014820, -0.251151, -0.432092), new c_Vec(0.131434, -0.262869, -0.404506), new c_Vec(0.265970, -0.251151, -0.340856), new c_Vec(0.478313, 0.125575, 0.073809), new c_Vec(0.475529, -0.000000, 0.154506), new c_Vec(0.430349, -0.125575, 0.221429), new c_Vec(0.430349, -0.125575, -0.221429), new c_Vec(0.475529, 0.000000, -0.154506), new c_Vec(0.478313, 0.125575, -0.073809), new c_Vec(0.077608, 0.125576, 0.477711), new c_Vec(0.000000, -0.000000, 0.500000), new c_Vec(-0.077608, -0.125576, 0.477711), new c_Vec(0.343579, -0.125576, 0.340858), new c_Vec(0.293893, 0.000000, 0.404508), new c_Vec(0.218003, 0.125576, 0.432094), new c_Vec(-0.430349, 0.125575, 0.221429), new c_Vec(-0.475529, -0.000000, 0.154506), new c_Vec(-0.478313, -0.125575, 0.073809), new c_Vec(-0.218003, -0.125576, 0.432094), new c_Vec(-0.293893, 0.000000, 0.404508), new c_Vec(-0.343579, 0.125576, 0.340858), new c_Vec(-0.343579, 0.125576, -0.340858), new c_Vec(-0.293893, -0.000000, -0.404508), new c_Vec(-0.218003, -0.125576, -0.432094), new c_Vec(-0.478313, -0.125575, -0.073809), new c_Vec(-0.475529, 0.000000, -0.154506), new c_Vec(-0.430349, 0.125575, -0.221429), new c_Vec(0.218003, 0.125576, -0.432094), new c_Vec(0.293893, -0.000000, -0.404508), new c_Vec(0.343579, -0.125576, -0.340858), new c_Vec(-0.077608, -0.125576, -0.477711), new c_Vec(0.000000, 0.000000, -0.500000), new c_Vec(0.077608, 0.125576, -0.477711), new c_Vec(0.415525, 0.251149, 0.119427), new c_Vec(0.344095, 0.262868, 0.249998), new c_Vec(0.241986, 0.251151, 0.358282), new c_Vec(0.014820, 0.251151, 0.432092), new c_Vec(-0.131434, 0.262869, 0.404506), new c_Vec(-0.265970, 0.251151, 0.340856), new c_Vec(-0.406365, 0.251150, 0.147619), new c_Vec(-0.425324, 0.262868, 0.000000), new c_Vec(-0.406365, 0.251150, -0.147619), new c_Vec(-0.265970, 0.251151, -0.340856), new c_Vec(-0.131434, 0.262869, -0.404506), new c_Vec(0.014820, 0.251151, -0.432092), new c_Vec(0.241986, 0.251151, -0.358282), new c_Vec(0.344095, 0.262868, -0.249998), new c_Vec(0.415525, 0.251149, -0.119427), new c_Vec(0.038803, 0.483975, 0.119426), new c_Vec(0.081228, 0.425327, 0.249998), new c_Vec(0.116411, 0.328760, 0.358282), new c_Vec(0.376721, 0.328757, 0.000000), new c_Vec(0.262865, 0.425326, 0.000000), new c_Vec(0.125573, 0.483974, 0.000000), new c_Vec(-0.101590, 0.483975, 0.073809), new c_Vec(-0.212661, 0.425327, 0.154506), new c_Vec(-0.304773, 0.328759, 0.221428), new c_Vec(-0.101590, 0.483975, -0.073809), new c_Vec(-0.212661, 0.425327, -0.154506), new c_Vec(-0.304773, 0.328759, -0.221428), new c_Vec(0.038803, 0.483975, -0.119426), new c_Vec(0.081228, 0.425327, -0.249998), new c_Vec(0.116411, 0.328760, -0.358282), new c_Vec(0.180900, 0.447215, -0.131431), new c_Vec(0.319097, 0.361805, -0.131432), new c_Vec(0.223605, 0.361806, -0.262864), new c_Vec(-0.069099, 0.447215, -0.212660), new c_Vec(-0.026395, 0.361806, -0.344092), new c_Vec(-0.180902, 0.361806, -0.293889), new c_Vec(-0.223605, 0.447215, 0.000000), new c_Vec(-0.335408, 0.361805, -0.081229), new c_Vec(-0.335408, 0.361805, 0.081229), new c_Vec(-0.069099, 0.447215, 0.212660), new c_Vec(-0.180902, 0.361806, 0.293889), new c_Vec(-0.026395, 0.361806, 0.344092), new c_Vec(0.180900, 0.447215, 0.131431), new c_Vec(0.223605, 0.361806, 0.262864), new c_Vec(0.319097, 0.361805, 0.131432), new c_Vec(0.430902, 0.138198, -0.212661), new c_Vec(0.404510, 0.000000, -0.293891), new c_Vec(0.335410, 0.138199, -0.344095), new c_Vec(-0.069099, 0.138199, -0.475528), new c_Vec(-0.154508, -0.000000, -0.475528), new c_Vec(-0.223608, 0.138199, -0.425324), new c_Vec(-0.473607, 0.138198, -0.081229), new c_Vec(-0.500000, 0.000000, 0.000000), new c_Vec(-0.473606, 0.138198, 0.081229), new c_Vec(-0.223608, 0.138198, 0.425324), new c_Vec(-0.154509, -0.000000, 0.475528), new c_Vec(-0.069100, 0.138198, 0.475528), new c_Vec(0.335410, 0.138198, 0.344095), new c_Vec(0.404509, -0.000001, 0.293891), new c_Vec(0.430902, 0.138197, 0.212662), new c_Vec(0.154509, -0.000000, -0.475528), new c_Vec(0.223608, -0.138199, -0.425324), new c_Vec(0.069100, -0.138199, -0.475527), new c_Vec(-0.404509, -0.000000, -0.293892), new c_Vec(-0.335409, -0.138199, -0.344095), new c_Vec(-0.430902, -0.138198, -0.212662), new c_Vec(-0.404509, 0.000000, 0.293892), new c_Vec(-0.430902, -0.138198, 0.212662), new c_Vec(-0.335410, -0.138199, 0.344095), new c_Vec(0.154509, 0.000000, 0.475528), new c_Vec(0.069100, -0.138199, 0.475527), new c_Vec(0.223608, -0.138199, 0.425324), new c_Vec(0.500000, 0.000000, 0.000000), new c_Vec(0.473607, -0.138198, 0.081229), new c_Vec(0.473607, -0.138198, -0.081229), new c_Vec(0.180902, -0.361806, -0.293890), new c_Vec(0.069098, -0.447215, -0.212661), new c_Vec(0.026395, -0.361805, -0.344093), new c_Vec(-0.223605, -0.361806, -0.262864), new c_Vec(-0.180901, -0.447214, -0.131431), new c_Vec(-0.319097, -0.361805, -0.131431), new c_Vec(-0.319097, -0.361805, 0.131432), new c_Vec(-0.180901, -0.447214, 0.131432), new c_Vec(-0.223605, -0.361805, 0.262864), new c_Vec(0.335409, -0.361805, -0.081228), new c_Vec(0.335409, -0.361805, 0.081229), new c_Vec(0.223605, -0.447214, 0.000000), new c_Vec(0.026395, -0.361806, 0.344093), new c_Vec(0.069099, -0.447215, 0.212660), new c_Vec(0.180902, -0.361805, 0.293890) }; c_Vec[] ESFERA_VERTICES_NORMALES = { new c_Vec(0.048200, -0.987800, 0.148200), new c_Vec(0.723000, -0.554500, 0.412100), new c_Vec(-0.126100, -0.987800, 0.091600), new c_Vec(-0.126100, -0.987800, -0.091600), new c_Vec(0.048200, -0.987800, -0.148200), new c_Vec(0.819300, -0.398700, 0.412100), new c_Vec(-0.138700, -0.398700, 0.906500), new c_Vec(-0.905000, -0.398700, 0.148200), new c_Vec(-0.420600, -0.398700, -0.814900), new c_Vec(0.645100, -0.398700, -0.651900), new c_Vec(0.771100, -0.302400, 0.560300), new c_Vec(-0.294500, -0.302400, 0.906500), new c_Vec(-0.953200, -0.302400, 0.000000), new c_Vec(-0.294500, -0.302400, -0.906500), new c_Vec(0.771100, -0.302400, -0.560300), new c_Vec(0.342700, 0.554500, 0.758300), new c_Vec(-0.615300, 0.554500, 0.560300), new c_Vec(-0.723000, 0.554500, -0.412100), new c_Vec(0.168500, 0.554500, -0.814900), new c_Vec(0.827100, 0.554500, -0.091600), new c_Vec(0.126100, 0.987800, -0.091600), new c_Vec(0.391200, 0.915800, -0.091400), new c_Vec(0.644100, 0.759400, -0.091500), new c_Vec(0.233400, 0.957500, -0.169600), new c_Vec(0.207900, 0.915800, -0.343800), new c_Vec(0.516800, 0.836300, -0.183000), new c_Vec(0.491100, 0.794700, -0.356800), new c_Vec(0.333800, 0.836300, -0.435000), new c_Vec(0.286000, 0.759400, -0.584300), new c_Vec(0.752000, 0.636900, -0.169600), new c_Vec(0.726100, 0.595500, -0.343800), new c_Vec(0.598700, 0.672600, -0.435000), new c_Vec(0.551300, 0.595500, -0.584300), new c_Vec(0.393600, 0.636900, -0.662800), new c_Vec(0.342700, 0.554500, -0.758300), new c_Vec(-0.048200, 0.987800, -0.148200), new c_Vec(0.033900, 0.915800, -0.400300), new c_Vec(0.112100, 0.759400, -0.640900), new c_Vec(-0.089100, 0.957500, -0.274300), new c_Vec(-0.262700, 0.915800, -0.303900), new c_Vec(-0.014400, 0.836300, -0.548100), new c_Vec(-0.187600, 0.794700, -0.577300), new c_Vec(-0.310500, 0.836300, -0.451900), new c_Vec(-0.467400, 0.759400, -0.452600), new c_Vec(0.071100, 0.636900, -0.767600), new c_Vec(-0.102600, 0.595500, -0.796800), new c_Vec(-0.228700, 0.672600, -0.703800), new c_Vec(-0.385400, 0.595500, -0.704900), new c_Vec(-0.508700, 0.636900, -0.579200), new c_Vec(-0.615300, 0.554500, -0.560300), new c_Vec(-0.155800, 0.987800, 0.000000), new c_Vec(-0.370200, 0.915800, -0.156000), new c_Vec(-0.574900, 0.759400, -0.304600), new c_Vec(-0.288500, 0.957500, 0.000000), new c_Vec(-0.370200, 0.915800, 0.156000), new c_Vec(-0.525700, 0.836300, -0.155700), new c_Vec(-0.607100, 0.794700, 0.000000), new c_Vec(-0.525700, 0.836300, 0.155700), new c_Vec(-0.574900, 0.759400, 0.304600), new c_Vec(-0.708100, 0.636900, -0.304900), new c_Vec(-0.789500, 0.595500, -0.148700), new c_Vec(-0.740000, 0.672600, 0.000000), new c_Vec(-0.789500, 0.595500, 0.148700), new c_Vec(-0.708100, 0.636900, 0.304900), new c_Vec(-0.723000, 0.554500, 0.412100), new c_Vec(-0.048200, 0.987800, 0.148200), new c_Vec(-0.262700, 0.915800, 0.303900), new c_Vec(-0.467400, 0.759400, 0.452600), new c_Vec(-0.089100, 0.957500, 0.274300), new c_Vec(0.033900, 0.915800, 0.400300), new c_Vec(-0.310500, 0.836300, 0.451900), new c_Vec(-0.187600, 0.794700, 0.577300), new c_Vec(-0.014400, 0.836300, 0.548100), new c_Vec(0.112100, 0.759400, 0.640900), new c_Vec(-0.508700, 0.636900, 0.579200), new c_Vec(-0.385400, 0.595500, 0.704900), new c_Vec(-0.228700, 0.672600, 0.703800), new c_Vec(-0.102600, 0.595500, 0.796800), new c_Vec(0.071100, 0.636900, 0.767600), new c_Vec(0.168500, 0.554500, 0.814900), new c_Vec(0.126100, 0.987800, 0.091600), new c_Vec(0.207900, 0.915800, 0.343800), new c_Vec(0.286000, 0.759400, 0.584300), new c_Vec(0.233400, 0.957500, 0.169600), new c_Vec(0.391200, 0.915800, 0.091500), new c_Vec(0.333800, 0.836300, 0.435000), new c_Vec(0.491100, 0.794700, 0.356800), new c_Vec(0.516800, 0.836300, 0.183000), new c_Vec(0.644100, 0.759400, 0.091500), new c_Vec(0.393600, 0.636900, 0.662800), new c_Vec(0.551300, 0.595500, 0.584300), new c_Vec(0.598700, 0.672600, 0.435000), new c_Vec(0.726100, 0.595500, 0.343800), new c_Vec(0.752000, 0.636900, 0.169600), new c_Vec(0.827100, 0.554500, 0.091600), new c_Vec(0.905000, 0.398700, -0.148200), new c_Vec(0.936600, 0.174500, -0.303900), new c_Vec(0.888300, -0.078400, -0.452600), new c_Vec(0.896300, 0.348500, -0.274300), new c_Vec(0.803900, 0.439900, -0.400300), new c_Vec(0.886900, 0.096200, -0.451900), new c_Vec(0.794700, 0.187600, -0.577300), new c_Vec(0.754400, 0.361100, -0.548100), new c_Vec(0.629100, 0.439900, -0.640900), new c_Vec(0.797200, -0.170200, -0.579200), new c_Vec(0.704900, -0.078400, -0.704900), new c_Vec(0.703800, 0.096200, -0.703800), new c_Vec(0.578500, 0.174500, -0.796800), new c_Vec(0.537900, 0.348500, -0.767600), new c_Vec(0.420600, 0.398700, -0.814900), new c_Vec(0.138700, 0.398700, -0.906500), new c_Vec(0.000400, 0.174500, -0.984600), new c_Vec(-0.156000, -0.078400, -0.984600), new c_Vec(0.016000, 0.348500, -0.937200), new c_Vec(-0.132300, 0.439900, -0.888300), new c_Vec(-0.155700, 0.096200, -0.983100), new c_Vec(-0.303500, 0.187600, -0.934200), new c_Vec(-0.288200, 0.361100, -0.886900), new c_Vec(-0.415100, 0.439900, -0.796400), new c_Vec(-0.304500, -0.170200, -0.937200), new c_Vec(-0.452600, -0.078400, -0.888300), new c_Vec(-0.451900, 0.096200, -0.886900), new c_Vec(-0.579100, 0.174500, -0.796400), new c_Vec(-0.563800, 0.348500, -0.748800), new c_Vec(-0.645100, 0.398700, -0.651900), new c_Vec(-0.819300, 0.398700, -0.412100), new c_Vec(-0.936300, 0.174500, -0.304600), new c_Vec(-0.984600, -0.078400, -0.156000), new c_Vec(-0.886400, 0.348500, -0.304900), new c_Vec(-0.885700, 0.439900, -0.148700), new c_Vec(-0.983100, 0.096200, -0.155700), new c_Vec(-0.982200, 0.187600, 0.000000), new c_Vec(-0.932500, 0.361100, 0.000000), new c_Vec(-0.885700, 0.439900, 0.148700), new c_Vec(-0.985400, -0.170200, 0.000000), new c_Vec(-0.984600, -0.078400, 0.156000), new c_Vec(-0.983100, 0.096200, 0.155700), new c_Vec(-0.936300, 0.174500, 0.304600), new c_Vec(-0.886400, 0.348500, 0.304900), new c_Vec(-0.819300, 0.398700, 0.412100), new c_Vec(-0.645100, 0.398700, 0.651900), new c_Vec(-0.579100, 0.174500, 0.796400), new c_Vec(-0.452600, -0.078400, 0.888300), new c_Vec(-0.563800, 0.348500, 0.748800), new c_Vec(-0.415100, 0.439900, 0.796400), new c_Vec(-0.451900, 0.096200, 0.886900), new c_Vec(-0.303500, 0.187600, 0.934200), new c_Vec(-0.288200, 0.361100, 0.886900), new c_Vec(-0.132300, 0.439900, 0.888300), new c_Vec(-0.304500, -0.170200, 0.937200), new c_Vec(-0.156000, -0.078400, 0.984600), new c_Vec(-0.155700, 0.096200, 0.983100), new c_Vec(0.000400, 0.174500, 0.984600), new c_Vec(0.016000, 0.348500, 0.937200), new c_Vec(0.138700, 0.398700, 0.906500), new c_Vec(0.420600, 0.398700, 0.814900), new c_Vec(0.578500, 0.174500, 0.796800), new c_Vec(0.704900, -0.078400, 0.704900), new c_Vec(0.537900, 0.348500, 0.767600), new c_Vec(0.629100, 0.439900, 0.640900), new c_Vec(0.703800, 0.096200, 0.703800), new c_Vec(0.794700, 0.187600, 0.577300), new c_Vec(0.754400, 0.361100, 0.548100), new c_Vec(0.803900, 0.439900, 0.400300), new c_Vec(0.797200, -0.170200, 0.579200), new c_Vec(0.888300, -0.078400, 0.452600), new c_Vec(0.886900, 0.096200, 0.451900), new c_Vec(0.936600, 0.174500, 0.303900), new c_Vec(0.896300, 0.348500, 0.274400), new c_Vec(0.905000, 0.398700, 0.148200), new c_Vec(0.294500, 0.302400, -0.906500), new c_Vec(0.452600, 0.078400, -0.888300), new c_Vec(0.579100, -0.174500, -0.796400), new c_Vec(0.304500, 0.170200, -0.937200), new c_Vec(0.156000, 0.078400, -0.984600), new c_Vec(0.451900, -0.096200, -0.886900), new c_Vec(0.303500, -0.187600, -0.934200), new c_Vec(0.155700, -0.096200, -0.983100), new c_Vec(-0.000400, -0.174500, -0.984600), new c_Vec(0.563800, -0.348500, -0.748800), new c_Vec(0.415100, -0.439900, -0.796400), new c_Vec(0.288200, -0.361100, -0.886900), new c_Vec(0.132300, -0.439900, -0.888300), new c_Vec(-0.016000, -0.348500, -0.937200), new c_Vec(-0.138700, -0.398700, -0.906500), new c_Vec(-0.771100, 0.302400, -0.560300), new c_Vec(-0.704900, 0.078400, -0.704900), new c_Vec(-0.578500, -0.174500, -0.796800), new c_Vec(-0.797200, 0.170200, -0.579200), new c_Vec(-0.888300, 0.078400, -0.452600), new c_Vec(-0.703800, -0.096200, -0.703800), new c_Vec(-0.794700, -0.187600, -0.577300), new c_Vec(-0.886900, -0.096200, -0.451900), new c_Vec(-0.936600, -0.174500, -0.303900), new c_Vec(-0.537900, -0.348500, -0.767600), new c_Vec(-0.629100, -0.439900, -0.640900), new c_Vec(-0.754400, -0.361100, -0.548100), new c_Vec(-0.803900, -0.439900, -0.400300), new c_Vec(-0.896300, -0.348500, -0.274400), new c_Vec(-0.905000, -0.398700, -0.148200), new c_Vec(-0.771100, 0.302400, 0.560300), new c_Vec(-0.888300, 0.078400, 0.452600), new c_Vec(-0.936600, -0.174500, 0.303900), new c_Vec(-0.797200, 0.170200, 0.579200), new c_Vec(-0.704900, 0.078400, 0.704900), new c_Vec(-0.886900, -0.096200, 0.451900), new c_Vec(-0.794700, -0.187600, 0.577400), new c_Vec(-0.703800, -0.096200, 0.703800), new c_Vec(-0.578500, -0.174500, 0.796800), new c_Vec(-0.896300, -0.348500, 0.274400), new c_Vec(-0.803900, -0.439900, 0.400300), new c_Vec(-0.754400, -0.361100, 0.548100), new c_Vec(-0.629100, -0.439900, 0.640900), new c_Vec(-0.537900, -0.348500, 0.767600), new c_Vec(-0.420600, -0.398700, 0.814900), new c_Vec(0.294500, 0.302400, 0.906500), new c_Vec(0.156000, 0.078400, 0.984600), new c_Vec(-0.000400, -0.174500, 0.984600), new c_Vec(0.304500, 0.170200, 0.937200), new c_Vec(0.452600, 0.078400, 0.888300), new c_Vec(0.155700, -0.096200, 0.983100), new c_Vec(0.303500, -0.187600, 0.934200), new c_Vec(0.451900, -0.096200, 0.886900), new c_Vec(0.579100, -0.174500, 0.796400), new c_Vec(-0.016000, -0.348500, 0.937200), new c_Vec(0.132300, -0.439900, 0.888300), new c_Vec(0.288200, -0.361100, 0.886900), new c_Vec(0.415100, -0.439900, 0.796400), new c_Vec(0.563800, -0.348500, 0.748800), new c_Vec(0.645100, -0.398700, 0.651900), new c_Vec(0.953200, 0.302400, 0.000000), new c_Vec(0.984600, 0.078400, 0.156000), new c_Vec(0.936300, -0.174500, 0.304600), new c_Vec(0.985400, 0.170200, 0.000000), new c_Vec(0.984600, 0.078400, -0.156000), new c_Vec(0.983100, -0.096200, 0.155700), new c_Vec(0.982200, -0.187600, 0.000000), new c_Vec(0.983100, -0.096200, -0.155700), new c_Vec(0.936300, -0.174500, -0.304600), new c_Vec(0.886400, -0.348500, 0.304900), new c_Vec(0.885700, -0.439900, 0.148700), new c_Vec(0.932500, -0.361100, 0.000000), new c_Vec(0.885700, -0.439900, -0.148700), new c_Vec(0.886400, -0.348500, -0.304900), new c_Vec(0.819300, -0.398700, -0.412100), new c_Vec(0.615300, -0.554500, -0.560300), new c_Vec(0.467400, -0.759400, -0.452600), new c_Vec(0.262700, -0.915800, -0.303900), new c_Vec(0.508700, -0.636900, -0.579200), new c_Vec(0.385400, -0.595500, -0.704900), new c_Vec(0.310500, -0.836300, -0.451900), new c_Vec(0.187600, -0.794700, -0.577300), new c_Vec(0.228700, -0.672600, -0.703800), new c_Vec(0.102600, -0.595500, -0.796800), new c_Vec(0.089100, -0.957500, -0.274300), new c_Vec(-0.033900, -0.915800, -0.400300), new c_Vec(0.014400, -0.836300, -0.548100), new c_Vec(-0.112100, -0.759400, -0.640900), new c_Vec(-0.071100, -0.636900, -0.767600), new c_Vec(-0.168500, -0.554500, -0.814900), new c_Vec(-0.342700, -0.554500, -0.758300), new c_Vec(-0.286000, -0.759400, -0.584300), new c_Vec(-0.207900, -0.915800, -0.343800), new c_Vec(-0.393600, -0.636900, -0.662800), new c_Vec(-0.551300, -0.595500, -0.584300), new c_Vec(-0.333800, -0.836300, -0.435000), new c_Vec(-0.491100, -0.794700, -0.356800), new c_Vec(-0.598700, -0.672600, -0.435000), new c_Vec(-0.726100, -0.595500, -0.343800), new c_Vec(-0.233400, -0.957500, -0.169600), new c_Vec(-0.391200, -0.915800, -0.091400), new c_Vec(-0.516800, -0.836300, -0.183000), new c_Vec(-0.644100, -0.759400, -0.091400), new c_Vec(-0.752000, -0.636900, -0.169600), new c_Vec(-0.827100, -0.554500, -0.091600), new c_Vec(-0.827100, -0.554500, 0.091600), new c_Vec(-0.644100, -0.759400, 0.091500), new c_Vec(-0.391200, -0.915800, 0.091500), new c_Vec(-0.752000, -0.636900, 0.169600), new c_Vec(-0.726100, -0.595500, 0.343800), new c_Vec(-0.516800, -0.836300, 0.183000), new c_Vec(-0.491100, -0.794700, 0.356800), new c_Vec(-0.598700, -0.672600, 0.435000), new c_Vec(-0.551300, -0.595500, 0.584300), new c_Vec(-0.233400, -0.957500, 0.169600), new c_Vec(-0.207900, -0.915800, 0.343800), new c_Vec(-0.333800, -0.836300, 0.435000), new c_Vec(-0.286000, -0.759400, 0.584300), new c_Vec(-0.393600, -0.636900, 0.662800), new c_Vec(-0.342700, -0.554500, 0.758300), new c_Vec(0.723000, -0.554500, -0.412100), new c_Vec(0.789500, -0.595500, -0.148700), new c_Vec(0.789500, -0.595500, 0.148700), new c_Vec(0.708100, -0.636900, -0.304900), new c_Vec(0.574900, -0.759400, -0.304600), new c_Vec(0.740000, -0.672600, -0.000000), new c_Vec(0.607100, -0.794700, 0.000000), new c_Vec(0.525700, -0.836300, -0.155700), new c_Vec(0.370200, -0.915800, -0.155900), new c_Vec(0.708100, -0.636900, 0.304900), new c_Vec(0.574900, -0.759400, 0.304600), new c_Vec(0.525700, -0.836300, 0.155700), new c_Vec(0.370200, -0.915800, 0.156000), new c_Vec(0.288500, -0.957500, 0.000000), new c_Vec(0.155800, -0.987800, 0.000000), new c_Vec(-0.168500, -0.554500, 0.814900), new c_Vec(-0.112100, -0.759400, 0.640900), new c_Vec(-0.033900, -0.915800, 0.400300), new c_Vec(-0.071100, -0.636900, 0.767600), new c_Vec(0.102600, -0.595500, 0.796800), new c_Vec(0.014400, -0.836300, 0.548100), new c_Vec(0.187600, -0.794700, 0.577300), new c_Vec(0.228700, -0.672600, 0.703800), new c_Vec(0.385400, -0.595500, 0.704900), new c_Vec(0.089100, -0.957500, 0.274400), new c_Vec(0.262700, -0.915800, 0.303900), new c_Vec(0.310500, -0.836300, 0.451900), new c_Vec(0.467400, -0.759400, 0.452600), new c_Vec(0.508700, -0.636900, 0.579200), new c_Vec(0.615300, -0.554500, 0.560300) }; int[][][] ESFERA_CARAS = { {{1,1}, {16,1}, {15,1}}, {{2,2}, {18,2}, {24,2}}, {{1,3}, {15,3}, {30,3}}, {{1,4}, {30,4}, {36,4}}, {{1,5}, {36,5}, {25,5}}, {{2,6}, {24,6}, {45,6}}, {{3,7}, {21,7}, {51,7}}, {{4,8}, {33,8}, {57,8}}, {{5,9}, {39,9}, {63,9}}, {{6,10}, {42,10}, {69,10}}, {{2,11}, {45,11}, {52,11}}, {{3,12}, {51,12}, {58,12}}, {{4,13}, {57,13}, {64,13}}, {{5,14}, {63,14}, {70,14}}, {{6,15}, {69,15}, {46,15}}, {{7,16}, {75,16}, {90,16}}, {{8,17}, {78,17}, {96,17}}, {{9,18}, {81,18}, {99,18}}, {{10,19}, {84,19}, {102,19}}, {{11,20}, {87,20}, {91,20}}, {{93,21}, {100,21}, {12,21}}, {{92,22}, {103,22}, {93,22}}, {{91,23}, {104,23}, {92,23}}, {{93,24}, {103,24}, {100,24}}, {{103,25}, {101,25}, {100,25}}, {{92,26}, {104,26}, {103,26}}, {{104,27}, {105,27}, {103,27}}, {{103,28}, {105,28}, {101,28}}, {{105,29}, {102,29}, {101,29}}, {{91,30}, {87,30}, {104,30}}, {{87,31}, {86,31}, {104,31}}, {{104,32}, {86,32}, {105,32}}, {{86,33}, {85,33}, {105,33}}, {{105,34}, {85,34}, {102,34}}, {{85,35}, {10,35}, {102,35}}, {{100,36}, {97,36}, {12,36}}, {{101,37}, {106,37}, {100,37}}, {{102,38}, {107,38}, {101,38}}, {{100,39}, {106,39}, {97,39}}, {{106,40}, {98,40}, {97,40}}, {{101,41}, {107,41}, {106,41}}, {{107,42}, {108,42}, {106,42}}, {{106,43}, {108,43}, {98,43}}, {{108,44}, {99,44}, {98,44}}, {{102,45}, {84,45}, {107,45}}, {{84,46}, {83,46}, {107,46}}, {{107,47}, {83,47}, {108,47}}, {{83,48}, {82,48}, {108,48}}, {{108,49}, {82,49}, {99,49}}, {{82,50}, {9,50}, {99,50}}, {{97,51}, {94,51}, {12,51}}, {{98,52}, {109,52}, {97,52}}, {{99,53}, {110,53}, {98,53}}, {{97,54}, {109,54}, {94,54}}, {{109,55}, {95,55}, {94,55}}, {{98,56}, {110,56}, {109,56}}, {{110,57}, {111,57}, {109,57}}, {{109,58}, {111,58}, {95,58}}, {{111,59}, {96,59}, {95,59}}, {{99,60}, {81,60}, {110,60}}, {{81,61}, {80,61}, {110,61}}, {{110,62}, {80,62}, {111,62}}, {{80,63}, {79,63}, {111,63}}, {{111,64}, {79,64}, {96,64}}, {{79,65}, {8,65}, {96,65}}, {{94,66}, {88,66}, {12,66}}, {{95,67}, {112,67}, {94,67}}, {{96,68}, {113,68}, {95,68}}, {{94,69}, {112,69}, {88,69}}, {{112,70}, {89,70}, {88,70}}, {{95,71}, {113,71}, {112,71}}, {{113,72}, {114,72}, {112,72}}, {{112,73}, {114,73}, {89,73}}, {{114,74}, {90,74}, {89,74}}, {{96,75}, {78,75}, {113,75}}, {{78,76}, {77,76}, {113,76}}, {{113,77}, {77,77}, {114,77}}, {{77,78}, {76,78}, {114,78}}, {{114,79}, {76,79}, {90,79}}, {{76,80}, {7,80}, {90,80}}, {{88,81}, {93,81}, {12,81}}, {{89,82}, {115,82}, {88,82}}, {{90,83}, {116,83}, {89,83}}, {{88,84}, {115,84}, {93,84}}, {{115,85}, {92,85}, {93,85}}, {{89,86}, {116,86}, {115,86}}, {{116,87}, {117,87}, {115,87}}, {{115,88}, {117,88}, {92,88}}, {{117,89}, {91,89}, {92,89}}, {{90,90}, {75,90}, {116,90}}, {{75,91}, {74,91}, {116,91}}, {{116,92}, {74,92}, {117,92}}, {{74,93}, {73,93}, {117,93}}, {{117,94}, {73,94}, {91,94}}, {{73,95}, {11,95}, {91,95}}, {{48,96}, {87,96}, {11,96}}, {{47,97}, {118,97}, {48,97}}, {{46,98}, {119,98}, {47,98}}, {{48,99}, {118,99}, {87,99}}, {{118,100}, {86,100}, {87,100}}, {{47,101}, {119,101}, {118,101}}, {{119,102}, {120,102}, {118,102}}, {{118,103}, {120,103}, {86,103}}, {{120,104}, {85,104}, {86,104}}, {{46,105}, {69,105}, {119,105}}, {{69,106}, {68,106}, {119,106}}, {{119,107}, {68,107}, {120,107}}, {{68,108}, {67,108}, {120,108}}, {{120,109}, {67,109}, {85,109}}, {{67,110}, {10,110}, {85,110}}, {{72,111}, {84,111}, {10,111}}, {{71,112}, {121,112}, {72,112}}, {{70,113}, {122,113}, {71,113}}, {{72,114}, {121,114}, {84,114}}, {{121,115}, {83,115}, {84,115}}, {{71,116}, {122,116}, {121,116}}, {{122,117}, {123,117}, {121,117}}, {{121,118}, {123,118}, {83,118}}, {{123,119}, {82,119}, {83,119}}, {{70,120}, {63,120}, {122,120}}, {{63,121}, {62,121}, {122,121}}, {{122,122}, {62,122}, {123,122}}, {{62,123}, {61,123}, {123,123}}, {{123,124}, {61,124}, {82,124}}, {{61,125}, {9,125}, {82,125}}, {{66,126}, {81,126}, {9,126}}, {{65,127}, {124,127}, {66,127}}, {{64,128}, {125,128}, {65,128}}, {{66,129}, {124,129}, {81,129}}, {{124,130}, {80,130}, {81,130}}, {{65,131}, {125,131}, {124,131}}, {{125,132}, {126,132}, {124,132}}, {{124,133}, {126,133}, {80,133}}, {{126,134}, {79,134}, {80,134}}, {{64,135}, {57,135}, {125,135}}, {{57,136}, {56,136}, {125,136}}, {{125,137}, {56,137}, {126,137}}, {{56,138}, {55,138}, {126,138}}, {{126,139}, {55,139}, {79,139}}, {{55,140}, {8,140}, {79,140}}, {{60,141}, {78,141}, {8,141}}, {{59,142}, {127,142}, {60,142}}, {{58,143}, {128,143}, {59,143}}, {{60,144}, {127,144}, {78,144}}, {{127,145}, {77,145}, {78,145}}, {{59,146}, {128,146}, {127,146}}, {{128,147}, {129,147}, {127,147}}, {{127,148}, {129,148}, {77,148}}, {{129,149}, {76,149}, {77,149}}, {{58,150}, {51,150}, {128,150}}, {{51,151}, {50,151}, {128,151}}, {{128,152}, {50,152}, {129,152}}, {{50,153}, {49,153}, {129,153}}, {{129,154}, {49,154}, {76,154}}, {{49,155}, {7,155}, {76,155}}, {{54,156}, {75,156}, {7,156}}, {{53,157}, {130,157}, {54,157}}, {{52,158}, {131,158}, {53,158}}, {{54,159}, {130,159}, {75,159}}, {{130,160}, {74,160}, {75,160}}, {{53,161}, {131,161}, {130,161}}, {{131,162}, {132,162}, {130,162}}, {{130,163}, {132,163}, {74,163}}, {{132,164}, {73,164}, {74,164}}, {{52,165}, {45,165}, {131,165}}, {{45,166}, {44,166}, {131,166}}, {{131,167}, {44,167}, {132,167}}, {{44,168}, {43,168}, {132,168}}, {{132,169}, {43,169}, {73,169}}, {{43,170}, {11,170}, {73,170}}, {{67,171}, {72,171}, {10,171}}, {{68,172}, {133,172}, {67,172}}, {{69,173}, {134,173}, {68,173}}, {{67,174}, {133,174}, {72,174}}, {{133,175}, {71,175}, {72,175}}, {{68,176}, {134,176}, {133,176}}, {{134,177}, {135,177}, {133,177}}, {{133,178}, {135,178}, {71,178}}, {{135,179}, {70,179}, {71,179}}, {{69,180}, {42,180}, {134,180}}, {{42,181}, {41,181}, {134,181}}, {{134,182}, {41,182}, {135,182}}, {{41,183}, {40,183}, {135,183}}, {{135,184}, {40,184}, {70,184}}, {{40,185}, {5,185}, {70,185}}, {{61,186}, {66,186}, {9,186}}, {{62,187}, {136,187}, {61,187}}, {{63,188}, {137,188}, {62,188}}, {{61,189}, {136,189}, {66,189}}, {{136,190}, {65,190}, {66,190}}, {{62,191}, {137,191}, {136,191}}, {{137,192}, {138,192}, {136,192}}, {{136,193}, {138,193}, {65,193}}, {{138,194}, {64,194}, {65,194}}, {{63,195}, {39,195}, {137,195}}, {{39,196}, {38,196}, {137,196}}, {{137,197}, {38,197}, {138,197}}, {{38,198}, {37,198}, {138,198}}, {{138,199}, {37,199}, {64,199}}, {{37,200}, {4,200}, {64,200}}, {{55,201}, {60,201}, {8,201}}, {{56,202}, {139,202}, {55,202}}, {{57,203}, {140,203}, {56,203}}, {{55,204}, {139,204}, {60,204}}, {{139,205}, {59,205}, {60,205}}, {{56,206}, {140,206}, {139,206}}, {{140,207}, {141,207}, {139,207}}, {{139,208}, {141,208}, {59,208}}, {{141,209}, {58,209}, {59,209}}, {{57,210}, {33,210}, {140,210}}, {{33,211}, {32,211}, {140,211}}, {{140,212}, {32,212}, {141,212}}, {{32,213}, {31,213}, {141,213}}, {{141,214}, {31,214}, {58,214}}, {{31,215}, {3,215}, {58,215}}, {{49,216}, {54,216}, {7,216}}, {{50,217}, {142,217}, {49,217}}, {{51,218}, {143,218}, {50,218}}, {{49,219}, {142,219}, {54,219}}, {{142,220}, {53,220}, {54,220}}, {{50,221}, {143,221}, {142,221}}, {{143,222}, {144,222}, {142,222}}, {{142,223}, {144,223}, {53,223}}, {{144,224}, {52,224}, {53,224}}, {{51,225}, {21,225}, {143,225}}, {{21,226}, {20,226}, {143,226}}, {{143,227}, {20,227}, {144,227}}, {{20,228}, {19,228}, {144,228}}, {{144,229}, {19,229}, {52,229}}, {{19,230}, {2,230}, {52,230}}, {{43,231}, {48,231}, {11,231}}, {{44,232}, {145,232}, {43,232}}, {{45,233}, {146,233}, {44,233}}, {{43,234}, {145,234}, {48,234}}, {{145,235}, {47,235}, {48,235}}, {{44,236}, {146,236}, {145,236}}, {{146,237}, {147,237}, {145,237}}, {{145,238}, {147,238}, {47,238}}, {{147,239}, {46,239}, {47,239}}, {{45,240}, {24,240}, {146,240}}, {{24,241}, {23,241}, {146,241}}, {{146,242}, {23,242}, {147,242}}, {{23,243}, {22,243}, {147,243}}, {{147,244}, {22,244}, {46,244}}, {{22,245}, {6,245}, {46,245}}, {{27,246}, {42,246}, {6,246}}, {{26,247}, {148,247}, {27,247}}, {{25,248}, {149,248}, {26,248}}, {{27,249}, {148,249}, {42,249}}, {{148,250}, {41,250}, {42,250}}, {{26,251}, {149,251}, {148,251}}, {{149,252}, {150,252}, {148,252}}, {{148,253}, {150,253}, {41,253}}, {{150,254}, {40,254}, {41,254}}, {{25,255}, {36,255}, {149,255}}, {{36,256}, {35,256}, {149,256}}, {{149,257}, {35,257}, {150,257}}, {{35,258}, {34,258}, {150,258}}, {{150,259}, {34,259}, {40,259}}, {{34,260}, {5,260}, {40,260}}, {{34,261}, {39,261}, {5,261}}, {{35,262}, {151,262}, {34,262}}, {{36,263}, {152,263}, {35,263}}, {{34,264}, {151,264}, {39,264}}, {{151,265}, {38,265}, {39,265}}, {{35,266}, {152,266}, {151,266}}, {{152,267}, {153,267}, {151,267}}, {{151,268}, {153,268}, {38,268}}, {{153,269}, {37,269}, {38,269}}, {{36,270}, {30,270}, {152,270}}, {{30,271}, {29,271}, {152,271}}, {{152,272}, {29,272}, {153,272}}, {{29,273}, {28,273}, {153,273}}, {{153,274}, {28,274}, {37,274}}, {{28,275}, {4,275}, {37,275}}, {{28,276}, {33,276}, {4,276}}, {{29,277}, {154,277}, {28,277}}, {{30,278}, {155,278}, {29,278}}, {{28,279}, {154,279}, {33,279}}, {{154,280}, {32,280}, {33,280}}, {{29,281}, {155,281}, {154,281}}, {{155,282}, {156,282}, {154,282}}, {{154,283}, {156,283}, {32,283}}, {{156,284}, {31,284}, {32,284}}, {{30,285}, {15,285}, {155,285}}, {{15,286}, {14,286}, {155,286}}, {{155,287}, {14,287}, {156,287}}, {{14,288}, {13,288}, {156,288}}, {{156,289}, {13,289}, {31,289}}, {{13,290}, {3,290}, {31,290}}, {{22,291}, {27,291}, {6,291}}, {{23,292}, {157,292}, {22,292}}, {{24,293}, {158,293}, {23,293}}, {{22,294}, {157,294}, {27,294}}, {{157,295}, {26,295}, {27,295}}, {{23,296}, {158,296}, {157,296}}, {{158,297}, {159,297}, {157,297}}, {{157,298}, {159,298}, {26,298}}, {{159,299}, {25,299}, {26,299}}, {{24,300}, {18,300}, {158,300}}, {{18,301}, {17,301}, {158,301}}, {{158,302}, {17,302}, {159,302}}, {{17,303}, {16,303}, {159,303}}, {{159,304}, {16,304}, {25,304}}, {{16,305}, {1,305}, {25,305}}, {{13,306}, {21,306}, {3,306}}, {{14,307}, {160,307}, {13,307}}, {{15,308}, {161,308}, {14,308}}, {{13,309}, {160,309}, {21,309}}, {{160,310}, {20,310}, {21,310}}, {{14,311}, {161,311}, {160,311}}, {{161,312}, {162,312}, {160,312}}, {{160,313}, {162,313}, {20,313}}, {{162,314}, {19,314}, {20,314}}, {{15,315}, {16,315}, {161,315}}, {{16,316}, {17,316}, {161,316}}, {{161,317}, {17,317}, {162,317}}, {{17,318}, {18,318}, {162,318}}, {{162,319}, {18,319}, {19,319}}, {{18,320}, {2,320}, {19,320}} }; c_Graficos.nuevo_objeto(PLANO_VERTICES, PLANO_VERTICES_NORMALES, PLANO_CARAS); c_Graficos.nuevo_objeto(CUBO_VERTICES, CUBO_VERTICES_NORMALES, CUBO_CARAS); c_Graficos.nuevo_objeto(ESFERA_VERTICES, ESFERA_VERTICES_NORMALES, ESFERA_CARAS); c_Graficos.nuevo_objeto(TETERA_VERTICES, TETERA_VERTICES_NORMALES, TETERA_CARAS); c_Graficos.nuevo_objeto(SUZANNE_VERTICES, SUZANNE_VERTICES_NORMALES, SUZANNE_CARAS); }
Canvas not supported.
Programado por
Sager
33 votos
2040 descargas
597 usos