%@ Language=VBScript %><% option explicit %>
<% Response.Buffer = FALSE %>
<% Response.ContentType = "image/svg+xml" %>
<%
'--- general ---
DIM ScreenWidth, ScreenHeight
DIM timeout
DIM msg '-- for errors
DIM CS_1 'Connection String
DIM SID 'sessionID
DIM RS_0, RS_1, RS_2, RS_3 'RecordSet
DIM Q_0, Q_1, Q_2, Q_3 'SQL query against the db
DIM RWline1, RWline2, RWline3
'--- stage and audience (viewer) ---
DIM StageWidth 'stage width in mm, centre=0
DIM frontStageLeft, frontStageRight, frontStageCentre
DIM frontStageInterval 'for 20 front stage riser lines - for apron grid
DIM backStageLeft, backStageRight 'horizontal distance of backstage corners
DIM backStageInterval 'connecting front stage riser lines to the backStage
DIM StageFrontFloor 'y coordinate for StageFront
DIM AspectRatio1 'screen client ratio, for assigning height of stage
DIM Scale1 'scaling
DIM ProsceniumHeight 'height above stage front that is visible
DIM frontApronHeight 'for 20 front stage riser lines
DIM maxFontSize '600
DIM StageDepth 'stage depth in mm, front=0
DIM backStage 'horizon line for back of the stage
DIM ViewDepth, ViewHeight 'viewer eye relative to stage front and stage floor
DIM horizAngle 'arctan of backstage corner / distance from viewer
DIM vertAngleF 'arctan of viewer height / stage front distance
DIM vertAngleR 'arctan of viewer height / stage rear distance
DIM viewBox_str 'the 4 params as a string
DIM viewBox_x1, viewBox_y1, viewBox_x2, viewBox_y2 '"0 0 24500 13200"
' temp params
DIM x1, x2
DIM y1, y2
DIM i1, i2
'--- header and footer text
DIM footer_x, footer_y
DIM header_x, header_y
'--- actor: limb dimensions ---
DIM left_foot_length 'box: length
DIM left_foot_width 'box: width
DIM left_foot_depth 'box: depth
DIM right_foot_length 'box: length
DIM right_foot_width 'box: width
DIM right_foot_depth 'box: depth
DIM left_ankle_diam 'ball: diameter
DIM left_ankle_pos 'ankle pos in % from toes to heel
DIM right_ankle_diam 'ball: diameter
DIM right_ankle_pos 'ankle pos in % from toes to heel
DIM left_lower_leg_length 'cylinder: length
DIM left_lower_leg_diam 'cylinder: diameter
DIM right_lower_leg_length 'cylinder: length
DIM right_lower_leg_diam 'cylinder: diameter
DIM left_knee_diam 'ball: diameter
DIM right_knee_diam 'ball: diameter
DIM left_upper_leg_length 'cylinder: length
DIM left_upper_leg_diam 'cylinder: diameter
DIM right_upper_leg_length 'cylinder: length
DIM right_upper_leg_diam 'cylinder: diameter
DIM left_hip_joint_diam 'ball: diameter
DIM right_hip_joint_diam 'ball: diameter
DIM hip_length 'box: length
DIM hip_width 'box: width
DIM hip_depth 'box: depth
DIM waist_diam 'ball: diameter
DIM shoulder_length 'box: length
DIM shoulder_width 'box: width
DIM shoulder_depth 'box: depth
DIM left_shoulder_joint_diam 'ball: diameter
DIM left_shoulder_joint_pos 'shoulder joint pos in % of shoulder length
DIM right_shoulder_joint_diam 'ball: diameter
DIM right_shoulder_joint_pos 'shoulder joint pos in % of shoulder length
DIM left_upper_arm_length 'cylinder: length
DIM left_upper_arm_diam 'cylinder: diameter
DIM right_upper_arm_length 'cylinder: length
DIM right_upper_arm_diam 'cylinder: diameter
DIM left_elbow_diam 'ball: diameter
DIM right_elbow_diam 'ball: diameter
DIM left_lower_arm_length 'cylinder: length
DIM left_lower_arm_diam 'cylinder: diameter
DIM right_lower_arm_length 'cylinder: length
DIM right_lower_arm_diam 'cylinder: diameter
DIM left_wrist_diam 'ball: diameter
DIM right_wrist_diam 'ball: diameter
DIM left_hand_length 'box: length
DIM left_hand_width 'box: width
DIM left_hand_depth 'box: depth
DIM right_hand_length 'box: length
DIM right_hand_width 'box: width
DIM right_hand_depth 'box: depth
DIM neck_diam 'ball: diameter
DIM head_length 'box: length
DIM head_width 'box: width
DIM head_depth 'box: depth
DIM eye_pos 'eye position in % from chin to top of head
DIM eye_diam 'ball: diameter
'--- actor: joint rotation angles ---
DIM waist_forward_angle '"rotate forward to bring hips (plus knees?) closer to shoulders - or arch back, left to right horizontal axis"
DIM waist_sideways_angle '"rotate sideways in vertical plane (eg lower left shoulder), belly-button to back horizontal axis"
DIM waist_twist_angle '"rotate (twist) to bring hips and shoulders out of the same horizontal plane, vertical axis twist"
DIM left_hip_joint_forward_angle '"left, rot: front"
DIM left_hip_joint_sideways_angle '"left, rot: side"
DIM left_hip_joint_twist_angle '"left, rot: axis"
DIM right_hip_joint_forward_angle '"right, rot: front"
DIM right_hip_joint_sideways_angle '"right, rot: side"
DIM right_hip_joint_twist_angle '"right, rot: axis"
DIM left_knee_forward_angle 'left rot lower leg to back
DIM left_knee_twist_angle 'twist-turn ankle relative to knee
DIM right_knee_forward_angle 'right rot lower leg to back
DIM right_knee_twist_angle 'twist-turn ankle relative to knee
DIM left_ankle_forward_angle 'foot up toward knee
DIM left_ankle_sideways_angle 'pidgeon toed or toes pointing outward
DIM left_ankle_twist_angle '"foot sideways, instep or small-toe to heel"
DIM right_ankle_forward_angle 'foot up toward knee
DIM right_ankle_sideways_angle 'pidgeon toed or toes pointing outward
DIM right_ankle_twist_angle '"foot sideways, instep or small-toe to heel"
DIM left_shoulder_joint_forward_angle 'upper arm up in front
DIM left_shoulder_joint_sideways_angle 'upper arm up to the left
DIM left_shoulder_joint_twist_angle 'twist elbow
DIM right_shoulder_joint_forward_angle 'upper arm up in front
DIM right_shoulder_joint_sideways_angle 'upper arm up to the right
DIM right_shoulder_joint_twist_angle 'twist elbow
DIM left_elbow_forward_angle 'lower arm toward upper arm
DIM left_elbow_twist_angle 'twist wrist relative to elbow
DIM right_elbow_forward_angle 'lower arm toward upper arm
DIM right_elbow_twist_angle 'twist wrist relative to elbow
DIM left_wrist_forward_angle 'hand up and down
DIM left_wrist_sideways_angle 'hand side to side
DIM right_wrist_forward_angle 'hand up and down
DIM right_wrist_sideways_angle 'hand side to side
DIM neck_forward_angle 'head forward toward waist
DIM neck_sideways_angle 'top of head (ear) sideways toward shoulder
DIM neck_twist_angle 'twist head so nose points toward shoulder
DIM eye_forward_angle 'line of sight up or down
DIM eye_sideways_angle 'line of sight toward right or left
'--- actor: position on stage ---
DIM stage_width_x 'left & right relative to audience
DIM stage_depth_y 'front & back relative to audience
DIM stage_direction '0=facing audience, increase counterclockwise
DIM stage_height 'height of waist above stage (usually claculated)
DIM forward_leaning '0=vertical (for humans), increases for forward leaning
DIM sideways_leaning '0=vertical (for humans), increases for leaning to the right
DIM waist_pos_x, waist_pos_y 'relative to the stage
DIM waist_pos_x1, waist_pos_y1, waist_pos_x2, waist_pos_y2
'--------------
'' extend the timeout to allow for long files
timeout = Server.ScriptTimeout
'' Response.Write "Initial timeout=" & timeout & "
"
Server.ScriptTimeout = 1200
ScreenWidth = Request.Cookies("Humble")("ScreenWidth")
ScreenHeight = Request.Cookies("Humble")("ScreenHeight")
AspectRatio1 = ScreenWidth / ScreenHeight
CS_1 = "DSN=action"
'--- stage and audience (viewer) ---
Q_0 = "SELECT * FROM stage"
' Response.Write Q_0 & "
"
SET RS_0 = Server.CreateObject("ADODB.Recordset")
RS_0.Open Q_0, CS_1, adOpenKeySet, adLockPessimistic, adCmdText
'' msg = " *** found data *** "
' IF RS_0.EOF THEN
' msg = " *** no data gen_parent=" & gen_parent & " *** "
'' Response.Redirect("/help/session.htm")
' END IF
' RS_0.MoveFirst
RS_0.Find "param = 'StageDepth'", , 1, 1
StageDepth = RS_0.Fields("value")
RS_0.Find "param = 'StageWidth'", , 1, 1
StageWidth = RS_0.Fields("value")
RS_0.Find "param = 'ViewDepth'", , 1, 1
ViewDepth = RS_0.Fields("value")
RS_0.Find "param = 'ViewHeight'", , 1, 1
ViewHeight = RS_0.Fields("value")
' use mm as dimensions, using the same scale for horizontal and vertical
' use 1mm per graphing unit, 1000 units per m
' --- stage dimensions -- proscenium opening ---
ProsceniumHeight = StageWidth / AspectRatio1
IF ProsceniumHeight > 6000 THEN
ProsceniumHeight = 6000
ELSEIF ProsceniumHeight < 2300 THEN
ProsceniumHeight = 2000
StageWidth = ProsceniumHeight * AspectRatio1
ELSE
ProsceniumHeight = ProsceniumHeight * 0.85 ' allow for header, apron, footer
END IF
viewBox_x1 = 0 'minimum x coordinate - left margin on screen
viewBox_x2 = StageWidth '24500? right margin
viewBox_y1 = 0 'minimum y coordinate - top of screen
viewBox_y2 = viewBox_x2 / AspectRatio1 'bottom of screen - has to be inverted for stage-floor=0
'--- x dimension -- width of the stage -- use the whole screen
frontStageCentre = (viewBox_x2 - viewBox_x1) / 2
frontStageInterval = viewBox_x2 / 20 '--approx 1000
frontStageLeft = frontStageCentre - 10*frontStageInterval 'approx 1750
frontStageRight = frontStageCentre + 10*frontStageInterval
'---- calculate and set up the back of the stage ---
' horizontal angles and screen distances
horizAngle = ATN( (StageWidth/2) / (StageDepth+ViewDepth)) 'angle of view to right rear corner
backStageRight = TAN( horizAngle) * ViewDepth 'from centre to intersection of view with front stage
backStageInterval = backStageRight / 10
backStageLeft = frontStageCentre - backStageRight 'relative to centre: left corner = centre - x2
'--- text: headers, footers, legends
header_x = frontStageInterval 'distance of header text from left margin
footer_x = frontStageInterval / 2 'distance of footer text from left margin
maxFontSize = StageWidth / 40
'--- y dimension -- height of the stage plus room for headers and footers
y1 = viewBox_y2 - ProsceniumHeight
y2 = y1 / 4
frontApronHeight = y2 / 2
StageFrontFloor = ProsceniumHeight + y2*2
'---- calculate and set up the stage ---
' vertical angles and screen distances
vertAngleR = ATN( ViewHeight / (ViewDepth+StageDepth))
backStage = TAN( vertAngleR) * StageDepth
'--- text: headers, footers, legends
header_y = y2*2
footer_y = viewBox_y2 - y2/2
' use degrees as measures for angles (rather than radians) - familiarity
' use % where a relative value is required
' set it up for a graph bounding box of 20000 horizontal by 10000 vertical
' the viewBox has to be larger, to allow for left (and right?) parameter stuff
' the graph should have 20 by 10 internal dividers (grid pattern)
viewBox_str = viewBox_x1 & " " & viewBox_y1 & " " & viewBox_x2 & " " & viewBox_y2
'----------------------------------------------------------------------
'--- position on stage ---
Q_1 = "SELECT * FROM Position_pose"
' Response.Write Q_1 & "
"
SET RS_1 = Server.CreateObject("ADODB.Recordset")
RS_1.Open Q_1, CS_1, adOpenKeySet, adLockPessimistic, adCmdText
RS_1.Find "param = 'stage_width_x'", , 1, 1
stage_width_x = RS_1.Fields("value")
RS_1.Find "param = 'stage_depth_y'", , 1, 1
stage_depth_y = RS_1.Fields("value")
RS_1.Find "param = 'stage_direction'", , 1, 1
stage_direction = RS_1.Fields("value")
RS_1.Find "param = 'stage_height'", , 1, 1
stage_height = RS_1.Fields("value")
RS_1.Find "param = 'forward_leaning'", , 1, 1
forward_leaning = RS_1.Fields("value")
RS_1.Find "param = 'sideways_leaning'", , 1, 1
sideways_leaning = RS_1.Fields("value")
'---- calculate and set up the stage position for the actor ---
' horizontal angles and screen distances
horizAngle = ATN( stage_width_x / (ViewDepth+stage_depth_y)) 'angle to position
waist_pos_x2 = TAN( horizAngle) * ViewDepth 'from centre to intersection of view with front stage
waist_pos_x = frontStageCentre + waist_pos_x2 'relative to centre
waist_pos_x1 = frontStageCentre - waist_pos_x2 'symmetric about centre
' vertical angles and screen distances
' vertAngleF = ATN( ViewHeight / ViewDepth)
vertAngleR = ATN( ViewHeight / (ViewDepth+stage_depth_y))
waist_pos_y2 = TAN( vertAngleR) * stage_depth_y
waist_pos_y = StageFrontFloor-waist_pos_y2
' viewBox_x1 = waist_pos_x-2000
' viewBox_x2 = waist_pos_x+1000
' viewBox_y1 = waist_pos_y-2000
' viewBox_y2 = waist_pos_y+1000
' viewBox_str = viewBox_x1 & " " & viewBox_y1 & " " & viewBox_x2 & " " & viewBox_y2
'----------------------------------------------------------------------
'--- limb dimensions ---
Q_2 = "SELECT * FROM limb_Size"
' Response.Write Q_2 & "
"
SET RS_2 = Server.CreateObject("ADODB.Recordset")
RS_2.Open Q_2, CS_1, adOpenKeySet, adLockPessimistic, adCmdText
RS_2.Find "param = 'left_foot_length'", , 1, 1
left_foot_length = RS_2.Fields("value")
RS_2.Find "param = 'left_foot_width'", , 1, 1
left_foot_width = RS_2.Fields("value")
RS_2.Find "param = 'left_foot_depth'", , 1, 1
left_foot_depth = RS_2.Fields("value")
RS_2.Find "param = 'right_foot_length'", , 1, 1
right_foot_length = RS_2.Fields("value")
RS_2.Find "param = 'right_foot_width'", , 1, 1
right_foot_width = RS_2.Fields("value")
RS_2.Find "param = 'right_foot_depth'", , 1, 1
right_foot_depth = RS_2.Fields("value")
RS_2.Find "param = 'left_ankle_diam'", , 1, 1
left_ankle_diam = RS_2.Fields("value")
RS_2.Find "param = 'left_ankle_pos'", , 1, 1
left_ankle_pos = RS_2.Fields("value")
RS_2.Find "param = 'right_ankle_diam'", , 1, 1
right_ankle_diam = RS_2.Fields("value")
RS_2.Find "param = 'right_ankle_pos'", , 1, 1
right_ankle_pos = RS_2.Fields("value")
RS_2.Find "param = 'left_lower_leg_length'", , 1, 1
left_lower_leg_length = RS_2.Fields("value")
RS_2.Find "param = 'left_lower_leg_diam'", , 1, 1
left_lower_leg_diam = RS_2.Fields("value")
RS_2.Find "param = 'right_lower_leg_length'", , 1, 1
right_lower_leg_length = RS_2.Fields("value")
RS_2.Find "param = 'right_lower_leg_diam'", , 1, 1
right_lower_leg_diam = RS_2.Fields("value")
RS_2.Find "param = 'left_knee_diam'", , 1, 1
left_knee_diam = RS_2.Fields("value")
RS_2.Find "param = 'right_knee_diam'", , 1, 1
right_knee_diam = RS_2.Fields("value")
RS_2.Find "param = 'left_upper_leg_length'", , 1, 1
left_upper_leg_length = RS_2.Fields("value")
RS_2.Find "param = 'left_upper_leg_diam'", , 1, 1
left_upper_leg_diam = RS_2.Fields("value")
RS_2.Find "param = 'right_upper_leg_length'", , 1, 1
right_upper_leg_length = RS_2.Fields("value")
RS_2.Find "param = 'right_upper_leg_diam'", , 1, 1
right_upper_leg_diam = RS_2.Fields("value")
RS_2.Find "param = 'left_hip_joint_diam'", , 1, 1
left_hip_joint_diam = RS_2.Fields("value")
RS_2.Find "param = 'right_hip_joint_diam'", , 1, 1
right_hip_joint_diam = RS_2.Fields("value")
RS_2.Find "param = 'hip_length'", , 1, 1
hip_length = RS_2.Fields("value")
RS_2.Find "param = 'hip_width'", , 1, 1
hip_width = RS_2.Fields("value")
RS_2.Find "param = 'hip_depth'", , 1, 1
hip_depth = RS_2.Fields("value")
RS_2.Find "param = 'waist_diam'", , 1, 1
waist_diam = RS_2.Fields("value")
RS_2.Find "param = 'shoulder_length'", , 1, 1
shoulder_length = RS_2.Fields("value")
RS_2.Find "param = 'shoulder_width'", , 1, 1
shoulder_width = RS_2.Fields("value")
RS_2.Find "param = 'shoulder_depth'", , 1, 1
shoulder_depth = RS_2.Fields("value")
RS_2.Find "param = 'left_shoulder_joint_diam'", , 1, 1
left_shoulder_joint_diam = RS_2.Fields("value")
RS_2.Find "param = 'left_shoulder_joint_pos'", , 1, 1
left_shoulder_joint_pos = RS_2.Fields("value")
RS_2.Find "param = 'right_shoulder_joint_diam'", , 1, 1
right_shoulder_joint_diam = RS_2.Fields("value")
RS_2.Find "param = 'right_shoulder_joint_pos'", , 1, 1
right_shoulder_joint_pos = RS_2.Fields("value")
RS_2.Find "param = 'left_upper_arm_length'", , 1, 1
left_upper_arm_length = RS_2.Fields("value")
RS_2.Find "param = 'left_upper_arm_diam'", , 1, 1
left_upper_arm_diam = RS_2.Fields("value")
RS_2.Find "param = 'right_upper_arm_length'", , 1, 1
right_upper_arm_length = RS_2.Fields("value")
RS_2.Find "param = 'right_upper_arm_diam'", , 1, 1
right_upper_arm_diam = RS_2.Fields("value")
RS_2.Find "param = 'left_elbow_diam'", , 1, 1
left_elbow_diam = RS_2.Fields("value")
RS_2.Find "param = 'right_elbow_diam'", , 1, 1
right_elbow_diam = RS_2.Fields("value")
RS_2.Find "param = 'left_lower_arm_length'", , 1, 1
left_lower_arm_length = RS_2.Fields("value")
RS_2.Find "param = 'left_lower_arm_diam'", , 1, 1
left_lower_arm_diam = RS_2.Fields("value")
RS_2.Find "param = 'right_lower_arm_length'", , 1, 1
right_lower_arm_length = RS_2.Fields("value")
RS_2.Find "param = 'right_lower_arm_diam'", , 1, 1
right_lower_arm_diam = RS_2.Fields("value")
RS_2.Find "param = 'left_wrist_diam'", , 1, 1
left_wrist_diam = RS_2.Fields("value")
RS_2.Find "param = 'right_wrist_diam'", , 1, 1
right_wrist_diam = RS_2.Fields("value")
RS_2.Find "param = 'left_hand_length'", , 1, 1
left_hand_length = RS_2.Fields("value")
RS_2.Find "param = 'left_hand_width'", , 1, 1
left_hand_width = RS_2.Fields("value")
RS_2.Find "param = 'left_hand_depth'", , 1, 1
left_hand_depth = RS_2.Fields("value")
RS_2.Find "param = 'right_hand_length'", , 1, 1
right_hand_length = RS_2.Fields("value")
RS_2.Find "param = 'right_hand_width'", , 1, 1
right_hand_width = RS_2.Fields("value")
RS_2.Find "param = 'right_hand_depth'", , 1, 1
right_hand_depth = RS_2.Fields("value")
RS_2.Find "param = 'neck_diam'", , 1, 1
neck_diam = RS_2.Fields("value")
RS_2.Find "param = 'head_length'", , 1, 1
head_length = RS_2.Fields("value")
RS_2.Find "param = 'head_width'", , 1, 1
head_width = RS_2.Fields("value")
RS_2.Find "param = 'head_depth'", , 1, 1
head_depth = RS_2.Fields("value")
RS_2.Find "param = 'eye_pos'", , 1, 1
eye_pos = RS_2.Fields("value")
RS_2.Find "param = 'eye_diam'", , 1, 1
eye_diam = RS_2.Fields("value")
'----------------------------------------------------------------------
'--- pose of actor, relative to the waist ---
Q_3 = "SELECT * FROM joint_angle_Pose"
' Response.Write Q_3 & "
"
SET RS_3 = Server.CreateObject("ADODB.Recordset")
RS_3.Open Q_3, CS_1, adOpenKeySet, adLockPessimistic, adCmdText
'--- pose with joint rotation angles radiating out from the waist ------
RS_3.Find "param = 'waist_forward_angle'", , 1, 1
waist_forward_angle = RS_3.Fields("value")
RS_3.Find "param = 'waist_sideways_angle'", , 1, 1
waist_sideways_angle = RS_3.Fields("value")
RS_3.Find "param = 'waist_twist_angle'", , 1, 1
waist_twist_angle = RS_3.Fields("value")
RS_3.Find "param = 'left_hip_joint_forward_angle'", , 1, 1
left_hip_joint_forward_angle = RS_3.Fields("value")
RS_3.Find "param = 'left_hip_joint_sideways_angle'", , 1, 1
left_hip_joint_sideways_angle = RS_3.Fields("value")
RS_3.Find "param = 'left_hip_joint_twist_angle'", , 1, 1
left_hip_joint_twist_angle = RS_3.Fields("value")
RS_3.Find "param = 'right_hip_joint_forward_angle'", , 1, 1
right_hip_joint_forward_angle = RS_3.Fields("value")
RS_3.Find "param = 'right_hip_joint_sideways_angle'", , 1, 1
right_hip_joint_sideways_angle = RS_3.Fields("value")
RS_3.Find "param = 'right_hip_joint_twist_angle'", , 1, 1
right_hip_joint_twist_angle = RS_3.Fields("value")
RS_3.Find "param = 'left_knee_forward_angle'", , 1, 1
left_knee_forward_angle = RS_3.Fields("value")
RS_3.Find "param = 'left_knee_twist_angle'", , 1, 1
left_knee_twist_angle = RS_3.Fields("value")
RS_3.Find "param = 'right_knee_forward_angle'", , 1, 1
right_knee_forward_angle = RS_3.Fields("value")
RS_3.Find "param = 'right_knee_twist_angle'", , 1, 1
right_knee_twist_angle = RS_3.Fields("value")
RS_3.Find "param = 'left_ankle_forward_angle'", , 1, 1
left_ankle_forward_angle = RS_3.Fields("value")
RS_3.Find "param = 'left_ankle_sideways_angle'", , 1, 1
left_ankle_sideways_angle = RS_3.Fields("value")
RS_3.Find "param = 'left_ankle_twist_angle'", , 1, 1
left_ankle_twist_angle = RS_3.Fields("value")
RS_3.Find "param = 'right_ankle_forward_angle'", , 1, 1
right_ankle_forward_angle = RS_3.Fields("value")
RS_3.Find "param = 'right_ankle_sideways_angle'", , 1, 1
right_ankle_sideways_angle = RS_3.Fields("value")
RS_3.Find "param = 'right_ankle_twist_angle'", , 1, 1
right_ankle_twist_angle = RS_3.Fields("value")
RS_3.Find "param = 'left_shoulder_joint_forward_angle'", , 1, 1
left_shoulder_joint_forward_angle = RS_3.Fields("value")
RS_3.Find "param = 'left_shoulder_joint_sideways_angle'", , 1, 1
left_shoulder_joint_sideways_angle = RS_3.Fields("value")
RS_3.Find "param = 'left_shoulder_joint_twist_angle'", , 1, 1
left_shoulder_joint_twist_angle = RS_3.Fields("value")
RS_3.Find "param = 'right_shoulder_joint_forward_angle'", , 1, 1
right_shoulder_joint_forward_angle = RS_3.Fields("value")
RS_3.Find "param = 'right_shoulder_joint_sideways_angle'", , 1, 1
right_shoulder_joint_sideways_angle = RS_3.Fields("value")
RS_3.Find "param = 'right_shoulder_joint_twist_angle'", , 1, 1
right_shoulder_joint_twist_angle = RS_3.Fields("value")
RS_3.Find "param = 'left_elbow_forward_angle'", , 1, 1
left_elbow_forward_angle = RS_3.Fields("value")
RS_3.Find "param = 'left_elbow_twist_angle'", , 1, 1
left_elbow_twist_angle = RS_3.Fields("value")
RS_3.Find "param = 'right_elbow_forward_angle'", , 1, 1
right_elbow_forward_angle = RS_3.Fields("value")
RS_3.Find "param = 'right_elbow_twist_angle'", , 1, 1
right_elbow_twist_angle = RS_3.Fields("value")
RS_3.Find "param = 'left_wrist_forward_angle'", , 1, 1
left_wrist_forward_angle = RS_3.Fields("value")
RS_3.Find "param = 'left_wrist_sideways_angle'", , 1, 1
left_wrist_sideways_angle = RS_3.Fields("value")
RS_3.Find "param = 'right_wrist_forward_angle'", , 1, 1
right_wrist_forward_angle = RS_3.Fields("value")
RS_3.Find "param = 'right_wrist_sideways_angle'", , 1, 1
right_wrist_sideways_angle = RS_3.Fields("value")
RS_3.Find "param = 'neck_forward_angle'", , 1, 1
neck_forward_angle = RS_3.Fields("value")
RS_3.Find "param = 'neck_sideways_angle'", , 1, 1
neck_sideways_angle = RS_3.Fields("value")
RS_3.Find "param = 'neck_twist_angle'", , 1, 1
neck_twist_angle = RS_3.Fields("value")
RS_3.Find "param = 'eye_forward_angle'", , 1, 1
eye_forward_angle = RS_3.Fields("value")
RS_3.Find "param = 'eye_sideways_angle'", , 1, 1
eye_sideways_angle = RS_3.Fields("value")
%>
<%
'' reset the timeout
Server.ScriptTimeout = timeout
Response.End '-----------------------------------------------------------%>