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
    }
   }
  }
  ES_Descriptor {
   ES_ID 1
   decConfigDescr DecoderConfigDescriptor {
    streamType 1
   }
  }
 ]
}

OrderedGroup {
 children [
  Background2D {
   backColor 1 1 1
  }
  WorldInfo {
   info [
    "This test shows a texture being transformed (e.g. skewed) and this transformation is animated." 
    "The TransformMatrix2D is used here to allow skewing." 
    "" 
    "GPAC Regression Tests" "$Date: 2007-07-27 09:46:08 $ - $Revision: 1.3 $" 
    "(C) 2002-2006 GPAC Team"
   ]
   title "ImageTexture"
  }
  Transform2D {
   translation -180 100
   children [
    Shape {
     appearance Appearance {
      texture DEF TEXTURE ImageTexture {
       url [od:10]
      }
      textureTransform DEF MX1 TransformMatrix2D {}

     }
     geometry DEF REC Rectangle {
      size 150 100
     }
    }
    Transform2D {
     translation 0 -70
     children [
      Shape {
       appearance DEF TEXTAPP Appearance {
        material Material2D {
         emissiveColor 0 0 0
         filled TRUE
        }
       }
       geometry Text {
        string ["Texture horizontal scaling"]
        fontStyle DEF FS FontStyle {
         justify ["MIDDLE" "MIDDLE"]
         size 14
        }
       }
      }
     ]
    }
   ]
  }
  Transform2D {
   translation -180 -100
   children [
    Shape {
     appearance Appearance {
      texture USE TEXTURE
      textureTransform DEF MX2 TransformMatrix2D {}

     }
     geometry USE REC
    }
    Transform2D {
     translation 0 -70
     children [
      Shape {
       appearance USE TEXTAPP
       geometry Text {
        string ["Texture vertical scaling"]
        fontStyle USE FS
       }
      }
     ]
    }
   ]
  }
  Transform2D {
   translation 0 100
   children [
    Shape {
     appearance Appearance {
      texture USE TEXTURE
      textureTransform DEF MX3 TransformMatrix2D {}

     }
     geometry USE REC
    }
    Transform2D {
     translation 0 -70
     children [
      Shape {
       appearance USE TEXTAPP
       geometry Text {
        string ["Texture horizontal skewing"]
        fontStyle USE FS
       }
      }
     ]
    }
   ]
  }
  Transform2D {
   translation 0 -100
   children [
    Shape {
     appearance Appearance {
      texture USE TEXTURE
      textureTransform DEF MX4 TransformMatrix2D {
       mxy 1
      }
     }
     geometry USE REC
    }
    Transform2D {
     translation 0 -70
     children [
      Shape {
       appearance USE TEXTAPP
       geometry Text {
        string ["Texture vertical skewing"]
        fontStyle USE FS
       }
      }
     ]
    }
   ]
  }
  Transform2D {
   translation 180 100
   children [
    Shape {
     appearance Appearance {
      texture USE TEXTURE
      textureTransform DEF MX5 TransformMatrix2D {}

     }
     geometry USE REC
    }
    Transform2D {
     translation 0 -70
     children [
      Shape {
       appearance USE TEXTAPP
       geometry Text {
        string ["Texture horizontal translating"]
        fontStyle USE FS
       }
      }
     ]
    }
   ]
  }
  Transform2D {
   translation 180 -100
   children [
    Shape {
     appearance Appearance {
      texture USE TEXTURE
      textureTransform DEF MX6 TransformMatrix2D {}

     }
     geometry USE REC
    }
    Transform2D {
     translation 0 -70
     children [
      Shape {
       appearance USE TEXTAPP
       geometry Text {
        string ["Texture vertical translating"]
        fontStyle USE FS
       }
      }
     ]
    }
   ]
  }
  DEF TS TimeSensor {
   cycleInterval 2
   loop TRUE
  }
  DEF SI ScalarInterpolator {
   key [0 0.5 1]
   keyValue [0 2 0]
  }
 ]
}

ROUTE TS.fraction_changed TO SI.set_fraction
ROUTE SI.value_changed TO MX1.mxx
ROUTE SI.value_changed TO MX2.myy
ROUTE SI.value_changed TO MX3.mxy
ROUTE SI.value_changed TO MX4.myx
ROUTE SI.value_changed TO MX5.tx
ROUTE SI.value_changed TO MX6.ty

AT 0 {
  UPDATE OD [
   ObjectDescriptor {
    objectDescriptorID 10
    esDescr [
     ES_Descriptor {
      ES_ID 20
      muxInfo MuxInfo {
       fileName "../auxiliary_files/logo.jpg"
      }
     }
    ]
   }
  ]
}

