InitialObjectDescriptor {
 objectDescriptorID 1
 audioProfileLevelIndication 1
 visualProfileLevelIndication 1
 sceneProfileLevelIndication 1
 graphicsProfileLevelIndication 1
 ODProfileLevelIndication 1
 esDescr [
  ES_Descriptor {
   ES_ID 2
   decConfigDescr DecoderConfigDescriptor {
    streamType 3
    decSpecificInfo BIFSConfig {
     isCommandStream true
     pixelMetric true
     pixelWidth 600
     pixelHeight 400
    }
   }
  }
 ]
}

OrderedGroup {
 children [
  Background2D {
   backColor 1 1 1
  }
  WorldInfo {
   info [
    "This shows usage of transparency with gradient" 
    "Move the rectangle over the circle to see that the gradient is not uniformly transparent." 
    "" 
    "GPAC Regression Tests" "$Date: 2007-07-27 09:46:08 $ - $Revision: 1.3 $" 
    "(C) 2002-2006 GPAC Team"
   ]
   title "Gradient and Transparency"
  }
  DEF TR Transform2D {
   translation 200 50
   children [
    Shape {
     appearance Appearance {
      material Material2D {
       lineProps LineProperties {
        width 0
       }
      }
      texture DEF GL LinearGradient {
       endPoint 1 1
       key [0 0.4 1]
       keyValue [0 0 1 1 0 1 0 1 1]
       spreadMethod 1
      }
     }
     geometry Rectangle {
      size 200 200
     }
    }
    DEF PS PlaneSensor2D {
     maxPosition 300 300
     minPosition -300 -300
     offset 200 50
    }
   ]
  }
  Transform2D {
   scale 1 1.2
   translation -50 0
   children [
    Shape {
     appearance Appearance {
      texture RadialGradient {
       focalPoint 0.75 0.5
       key [0 0.6 1]
       keyValue [1 1 1 1 0 0 1 1 0]
       opacity [1 1 0.3]
      }
     }
     geometry Circle {
      radius 100
     }
    }
   ]
  }
  Transform2D {
   translation 0 -150
   children [
    Shape {
     appearance Appearance {
      material Material2D {
       emissiveColor 0 0 0
       filled TRUE
      }
     }
     geometry Text {
      string ["Drag square around screen"]
      fontStyle DEF FS FontStyle {
       justify ["MIDDLE" "MIDDLE"]
       size 20
      }
     }
    }
   ]
  }
  DEF TS TimeSensor {
   cycleInterval 2
   loop TRUE
  }
  DEF C PositionInterpolator2D {
   key [0 0.5 1]
   keyValue [1 1 1 0 1 1]
  }
 ]
}

ROUTE TS.fraction_changed TO C.set_fraction
ROUTE C.value_changed TO GL.endPoint
ROUTE PS.translation_changed TO TR.translation

