#Inventor V2.1 ascii

# Check all aspects of SoTriangleStripSet rendering.
#
# 19990414 mortene

Separator {
   # Global settings.
   Coordinate3 {
      point [
       -1 1 0, -1 -1 0, 1 -1 0,         # face 0
       -1 1 0, 1 1 0,  0 2 -1,          # face 1
       1 -1 0, 2 0 -1, 1 1 0,           # face 2
       -1 -1 0, 0 -2 -1, 1 -1 0,        # face 3
       -1 1 0, -2 0 -1, -1 -1 0,        # face 4
      ]
   }
   Material {
      diffuseColor [
       1 0 0, 0 1 0, 0 0 1, 1 1 0, 1 0 1, 0 1 1, 1 1 1, 0 0 0
      ]
   }
   TextureCoordinate2 {
      point [ 0 0, 0 1, 1 0, 1 1]
   }

   Switch {
      whichChild -2

      DEF tss TriangleStripSet {
	 numVertices [ 3, 3, 3, 3 ]
      }
   }


   # (ROW 0) MaterialBinding
   Separator {
      MaterialBinding { value OVERALL }
      USE tss

      Translation { translation +5 0 0 }
      MaterialBinding { value PER_PART }
      USE tss

      Translation { translation +5 0 0 }
      MaterialBinding { value PER_PART_INDEXED }
      USE tss

      Translation { translation +5 0 0 }
      MaterialBinding { value PER_FACE }
      USE tss

      Translation { translation +5 0 0 }
      MaterialBinding { value PER_FACE_INDEXED }
      USE tss

      Translation { translation +5 0 0 }
      MaterialBinding { value PER_VERTEX }
      USE tss

      Translation { translation +5 0 0 }
      MaterialBinding { value PER_VERTEX_INDEXED }
      USE tss
   }

   # (ROW 1) NormalBinding
   Translation { translation 0 +6 0 }
   Separator {
      NormalBinding { value OVERALL }
      USE tss

      Translation { translation +5 0 0 }
      NormalBinding { value PER_PART }
      USE tss

      Translation { translation +5 0 0 }
      NormalBinding { value PER_PART_INDEXED }
      USE tss

      Translation { translation +5 0 0 }
      NormalBinding { value PER_FACE }
      USE tss

      Translation { translation +5 0 0 }
      NormalBinding { value PER_FACE_INDEXED }
      USE tss

      Translation { translation +5 0 0 }
      NormalBinding { value PER_VERTEX }
      USE tss

      Translation { translation +5 0 0 }
      NormalBinding { value PER_VERTEX_INDEXED }
      USE tss
   }

   # (ROW 2) Test how IndexedTriangleStripSet is affected by Complexity.
   Translation { translation 0 +6 0 }
   Separator {
      Complexity { type BOUNDING_BOX }
      USE tss

      Translation { translation +5 0 0 }
      Complexity { type OBJECT_SPACE  value 1.0 }
      USE tss

      Translation { translation +5 0 0 }
      Complexity { type OBJECT_SPACE  value 0.2 }
      USE tss

      Translation { translation +5 0 0 }
      Complexity { type OBJECT_SPACE  value 0.0 }
      USE tss
   }


   # (ROW 3) With different LightModel settings.
   Translation { translation 0 +6 0 }
   Separator {
      LightModel { model BASE_COLOR }
      USE tss

      Translation { translation +5 0 0 }
      LightModel { model PHONG }
      USE tss
   }

   # (ROW 4) With different DrawStyle settings.
   Translation { translation 0 +6 0 }
   Separator {
      DrawStyle { style INVISIBLE }
      USE tss

      Translation { translation +5 0 0 }
      DrawStyle { style LINES }
      USE tss

      Translation { translation +5 0 0 }
      DrawStyle { style LINES lineWidth 1 }
      USE tss

      Translation { translation +5 0 0 }
      DrawStyle { style LINES lineWidth 2 }
      USE tss

      Translation { translation +5 0 0 }
      DrawStyle { style LINES lineWidth 4 }
      USE tss

      Translation { translation +5 0 0 }
      DrawStyle { style LINES lineWidth 2 linePattern 0x0180 }
      USE tss

      Translation { translation +5 0 0 }
      DrawStyle { style POINTS }
      USE tss

      Translation { translation +5 0 0 }
      DrawStyle { style POINTS pointSize 3 }
      USE tss

      Translation { translation +5 0 0 }
      DrawStyle { style FILLED }
      USE tss
   }

   # (ROW 5) With different ShapeStyle settings.
   Translation { translation 0 +6 0 }
   Separator {
      Translation { translation +5 0 0 }
      ShapeHints { vertexOrdering CLOCKWISE }
      USE tss

      Translation { translation +5 0 0 }
      ShapeHints { vertexOrdering COUNTERCLOCKWISE }
      USE tss

      Translation { translation +5 0 0 }
      ShapeHints { shapeType UNKNOWN_SHAPE_TYPE }
      USE tss

      Translation { translation +5 0 0 }
      ShapeHints { shapeType SOLID }
      USE tss

      Translation { translation +5 0 0 }
      ShapeHints { faceType UNKNOWN_FACE_TYPE }
      USE tss

      Translation { translation +5 0 0 }
      ShapeHints { faceType CONVEX }
      USE tss

      Translation { translation +5 0 0 }
      ShapeHints { creaseAngle 0.5 }
      USE tss

      Translation { translation +5 0 0 }
      ShapeHints { creaseAngle 1.57 }
      USE tss
   }

   # (ROW 6) Test how IndexedTriangleStripSet is affected by texturemapping.
   Translation { translation 0 +6 0 }
   Separator {
      Texture2 {
	 image 8 6 3
	 0xff000000 0xff000000 0x00000000 0x00000000 0xff00ff00 0xff00ff00
	 0xff000000 0xff000000 0x00000000 0x00000000 0xff00ff00 0xff00ff00
	 0xff000000 0xff000000 0x00000000 0x00000000 0xff00ff00 0xff00ff00
	 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000
	 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000
	 0xffff0000 0xffff0000 0x00000000 0x00000000 0xffffff00 0xffffff00
	 0xffff0000 0xffff0000 0x00000000 0x00000000 0xffffff00 0xffffff00
	 0xffff0000 0xffff0000 0x00000000 0x00000000 0xffffff00 0xffffff00
      }

      USE tss

      Translation { translation +5 0 0 }
      TextureCoordinateBinding { value PER_VERTEX }
      USE tss

      Translation { translation +5 0 0 }
      TextureCoordinateBinding { value PER_VERTEX_INDEXED }
      USE tss
   }
}
