InitialObjectDescriptor {
 objectDescriptorID 1
 audioProfileLevelIndication 255
 visualProfileLevelIndication 254
 sceneProfileLevelIndication 1
 graphicsProfileLevelIndication 1
 ODProfileLevelIndication 1
 esDescr [
  ES_Descriptor {
   ES_ID 1
   decConfigDescr DecoderConfigDescriptor {
    streamType 3
    decSpecificInfo BIFSConfig {
     isCommandStream true
     pixelMetric true
     pixelWidth 200
     pixelHeight 140
    }
   }
  }
 ]
}

OrderedGroup {
 children [
  Background2D {
   backColor 1 1 1
  }
  WorldInfo {
   info [
    "This shows how to make a 4 states button" 
    "" 
    "GPAC Regression Tests" "$Date: 2007-07-27 09:46:07 $ - $Revision: 1.2 $" 
    "(C) 2002-2006 GPAC Team"
   ]
   title "4 States Button"
  }
  Transform2D {
   scale 0.5 0.5
   children [
    Transform2D {
     translation 0 60
     children [
      Shape {
       appearance Appearance {
        material Material2D {
         emissiveColor 0 1 0
         filled TRUE
        }
       }
       geometry Rectangle {
        size 100 100
       }
      }
      DEF TS1 TouchSensor {}
     ]
    }
    Transform2D {
     translation -100 -50
     children [
      Shape {
       appearance Appearance {
        material DEF M1 Material2D {
         emissiveColor 1 1 0
         filled TRUE
        }
       }
       geometry Circle {
        radius 50
       }
      }
     ]
    }
    DEF OverC Conditional {
        buffer {
            REPLACE M1.emissiveColor BY 1 1 0
        }
    }
    DEF OverRC Conditional {
        buffer {
            REPLACE M1.emissiveColor BY 0 1 1
        }
    }
    DEF C Conditional {
        buffer {
            REPLACE M1.emissiveColor BY 1 0 0
        }
    }
    DEF RC Conditional {
        buffer {
            REPLACE M1.emissiveColor BY 0 0 1
        }
    }
   ]
  }
 ]
}

ROUTE TS1.isActive TO C.activate
ROUTE TS1.isActive TO RC.reverseActivate
ROUTE TS1.isOver TO OverC.activate
ROUTE TS1.isOver TO OverRC.reverseActivate

