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

OrderedGroup {
 children [
  Background2D {
   backColor 1 1 1
  }
  WorldInfo {
   info [
    "The MPEG-4 primitive to display graphical objects on screen is the Shape node."
    "The Shape node is allowed to have a child node contained in its geometry property." 
    "This test shows the possible 2D nodes allowed in this geometry property:" 
    "* IndexedLineSet2D: this node is used to draw polylines. This geometry is not considered closed, even if last point is equal to first point. As such, it cannot be filled. The origin of its local coordinate system is the point of coordinate (0,0)."
    "* Circle: its only property is its radius. The origin of its local coordinate system is the center of the circle." 
    "* Rectangle: its only property is its size (WxH). The origin of its local coordinate system is the center of the rectangle."
    "* Curve2D (middle row): this node is used to display complex paths using Bezier Curves. It has two properties: type, points. Type gives the drawing types (segments or bezier), points gives the list of points to be consumed when reading the types. The node XCurve2D allows more drawing types (elliptical arcs ...):"
    "cf bifs-2D-shapes-xcurve2D"
    "* IndexedFaceSet2D: this node is similar to the IndexedLineSet2D node. It is used to display polygons (i.e. a list of segments implicitely closed by the segment [last point, first point]). The origin of its local coordinate system is the point of coordinate (0,0)."
    "cf bifs-2D-shapes-indexfaceset2D"
    "* PointSet2D: a list of points to be displayed (not really useful)"
    ""
    ""
    "GPAC Regression Tests" "$Date: 2007-07-27 15:19:18 $ - $Revision: 1.5 $" 
    "(C) 2002-2006 GPAC Team"
   ]
   title "Basic 2D Geometry nodes"
  }
  Transform2D {
   translation -150 150
   children [
    Shape {
     appearance DEF APP Appearance {
      material Material2D {
       emissiveColor 0 0 0
      }
     }
     geometry IndexedLineSet2D {
      coord Coordinate2D {
       point [-50 0 0 50 50 0]
      }
     }
    }
    Transform2D {
     translation 0 -20
     children [
      Shape {
       appearance DEF TEXTAPP Appearance {
        material Material2D {
         emissiveColor 0 0 0
         filled TRUE
        }
       }
       geometry Text {
        string ["IndexedLineSet2D" "[-50 0 0 50 50 0]"]
        fontStyle DEF FS FontStyle {
         justify ["MIDDLE" "MIDDLE"]
         size 12
        }
       }
      }
     ]
    }
   ]
  }
  Transform2D {
   translation 0 150
   children [
    Shape {
     appearance USE APP
     geometry Circle {
      radius 50
     }
    }
    Transform2D {
     children [
      Shape {
       appearance USE TEXTAPP
       geometry Text {
        string ["Circle" "radius 50"]
        fontStyle USE FS
       }
      }
     ]
    }
   ]
  }
  Transform2D {
   translation 150 150
   children [
    Shape {
     appearance USE APP
     geometry Rectangle {
      size 100 50
     }
    }
    Transform2D {
     children [
      Shape {
       appearance USE TEXTAPP
       geometry Text {
        string ["Rectangle" "Size 100 50"]
        fontStyle USE FS
       }
      }
     ]
    }
   ]
  }
  Transform2D {
   translation 0 -40
   children [
    Shape {
     appearance USE TEXTAPP
     geometry Text {
      string ["Curve2D Points:" "-50 0, -100 50, 0 20, 10 30, 40 80, 50 0"]
      fontStyle USE FS
     }
    }
   ]
  }
  Transform2D {
   translation -150 0
   children [
    Shape {
     appearance USE APP
     geometry Curve2D {
      point DEF C2D Coordinate2D {
       point [-50 0 -100 50 0 20 10 30 40 80 50 0]
      }
     }
    }
    Transform2D {
     translation 0 -10
     children [
      Shape {
       appearance USE TEXTAPP
       geometry Text {
        string ["no type"]
        fontStyle USE FS
       }
      }
     ]
    }
   ]
  }
  Transform2D {
   children [
    Shape {
     appearance USE APP
     geometry Curve2D {
      type [2 3]
      point USE C2D
     }
    }
    Transform2D {
     translation 0 -10
     children [
      Shape {
       appearance USE TEXTAPP
       geometry Text {
        string ["type [2 3]"]
        fontStyle USE FS
       }
      }
     ]
    }
   ]
  }
  Transform2D {
   translation 170 0
   children [
    Shape {
     appearance USE APP
     geometry Curve2D {
      type [1 3 1]
      point USE C2D
     }
    }
    Transform2D {
     translation 0 -10
     children [
      Shape {
       appearance USE TEXTAPP
       geometry Text {
        string ["type [1 3 1]"]
        fontStyle USE FS
       }
      }
     ]
    }
   ]
  }
  Transform2D {
   translation -150 -150
   children [
    Shape {
     appearance USE APP
     geometry IndexedFaceSet2D {
      coord Coordinate2D {
       point [-50 0 -25 25 0 80 50 0]
      }
     }
    }
    Transform2D {
     translation 0 -20
     children [
      Shape {
       appearance USE TEXTAPP
       geometry Text {
        string ["IndexedFaceSet2D" "-50 0, -25, 25, 0 80, 50 0"]
        fontStyle USE FS
       }
      }
     ]
    }
   ]
  }
  Transform2D {
   translation 0 -150
   children [
    Shape {
     appearance USE APP
     geometry PointSet2D {
      coord Coordinate2D {
       point [-50 0 -25 25 0 80 50 0]
      }
     }
    }
    Transform2D {
     translation 0 -20
     children [
      Shape {
       appearance USE TEXTAPP
       geometry Text {
        string ["PointSet2D" "-50 0, -25, 25, 0 80, 50 0"]
        fontStyle USE FS
       }
      }
     ]
    }
   ]
  }
 ]
}


