########################################################################### # # "Man" # # This file is in three parts. The first is the model of the man including # the anchors positioned at the joints. This model is colored and # textured but not animated. The second part contains the animation # curves for making the man run. Also in this section are the objects to # make a brick wall, gravel path, and grass for the animation. The third # part is a bunch of show commands. In this part there are two groups # of shows, one to show the base man and the other to show the animated man. # # Author -- Thomas V. Thompson II # Date ---- July 10, 1995 # ########################################################################### # # HEIGHT - specifies the height in feet of the man # height = 0.8; # # PART ONE # { # # right foot # axis_1 = lineThru2Pts(pt(0.0,-0.259,0.0),pt(0.0,-0.259,1.0)); profile_1 = uniopcrv(3,array(pt(0.25,-0.259,-0.31),pt(0.25,-0.259,0.0), pt(0.3325,-0.259,0.3985),pt(0.22625,-0.259,1.026), pt(0.0,-0.259,1.266))); r_foot_a = reverseobj(srfOfRevolution( axis_1, profile_1, 1 )); cutter_1 = objTransform(flatSrf( 2, 2, 2, 2 ),rx( -90 ),ty(-0.23),tz(0.5)); r_foot = combineShells( r_foot_a, cutter_1, "-" ); # # left foot # axis_2 = lineThru2Pts(pt(0.0,-0.259,0.0),pt(0.0,-0.259,1.0)); profile_2 = uniopcrv(3,array(pt(0.25,-0.259,-0.31),pt(0.25,-0.259,0.0), pt(0.3325,-0.259,0.3985),pt(0.22625,-0.259,1.026), pt(0.0,-0.259,1.266))); l_foot_a = reverseobj(srfOfRevolution( axis_2, profile_2, 1 )); cutter_2 = objTransform(flatSrf( 2, 2, 2, 2 ),rx( -90 ),ty(-0.23),tz(0.5)); l_foot = combineShells( l_foot_a, cutter_2, "-" ); # # right ankle # r_ankle = makeGeom(sphere(pt(0.0,0.0,0.0),0.199)); # # left ankle # l_ankle = makeGeom(sphere(pt(0.0,0.0,0.0),0.199)); # # right lower leg # axis_3 = lineThru2Pts(pt(0.0,0.0,0.0),pt(0.0,1.0,0.0)); profile_3 = uniopcrv(3,array(pt(0.29175,0.0,0.0),pt(0.3365,-.5195,0.0), pt(0.27025,-1.512,0.0),pt(0.24825,-2.0,0.0), pt(0.23925,-2.622,0.0))); r_lleg = srfOfRevolution( axis_3, profile_3, 1 ); # # left lower leg # axis_4 = lineThru2Pts(pt(0.0,0.0,0.0),pt(0.0,1.0,0.0)); profile_4 = uniopcrv(3,array(pt(0.29175,0.0,0.0),pt(0.3365,-.5195,0.0), pt(0.27025,-1.512,0.0),pt(0.24825,-2.0,0.0), pt(0.23925,-2.622,0.0))); l_lleg = srfOfRevolution( axis_4, profile_4, 1 ); # # right knee # r_knee = makeGeom(sphere(pt(0.0,0.0,0.0),0.23275)); # # left knee # l_knee = makeGeom(sphere(pt(0.0,0.0,0.0),0.23275)); # # right upper leg # axis_5 = lineThru2Pts(pt(0.0,0.0,0.0),pt(0.0,1.0,0.0)); profile_5 = uniopcrv(3,array(pt(0.3865,0.0,0.0),pt(0.42525,-0.5935,0.0), pt(0.3665,-1.1440,0.0),pt(0.2865,-1.783,0.0), pt(0.2885,-2.2935,0.0))); r_uleg = srfOfRevolution( axis_5, profile_5, 1 ); # # left upper leg # axis_6 = lineThru2Pts(pt(0.0,0.0,0.0),pt(0.0,1.0,0.0)); profile_6 = uniopcrv(3,array(pt(0.3865,0.0,0.0),pt(0.42525,-0.5935,0.0), pt(0.3665,-1.1440,0.0),pt(0.2865,-1.783,0.0), pt(0.2885,-2.2935,0.0))); l_uleg = srfOfRevolution( axis_6, profile_6, 1 ); # # right hip # r_hip = makeGeom(sphere(pt(0.0,0.0,0.0),0.349)); # # left hip # l_hip = makeGeom(sphere(pt(0.0,0.0,0.0),0.349)); # # pelvis # axis_7 = lineThru2Pts(pt(0.0,0.0,0.0),pt(0.0,1.0,0.0)); profile_7 = reverseobj(uniopcrv(3,array(pt(0.55225,0.632,0.0), pt(0.7795,0.0,0.0), pt(0.75175,-0.7765,0.0)))); profile_7 = reverseobj(uniopcrv(3,array(pt(0.6,0.632,0.0), pt(0.83,0.0,0.0), pt(0.8,-0.7765,0.0)))); pelvis_a = reverseobj(srfOfRevolution( axis_7, profile_7, 1 )); cutter_3 = objTransform(flatSrf(2,2,2,2),rx(-20),txyz(0.0,-0.51,-0.6)); pelvis_b = combineShells( pelvis_a, cutter_3, "-" ); cutter_4 = objTransform(flatSrf(2,2,2,2),rx(190),txyz(0,-0.2,0.6)); pelvis = combineShells( pelvis_b, cutter_4, "-", true, 0.001 ); # # waist # waist = makeGeom(sphere(pt(0.0,0.0,0.0),0.5125)); # # neck # neck = makeGeom(sphere(pt(0.0,0.0,0.0),0.32875)); # # head # axis_8 = lineThru2Pts(pt(0.0,0.0,0.0),pt(0.0,1.0,0.0)); profile_8 = uniopcrv(3,array(pt(0.0,1.8065,0.0), pt(0.05,1.8065,0.0),pt(0.4245,1.756,0.0), pt(0.60375,1.429,0.0),pt(0.456,0.4520,0.0), pt(0.36525,0.0,0.0))); head = srfOfRevolution( axis_8, profile_8, "bottom" ); # # right shoulder # r_shoulder = makeGeom(sphere(pt(0.0,0.0,0.0),0.3538)); # # left shoulder # l_shoulder = makeGeom(sphere(pt(0.0,0.0,0.0),0.3538)); # # right upper arm # axis_9 = lineThru2Pts(pt(0.0,0.0,0.0),pt(0.0,1.0,0.0)); profile_9 = uniopcrv(3,array(pt(0.245,0.0,0.0),pt(0.3008,-0.543,0.0), pt(0.2593,-1.102,0.0),pt(0.2298,-1.39,0.0), pt(0.2082,-1.7265,0.0))); r_uarm = srfOfRevolution( axis_9, profile_9, 1 ); # # left upper arm # axis_10 = lineThru2Pts(pt(0.0,0.0,0.0),pt(0.0,1.0,0.0)); profile_10 = uniopcrv(3,array(pt(0.245,0.0,0.0),pt(0.3008,-0.543,0.0), pt(0.2593,-1.102,0.0),pt(0.2298,-1.39,0.0), pt(0.2082,-1.7265,0.0))); l_uarm = srfOfRevolution( axis_10, profile_10, 1 ); # # right elbow # r_elbow = makeGeom(sphere(pt(0.0,0.0,0.0),0.23675)); # # left elbow # l_elbow = makeGeom(sphere(pt(0.0,0.0,0.0),0.23675)); # # right lower arm # axis_11 = lineThru2Pts(pt(0.0,0.0,0.0),pt(0.0,1.0,0.0)); profile_11 = uniopcrv(3,array(pt(0.249,0.0,0.0),pt(0.28875,-0.623,0.0), pt(0.288,-0.825,0.0),pt(0.2095,-1.6950,0.0))); r_larm = srfOfRevolution( axis_11, profile_11, 1 ); # # left lower arm # axis_12 = lineThru2Pts(pt(0.0,0.0,0.0),pt(0.0,1.0,0.0)); profile_12 = uniopcrv(3,array(pt(0.249,0.0,0.0),pt(0.28875,-0.623,0.0), pt(0.288,-0.825,0.0),pt(0.2095,-1.6950,0.0))); l_larm = srfOfRevolution( axis_12, profile_12, 1 ); # # right wrist # r_wrist = makeGeom(sphere(pt(0.0,0.0,0.0),0.19425)); # # left wrist # l_wrist = makeGeom(sphere(pt(0.0,0.0,0.0),0.19425)); # # right hand # r_hand_e = makegeom(ellipsoid(pt(0.0,0.0,0.0),vec(0.0,0.2883,0.0),0.575)); cutter_5 = objTransform(flatSrf(2,2,2,2),rx(-15)); r_hand = combineShells( r_hand_e, cutter_5, "-" ); # # left hand # l_hand_e = makegeom(ellipsoid(pt(0.0,0.0,0.0),vec(0.0,0.2883,0.0),0.575)); cutter_6 = objTransform(flatSrf(2,2,2,2),rx(-15)); l_hand = combineShells( l_hand_e, cutter_6, "-" ); # # torso # torso_s = surface(3,"ec_periodic","kv_uniform",3,"ec_open","kv_uniform", array(array(pt(0.0,0.0,0.0),pt(0.0,0.0,0.0), pt(0.0,0.0,0.0),pt(0.0,0.0,0.0), pt(0.0,0.0,0.0)), array(pt(0.48,0.0,0.48),pt(0.48,0.0,-0.48), pt(-0.48,0.0,-0.48),pt(-0.48,0.0,0.48), pt(0.0,0.0,0.48)), array(pt(0.5548,0.0,0.5548),pt(0.5548,0.0,-0.5548), pt(-0.5548,0.0,-0.5548),pt(-0.5548,0.0,0.5548), pt(0.0,0.0,0.5548)), array(pt(0.5,0.75,0.7875),pt(1.0,1.2,-0.6), pt(-1.0,1.2,-0.6),pt(-0.5,0.75,0.7875), pt(0.0,0.8,0.72)), array(pt(0.8925,1.8230,0.4105),pt(0.8665,1.8380,-0.64), pt(-0.8665,1.8380,-0.64),pt(-0.8925,1.8320,0.4105), pt(0.0,1.8230,0.4105)), array(pt(0.3028,1.944,0.3028),pt(0.3028,1.944,-0.3028), pt(-0.3028,1.944,-0.3028),pt(-0.3028,1.944,0.3028), pt(0.0,1.944,0.3028)), array(pt(0.2,1.944,0.2),pt(0.2,1.944,-0.2), pt(-0.2,1.944,-0.2),pt(-0.2,1.944,0.2), pt(0.0,1.9,0.2)), array(pt(0.0,1.944,0.0),pt(0.0,1.944,0.0), pt(0.0,1.944,0.0),pt(0.0,1.944,0.0), pt(0.0,1.944,0.0)))); torso = reverseobj(torso_s); o_torso = objtransform(torso,txyz(0.0,0.829,0.147)); # # place the anchors for the joints # r_ankle_j = zanchorfrompt(pt(-0.5555,-6.52,0.0)); l_ankle_j = zanchorfrompt(pt(0.5555,-6.52,0.0)); r_knee_j = zanchorfrompt(pt(-0.5555,-3.74,0.0)); l_knee_j = zanchorfrompt(pt(0.5555,-3.74,0.0)); r_hip_j = zanchorfrompt(pt(-0.5555,-1.15,0.0)); l_hip_j = zanchorfrompt(pt(0.5555,-1.15,0.0)); waist_j = zanchorfrompt(pt(0.0,0.606,0.147)); neck_j = zanchorfrompt(pt(0.0,2.8945,0.147)); r_shoulder_j = zanchorfrompt(pt(-1.11,2.28,0.147)); l_shoulder_j = zanchorfrompt(pt(1.11,2.28,0.147)); r_elbow_j = zanchorfrompt(pt(-1.11,0.1215,0.147)); l_elbow_j = zanchorfrompt(pt(1.11,0.1215,0.147)); r_wrist_j = zanchorfrompt(pt(-1.11,-1.8705,0.147)); l_wrist_j = zanchorfrompt(pt(1.11,-1.8705,0.147)); # # positioned pieces - add whatever transforms you want BEFORE the sg(height) # o_r_foot = instance(r_foot,txyz(-0.5555,-6.72,0.0),sg(height)); o_l_foot = instance(l_foot,txyz(0.5555,-6.72,0.0),sg(height)); o_r_ankle = instance(r_ankle,ry(-89),txyz(-0.5555,-6.52,0.0),sg(height)); o_l_ankle = instance(l_ankle,ry(76),txyz(0.5555,-6.52,0.0),sg(height)); o_r_lleg = instance(r_lleg,ry(75),txyz(-0.5555,-3.83,0.0),sg(height)); o_l_lleg = instance(l_lleg,ry(-120),txyz(0.5555,-3.83,0.0),sg(height)); o_r_knee = instance(r_knee,ry(69),txyz(-0.5555,-3.74,0.0),sg(height)); o_l_knee = instance(l_knee,ry(-97),txyz(0.5555,-3.74,0.0),sg(height)); o_r_uleg = instance(r_uleg,ry(162),txyz(-0.5555,-1.32,0.0),sg(height)); o_l_uleg = instance(l_uleg,ry(-15),txyz(0.5555,-1.32,0.0),sg(height)); o_r_hip = instance(r_hip,ry(56),txyz(-0.5555,-1.15,0.0),sg(height)); o_l_hip = instance(l_hip,ry(-29),txyz(0.5555,-1.15,0.0),sg(height)); o_pelvis = instance(pelvis,rx(10),txyz(0.0,0.0,0.0),sg(height)); o_waist = instance(waist,txyz(0.0,0.606,0.147),sg(height)); o_torso = instance(torso,txyz(0.0,0.829,0.147),sg(height)); o_neck = instance(neck,txyz(0.0,2.8945,0.147),sg(height)); o_head = instance(head,txyz(0.0,3.1,0.147),sg(height)); o_r_shoulder = instance(r_shoulder,ry(78),txyz(-1.11,2.28,.147),sg(height)); o_l_shoulder = instance(l_shoulder,ry(-39),txyz(1.11,2.28,.147),sg(height)); o_r_uarm = instance(r_uarm,ry(81),txyz(-1.11,1.9945,0.147),sg(height)); o_l_uarm = instance(l_uarm,ry(-32),txyz(1.11,1.9945,0.147),sg(height)); o_r_elbow = instance(r_elbow,ry(-97),txyz(-1.11,0.1215,0.147),sg(height)); o_l_elbow = instance(l_elbow,ry(102),txyz(1.11,0.1215,0.147),sg(height)); o_r_larm = instance(r_larm,ry(-34),txyz(-1.11,-0.0585,0.147),sg(height)); o_l_larm = instance(l_larm,ry(75),txyz(1.11,-0.0585,0.147),sg(height)); o_r_wrist = instance(r_wrist,ry(-46),txyz(-1.11,-1.8705,0.147),sg(height)); o_l_wrist = instance(l_wrist,ry(52),txyz(1.11,-1.8705,0.147),sg(height)); o_r_hand = instance(r_hand,txyz(-1.11,-2.5,0.147),sg(height)); o_l_hand = instance(l_hand,txyz(1.11,-2.5,0.147),sg(height)); setColor(o_head,"Tan"); setColor(o_neck,"Tan"); setColor(o_torso,"Tan"); setColor(o_r_shoulder,"Tan"); setColor(o_l_shoulder,"Tan"); setColor(o_r_uarm,"Tan"); setColor(o_l_uarm,"Tan"); setColor(o_r_elbow,"Tan"); setColor(o_l_elbow,"Tan"); setColor(o_r_larm,"Tan"); setColor(o_l_larm,"Tan"); setColor(o_r_wrist,"Tan"); setColor(o_l_wrist,"Tan"); setColor(o_r_hand,"Tan"); setColor(o_l_hand,"Tan"); setColor(o_waist,"Tan"); setColor(o_pelvis,"Tan"); setColor(o_r_hip,"Tan"); setColor(o_l_hip,"Tan"); setColor(o_r_uleg,"Tan"); setColor(o_l_uleg,"Tan"); setColor(o_r_knee,"Tan"); setColor(o_l_knee,"Tan"); setColor(o_r_lleg,"Tan"); setColor(o_l_lleg,"Tan"); setColor(o_r_ankle,"Tan"); setColor(o_l_ankle,"Tan"); setColor(o_r_foot,"Tan"); setColor(o_l_foot,"Tan"); setTexture(o_head,"wood_grain2.rle"); setTexture(o_neck,"wood_grain2.rle"); setTexture(o_torso,"wood_grain2.rle"); setTexture(o_r_shoulder,"wood_grain2.rle"); setTexture(o_l_shoulder,"wood_grain2.rle"); setTexture(o_r_uarm,"wood_grain2.rle"); setTexture(o_l_uarm,"wood_grain2.rle"); setTexture(o_r_elbow,"wood_grain2.rle"); setTexture(o_l_elbow,"wood_grain2.rle"); setTexture(o_r_larm,"wood_grain2.rle"); setTexture(o_l_larm,"wood_grain2.rle"); setTexture(o_r_wrist,"wood_grain2.rle"); setTexture(o_l_wrist,"wood_grain2.rle"); setTexture(o_r_hand,"wood_grain2.rle"); setTexture(o_l_hand,"wood_grain2.rle"); setTexture(o_waist,"wood_grain2.rle"); setTexture(o_pelvis,"wood_grain2.rle"); setTexture(o_r_hip,"wood_grain2.rle"); setTexture(o_l_hip,"wood_grain2.rle"); setTexture(o_r_uleg,"wood_grain2.rle"); setTexture(o_l_uleg,"wood_grain2.rle"); setTexture(o_r_knee,"wood_grain2.rle"); setTexture(o_l_knee,"wood_grain2.rle"); setTexture(o_r_lleg,"wood_grain2.rle"); setTexture(o_l_lleg,"wood_grain2.rle"); setTexture(o_r_ankle,"wood_grain2.rle"); setTexture(o_l_ankle,"wood_grain2.rle"); setTexture(o_r_foot,"wood_grain2.rle"); setTexture(o_l_foot,"wood_grain2.rle"); } # # PART TWO # { # # background and path # o_path = objTransform(flatSrf( 2, 2, 2, 2 ),rx( -90 ), sx(3),sz(3),ty(-6.83)); o_back = objTransform(flatSrf( 2, 2, 2, 2 ),ry( 90 ),sy(6),sz(6)); o_div = makegeom(box(pt(-5.1,-7,0),vec(0.5,0,0),vec(0,12,0),vec(0,0,0.5))); o_top = makegeom(box(pt(-6,5,67),vec(2,0,0),vec(0,0.5,0),vec(0,0,-134))); o_sky = objTransform(flatSrf(2,2,2,2),ry(90),sy(10),sz(49), txyz(-7,15,-16)); o_grass = objTransform(flatSrf(2,2,2,2),rx(-90),sx(9),sz(6), txyz(3.8,-6.84,12)); # # animation curves for running # run_y_r_wrist = profile(pt(0,-90),pt(11,-90)); run_y_l_wrist = profile(pt(0,90),pt(11,90)); run_z_r_wrist = profile(pt(0,10),pt(11,10)); run_z_l_wrist = profile(pt(0,-10),pt(11,-10)); run_x_r_elbow = uniopcrv(3,array(pt(0,-80),pt(2,-100), pt(4,-80),pt(6,-100), pt(8,-80),pt(10,-100),pt(11,0))); run_x_l_elbow = uniopcrv(3,array(pt(0,-100),pt(2,-80), pt(4,-100),pt(6,-80), pt(8,-100),pt(10,-80),pt(11,0))); run_x_r_shoulder = uniopcrv(3,array(pt(0,-40),pt(1,0),pt(2,80),pt(3,0), pt(4,-40),pt(5,0),pt(6,80),pt(7,0), pt(8,-40),pt(9,0),pt(10,80),pt(11,0))); run_x_l_shoulder = uniopcrv(3,array(pt(0,80),pt(1,0),pt(2,-40),pt(3,0), pt(4,80),pt(5,0),pt(6,-40),pt(7,0), pt(8,80),pt(9,0),pt(10,-40),pt(11,0))); run_x_neck = profile(pt(0,-10),pt(10,-10),pt(11,0)); run_x_waist = profile(pt(0,15),pt(10,15),pt(11,0)); run_x_r_ankle = profile(pt(0,40),pt(1,40),pt(2,-10),pt(3,-10), pt(4,40),pt(5,40),pt(6,-10),pt(7,-10), pt(8,40),pt(9,40),pt(10,-10),pt(11,0)); run_x_l_ankle = profile(pt(0,-10),pt(1,-10),pt(2,40),pt(3,40), pt(4,-10),pt(5,-10),pt(6,40),pt(7,40), pt(8,-10),pt(9,-10),pt(10,40),pt(11,0)); run_x_r_knee = uniopcrv(3,array(pt(0,20),pt(1,100),pt(2,70),pt(3,10), pt(4,20),pt(5,100),pt(6,70),pt(7,10), pt(8,20),pt(9,100),pt(10,70),pt(11,0))); run_x_l_knee = uniopcrv(3,array(pt(0,70),pt(1,10),pt(2,20),pt(3,100), pt(4,70),pt(5,10),pt(6,20),pt(7,100), pt(8,70),pt(9,10),pt(10,20),pt(11,0))); run_x_r_hip = uniopcrv(3,array(pt(0,70),pt(1,0),pt(2,-90),pt(3,0), pt(4,70),pt(5,0),pt(6,-90),pt(7,0), pt(8,70),pt(9,0),pt(10,-90),pt(11,0))); run_x_l_hip = uniopcrv(3,array(pt(0,-90),pt(1,0),pt(2,70),pt(3,0), pt(4,-90),pt(5,0),pt(6,70),pt(7,0), pt(8,-90),pt(9,0),pt(10,70),pt(11,0))); run_y_pelvis = uniopcrv(3,array(pt(0,0.6),pt(1,0),pt(2,0.6),pt(3,0), pt(4,0.6),pt(5,0),pt(6,0.6),pt(7,0), pt(8,0.6),pt(9,0),pt(10,0.6),pt(11,0))); run_z_path = profile(pt(0,0),pt(5,0),pt(9,-12),pt(11,-30)); run_z_back = profile(pt(0,0),pt(5,0),pt(9,-12),pt(11,-30)); run_z_div = profile(pt(0,0),pt(5,0),pt(9,-12),pt(11,-30)); run_z_grass = profile(pt(0,0),pt(5,0),pt(9,-12),pt(11,-30)); # # the animated running man # i_r_hand = instance(o_r_hand,ry(run_y_r_wrist,r_wrist_j), rz(run_z_r_wrist,r_wrist_j), rx(run_x_r_elbow,r_elbow_j), rx(run_x_r_shoulder,r_shoulder_j), rx(run_x_waist,waist_j), ty(run_y_pelvis)); i_l_hand = instance(o_l_hand,ry(run_y_l_wrist,l_wrist_j), rz(run_z_l_wrist,l_wrist_j), rx(run_x_l_elbow,l_elbow_j), rx(run_x_l_shoulder,l_shoulder_j), rx(run_x_waist,waist_j), ty(run_y_pelvis)); i_r_wrist = instance(o_r_wrist,ry(run_y_r_wrist,r_wrist_j), rx(run_x_r_elbow,r_elbow_j), rx(run_x_r_shoulder,r_shoulder_j), rx(run_x_waist,waist_j), ty(run_y_pelvis)); i_l_wrist = instance(o_l_wrist,ry(run_y_l_wrist,l_wrist_j), rx(run_x_l_elbow,l_elbow_j), rx(run_x_l_shoulder,l_shoulder_j), rx(run_x_waist,waist_j), ty(run_y_pelvis)); i_r_larm = instance(o_r_larm,rx(run_x_r_elbow,r_elbow_j), rx(run_x_r_shoulder,r_shoulder_j), rx(run_x_waist,waist_j), ty(run_y_pelvis)); i_l_larm = instance(o_l_larm,rx(run_x_l_elbow,l_elbow_j), rx(run_x_l_shoulder,l_shoulder_j), rx(run_x_waist,waist_j), ty(run_y_pelvis)); i_r_elbow = instance(o_r_elbow,rx(run_x_r_elbow,r_elbow_j), rx(run_x_r_shoulder,r_shoulder_j), rx(run_x_waist,waist_j), ty(run_y_pelvis)); i_l_elbow = instance(o_l_elbow,rx(run_x_l_elbow,l_elbow_j), rx(run_x_l_shoulder,l_shoulder_j), rx(run_x_waist,waist_j), ty(run_y_pelvis)); i_r_uarm = instance(o_r_uarm,rx(run_x_r_shoulder,r_shoulder_j), rx(run_x_waist,waist_j), ty(run_y_pelvis)); i_l_uarm = instance(o_l_uarm,rx(run_x_l_shoulder,l_shoulder_j), rx(run_x_waist,waist_j), ty(run_y_pelvis)); i_r_shoulder = instance(o_r_shoulder,rx(run_x_r_shoulder,r_shoulder_j), rx(run_x_waist,waist_j), ty(run_y_pelvis)); i_l_shoulder = instance(o_l_shoulder,rx(run_x_l_shoulder,l_shoulder_j), rx(run_x_waist,waist_j), ty(run_y_pelvis)); i_head = instance(o_head,rx(run_x_neck,neck_j), rx(run_x_waist,waist_j), ty(run_y_pelvis)); i_neck = instance(o_neck,rx(run_x_neck,neck_j), rx(run_x_waist,waist_j), ty(run_y_pelvis)); i_torso = instance(o_torso,rx(run_x_waist,waist_j), ty(run_y_pelvis)); i_waist = instance(o_waist,rx(run_x_waist,waist_j), ty(run_y_pelvis)); i_pelvis = instance(o_pelvis,ty(run_y_pelvis)); i_r_foot = instance(o_r_foot,rx(run_x_r_ankle,r_ankle_j), rx(run_x_r_knee,r_knee_j), rx(run_x_r_hip,r_hip_j), ty(run_y_pelvis)); i_l_foot = instance(o_l_foot,rx(run_x_l_ankle,l_ankle_j), rx(run_x_l_knee,l_knee_j), rx(run_x_l_hip,l_hip_j), ty(run_y_pelvis)); i_r_ankle = instance(o_r_ankle,rx(run_x_r_ankle,r_ankle_j), rx(run_x_r_knee,r_knee_j), rx(run_x_r_hip,r_hip_j), ty(run_y_pelvis)); i_l_ankle = instance(o_l_ankle,rx(run_x_l_ankle,l_ankle_j), rx(run_x_l_knee,l_knee_j), rx(run_x_l_hip,l_hip_j), ty(run_y_pelvis)); i_r_lleg = instance(o_r_lleg,rx(run_x_r_knee,r_knee_j), rx(run_x_r_hip,r_hip_j), ty(run_y_pelvis)); i_l_lleg = instance(o_l_lleg,rx(run_x_l_knee,l_knee_j), rx(run_x_l_hip,l_hip_j), ty(run_y_pelvis)); i_r_knee = instance(o_r_knee,rx(run_x_r_knee,r_knee_j), rx(run_x_r_hip,r_hip_j), ty(run_y_pelvis)); i_l_knee = instance(o_l_knee,rx(run_x_l_knee,l_knee_j), rx(run_x_l_hip,l_hip_j), ty(run_y_pelvis)); i_r_uleg = instance(o_r_uleg,rx(run_x_r_hip,r_hip_j), ty(run_y_pelvis)); i_l_uleg = instance(o_l_uleg,rx(run_x_l_hip,l_hip_j), ty(run_y_pelvis)); i_r_hip = instance(o_r_hip,rx(run_x_r_hip,r_hip_j), ty(run_y_pelvis)); i_l_hip = instance(o_l_hip,rx(run_x_l_hip,l_hip_j), ty(run_y_pelvis)); i_path_1 = instance(o_path,tz(run_z_path),tz(-54)); i_path_2 = instance(o_path,tz(run_z_path),tz(-48)); i_path_3 = instance(o_path,tz(run_z_path),tz(-42)); i_path_4 = instance(o_path,tz(run_z_path),tz(-36)); i_path_5 = instance(o_path,tz(run_z_path),tz(-30)); i_path_6 = instance(o_path,tz(run_z_path),tz(-24)); i_path_7 = instance(o_path,tz(run_z_path),tz(-18)); i_path_8 = instance(o_path,tz(run_z_path),tz(-12)); i_path_9 = instance(o_path,tz(run_z_path),tz(-6)); i_path_10 = instance(o_path,tz(run_z_path)); i_path_11 = instance(o_path,tz(run_z_path),tz(6)); i_path_12 = instance(o_path,tz(run_z_path),tz(12)); i_path_13 = instance(o_path,tz(run_z_path),tz(18)); i_path_14 = instance(o_path,tz(run_z_path),tz(24)); i_path_15 = instance(o_path,tz(run_z_path),tz(30)); i_path_16 = instance(o_path,tz(run_z_path),tz(36)); i_path_17 = instance(o_path,tz(run_z_path),tz(42)); i_path_18 = instance(o_path,tz(run_z_path),tz(48)); i_path_19 = instance(o_path,tz(run_z_path),tz(54)); i_back_0 = instance(o_back,tz(run_z_back),txyz(-5,-1,-60)); i_back_1 = instance(o_back,tz(run_z_back),txyz(-5,-1,-48)); i_back_2 = instance(o_back,tz(run_z_back),txyz(-5,-1,-36)); i_back_3 = instance(o_back,tz(run_z_back),txyz(-5,-1,-24)); i_back_4 = instance(o_back,tz(run_z_back),txyz(-5,-1,-12)); i_back_5 = instance(o_back,tz(run_z_back),txyz(-5,-1,0)); i_back_6 = instance(o_back,tz(run_z_back),txyz(-5,-1,12)); i_back_7 = instance(o_back,tz(run_z_back),txyz(-5,-1,24)); i_back_8 = instance(o_back,tz(run_z_back),txyz(-5,-1,36)); i_back_9 = instance(o_back,tz(run_z_back),txyz(-5,-1,48)); i_back_10 = instance(o_back,tz(run_z_back),txyz(-5,-1,60)); i_top = o_top; i_div_0 = instance(o_div,tz(run_z_div),tz(-66)); i_div_1 = instance(o_div,tz(run_z_div),tz(-54)); i_div_2 = instance(o_div,tz(run_z_div),tz(-42)); i_div_3 = instance(o_div,tz(run_z_div),tz(-30)); i_div_4 = instance(o_div,tz(run_z_div),tz(-18)); i_div_5 = instance(o_div,tz(run_z_div),tz(-6)); i_div_6 = instance(o_div,tz(run_z_div),tz(6)); i_div_7 = instance(o_div,tz(run_z_div),tz(18)); i_div_8 = instance(o_div,tz(run_z_div),tz(30)); i_div_9 = instance(o_div,tz(run_z_div),tz(42)); i_div_10 = instance(o_div,tz(run_z_div),tz(54)); i_div_11 = instance(o_div,tz(run_z_div),tz(66)); i_sky = o_sky; i_grass_0 = instance(o_grass,tz(run_z_grass),txyz(0,0,-60)); i_grass_1 = instance(o_grass,tz(run_z_grass),txyz(0,0,-48)); i_grass_2 = instance(o_grass,tz(run_z_grass),txyz(0,0,-36)); i_grass_3 = instance(o_grass,tz(run_z_grass),txyz(0,0,-24)); i_grass_4 = instance(o_grass,tz(run_z_grass),txyz(0,0,-12)); i_grass_5 = instance(o_grass,tz(run_z_grass),txyz(0,0,0)); i_grass_6 = instance(o_grass,tz(run_z_grass),txyz(0,0,12)); i_grass_7 = instance(o_grass,tz(run_z_grass),txyz(0,0,24)); i_grass_8 = instance(o_grass,tz(run_z_grass),txyz(0,0,36)); i_grass_9 = instance(o_grass,tz(run_z_grass),txyz(0,0,48)); i_grass_10 = instance(o_grass,tz(run_z_grass),txyz(0,0,60)); setSq(i_path_1,"Dull"); setSq(i_path_2,"Dull"); setSq(i_path_3,"Dull"); setSq(i_path_4,"Dull"); setSq(i_path_5,"Dull"); setSq(i_path_6,"Dull"); setSq(i_path_7,"Dull"); setSq(i_path_8,"Dull"); setSq(i_path_9,"Dull"); setSq(i_path_10,"Dull"); setSq(i_path_11,"Dull"); setSq(i_path_12,"Dull"); setSq(i_path_13,"Dull"); setSq(i_path_14,"Dull"); setSq(i_path_15,"Dull"); setSq(i_path_16,"Dull"); setSq(i_path_17,"Dull"); setSq(i_path_18,"Dull"); setSq(i_path_19,"Dull"); setSq(i_back_0,"Dull"); setSq(i_back_1,"Dull"); setSq(i_back_2,"Dull"); setSq(i_back_3,"Dull"); setSq(i_back_4,"Dull"); setSq(i_back_5,"Dull"); setSq(i_back_6,"Dull"); setSq(i_back_7,"Dull"); setSq(i_back_8,"Dull"); setSq(i_back_9,"Dull"); setSq(i_back_10,"Dull"); setSq(i_top,"SlightlyDull"); setSq(i_div_0,"SlightlyDull"); setSq(i_div_1,"SlightlyDull"); setSq(i_div_2,"SlightlyDull"); setSq(i_div_3,"SlightlyDull"); setSq(i_div_4,"SlightlyDull"); setSq(i_div_5,"SlightlyDull"); setSq(i_div_6,"SlightlyDull"); setSq(i_div_7,"SlightlyDull"); setSq(i_div_8,"SlightlyDull"); setSq(i_div_9,"SlightlyDull"); setSq(i_div_10,"SlightlyDull"); setSq(i_div_11,"SlightlyDull"); setSq(i_sky,"SlightlyDull"); setSq(i_grass_0,"Dull"); setSq(i_grass_1,"Dull"); setSq(i_grass_2,"Dull"); setSq(i_grass_3,"Dull"); setSq(i_grass_4,"Dull"); setSq(i_grass_5,"Dull"); setSq(i_grass_6,"Dull"); setSq(i_grass_7,"Dull"); setSq(i_grass_8,"Dull"); setSq(i_grass_9,"Dull"); setSq(i_grass_10,"Dull"); setColor(i_path_1,"LightGrey"); setColor(i_path_2,"LightGrey"); setColor(i_path_3,"LightGrey"); setColor(i_path_4,"LightGrey"); setColor(i_path_5,"LightGrey"); setColor(i_path_6,"LightGrey"); setColor(i_path_7,"LightGrey"); setColor(i_path_8,"LightGrey"); setColor(i_path_9,"LightGrey"); setColor(i_path_10,"LightGrey"); setColor(i_path_11,"LightGrey"); setColor(i_path_12,"LightGrey"); setColor(i_path_13,"LightGrey"); setColor(i_path_14,"LightGrey"); setColor(i_path_15,"LightGrey"); setColor(i_path_16,"LightGrey"); setColor(i_path_17,"LightGrey"); setColor(i_path_18,"LightGrey"); setColor(i_path_19,"LightGrey"); setColor(i_back_0,"Firebrick"); setColor(i_back_1,"Firebrick"); setColor(i_back_2,"Firebrick"); setColor(i_back_3,"Firebrick"); setColor(i_back_4,"Firebrick"); setColor(i_back_5,"Firebrick"); setColor(i_back_6,"Firebrick"); setColor(i_back_7,"Firebrick"); setColor(i_back_8,"Firebrick"); setColor(i_back_9,"Firebrick"); setColor(i_back_10,"Firebrick"); setColor(i_top,"LightGrey"); setColor(i_div_0,"LightGrey"); setColor(i_div_1,"LightGrey"); setColor(i_div_2,"LightGrey"); setColor(i_div_3,"LightGrey"); setColor(i_div_4,"LightGrey"); setColor(i_div_5,"LightGrey"); setColor(i_div_6,"LightGrey"); setColor(i_div_7,"LightGrey"); setColor(i_div_8,"LightGrey"); setColor(i_div_9,"LightGrey"); setColor(i_div_10,"LightGrey"); setColor(i_div_11,"LightGrey"); setColor(i_sky,"SkyBlue"); setColor(i_grass_0,"ForestGreen"); setColor(i_grass_1,"ForestGreen"); setColor(i_grass_2,"ForestGreen"); setColor(i_grass_3,"ForestGreen"); setColor(i_grass_4,"ForestGreen"); setColor(i_grass_5,"ForestGreen"); setColor(i_grass_6,"ForestGreen"); setColor(i_grass_7,"ForestGreen"); setColor(i_grass_8,"ForestGreen"); setColor(i_grass_9,"ForestGreen"); setColor(i_grass_10,"ForestGreen"); setTexture(i_path_1,"rocks.rle"); setTexture(i_path_2,"rocks.rle"); setTexture(i_path_3,"rocks.rle"); setTexture(i_path_4,"rocks.rle"); setTexture(i_path_5,"rocks.rle"); setTexture(i_path_6,"rocks.rle"); setTexture(i_path_7,"rocks.rle"); setTexture(i_path_8,"rocks.rle"); setTexture(i_path_9,"rocks.rle"); setTexture(i_path_10,"rocks.rle"); setTexture(i_path_11,"rocks.rle"); setTexture(i_path_12,"rocks.rle"); setTexture(i_path_13,"rocks.rle"); setTexture(i_path_14,"rocks.rle"); setTexture(i_path_15,"rocks.rle"); setTexture(i_path_16,"rocks.rle"); setTexture(i_path_17,"rocks.rle"); setTexture(i_path_18,"rocks.rle"); setTexture(i_path_19,"rocks.rle"); setTexture(i_back_0,"bricks.rle"); setTexture(i_back_1,"bricks.rle"); setTexture(i_back_2,"bricks.rle"); setTexture(i_back_3,"bricks.rle"); setTexture(i_back_4,"bricks.rle"); setTexture(i_back_5,"bricks.rle"); setTexture(i_back_6,"bricks.rle"); setTexture(i_back_7,"bricks.rle"); setTexture(i_back_8,"bricks.rle"); setTexture(i_back_9,"bricks.rle"); setTexture(i_back_10,"bricks.rle"); setTexture(i_sky,"clouds.rle"); setTexture(i_grass_0,"grass.rle"); setTexture(i_grass_1,"grass.rle"); setTexture(i_grass_2,"grass.rle"); setTexture(i_grass_3,"grass.rle"); setTexture(i_grass_4,"grass.rle"); setTexture(i_grass_5,"grass.rle"); setTexture(i_grass_6,"grass.rle"); setTexture(i_grass_7,"grass.rle"); setTexture(i_grass_8,"grass.rle"); setTexture(i_grass_9,"grass.rle"); setTexture(i_grass_10,"grass.rle"); } # # PART THREE # # # show the base man # { show(o_head); show(o_neck); show(o_torso); show(o_r_shoulder); show(o_l_shoulder); show(o_r_uarm); show(o_l_uarm); show(o_r_elbow); show(o_l_elbow); show(o_r_larm); show(o_l_larm); show(o_r_wrist); show(o_l_wrist); show(o_r_hand); show(o_l_hand); show(o_waist); show(o_pelvis); show(o_r_hip); show(o_l_hip); show(o_r_uleg); show(o_l_uleg); show(o_r_knee); show(o_l_knee); show(o_r_lleg); show(o_l_lleg); show(o_r_ankle); show(o_l_ankle); show(o_r_foot); show(o_l_foot); } # # show the runner # { show(i_head); show(i_neck); show(i_torso); show(i_r_shoulder); show(i_l_shoulder); show(i_r_uarm); show(i_l_uarm); show(i_r_elbow); show(i_l_elbow); show(i_r_larm); show(i_l_larm); show(i_r_wrist); show(i_l_wrist); show(i_r_hand); show(i_l_hand); show(i_waist); show(i_pelvis); show(i_r_hip); show(i_l_hip); show(i_r_uleg); show(i_l_uleg); show(i_r_knee); show(i_l_knee); show(i_r_lleg); show(i_l_lleg); show(i_r_ankle); show(i_l_ankle); show(i_r_foot); show(i_l_foot); show(i_path_1); show(i_path_2); show(i_path_3); show(i_path_4); show(i_path_5); show(i_path_6); show(i_path_7); show(i_path_8); show(i_path_9); show(i_path_10); show(i_path_11); show(i_path_12); show(i_path_13); show(i_path_14); show(i_path_15); show(i_path_16); show(i_path_17); show(i_path_18); show(i_path_19); show(i_back_0); show(i_back_1); show(i_back_2); show(i_back_3); show(i_back_4); show(i_back_5); show(i_back_6); show(i_back_7); show(i_back_8); show(i_back_9); show(i_back_10); show(i_top); show(i_div_0); show(i_div_1); show(i_div_2); show(i_div_3); show(i_div_4); show(i_div_5); show(i_div_6); show(i_div_7); show(i_div_8); show(i_div_9); show(i_div_10); show(i_div_11); show(i_sky); show(i_grass_0); show(i_grass_1); show(i_grass_2); show(i_grass_3); show(i_grass_4); show(i_grass_5); show(i_grass_6); show(i_grass_7); show(i_grass_8); show(i_grass_9); show(i_grass_10); } # # dump the standing guy # { dumpGeomFile( {o_r_foot,o_l_foot,o_r_ankle,o_l_ankle, o_r_lleg,o_l_lleg,o_r_knee,o_l_knee, o_r_uleg,o_l_uleg,o_r_hip,o_l_hip,o_pelvis, o_waist,o_torso,o_neck,o_head, o_r_shoulder,o_l_shoulder,o_r_uarm,o_l_uarm, o_r_elbow,o_l_elbow,o_r_larm,o_l_larm, o_r_wrist,o_l_wrist,o_r_hand,o_l_hand}, "stand.a1" ); } # # dump the running guy # { light1 = lightsource ( pt( 50, 40, 20), 1.0, 1.5 ); dumpGeomFile( {i_r_foot,i_l_foot,i_r_ankle,i_l_ankle, i_r_lleg,i_l_lleg,i_r_knee,i_l_knee, i_r_uleg,i_l_uleg,i_r_hip,i_l_hip,i_pelvis, i_waist,i_torso,i_neck,i_head, i_r_shoulder,i_l_shoulder,i_r_uarm,i_l_uarm, i_r_elbow,i_l_elbow,i_r_larm,i_l_larm, i_r_wrist,i_l_wrist,i_r_hand,i_l_hand, i_path_1,i_path_2,i_path_3,i_path_4,i_path_5, i_path_6,i_path_7,i_path_8,i_path_9,i_path_10, i_path_11,i_path_12,i_path_13,i_path_14,i_path_15, i_path_16,i_path_17,i_path_18,i_path_19, i_back_1,i_back_2,i_back_3,i_back_4,i_back_5, i_back_6,i_back_7,i_back_8,i_back_9,i_back_10, i_back_0,i_top,i_div_0,i_div_1,i_div_2,i_div_3, i_div_4,i_div_5,i_div_6,i_div_7,i_div_8, i_div_9,i_div_10,i_div_11,i_sky, i_grass_1,i_grass_2,i_grass_3,i_grass_4,i_grass_5, i_grass_6,i_grass_7,i_grass_8,i_grass_9,i_grass_10, i_grass_0,light1}, "runner.a1" ); }