The Morph leaf node permits an application to morph between multiple GeometryArrays. The Morph node contains a single Appearance node, an array of GeometryArray objects, and an array of corresponding weights. The Morph node combines these GeometryArrays into an aggregate shape based on each GeometryArray's corresponding weight. Typically, Behavior nodes will modify the weights to achieve various morphing effects.
The following restrictions apply to each GeometryArray object in the specified array of GeometryArray objects:
- All N geometry arrays must be of the same type (that is, the same subclass of GeometryArray).
- The vertexFormat, texCoordSetCount, and validVertexCount must be the same for all N geometry arrays.
- The texCoordSetMap array must be identical (element-by-element) for all N geometry arrays.
- For IndexedGeometryArray objects, the validIndexCount must be the same for all N geometry arrays.
- For GeometryStripArray objects, the stripVertexCounts array must be identical (element-by-element) for all N geometry arrays.
- For IndexedGeometryStripArray objects, the stripIndexCounts array must be identical (element-by-element) for all N geometry arrays.
- For indexed geometry by-reference, the array lengths of each enabled vertex component (coord, color, normal, texcoord) must be the same for all N geometry arrays.
For IndexedGeometryArray objects, the vertex arrays are morphed before the indexes are applied. Only the indexes in the first geometry array (geometry[0]) are used when rendering the geometry.
@deprecated As of Java 3D version 1.4.