#VRML V2.0 utf8 # # World with PROTO INTERFACES # # - without behaviors or metaphors # EXTERNPROTO FSM [ eventIn SFFloat set_clock field SFVec3f position exposedField SFBool input eventIn SFString set_state field SFString start_state field MFNode states field MFNode transitions ] "protos2.wrl#FSM" EXTERNPROTO FSM_STATE [ eventIn SFFloat set_clock exposedField SFBool enabled field SFNode node field SFNode nodeG field MFNode audio exposedField MFNode geometry field MFString behavior ] "protos2.wrl#FSM_STATE" EXTERNPROTO FSM_TRANSITION [ eventIn SFFloat set_clock exposedField SFBool enabled eventOut SFString state_changed field SFNode from field SFNode to field SFNode fsm field SFNode object exposedField MFNode geometry field MFString behavior ] "protos2.wrl#FSM_TRANSITION" EXTERNPROTO SPHERE [ exposedField SFFloat transparency field SFVec3f text_position field MFString name field SFVec3f position ] "protos2.wrl#SPHERE" EXTERNPROTO ARROW [ field SFVec3f local_frame field SFVec3f translation field SFRotation rotation field SFVec3f cylinder_translation field SFVec3f cone_translation field SFRotation cone_rotation ] "protos2.wrl#ARROW" # # World # DEF World FSM { position -6 -2 -6 states [ DEF Sphere1 FSM_STATE { enabled TRUE geometry DEF Sphere1G SPHERE { text_position -1 1 0 name "s1" position 6 5 0 } node USE Sphere1 nodeG USE Sphere1G } #DEF Sphere1 DEF Sphere2 FSM_STATE { geometry DEF Sphere2G SPHERE { text_position -1.5 1 0 name "s2" position 9 0 0 } node USE Sphere2 nodeG USE Sphere2G } #DEF Sphere2 DEF Sphere3 FSM_STATE { geometry DEF Sphere3G SPHERE { text_position -1.5 1 0 name "s3" position 3.0 0 0 } node USE Sphere3 nodeG USE Sphere3G } #DEF Sphere3 ] #states start_state "s1" transitions [ DEF Arrow1 FSM_TRANSITION { fsm USE World from USE Sphere1 to USE Sphere2 geometry Transform { children [ DEF Arrow1G ARROW { local_frame 8 2.5 0 rotation 0 0 1 0.785 cylinder_translation 0 1 0 cone_rotation 0 0 1 3.14 } ] #children } #Transform } #DEF Arrow1 DEF Arrow2 FSM_TRANSITION { fsm USE World from USE Sphere2 to USE Sphere3 geometry DEF Arrow2G ARROW { local_frame 6 -0.75 0 translation 0.5 0 0 rotation 0 0 1 1.571 cone_translation 0 1 0 } } #DEF Arrow2 DEF Arrow3 FSM_TRANSITION { fsm USE World from USE Sphere3 to USE Sphere2 geometry DEF Arrow3G ARROW { local_frame 6 0.75 0 translation -0.5 0 0 rotation 0 0 1 -1.571 cone_translation 0 1 0 } } #DEF Arrow3 ] #transitions }#DEF World