#VRML V2.0 utf8
PROTO Avatar [
exposedField SFTime gesture1 0
exposedField SFTime gesture2 0
exposedField SFTime gesture3 0
exposedField SFTime gesture4 0
exposedField SFTime gesture5 0
exposedField SFTime gesture6 0
exposedField SFTime gesture7 0
exposedField SFTime gesture8 0
exposedField SFBool isAvatar TRUE
exposedField SFRotation rotation 0 1 0 0
exposedField SFInt32 whichChoice 0
exposedField SFBool isOver FALSE
exposedField SFTime touchTime 0
eventIn SFVec3f set_position
] {
Switch {
whichChoice IS whichChoice
choice [
DEF WalkingAvatar Transform {
rotation IS rotation
children [
DEF topheadcc Transform {
children [
WorldInfo {
title "gull"
info [
"This VRML World was created with Spazz3D, a VRML 2 authoring tool"
"www.spazz3d.com"
]
}
DEF dad_GROUND Transform {
rotation 0 0 1 0
children [
DEF GROUND Group {
children [
DEF dad_Import_Base Transform {
children [
DEF Import_Base Group {
children [
DEF dad_Poop Transform {
scale 0.0001 0.0001 0.0001
children [
DEF Poop Group {
children [
DEF dad_Sphere1 Transform {
translation 0.0 0.08 -0.22
children [
DEF Sphere1 Shape {
appearance Appearance {
material DEF material10 Material {
ambientIntensity 0.200
shininess 0.200
diffuseColor 1.0 1.0 1.0
emissiveColor 0.0 0.0 0.0
specularColor 0.0 0.0 0.0
}
}
geometry Sphere {
radius 0.019
}
}
]
}
DEF dad_Cone1 Transform {
translation 0.0 0.1 -0.22
children [
DEF Cone1 Shape {
appearance Appearance {
material DEF material11 Material {
ambientIntensity 0.200
shininess 0.200
diffuseColor 1.0 1.0 1.0
emissiveColor 0.0 0.0 0.0
specularColor 0.0 0.0 0.0
}
}
geometry Cone {
height 0.040
bottomRadius 0.020
}
}
]
}
]
}
]
}
DEF dad_Wizard_Group Transform {
rotation 0.0 -1.0 0.0 1.57
scale 0.15 0.15 0.15
children [
DEF Wizard_Group Group {
children [
DEF dad_Gull Transform {
children [
DEF Gull Group {
children [
DEF dad_Body Transform {
children [
DEF Body Shape {
appearance Appearance {
material DEF material0 Material {
ambientIntensity 0.200
shininess 0.200
diffuseColor 1.0 1.0 1.0
emissiveColor 0.0 0.0 0.0
specularColor 0.0 0.0 0.0
}
}
geometry IndexedFaceSet {
solid TRUE
ccw TRUE
convex FALSE
creaseAngle 1.500
coord Coordinate {
point [
1.12900 -0.11700 0.00000
1.12900 -0.03800 -0.19000
1.39500 0.11300 -0.07400
1.39500 0.08200 0.00000
0.74900 -0.11400 0.00000
0.74900 -0.03700 -0.18400
0.44000 -0.34700 0.00000
0.44000 -0.19600 -0.34100
-0.82700 -0.28900 0.00000
-0.82700 -0.13900 -0.31100
-1.61300 0.15900 0.00000
-1.61300 0.18900 -0.17500
1.12900 0.15200 -0.26900
1.39500 0.18600 -0.10400
0.74900 0.14700 -0.26100
0.44000 0.06200 -0.48200
-0.82700 0.09000 -0.43900
-1.61300 0.23100 -0.24800
1.12900 0.24700 -0.22900
1.26200 0.30100 -0.13200
1.39500 0.26000 -0.07400
0.74900 0.33200 -0.18400
1.03400 0.33900 -0.18900
0.44000 0.32900 -0.34100
-0.82700 0.33000 -0.31100
-1.61300 0.28200 -0.17500
0.74900 0.40800 0.00000
1.12900 0.42000 0.00000
1.12900 0.38100 -0.09500
0.44000 0.48000 0.00000
-0.82700 0.46000 0.00000
-1.61300 0.30000 0.00000
1.12900 0.38100 0.09500
1.26200 0.30100 0.13200
1.39500 0.26000 0.07400
1.39500 0.29100 0.00000
0.74900 0.33200 0.18400
1.03400 0.33900 0.18900
0.44000 0.32900 0.34100
-0.82700 0.33000 0.31000
-1.61300 0.28200 0.17500
0.74900 0.14700 0.26100
1.12900 0.15200 0.26900
1.12900 0.24700 0.22900
0.44000 0.06200 0.48200
-0.82700 0.09000 0.43900
-1.61300 0.23100 0.24800
1.12900 -0.03800 0.19000
1.39500 0.11300 0.07400
1.39500 0.18600 0.10400
0.74900 -0.03700 0.18400
0.44000 -0.19600 0.34100
-0.82700 -0.13900 0.31100
-1.61300 0.18900 0.17500
]
}
coordIndex [
0 1 2 -1
0 2 3 -1
4 5 1 -1
4 1 0 -1
6 7 5 -1
6 5 4 -1
8 9 7 -1
8 7 6 -1
10 11 9 -1
10 9 8 -1
1 12 13 -1
1 13 2 -1
5 14 12 -1
5 12 1 -1
7 15 14 -1
7 14 5 -1
9 16 15 -1
9 15 7 -1
11 17 16 -1
11 16 9 -1
12 18 19 -1
12 19 20 -1
12 20 13 -1
14 21 22 -1
14 22 18 -1
14 18 12 -1
15 23 21 -1
15 21 14 -1
16 24 23 -1
16 23 15 -1
17 25 24 -1
17 24 16 -1
21 26 27 -1
21 27 28 -1
21 28 22 -1
23 29 26 -1
23 26 21 -1
24 30 29 -1
24 29 23 -1
25 31 30 -1
25 30 24 -1
27 32 33 34
-1 27 34 35
-1 26 36 37
-1 26 37 32
-1 26 32 27
-1 29 38 36
-1 29 36 26
-1 30 39 38
-1 30 38 29
-1 31 40 39
-1 31 39 30
-1 36 41 42
-1 36 42 43
-1 36 43 37
-1 38 44 41
-1 38 41 36
-1 39 45 44
-1 39 44 38
-1 40 46 45
-1 40 45 39
-1 42 47 48
-1 42 48 49
-1 41 50 47
-1 41 47 42
-1 44 51 50
-1 44 50 41
-1 45 52 51
-1 45 51 44
-1 46 53 52
-1 46 52 45
-1 47 0 3
-1 47 3 48
-1 50 4 0
-1 50 0 47
-1 51 6 4
-1 51 4 50
-1 52 8 6
-1 52 6 51
-1 53 10 8
-1 53 8 52
-1 11 10 53
46 40 31 25
17 -1 43 42
49 -1 43 49
34 -1 43 34
33 -1 28 27
35 -1 28 35
20 -1 28 20
19 -1 33 32
37 -1 33 37
43 -1 18 22
28 -1 18 28
19 -1
]
}
}
]
}
DEF dad_Beak Transform {
children [
DEF Beak Shape {
appearance Appearance {
material DEF material1 Material {
ambientIntensity 0.200
shininess 0.200
diffuseColor 0.918 0.78 0.369
emissiveColor 0.0 0.0 0.0
specularColor 0.0 0.0 0.0
}
}
geometry IndexedFaceSet {
solid TRUE
ccw TRUE
convex FALSE
creaseAngle 0.500
coord Coordinate {
point [
1.94600 0.25800 0.00000
1.39500 0.29100 0.00000
1.39500 0.26000 0.07400
1.66400 0.17400 0.10500
1.39500 0.18600 0.10400
1.97700 0.17400 0.07100
2.10000 0.16700 0.00000
1.39500 0.26000 -0.07400
1.39500 0.18600 -0.10400
1.66400 0.17400 -0.10500
1.97700 0.17400 -0.07100
1.39500 0.11300 0.07400
1.70800 0.09000 0.00000
1.39500 0.08200 0.00000
1.91800 0.17400 0.00000
1.39500 0.11300 -0.07400
]
}
coordIndex [
0 1 2 -1
3 2 4 -1
3 0 2 -1
5 0 3 -1
5 6 0 -1
7 1 0 -1
8 7 9 -1
7 0 9 -1
9 0 10 -1
0 6 10 -1
4 11 3 -1
12 11 13 -1
12 14 3 -1
12 3 11 -1
9 15 8 -1
13 15 12 -1
9 14 12 -1
15 9 12 -1
5 3 14 -1
5 14 6 -1
10 6 14 -1
10 14 9 -1
]
}
}
]
}
DEF dad_L_Eye Transform {
children [
DEF L_Eye Group {
children [
DEF dad_Sphere2 Transform {
translation 1.129 0.341 0.132
scale 0.1 1.0 0.6
children [
DEF Sphere2 Shape {
appearance Appearance {
material DEF material2 Material {
ambientIntensity 0.200
shininess 0.200
diffuseColor 1.0 1.0 1.0
emissiveColor 0.0 0.0 0.0
specularColor 0.0 0.0 0.0
}
}
geometry Sphere {
radius 0.200
}
}
]
}
DEF dad_Sphere3 Transform {
translation 1.14 0.35 0.132
scale 0.1 0.5 0.3
children [
DEF Sphere3 Shape {
appearance Appearance {
material DEF material3 Material {
ambientIntensity 0.200
shininess 0.200
diffuseColor 0.0 0.0 1.0
emissiveColor 0.0 0.0 0.0
specularColor 0.0 0.0 0.0
}
}
geometry Sphere {
radius 0.150
}
}
]
}
]
}
]
}
DEF dad_R_Eye Transform {
translation 0.0 0.0 -0.3
children [
USE L_Eye
]
}
DEF dad_R_Wing Transform {
children [
DEF R_Wing Group {
children [
DEF dad_R_Inner_Wing Transform {
translation 0.0 0.27405 0.35425
children [
DEF R_Inner_Wing Shape {
appearance Appearance {
material DEF material4 Material {
ambientIntensity 0.200
shininess 0.200
diffuseColor 1.0 1.0 1.0
emissiveColor 0.0 0.0 0.0
specularColor 0.0 0.0 0.0
}
}
geometry IndexedFaceSet {
solid TRUE
ccw TRUE
convex FALSE
creaseAngle 1.500
coord Coordinate {
point [
0.40000 -0.02800 0.02200
0.73800 0.27900 1.90300
0.15900 0.28400 1.93300
-0.55300 -0.03100 0.00400
0.32900 0.35200 1.90400
-0.17400 0.03700 -0.03000
0.66100 0.34700 1.87200
0.26500 0.03900 -0.01900
]
}
coordIndex [
0 1 2 -1
0 2 3 -1
2 4 5 -1
2 5 3 -1
4 6 7 -1
4 7 5 -1
6 1 0 -1
6 0 7 -1
]
}
}
]
}
DEF dad_Group1 Transform {
translation 0.0 0.27405 0.35425
children [
DEF Group1 Group {
children [
DEF dad_Group2 Transform {
center 0.0 0.345 1.88
children [
DEF Group2 Group {
children [
DEF dad_R_Wing_Tip Transform {
translation 0.0 0.34481 1.87307
rotation 1 0 0 .2
children [
DEF R_Wing_Tip Shape {
appearance Appearance {
material DEF material5 Material {
ambientIntensity 0.200
shininess 0.200
diffuseColor 1.0 1.0 1.0
emissiveColor 0.0 0.0 0.0
specularColor 0.0 0.0 0.0
}
}
geometry IndexedFaceSet {
solid TRUE
ccw TRUE
convex FALSE
creaseAngle 1.500
coord Coordinate {
point [
0.75300 -0.05900 0.01300
0.33000 -0.09500 1.39900
0.04600 -0.09900 1.54800
0.17200 -0.05800 -0.00700
0.20100 -0.03600 1.18800
0.32900 0.01400 0.02200
0.29300 -0.03600 1.17700
0.65000 0.01400 0.00100
]
}
coordIndex [
0 1 2 -1
0 2 3 -1
2 4 5 -1
2 5 3 -1
4 6 7 -1
4 7 5 -1
6 1 0 -1
6 0 7 -1
2 1 6 -1
2 6 4 -1
]
}
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}
DEF dad_L_Wing Transform {
children [
DEF L_Wing Group {
children [
DEF dad_L_Inner_Wing Transform {
translation 0.0 0.27405 -0.35425
children [
DEF L_Inner_Wing Shape {
appearance Appearance {
material DEF material6 Material {
ambientIntensity 0.200
shininess 0.200
diffuseColor 1.0 1.0 1.0
emissiveColor 0.0 0.0 0.0
specularColor 0.0 0.0 0.0
}
}
geometry IndexedFaceSet {
solid TRUE
ccw TRUE
convex FALSE
creaseAngle 1.500
coord Coordinate {
point [
-0.55300 -0.04000 -0.00900
0.15900 0.27400 -1.93800
0.73800 0.26900 -1.90800
0.40000 -0.03700 -0.02700
-0.17400 0.02800 0.02500
0.32900 0.34200 -1.90800
0.26500 0.02900 0.01500
0.66100 0.33700 -1.87600
]
}
coordIndex [
0 1 2 -1
0 2 3 -1
0 4 5 -1
0 5 1 -1
4 6 7 -1
4 7 5 -1
6 3 2 -1
6 2 7 -1
]
}
}
]
}
DEF dad_Group3 Transform {
translation 0.0 0.27405 -0.35425
children [
DEF Group3 Group {
children [
DEF dad_Group4 Transform {
center 0.0 0.33595 -1.91265
children [
DEF Group4 Group {
children [
DEF dad_L_Wing_Tip Transform {
translation 0.0 0.33595 -1.89
rotation 1 0 0 -.2
children [
DEF L_Wing_Tip Shape {
appearance Appearance {
material DEF material7 Material {
ambientIntensity 0.200
shininess 0.200
diffuseColor 1.0 1.0 1.0
emissiveColor 0.0 0.0 0.0
specularColor 0.0 0.0 0.0
}
}
geometry IndexedFaceSet {
solid TRUE
ccw TRUE
convex FALSE
creaseAngle 1.500
coord Coordinate {
point [
0.17200 -0.05800 0.01700
0.04600 -0.09900 -1.53900
0.33000 -0.09500 -1.38900
0.75300 -0.05900 -0.00400
0.32900 0.01400 -0.01300
0.20100 -0.03600 -1.17800
0.65000 0.01400 0.00900
0.29300 -0.03600 -1.16800
]
}
coordIndex [
0 1 2 -1
0 2 3 -1
0 4 5 -1
0 5 1 -1
4 6 7 -1
4 7 5 -1
6 3 2 -1
6 2 7 -1
5 7 2 -1
5 2 1 -1
]
}
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}
DEF dad_Tail Transform {
center -1.62217 0.23626 0.0
children [
DEF Tail Group {
children [
DEF dad_Faces_Set1 Transform {
translation -1.62217 0.23626 0.0
children [
DEF Faces_Set1 Shape {
appearance Appearance {
material DEF material8 Material {
ambientIntensity 0.200
shininess 0.200
diffuseColor 1.0 1.0 1.0
emissiveColor 0.0 0.0 0.0
specularColor 0.0 0.0 0.0
}
}
geometry IndexedFaceSet {
solid TRUE
ccw TRUE
convex FALSE
creaseAngle 1.500
coord Coordinate {
point [
-0.00200 -0.02800 0.21000
-1.11200 0.06500 0.31300
-1.61500 0.10600 0.00000
-1.11200 0.06500 -0.31300
-0.00200 -0.02800 -0.21000
-1.19600 0.14300 0.00000
0.00000 0.04300 0.00000
]
}
coordIndex [
0 1 2 -1
0 2 3 -1
0 3 4 -1
2 1 5 -1
0 6 5 -1
0 5 1 -1
3 2 5 -1
3 5 6 -1
3 6 4 -1
]
}
}
]
}
]
}
]
}
DEF dad_InvisibleFoot Transform {
children [
DEF InvisibleFoot Shape {
appearance Appearance {
material DEF material9 Material {
ambientIntensity 0.200
shininess 0.200
transparency 1.000
diffuseColor 0.8 0.8 0.8
emissiveColor 0.0 0.0 0.0
specularColor 0.0 0.0 0.0
}
}
geometry IndexedFaceSet {
solid TRUE
ccw TRUE
convex FALSE
creaseAngle 0.524
coord Coordinate {
point [
0.00000 -1.70000 0.00000
-1.00000 -1.70000 1.00000
1.00000 -1.70000 1.00000
]
}
coordIndex [
0 1 2 -1
]
}
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}
DEF Wizard TimeSensor {
cycleInterval 4.000
loop FALSE
startTime IS gesture2
}
DEF Wizard_rot0 OrientationInterpolator {
key [ 0.0 0.25 0.5 0.75 1.0]
keyValue [
1.0 0.0 0.0 0.0
1.0 0.0 0.0 1.571
1.0 0.0 0.0 3.142
1.0 0.0 0.0 4.712
1.0 0.0 0.0 6.283
]
}
DEF TSblxncc1 TimeSensor {
startTime IS gesture1
cycleInterval 6
},
DEF OIblxncc1 OrientationInterpolator {
key [ 0, 0.025, 0.05, 0.075, 0.1, 0.125, 0.15, 0.175, 0.2, 0.225, 0.25,
0.275, 0.3, 0.325, 0.35, 0.375, 0.4, 0.425, 0.45, 0.475, 0.5, 0.525, 0.55,
0.575, 0.6, 0.625, 0.65, 0.675, 0.7, 0.725, 0.75, 0.775,
0.8, 0.825, 0.85, 0.875, 0.9, 0.925, 0.95, 0.975, 1 ]
keyValue [
0 1 0 -0.2,
0 1 0 -0.4,
0 1 0 -0.6,
0 1 0 -0.8,
0.202414 -0.975553 0.0855794 0.817908,
0.380781 -0.910542 0.160992 0.869415,
0.523096 -0.823079 0.221161 0.949052,
0.629904 -0.729585 0.266319 1.05042,
0.523096 -0.823079 0.221161 0.949052,
0.380781 -0.910542 0.160992 0.869415,
0.202414 -0.975553 0.0855794 0.817908,
0 -1 0 0.8,
0 1 0 -0.6,
0 1 0 -0.4,
0 1 0 -0.2,
0 1 0 0,
1 0 0 0.175,
1 0 0 0.35,
1 0 0 0.525,
1 0 0 0.7,
1 0 0 0.525,
1 0 0 0.35,
1 0 0 0.175,
0 1 0 0,
0 1 0 0.2,
0 1 0 0.4,
0 1 0 0.6,
0 1 0 0.8,
0.202414 0.975554 -0.0855794 0.817908,
0.380781 0.910542 -0.160992 0.869415,
0.523096 0.823079 -0.221161 0.949052,
0.629905 0.729585 -0.266319 1.05042,
0.523096 0.823079 -0.221161 0.949052,
0.380781 0.910542 -0.160992 0.869415,
0.202414 0.975554 -0.0855794 0.817908,
0 1 0 0.8,
0 1 0 0.6,
0 1 0 0.4,
0 1 0 0.2,
0 1 0 0,
0 1 0 0
]
}
DEF TSblxncc3 TimeSensor {
startTime IS gesture3
cycleInterval 3.5
},
DEF OIblxncc3 OrientationInterpolator {
key [ 0, 0.0625, 0.125, 0.1875, 0.25, 0.3125, 0.375, 0.4375, 0.5, 0.5625,
0.625, 0.6875, 0.75, 0.8125, 0.875, 0.9375, 1 ]
keyValue [
1 0 0 0.175,
1 0 0 0.35,
1 0 0 0.525,
1 0 0 0.7,
1 0 0 0.525,
1 0 0 0.35,
1 0 0 0.175,
0 1 0 0,
1 0 0 0.175,
1 0 0 0.35,
1 0 0 0.525,
1 0 0 0.7,
1 0 0 0.525,
1 0 0 0.35,
1 0 0 0.175,
0 1 0 0,
0 1 0 0
]
}
DEF TSblxncc4 TimeSensor {
startTime IS gesture4
cycleInterval 3.5
},
DEF PIblxncc4 PositionInterpolator {
key [ 0, 0.0625, 0.125, 0.1875, 0.25, 0.3125, 0.375, 0.4375, 0.5, 0.5625, 0.625, 0.6875, 0.75, 0.8125, 0.875, 0.9375, 1 ]
keyValue [
0 0 0.25,
0 0 0.5,
0 0 0.75,
0 0 1,
0 0 1,
0 0 1,
0 0 1,
0 0 1,
0 0 1,
0 0 1,
0 0 1,
0 0 1,
0 0 0.75,
0 0 0.5,
0 0 0.25,
0 0 0,
0 0 0
]
},
DEF OIblxncc4 OrientationInterpolator {
key [ 0, 0.0625, 0.125, 0.1875, 0.25, 0.3125, 0.375, 0.4375, 0.5, 0.5625, 0.625, 0.6875, 0.75, 0.8125, 0.875, 0.9375, 1 ]
keyValue [
0 1 0 0,
0 1 0 0,
0 1 0 0,
0 1 0 0,
0 1 0 0.1,
0 1 0 0.2,
0 1 0 0.2,
0 1 0 0.2,
0 1 0 0.2,
0 1 0 0.2,
0 1 0 0.1,
0 1 0 0,
0 1 0 0,
0 1 0 0,
0 1 0 0,
0 1 0 0,
0 1 0 0,
]
}
DEF TSblxncc5 TimeSensor {
startTime IS gesture5
cycleInterval 6
},
DEF PIblxncc5 PositionInterpolator {
key [ 0, 0.0417, 0.0834, 0.125, 0.1667, 0.2083, 0.25, 0.2917, 0.3333, 0.375, 0.4167, 0.4583, 0.5
0.5417, 0.5834, 0.625, 0.6667, 0.7083, 0.75, 0.7917, 0.8333, 0.875, 0.9167, 0.9583, 1 ]
keyValue [
0 0 0,
0 0 0,
0 0 0,
0 0 0,
0 0 0,
0 0 0,
0 0 -1,
0 0 -2,
0 0 -3,
0 0 -4,
0 0 -5,
0 0 -6,
0 0 -6,
0 0 -6,
0 0 -6,
0 0 -6,
0 0 -6,
0 0 -6,
0 0 -6,
0 0 -6,
0 0 -4.5,
0 0 -3,
0 0 -1.5,
0 0 0,
0 0 0
]
},
DEF OIblxncc5 OrientationInterpolator {
key [ 0, 0.0417, 0.0834, 0.125, 0.1667, 0.2083, 0.25, 0.2917, 0.3333, 0.375, 0.4167, 0.4583, 0.5
0.5417, 0.5834, 0.625, 0.6667, 0.7083, 0.75, 0.7917, 0.8333, 0.875, 0.9167, 0.9583, 1 ]
keyValue [
0 1 0 -0.5236,
0 1 0 -1.0472,
0 1 0 -1.5708,
0 1 0 -2.0944,
0 1 0 -2.618,
0 1 0 -3.1416,
0 1 0 -3.1416,
0 1 0 -3.1416,
0 1 0 -3.1416,
0 1 0 -3.1416,
0 1 0 -3.1416,
0 1 0 -3.1416,
0 1 0 -2.3562,
0 1 0 -1.5708,
0 1 0 -0.7854,
0 1 0 -0.7854,
0 1 0 -0.7854,
0 1 0 -0.7854,
0 1 0 -0.7854,
0 1 0 0,
0 1 0 0,
0 1 0 0,
0 1 0 0,
0 1 0 0,
0 1 0 0,
0 1 0 0,
]
}
DEF TSblxncc6 TimeSensor {
startTime IS gesture6
cycleInterval 5
},
DEF OIblxncc6 OrientationInterpolator {
key [ 0, 0.0625, 0.125, 0.1875, 0.25, 0.3125, 0.375, 0.4375, 0.5, 0.5625, 0.625, 0.6875, 0.75, 0.8125, 0.875, 0.9375, 1 ]
keyValue [
0 1 0 -0.2,
0 1 0 -0.4,
0 1 0 -0.2,
0 1 0 0,
0 1 0 0.2,
0 1 0 0.4,
0 1 0 0.2,
0 1 0 0,
0 1 0 -0.2,
0 1 0 -0.4,
0 1 0 -0.2,
0 1 0 0,
0 1 0 0.2,
0 1 0 0.4,
0 1 0 0.2,
0 1 0 0,
0 1 0 0
]
}
# Gesture 7
DEF TSblxncc7 TimeSensor {
startTime IS gesture7
cycleInterval 8
},
DEF OIblxncc7 OrientationInterpolator {
key [ 0, 0.0625, 0.125, 0.1875, 0.25, 0.3125, 0.375, 0.4375, 0.5, 0.5625, 0.625, 0.6875, 0.75, 0.8125, 0.875, 0.9375, 1 ]
keyValue [
0 1 0 0,
0 1 0 -0.5236,
0 1 0 -1.0472,
0 1 0 -1.5708,
0 1 0 -2.0944,
0 1 0 -2.618,
0 1 0 -3.1416,
0 1 0 -3.1416,
0 1 0 -3.1416,
0 1 0 -3.1416,
0 1 0 -3.1416,
0 1 0 -3.1416,
0 1 0 -3.1416,
0 1 0 -1.5708,
0 1 0 0,
0 1 0 0,
0 1 0 0,
]
}
DEF TailOI OrientationInterpolator {
key [ 0 0.0625 0.125 0.1875 0.25 0.3125 0.375 0.4375 0.5 0.5625 0.625 0.6875 0.75 0.8125 0.875 0.9375 1 ]
keyValue [
0 0 1 0
0 0 1 0
0 0 1 0
0 0 1 0
0 0 1 0
0 0 1 0
0 0 1 -0.5236
0 0 1 -1.0472
0 0 1 -1.5708
0 0 1 -1.5708
0 0 1 -1.5708
0 0 1 -1.0472
0 0 1 -0.5236
0 0 1 0
0 0 1 0
0 0 1 0
0 0 1 0
]
}
DEF PoopSI PositionInterpolator {
key [ 0 0.0625 0.125 0.1875 0.25 0.3125 0.375 0.4375 0.5 0.5625 0.625 0.6875 0.75 0.8125 0.875 0.9375 1 ]
keyValue [
0.0001 0.0001 0.0001
0.0001 0.0001 0.0001
0.0001 0.0001 0.0001
0.0001 0.0001 0.0001
0.0001 0.0001 0.0001
0.0001 0.0001 0.0001
0.5 0.5 0.5
1 1 1
1 1 1
1 1 1
1 1 1
1 1 1
0.0001 0.0001 0.0001
0.0001 0.0001 0.0001
0.0001 0.0001 0.0001
0.0001 0.0001 0.0001
0.0001 0.0001 0.0001
]
}
DEF PoopPI PositionInterpolator {
key [ 0 0.0625 0.125 0.1875 0.25 0.3125 0.375 0.4375 0.5 0.5625 0.625 0.6875 0.75 0.8125 0.875 0.9375 1 ]
keyValue [
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 -.3 0
0 -.6 0
0 -.9 0
0 -1.2 0
0 -1.5 0
0 -1.7 0
0 0 0
0 0 0
0 0 0
0 0 0
]
}
# Gesture 8
DEF TSblxncc8 TimeSensor {
startTime IS gesture8
cycleInterval 3.5
},
DEF OIblxncc8 OrientationInterpolator {
key [ 0, 0.083, 0.166, 0.25, 0.333, 0.416, 0.5, 0.583, 0.666, 0.75, 0.833, 0.916, 1 ]
keyValue [ 0 1 0 0, 0 0 1 0.175, 0 0 1 0.35, 0 0 1 0.175, 0 1 0 0, 0 0 -1 0.175,
0 0 -1 0.35, 0 0 -1 0.175, 0 1 0 0, 0 0 1 0.175, 0 0 1 0.35, 0 0 1 0.175, 0 1 0 0 ]
}
# Walking (flapping) and banking
DEF WalkingAvatarMove Script {
eventIn SFVec3f set_position IS set_position
eventIn SFRotation set_rotation
eventOut SFBool flap
eventOut SFVec3f translation_changed
eventOut SFRotation rotation_changed
field SFFloat currentYaw 0.0
field SFTime currentTime 0.0
field SFVec3f currentPosition 0 0 0
url ["javascript:
// Flap when moving
function set_position(value) {
deltaX = currentPosition.x - value.x;
deltaY = currentPosition.y - value.y;
deltaZ = currentPosition.z - value.z;
deltaP = (deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ);
if (deltaP > 0.001) {
currentPosition = value;
flap = true;
} else {
flap = false;
}
translation_changed = value;
}
// roll angle = f(yaw_rate)
function set_rotation(value,timestamp) {
deltaTime = timestamp - currentTime;
currentTime = timestamp;
yawAngle = value.y * value.angle;
deltaYaw = currentYaw - yawAngle;
currentYaw = yawAngle;
yawRate = deltaYaw/deltaTime;
rotation_changed = new SFRotation(0,0,1,yawRate);
}
"]
}
DEF GTS TimeSensor {
cycleInterval 2
loop FALSE
}
DEF GLWOI1 OrientationInterpolator {
key [ 0 .25 .5 .75 1 ]
keyValue [ 1 0 0 0 1 0 0 .3 1 0 0 0 1 0 0 -.3 1 0 0 0 ]
}
DEF GLWOI2 OrientationInterpolator {
key [ 0 .15 .25 .35 .45 1 ]
keyValue [ 1 0 0 -.2 1 0 0 -.3 1 0 0 -.6 1 0 0 -.3 1 0 0 .2 1 0 0 -.2 ]
}
DEF GRWOI1 OrientationInterpolator {
key [ 0 .25 .5 .75 1 ]
keyValue [ 1 0 0 0 1 0 0 -.3 1 0 0 0 1 0 0 .3 1 0 0 0 ]
}
DEF GRWOI2 OrientationInterpolator {
key [ 0 .15 .25 .35 .45 1 ]
keyValue [ 1 0 0 .2 1 0 0 .3 1 0 0 .6 1 0 0 .3 1 0 0 -.2 1 0 0 .2 ]
}
DEF GTOI OrientationInterpolator {
key [ 0 .25 .5 .75 1 ]
keyValue [ 0 0 1 .1 0 0 1 0 0 0 1 -.1 0 0 1 0 0 0 1 .1 ]
}
]}]}]}
# Gesture 1: Hello
ROUTE TSblxncc1.fraction_changed TO OIblxncc1.set_fraction
ROUTE OIblxncc1.value_changed TO topheadcc.set_rotation
# Gesture 2: Hey
ROUTE Wizard.fraction_changed TO Wizard_rot0.set_fraction
ROUTE Wizard_rot0.value_changed TO dad_Gull.set_rotation
# Gesture 3: Yes
ROUTE TSblxncc3.fraction_changed TO OIblxncc3.set_fraction
ROUTE OIblxncc3.value_changed TO topheadcc.set_rotation
# Gesture 4: Like
ROUTE TSblxncc4.fraction_changed TO PIblxncc4.set_fraction
ROUTE TSblxncc4.fraction_changed TO OIblxncc4.set_fraction
ROUTE PIblxncc4.value_changed TO topheadcc.set_translation
ROUTE OIblxncc4.value_changed TO topheadcc.set_rotation
# Gesture 5: Dislike
ROUTE TSblxncc5.fraction_changed TO PIblxncc5.set_fraction
ROUTE TSblxncc5.fraction_changed TO OIblxncc5.set_fraction
ROUTE PIblxncc5.value_changed TO topheadcc.set_translation
ROUTE OIblxncc5.value_changed TO topheadcc.set_rotation
# Gesture 6: No
ROUTE TSblxncc6.fraction_changed TO OIblxncc6.set_fraction
ROUTE OIblxncc6.value_changed TO topheadcc.set_rotation
# Gesture 7: Poop
ROUTE TSblxncc7.fraction_changed TO OIblxncc7.set_fraction
ROUTE TSblxncc7.fraction_changed TO TailOI.set_fraction
ROUTE TSblxncc7.fraction_changed TO PoopSI.set_fraction
ROUTE TSblxncc7.fraction_changed TO PoopPI.set_fraction
ROUTE OIblxncc7.value_changed TO topheadcc.set_rotation
ROUTE TailOI.value_changed TO dad_Tail.set_rotation
ROUTE PoopSI.value_changed TO dad_Poop.set_scale
ROUTE PoopPI.value_changed TO dad_Poop.set_translation
# Gesture 8: Bye
ROUTE TSblxncc8.fraction_changed TO OIblxncc8.set_fraction
ROUTE OIblxncc8.value_changed TO topheadcc.set_rotation
# Walking (flapping) and banking
ROUTE WalkingAvatar.rotation_changed TO WalkingAvatarMove.set_rotation
ROUTE WalkingAvatarMove.flap TO GTS.set_loop
ROUTE WalkingAvatarMove.translation_changed TO WalkingAvatar.set_translation
ROUTE WalkingAvatarMove.rotation_changed TO dad_GROUND.set_rotation
ROUTE GTS.fraction_changed TO GLWOI1.set_fraction
ROUTE GTS.fraction_changed TO GLWOI2.set_fraction
ROUTE GTS.fraction_changed TO GRWOI1.set_fraction
ROUTE GTS.fraction_changed TO GRWOI2.set_fraction
ROUTE GLWOI1.value_changed TO dad_L_Wing.set_rotation
ROUTE GLWOI2.value_changed TO dad_L_Wing_Tip.set_rotation
ROUTE GRWOI1.value_changed TO dad_R_Wing.set_rotation
ROUTE GRWOI2.value_changed TO dad_R_Wing_Tip.set_rotation
}
Avatar { }