OrderedGroup { 
  children [
  
    ##Hack to have the display refreshed
    DEF TS TimeSensor {
 	loop	TRUE
    }
    DEF CI ColorInterpolator {
    	key		[0, 1]
 	keyValue	[0 0 0, 0 0 0.01]
    }
    DEF BG Background2D {
      backColor 0 0 0
    }

    ## Mouse display
    Transform2D {
      translation 0 +75
      children [
        Transform2D {
          translation -200 0
          children [
            Shape {
              appearance DEF A1 Appearance {
                material Material2D {
                  emissiveColor 1 1 1
                }
              }
              geometry DEF L8 Text {
              	string "X" 
              	fontstyle DEF F1 FontStyle {
                  size 20
              	}
              }
            }
          ]
        }
        Shape {
          appearance USE A1
          geometry DEF T8 Text {
            string "0"
            fontstyle USE F1
          }
        }
        DEF V8 Valuator {}
      ]
    } 
    Transform2D {
      translation 0 +50
      children [
        Transform2D {
          translation -200 0
          children [
            Shape {
              appearance USE A1 
              geometry DEF L9 Text {
              	string "Y" 
              	fontstyle USE F1 
              }
            }
          ]
        }
        Shape {
          appearance USE A1
          geometry DEF T9 Text {
            string "0"
            fontstyle USE F1
          }
        }
        DEF V9 Valuator {}
      ]
    } 
    Transform2D {
      translation 0 +25
      children [
        Transform2D {
          translation -200 0
          children [
            Shape {
              appearance USE A1 
              geometry DEF L10 Text {
              	string "leftButton_pressed" 
              	fontstyle USE F1 
              }
            }
          ]
        }
        Shape {
          appearance USE A1
          geometry DEF T10 Text {
            string "0"
            fontstyle USE F1
          }
        }
        DEF V10 Valuator {}
      ]
    } 
    InputSensor { 
	url [ "11" ]
	buffer {
	 REPLACE V8.inSFFloat BY  0
	 REPLACE V9.inSFFloat BY  0
	 REPLACE V10.inSFBool BY  TRUE
      }
    }
  ]
}
## display the KeySensor fields
route V8.outMFString to T8.string
route V9.outMFString to T9.string
route V10.outMFString to T10.string

## Hack for refreshing the display
route TS.fraction_changed to CI.set_fraction
## route CI.value_changed to M1.emissiveColor
route CI.value_changed to BG.backColor

AT 0 {
UPDATE OD [
  ObjectDescriptor {
    objectDescriptorID 11
    esdescr [
      ES_Descriptor {
        es_id 2
	URLstring "mouse:"
	streamPriority 16
	decConfigDescr DecoderConfigDescriptor {
	  objectTypeIndication 255
	  streamType 9
	  upStream false
	  bufferSizeDB 100000
	  maxBitrate 0
	  avgBitrate 0
	  decSpecificInfo UIConfig {
	    pixelWidth 320
	    pixelHeight 200
	    nodeIDBits 10
	    protoIDBits 10
	    deviceURL "mouse:"
	  }
	}
       slConfigDescr SLConfigDescriptor {
       }
     }
   ]
  }
] # end UPDATE OD
}