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 shows the use of XCurve2D." 
       "This node is an extension of the Curve2D node. It allows more drawing types: quadratic Bezier curves and elliptical arcs."
       "Both XCurve2D and Curve2D are similar to IndexedFaceSet2D and IndexedLineSet2D because they can be used to represent polygons and polylines. The difference is that it is not possible to assign a color or texture per point, nor a color per closed path. "
       "" 
       "GPAC Regression Tests" "$Date: 2007-07-27 09:46:08 $ - $Revision: 1.3 $" 
       "(C) 2002-2006 GPAC Team"
    ]
   title "XCurve2D"
  }
  Transform2D {
   translation -150 140
   children [
    Shape {
     appearance DEF APP Appearance {
      material Material2D {
       lineProps LineProperties {
        lineColor 0 0 1
        width 8
       }
      }
     }
     geometry XCurve2D {
      type [4]
      point Coordinate2D {
       point [0 0 40 0 40 0 40 40]
      }
     }
    }
    Transform2D {
     translation 40 -60
     children [
      Shape {
       appearance DEF TXTAPP Appearance {
        material Material2D {
         emissiveColor 0 0 0
         filled TRUE
        }
       }
       geometry Text {
        string ["anti-clockwise arc to" "point [0 0 40 0 40 0 40 40]"]
        fontStyle DEF FS FontStyle {
         justify ["MIDDLE" "MIDDLE"]
         size 18
        }
       }
      }
     ]
    }
   ]
  }
  Transform2D {
   translation 50 140
   children [
    Shape {
     appearance USE APP
     geometry XCurve2D {
      type [5]
      point Coordinate2D {
       point [0 0 40 0 40 0 40 40]
      }
     }
    }
    Transform2D {
     translation 40 -60
     children [
      Shape {
       appearance USE TXTAPP
       geometry Text {
        string ["clockwise arc to" "point [0 0 40 0 40 0 40 40]"]
        fontStyle USE FS
       }
      }
     ]
    }
   ]
  }
  Transform2D {
   translation -150 0
   children [
    Shape {
     appearance USE APP
     geometry XCurve2D {
      type [7]
      point Coordinate2D {
       point [0 0 40 40 80 0]
      }
     }
    }
    Transform2D {
     translation 40 -30
     children [
      Shape {
       appearance USE TXTAPP
       geometry Text {
        string ["Quadratic Bezier arc to" "point [0 0 40 40 80 0 ]"]
        fontStyle USE FS
       }
      }
     ]
    }
   ]
  }
  Transform2D {
   translation 50 0
   children [
    Shape {
     appearance USE APP
     geometry XCurve2D {
      type [7 6]
      point Coordinate2D {
       point [0 0 40 40 80 0]
      }
     }
    }
    Transform2D {
     translation 40 -30
     children [
      Shape {
       appearance USE TXTAPP
       geometry Text {
        string ["Quadratic Bezier arc to" "with close path"]
        fontStyle USE FS
       }
      }
     ]
    }
   ]
  }
  Transform2D {
   translation -50 -120
   children [
    Shape {
     appearance USE APP
     geometry XCurve2D {
      type [7 1]
      point Coordinate2D {
       point [0 0 40 40 80 0 0 0]
      }
     }
    }
    Transform2D {
     translation 40 -30
     children [
      Shape {
       appearance USE TXTAPP
       geometry Text {
        string ["Quadratic Bezier arc to" "without close path (lineTo origin)"]
        fontStyle USE FS
       }
      }
     ]
    }
   ]
  }
 ]
}


