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 200
    }
   }
  }
 ]
}

OrderedGroup {
 children [
  Background2D {
   backColor 1 1 1
  }
  WorldInfo {
   info [
    "This test shows the usage of line dashing using the XLineProperties node."
    "Two properties are demonstrated: dash pattern and dash offset. The offset is animated on the left, the dash length is animated on the right." 
    "" 
    "GPAC Regression Tests" "$Date: 2007-09-14 16:42:18 $ - $Revision: 1.4 $" 
    "(C) 2002-2006 GPAC Team"
   ]
   title "Animating the line dashes using the XLineProperties node"
  }
  Transform2D {
   translation 140 0
   children [
    Shape {
     appearance Appearance {
      material Material2D {
       lineProps DEF XLP1 XLineProperties {
        lineColor 0 0 1
        lineStyle 6
        isScalable TRUE
        lineCap 1
        width 20
        dashes [0.1 80]
       }
      }
     }
     geometry DEF LS Curve2D {
      fineness 1
      type [2]
      point Coordinate2D {
       point [-100 0 -50 200 50 -200 100 0]
      }
     }
    }
    Transform2D {
     translation 0 -80
     children [
      Shape {
       appearance DEF TEXTAPP Appearance {
        material Material2D {
         emissiveColor 0 0 0
         filled TRUE
        }
       }
       geometry Text {
        string ["dash pattern animation"]
        fontStyle DEF FS FontStyle {
         justify ["MIDDLE" "MIDDLE"]
         size 20
        }
       }
      }
     ]
    }
   ]
  }
  Transform2D {
   translation -140 0
   children [
    Shape {
     appearance Appearance {
      material Material2D {
       lineProps DEF XLP2 XLineProperties {
        lineColor 0 0 1
        lineStyle 6
        isScalable TRUE
        lineCap 1
        width 20
        dashes [3 80]
       }
      }
     }
     geometry USE LS
    }
    Transform2D {
     translation 0 -80
     children [
      Shape {
       appearance USE TEXTAPP
       geometry Text {
        string ["dash offset animation"]
        fontStyle USE FS
       }
      }
     ]
    }
   ]
  }
  DEF TS TimeSensor {
   cycleInterval 3
   loop TRUE
  }
  DEF SI ScalarInterpolator {
   key [0 0.5 1]
   keyValue [0 16 0]
  }
  DEF CI CoordinateInterpolator2D {
   key [0 0.5 1]
   keyValue [0.2 0 80 0 17.5 0 80 0 0.2 0 80 0]
  }
  DEF V Valuator {
   Factor2 0
   Factor3 0
   Factor4 0
  }
 ]
}

ROUTE TS.fraction_changed TO SI.set_fraction
ROUTE SI.value_changed TO XLP2.dashOffset
ROUTE TS.fraction_changed TO CI.set_fraction
ROUTE CI.value_changed TO V.inMFVec2f
ROUTE V.outMFFloat TO XLP1.dashes

