// Last edited on 2007-07-23 21:00:57 by stolfi // Processed by remove-cam-lights #declare angulo_rotacao_cabeca = 0; #declare angulo_inclinacao_cabeca = 0 ; #declare angulo_abertura_braco_direito = -90 ; #declare angulo_inclinacao_antebraco_direito = 130 ; #declare angulo_abertura_braco_esquerdo = 90; #declare angulo_inclinacao_antebraco_esquerdo = 130; #if (clock < 0.2) #declare angulo_inclinacao_braco_direito = -90; #declare angulo_inclinacao_braco_esquerdo = -90; #else #if (clock < 0.4) #declare angulo_inclinacao_braco_direito = -90 + 180 * (clock - 0.2) / 0.2; #declare angulo_inclinacao_braco_esquerdo = -90 + 180 * (clock - 0.2) / 0.2; #else #if (clock < 0.8) #declare angulo_inclinacao_braco_direito = 90; #declare angulo_inclinacao_braco_esquerdo = 90; #else #declare angulo_inclinacao_braco_direito = 90 - 180 * (clock - 0.8) / 0.2; #declare angulo_inclinacao_braco_esquerdo = 90 - 180 * (clock - 0.8) / 0.2; #end #end #end #if (clock < 0.1) #declare angulo_inclinacao_perna_direita = 00; #declare angulo_inclinacao_joelho_direito = 00; #else #if (clock < 0.2) #declare angulo_inclinacao_perna_direita = 60 * ((clock - 0.1) / 0.1); #declare angulo_inclinacao_joelho_direito = 60 * ((clock - 0.1) / 0.1); #else #if (clock < 0.3) #declare angulo_inclinacao_perna_direita = 60 - 60 * ((clock - 0.2) / 0.1); #declare angulo_inclinacao_joelho_direito = 60 - 60 * ((clock - 0.2) / 0.1); #else #declare angulo_inclinacao_perna_direita = 0; #declare angulo_inclinacao_joelho_direito = 0; #end #end #end #if (clock < 0.1) #declare angulo_inclinacao_perna_esquerda = 00; #declare angulo_inclinacao_joelho_esquerdo = 00; #else #if (clock < 0.2) #declare angulo_inclinacao_perna_esquerda = 60 * ((clock - 0.1) / 0.1); #declare angulo_inclinacao_joelho_esquerdo = 60 * ((clock - 0.1) / 0.1); #else #if (clock < 0.3) #declare angulo_inclinacao_perna_esquerda = 60 - 60 * ((clock - 0.2) / 0.1); #declare angulo_inclinacao_joelho_esquerdo = 60 - 60 * ((clock - 0.2) / 0.1); #else #if (clock < 0.4) #declare angulo_inclinacao_perna_esquerda = 75 * ((clock - 0.3) / 0.1); #declare angulo_inclinacao_joelho_esquerdo = 75 * ((clock - 0.3) / 0.1); #else #if (clock < 0.6) #declare angulo_inclinacao_perna_esquerda = 75; #declare angulo_inclinacao_joelho_esquerdo = 75; #else #if (clock < 0.7) #declare angulo_inclinacao_perna_esquerda = 75 + 15 * ((clock - 0.6) / 0.1); #declare angulo_inclinacao_joelho_esquerdo = 75 - 75 * ((clock - 0.6) / 0.1); #else #if (clock < 0.9) #declare angulo_inclinacao_perna_esquerda = 90; #declare angulo_inclinacao_joelho_esquerdo = 0; #else #declare angulo_inclinacao_perna_esquerda = 90 - 90 * ((clock - 0.9) / 0.1); #declare angulo_inclinacao_joelho_esquerdo = 0; #end #end #end #end #end #end #end #if (clock < 0.3) #declare angulo_rotacao_rato = 0; #else #declare angulo_rotacao_rato = 720 * (clock - 0.3) / 0.7; #end #declare desloca_rato_x = 0; #declare desloca_rato_y = 0; #if (clock < 0.1) #declare desloca_rato_z = 0; #else #if (clock < 0.2) #declare desloca_rato_z = -5 * ((clock - 0.1) / 0.1); #else #if (clock < 0.3) #declare desloca_rato_z = -5 + 5 * ((clock - 0.2) / 0.1); #else #declare desloca_rato_z = 0; #end #end #end background{ color rgb < 0.50, 0.50, 0.50 > } #declare tinta_pele = texture { pigment { color rgb < 0.45, 0.45, 0.50 > } finish { ambient 0.6 diffuse 0.8 phong 0.1 reflection 0.05 roughness 0.05 brilliance 1 } } #declare tinta_focinho = texture { pigment { color rgb < 0.00, 0.00, 0.00 > } finish { ambient 0.6 diffuse 0.8 phong 4 reflection 0.2 roughness 0.05 brilliance 1 } } #declare tinta_orelha = texture { pigment { color rgb < 8.00, 4.00, 3.00 > } finish { ambient 0.1 diffuse 0.1 phong 0.5 reflection 0.05 roughness 0.05 brilliance 1 } } #declare chao = box { < -8, -8, -1 >, < 8, 8, 0 > texture { pigment { color rgb < 0.10, 0.10, 0.10 > } finish { ambient 0.6 diffuse 0.8 phong 10 reflection 0.3 roughness 0.05 brilliance 10 } } } #declare cabeca_1 = cone { <0, 0, 0>, 1 <0, 4, 0>, 0 texture { tinta_pele } } #declare cabeca_2 = sphere { < 0.0, -0.40, 0 >, 1.1 texture { tinta_pele } } #declare focinho = sphere { < 0.0, 3.6, 0 >, 0.5 texture { tinta_focinho } } #declare orelha = difference { object { sphere { < 0, 0, 0 >, 1.1 texture { tinta_pele } } } object { sphere { < 0, 1.60, 0 >, 2 texture { tinta_orelha } } } } #declare cabeca = union { object { cabeca_1 } object { cabeca_2 } object { focinho } object { orelha translate <-1.2, -0.70, 0.8> } object { orelha translate <1.2, -0.70, 0.8> } } #declare pescoco = cylinder { < 0.00, 0.00, 0.00 >, < 0.00, 0.00, 1.60 >, 0.50 texture { tinta_pele } } #declare corpo = union { object { cylinder { < 0.00, 0.00, 0.00 >, < 0.00, 0.00, 3.0 >, 1.2 texture { tinta_pele } } } object { sphere { < 1.4, 0, 2.4 >, 1 texture { tinta_pele } } } object { sphere { < -1.4, 0, 2.4 >, 1 texture { tinta_pele } } } object { sphere { < 0.5, 0, -0.40 >, 1 texture { tinta_pele } } } object { sphere { < -0.5, 0, -0.40 >, 1 texture { tinta_pele } } } object { sphere { < 0, -0.6, -0.20 >, 0.8 texture { tinta_pele } } } } #declare antebraco = union { object { cylinder { < 0.00, 0.00, 0.00 >, < 0.00, 0.00, -3.0 >, 0.5 texture { tinta_pele } } } object { sphere { < 0, 0, -3.4 >, 0.8 texture { tinta_pele } } } } #macro braco (angulo_antebraco) union { cylinder { < 0.00, 0.00, 0.00 >, < 0.00, 0.00, -3.0 >, 0.5 texture { tinta_pele } } object { sphere { < 0, 0, -3.4 >, 0.8 texture { tinta_pele } } } object { antebraco rotate angulo_antebraco * x translate -3.4 * z } } #end #declare canela_peh = union { object { cylinder { < 0.00, 0.00, 0.00 >, < 0.00, 0.00, -3.0 >, 0.5 texture { tinta_pele } } } object { cylinder { < 0.00, 0.00, -3.00 >, < 0.00, 2.00, -3.0 >, 0.5 texture { tinta_pele } } } } #macro perna (angulo_canela_peh) union { cylinder { < 0.00, 0.00, 0.00 >, < 0.00, 0.00, -3.0 >, 0.5 texture { tinta_pele } } object { sphere { < 0, 0, -3.4 >, 0.8 texture { tinta_pele } } } object { canela_peh rotate angulo_canela_peh * x translate -3.4 * z } } #end #macro rato(ang_cabeca_a, ang_cabeca_b, ang_braco_d1, ang_braco_d2, ang_antebraco_d, ang_braco_e1, ang_braco_e2, ang_antebraco_e, ang_perna_d, ang_canela_peh_d, ang_perna_e, ang_canela_peh_e) union { object { cabeca rotate ang_cabeca_a * z rotate ang_cabeca_b * x translate <0, 0.4, 11.6> } object { pescoco translate <0, 0, 9.4>} object { corpo translate <0, 0, 7> } object { braco(ang_antebraco_d) rotate ang_braco_d1 * y rotate ang_braco_d2 * x translate <1.8, 0, 9.6> } object { braco(ang_antebraco_e) rotate ang_braco_e1 * y rotate ang_braco_e2 * x translate <-1.8, 0, 9.6> } object { perna(ang_canela_peh_d) rotate ang_perna_d * x translate <0.5, 0, 6.4> } object { perna(ang_canela_peh_e) rotate ang_perna_e * x translate <-0.5, 0, 6.4> }} #end object { rato (angulo_rotacao_cabeca, angulo_inclinacao_cabeca, angulo_abertura_braco_direito, angulo_inclinacao_braco_direito, angulo_inclinacao_antebraco_direito, angulo_abertura_braco_esquerdo, angulo_inclinacao_braco_esquerdo, angulo_inclinacao_antebraco_esquerdo, angulo_inclinacao_perna_direita, angulo_inclinacao_joelho_direito, angulo_inclinacao_perna_esquerda, angulo_inclinacao_joelho_esquerdo) rotate z * angulo_rotacao_rato translate } // Original camera parameters: // #local cam_ctr = <0.00,0.00,8.00> // #local cam_vec = (<0.00,30.00,12.00>-<0.00,0.00,8.00>) // #local cam_sky = z #include "camlight.inc" camlight(<0.00,0.00,8.00>,<7,10,5>,23.0,z,1.0)