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 400
     pixelHeight 400
    }
   }
  }
 ]
}

OrderedGroup {
 children [
  Background2D {
   backColor 1 1 1
  }
  WorldInfo {
   info [
    "This test shows line texturing with a radial gradient with different spread method and animated focal point"
    "" 
    "GPAC Regression Tests" "$Date: 2007-07-27 09:46:07 $ - $Revision: 1.3 $" 
    "(C) 2002-2006 GPAC Team"]
   title "Radial Gradient on lines using XLineProperties node"
  }
  Transform2D {
   translation 0 -150
   children [
    Shape {
     appearance Appearance {
      material Material2D {
       emissiveColor 0 0 0
       filled TRUE
      }
     }
     geometry Text {
      string ["Move over and click" "to change the spread method"]
      fontStyle DEF FS FontStyle {
       justify ["MIDDLE" "MIDDLE"]
       size 20
      }
     }
    }
   ]
  }
  DEF TR TransformMatrix2D {
   mxy 1
   children [
    Shape {
     appearance Appearance {
      material Material2D {
       lineProps XLineProperties {
        isCenterAligned TRUE
        width 40
        texture DEF GR RadialGradient {
         focalPoint 0 0.5
         key [0 0.5 1]
         keyValue [0 0 1 1 0 0 0 1 0]
        }
       }
      }
     }
     geometry DEF R Rectangle {
      size 200 200
     }
    }
    DEF TS TouchSensor {}
   ]
  }
  DEF C Conditional {
   buffer {
    REPLACE GR.spreadMethod BY 2
   }
  }
  DEF RC Conditional {
   buffer {
    REPLACE GR.spreadMethod BY 0
   }
  }
  DEF C2 Conditional {
   buffer {
    REPLACE GR.spreadMethod BY 1
   }
  }
  DEF RC2 Conditional {
   buffer {
    REPLACE GR.spreadMethod BY 2
   }
  }
  DEF TIME TimeSensor {
   cycleInterval 4
   loop TRUE
  }
  DEF CI PositionInterpolator2D {
   key [0 0.25 0.5 0.75 1]
   keyValue [0 0.5 0.5 1 1 0.5 0.5 0 0 0.5]
  }
  DEF SI ScalarInterpolator {
   key [0 0.5 1]
   keyValue [0 1 0]
  }
 ]
}

ROUTE TS.isOver TO C.activate
ROUTE TS.isOver TO RC.reverseActivate
ROUTE TS.isActive TO C2.activate
ROUTE TS.isActive TO RC2.reverseActivate
ROUTE TIME.fraction_changed TO CI.set_fraction
ROUTE CI.value_changed TO GR.focalPoint
ROUTE TIME.fraction_changed TO SI.set_fraction
ROUTE SI.value_changed TO TR.mxy

