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 300 pixelHeight 300 } } } ] } OrderedGroup { children [ Background2D { backColor 0 1 1 } WorldInfo { info ["This shows the Osmo4 logo" "animated through BIFS commands" "" "GPAC Regression Tests" "(C) 2002-2004 GPAC Team"] title "Osmo4 Logo" } Shape { appearance Appearance { texture LinearGradient { endPoint 0 1 key [0 0.33 1] keyValue [0 0.5 0.5 0 0.75 0.75 0 0.75 1] } } geometry Rectangle { size 300 300 } } Switch { choice [ DEF BCIRCLE Shape { appearance DEF ABLACK Appearance { material Material2D { emissiveColor 0 0 0 filled TRUE } } geometry Circle { radius 60 } } DEF BTRIANGLE Shape { appearance USE ABLACK geometry IndexedFaceSet2D { colorPerVertex FALSE coord Coordinate2D { point [-40 0 40 0 0 -60] } } } DEF RCIRCLE Shape { appearance Appearance { material DEF RMAT Material2D { lineProps DEF LP XLineProperties { lineColor 1 0 0 width 20 } } } geometry Circle { radius 100 } } ] } DEF MOV Transform2D { children [ DEF LOGO Transform2D {} ] } ] } AT 1000 { APPEND TO LOGO.children DEF BR Transform2D { scale 0 0 translation -150 -150 children [ USE BCIRCLE ] } APPEND TO MOV.children DEF TIME TimeSensor { cycleInterval 1.5 } APPEND TO MOV.children DEF POS PositionInterpolator2D { key [0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1] keyValue [-150 -150 -135 135 120 120 105 -105 -90 -90 -75 75 60 60 45 -45 -30 -30 -15 15 0 0] } APPEND TO MOV.children DEF SCALE PositionInterpolator2D { key [0 1] keyValue [0.1 0.1 1 1] } INSERT ROUTE DEF R1 TIME.fraction_changed TO POS.set_fraction INSERT ROUTE DEF R2 TIME.fraction_changed TO SCALE.set_fraction INSERT ROUTE DEF R3 POS.value_changed TO BR.translation INSERT ROUTE DEF R4 SCALE.value_changed TO BR.scale } AT 2500 { DELETE ROUTE R1 DELETE ROUTE R2 DELETE ROUTE R3 DELETE ROUTE R4 DELETE TIME DELETE POS DELETE SCALE REPLACE BR.translation BY 0 0 REPLACE BR.scale BY 1 1 APPEND TO LOGO.children DEF BT Transform2D { scale 9 0.5 translation 0 20 children [ USE BTRIANGLE ] } APPEND TO MOV.children DEF TIME2 TimeSensor { cycleInterval 1.5 } APPEND TO MOV.children DEF POS_BT PositionInterpolator2D { key [0 1] keyValue [0 20 0 90] } APPEND TO MOV.children DEF POS_BR PositionInterpolator2D { key [0 1] keyValue [0 0 0 -30] } APPEND TO MOV.children DEF SCALE_BR PositionInterpolator2D { key [0 0.7 1] keyValue [1 1 1.4 1.4 1 1] } APPEND TO MOV.children DEF SCALE_BT PositionInterpolator2D { key [0 0.7 1] keyValue [9 0.5 5 0.7 1 1] } INSERT ROUTE DEF R1 TIME2.fraction_changed TO POS_BT.set_fraction INSERT ROUTE DEF R2 TIME2.fraction_changed TO POS_BR.set_fraction INSERT ROUTE DEF R3 TIME2.fraction_changed TO SCALE_BT.set_fraction INSERT ROUTE DEF R4 TIME2.fraction_changed TO SCALE_BR.set_fraction INSERT ROUTE DEF R5 POS_BT.value_changed TO BT.translation INSERT ROUTE DEF R6 POS_BR.value_changed TO BR.translation INSERT ROUTE DEF R7 SCALE_BT.value_changed TO BT.scale INSERT ROUTE DEF R8 SCALE_BR.value_changed TO BR.scale } AT 4000 { DELETE ROUTE R1 DELETE ROUTE R2 DELETE ROUTE R3 DELETE ROUTE R4 DELETE ROUTE R5 DELETE ROUTE R6 DELETE ROUTE R7 DELETE ROUTE R8 DELETE TIME2 DELETE POS_BT DELETE SCALE_BT DELETE POS_BR DELETE SCALE_BR REPLACE BT.translation BY 0 90 REPLACE BR.translation BY 0 -30 REPLACE BR.scale BY 1 1 REPLACE BT.scale BY 1 1 REPLACE LP.width BY 0 APPEND TO LOGO.children DEF RC Transform2D { children [ USE RCIRCLE ] } APPEND TO MOV.children DEF TIME3 TimeSensor { cycleInterval 1.5 } APPEND TO MOV.children DEF WIDTH ScalarInterpolator { key [0 0.5 0.75 1] keyValue [0 25 15 20] } APPEND TO MOV.children DEF COL ColorInterpolator { key [0 1] keyValue [0 0 0 1 0 0] } INSERT ROUTE DEF R1 TIME3.fraction_changed TO WIDTH.set_fraction INSERT ROUTE DEF R2 TIME3.fraction_changed TO COL.set_fraction INSERT ROUTE DEF R3 WIDTH.value_changed TO LP.width INSERT ROUTE DEF R4 COL.value_changed TO LP.lineColor } AT 5500 { DELETE ROUTE R1 DELETE ROUTE R2 DELETE ROUTE R3 DELETE ROUTE R4 DELETE TIME3 DELETE WIDTH DELETE COL REPLACE LP.width BY 20 REPLACE LP.transparency BY 0 REPLACE LP.lineColor BY 1 0 0 APPEND TO MOV.children Transform2D { translation 110 38 children [ Shape { appearance Appearance { material DEF TXTMAT Material2D { emissiveColor 0.1 0 0.1 filled TRUE transparency 1 } } geometry Text { string ["sm"] fontStyle DEF FS FontStyle { justify ["BEGIN" "BEGIN"] size 160 } } } ] } APPEND TO MOV.children Transform2D { scale 0.3 0.3 translation 340 -70 children [ USE LOGO ] } APPEND TO MOV.children Transform2D { translation 380 38 children [ Shape { appearance Appearance { material USE TXTMAT } geometry Text { string ["4"] fontStyle USE FS } } ] } APPEND TO MOV.children DEF TIME4 TimeSensor { cycleInterval 1.5 } APPEND TO MOV.children DEF POS_MOV PositionInterpolator2D { key [0 0.5 1] keyValue [0 0 75 0 -75 0] } APPEND TO MOV.children DEF SCALE_MOV PositionInterpolator2D { key [0 0.5 1] keyValue [1 1 0.4 0.4 0.4 0.4] } APPEND TO MOV.children DEF ALPHA2 ScalarInterpolator { key [0 0.9 1] keyValue [0.95 0.5 0] } INSERT ROUTE DEF R1 TIME4.fraction_changed TO POS_MOV.set_fraction INSERT ROUTE DEF R2 TIME4.fraction_changed TO SCALE_MOV.set_fraction INSERT ROUTE DEF R3 TIME4.fraction_changed TO ALPHA2.set_fraction INSERT ROUTE DEF R4 POS_MOV.value_changed TO MOV.translation INSERT ROUTE DEF R5 SCALE_MOV.value_changed TO MOV.scale INSERT ROUTE DEF R6 ALPHA2.value_changed TO TXTMAT.transparency } AT 7000 { DELETE ROUTE R1 DELETE ROUTE R2 DELETE ROUTE R3 DELETE ROUTE R4 DELETE ROUTE R5 DELETE ROUTE R6 DELETE TIME4 DELETE ALPHA2 DELETE POS_MOV DELETE SCALE_MOV REPLACE TXTMAT.transparency BY 0.5 REPLACE MOV.translation BY -75 0 REPLACE MOV.scale BY 0.4 0.4 APPEND TO LOGO.children Transform2D { children [ DEF TS TimeSensor { cycleInterval 4 loop TRUE } DEF PI PositionInterpolator2D { key [0 0.25 0.5 0.75 1] keyValue [1 1 -1 1 1 1 1 -1 1 1] } DEF SI ScalarInterpolator { key [0 0.5 1] keyValue [0 0.8 0] } ] } INSERT ROUTE TS.fraction_changed TO PI.set_fraction INSERT ROUTE TS.fraction_changed TO SI.set_fraction INSERT ROUTE PI.value_changed TO LOGO.scale INSERT ROUTE SI.value_changed TO TXTMAT.transparency }