// Last edited on 2007-07-23 21:18:58 by stolfi // Processed by remove-cam-lights #if (clock <= 0.5) #declare angulo_rotacao_cabeca = 0; #declare angulo_inclinacao_cabeca = 0 ; #declare angulo_abertura_braco_direito = -20 ; #declare angulo_inclinacao_braco_direito = -120*clock ; #declare angulo_inclinacao_antebraco_direito = 10 + 120*clock ; #declare angulo_abertura_braco_esquerdo = 20 + 40 * clock; #declare angulo_inclinacao_braco_esquerdo = 60 + 120 * clock; #declare angulo_inclinacao_antebraco_esquerdo = 30; #declare angulo_inclinacao_perna_direita = -30 - 40*clock; #declare angulo_inclinacao_joelho_direito = -20*clock; #declare angulo_inclinacao_perna_esquerda = 60 - 80*clock ; #declare angulo_inclinacao_joelho_esquerdo = -120 + 120*clock; #declare angulo_inclinacao_cauda = -30 + 60*clock; #declare angulo_corpo = -10 + 60*clock; #end #if (clock > 0.5) #declare angulo_rotacao_cabeca = 0; #declare angulo_inclinacao_cabeca = 20 * clock ; #declare angulo_abertura_braco_direito = -20 ; #declare angulo_inclinacao_braco_direito = -20 -80*clock ; #declare angulo_inclinacao_antebraco_direito = 80 - 20*clock ; #declare angulo_abertura_braco_esquerdo = 70 - 60 * clock; #declare angulo_inclinacao_braco_esquerdo = 220 - 200 * clock ; #declare angulo_inclinacao_antebraco_esquerdo = 40 - 20 * clock; #declare angulo_inclinacao_perna_direita = -70 + 40*clock; #declare angulo_inclinacao_joelho_direito = -20*clock; #declare angulo_inclinacao_perna_esquerda = 40 * clock; #declare angulo_inclinacao_joelho_esquerdo = -30 - 60*clock; #declare angulo_inclinacao_cauda = -30 + 60*clock; #declare angulo_corpo = 50 - 80*clock; #end background{ color rgb < 0.50, 0.50, 0.50 > } #declare tinta_pele = texture { pigment { color rgb < 0.80, 0.70, 0.55 > } finish { ambient 0.6 diffuse 0.8 phong 0.5 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 tinta_espada = texture { pigment { color rgb < 0.70, 0.70, 0.70 > } finish { ambient 0.1 diffuse 0.1 phong 10 reflection 0.9 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 espada = union { intersection { object { cylinder { < 0.00, -8.00, 0.00 >, < 0.00, 8.00, 0.0 >, 0.2 texture { tinta_espada } } } cone { <0, -2, 0>, 1 <0, 8, 0>, 0 texture { tinta_espada } } } object { cone { <0, 1, 0>, 1 <0, 2, 0>, 0 texture { tinta_espada } } } } #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 } } } object { espada translate -3.4 * z} } #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, ang_cauda) object { 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> } object { cylinder { < 0, 0, 0 >, < 0.0, -8, 0 >, 0.2 texture { tinta_pele } rotate ang_cauda * x translate <0, -0.6, 6.8> } } } } #end #macro rato_girando (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, ang_cauda, ang_corpo) object { 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, ang_cauda) rotate ang_corpo * x } #end object { chao } object { rato_girando (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, angulo_inclinacao_cauda, angulo_corpo) } // Original camera parameters: // #local cam_ctr = <0.00,4.00,8.00> // #local cam_vec = (<16.00,16.0,16.00>-<0.00,4.00,8.00>) // #local cam_sky = z #include "camlight.inc" camlight(<0.00,4.00,8.00>,<8,10,5>,25.0,z,1.0)