interface


  EXTERNPROTO BlaxxunZone [ 
  eventIn         MFNode   addEvents 
  eventIn         MFNode   removeEvents 
  eventIn         MFNode   addAvatars 
  eventIn         MFNode   removeAvatars 
  
  exposedField    MFNode   events
  exposedField    MFNode   avatars
  eventOut        MFNode   events_added 
  eventOut        MFNode   events_removed 
  
  eventOut        MFNode   avatars_added 
  eventOut        MFNode   avatars_removed
  eventIn         SFInt32  set_myAvatarGesture 
  eventIn         SFInt32 
   myAvatarGestureFromServer 
  eventOut        SFInt32  myAvatarGesture_changed 
  eventOut        SFInt32  myAvatarGestureToServer 
  
  exposedField    MFString sendToChat
  exposedField    SFFloat  beamToDistance
  exposedField    MFString groupChatName
  exposedField 
     MFString groupChat ""
  ]
  {
  DEF TE Transform {
  children IS events
  }
  DEF TA Group {
          children IS avatars
  }
  DEF S Script {
   eventIn MFNode 
  addEvents IS addEvents
   eventIn MFNode removeEvents IS removeEvents
   eventIn MFNode addAvatars IS addAvatars
   eventIn 
  MFNode removeAvatars IS removeAvatars 
   eventOut MFNode events_added IS events_added
   eventOut MFNode events_removed 
  IS events_removed
   eventOut MFNode avatars_added IS avatars_added
   eventOut MFNode avatars_removed IS avatars_removed
   
  eventIn         SFInt32  set_myAvatarGesture IS set_myAvatarGesture
   eventIn         SFInt32  myAvatarGestureFromServer IS myAvatarGestureFromServer
   
  eventOut        SFInt32  myAvatarGesture_changed IS myAvatarGesture_changed
   eventOut        SFInt32  myAvatarGestureToServer 
  IS myAvatarGestureToServer
   exposedField    MFString sendToChat
   exposedField    SFFloat  beamToDistance
  beamToDistance  
   exposedField    MFString groupChatName
   exposedField    MFString groupChat
   
  url "vrmlscript:
   function addEvents(value, time) { events_added = value; }
   function addAvatars(value, time) { avatars_added 
  = value; }
   function removeEvents(value, time) { events_removed = value; }
   function removeAvatars(value, time) { avatars_removed 
  = value; }
   function set_myAvatarGesture(value, time) { myAvatarGestureToServer = value; }
   function myAvatarGestureFromServer(value, 
  time) { myAvatarGesture_changed = value; }
  "
  }
  ROUTE S.events_added TO TE.addChildren
  ROUTE S.events_removed TO TE.removeChildren
  ROUTE 
  S.avatars_added TO TA.addChildren
  ROUTE S.avatars_removed TO TA.removeChildren
  }