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" "(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