proc drawVacMan {} { global modelPath global vacMan spine tail head eyes leftEye rightEye wheel leftWheel rightWheel sack #### startShape VacMan animatable: {Scale $vacMan(scale) $vacMan(scale) $vacMan(scale)} animatable: {Translate $vacMan(xT) $vacMan(yT) $vacMan(zT)} animatable: {Rotate $vacMan(xR) 1 0 0} animatable: {Rotate $vacMan(yR) 0 1 0} animatable: {Rotate $vacMan(zR) 0 0 1} #### startShape Spine animatable: {Translate $spine(xT) $spine(yT) $spine(zT)} animatable: {Rotate $spine(xR) 1 0 0} animatable: {Rotate $spine(yR) 0 1 0} animatable: {Rotate $spine(zR) 0 0 1} # Z is up Rotate -90 1 0 0 #### startShape Tail animatable: {Translate 0 0 $spine(length)} animatable: {Translate $tail(xT) $tail(yT) $tail(zT)} animatable: {Rotate $tail(xR) 1 0 0} animatable: {Rotate $tail(yR) 0 1 0} animatable: {Rotate $tail(zR) 0 0 1} # The tail is a cylinder Color $tail(color) animatable: {Cylinder $tail(radius) 0 $tail(length) 360} endShape # Tail #### startShape Sack animatable: {Translate $sack(disp) 0 0} animatable: {Scale $sack(sag) $sack(width) $spine(length)} Color $sack(color) source $modelPath/sack.eve endShape # Sack # The actual spine is a cylinder Color $spine(color) Surface DPMetallic animatable: {Cylinder $spine(radius) 0 $spine(length) 360} endShape # Spine #### startShape Wheels Color $wheel(color) animatable: {Translate 0 $wheel(radius) 0} #### startShape LeftWheel animatable: {Translate 0 0 $wheel(disp)} animatable: {Torus $wheel(majorRad) $wheel(minorRad) 0 360 360} endShape # LeftWheel #### startShape RightWheel animatable: {Translate 0 0 [expr {0 - $wheel(disp)}]} animatable: {Torus $wheel(majorRad) $wheel(minorRad) 0 360 360} endShape # RightWheel endShape # Wheels #### startShape Head animatable: {Rotate $head(xR) 1 0 0} animatable: {Rotate $head(yR) 0 1 0} animatable: {Rotate $head(zR) 0 0 1} Rotate 90 0 1 0 animatable: {Translate 0 $head(height) $head(disp)} #### startShape Eyes #### startShape LeftEye animatable: {Translate [expr {0.0 - $eyes(disp_side)}] $eyes(height) $eyes(disp_forw)} source $modelPath/eye.eve endShape # LeftEye #### startShape RightEye animatable: {Translate $eyes(disp_side) $eyes(height) $eyes(disp_forw)} source $modelPath/eye.eve endShape # RightEye endShape # Eyes #### startShape Sucker animatable: {Scale $head(ssquash) $head(ssquish) 1.0} Color $head(color) animatable: {Paraboloid $head(radius) 0 \ [expr {$head(length) * 1.0}] 360} endShape # Sucker endShape # Head endShape # VacMan }