Post

IndexedQuadSet

Overview

IndexedQuadSet is a geometry node that defines planar quadrilaterals. IndexedQuadSet contains a Coordinate or CoordinateDouble node, and can also contain Color or ColorRGBA, Normal and TextureCoordinate nodes.

The IndexedQuadSet node belongs to the CADGeometry component and requires at least level 1, its default container field is geometry. It is available from X3D version 3.1 or higher.

Hierarchy

1
2
3
4
+ X3DNode
  + X3DGeometryNode
    + X3DComposedGeometryNode
      + IndexedQuadSet

Fields

SFNode [in, out] metadata NULL [X3DMetadataObject]

Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.

Hint

MFInt32 [in] set_index [0,∞)

index values provide order in which coordinates are applied. Order starts at index 0, commas are optional between sets. Four unique indices are defined for each quadrilateral.

Hint

  • This field is not accessType inputOutput since X3D browsers might use different underlying geometric representations for high-performance rendering, and so output events are not appropriate.

Warning

  • -1 sentinel values are not allowed.

SFBool [ ] solid TRUE

Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off).

Hints

  • Mnemonic “this geometry is solid like a brick” (you don’t render the inside of a brick).
  • If in doubt, use solid=’false’ for maximum visibility.
  • AccessType relaxed to inputOutput in order to support animation and visualization.

Warning

  • Default value true can completely hide geometry if viewed from wrong side!

SFBool [ ] ccw TRUE

ccw defines clockwise/counterclockwise ordering of vertex coordinates, which in turn defines front/back orientation of polygon normals according to Right-Hand Rule (RHR).

Hints

  • A good debugging technique for problematic polygons is to try changing the value of ccw, which can reverse solid effects (single-sided backface culling) and normal-vector direction.
  • Clockwise

Warning

  • Consistent and correct ordering of left-handed or right-handed point sequences is important throughout the coord array of point values.

SFBool [ ] colorPerVertex TRUE

Whether Color or ColorRGBA values are applied to each point vertex (true) or to each polygon face (false).

Hint

Warnings

  • The provided value of IndexedQuadSet colorPerVertex field is ignored and always treated as true.
  • If child Color or ColorRGBA node is not provided, then geometry is rendered using corresponding Appearance and material/texture values.

SFBool [ ] normalPerVertex TRUE

Whether Normal node vector values are applied to each point vertex (true) or to each polygon face (false).

Hint

  • If no child Normal node is provided, the X3D browser shall automatically generate normals, using creaseAngle to determine smoothed shading across shared vertices.

MFInt32 [ ] index [ ] [0,∞)

index values provide order in which coordinates are applied. Order starts at index 0, commas are optional between sets. Four unique indices are defined for each quadrilateral.

Warning

  • -1 sentinel values are not allowed.

MFNode [in, out] attrib [ ] [X3DVertexAttributeNode]

Single contained FloatVertexAttribute node that can specify list of per-vertex attribute information for programmable shaders.

Hint

SFNode [in, out] fogCoord NULL [FogCoordinate]

Single contained FogCoordinate node that can specify depth parameters for fog in corresponding geometry.

SFNode [in, out] color NULL [X3DColorNode]

Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorIndex and colorPerVertex fields.

SFNode [in, out] texCoord NULL [X3DTextureCoordinateNode]

Single contained TextureCoordinate, TextureCoordinateGenerator or MultiTextureCoordinate node that can specify coordinates for texture mapping onto corresponding geometry.

SFNode [in, out] normal NULL [X3DNormalNode]

Single contained Normal node that can specify perpendicular vectors for corresponding vertices to support rendering computations, applied according to the normalPerVertex field.

Hint

  • Useful for special effects. Normal vector computation by 3D graphics hardware is quite fast so adding normals to a scene is typically unnecessary.

Warning

  • normal vectors increase file size, typically doubling geometry definitions.

SFNode [in, out] coord NULL [X3DCoordinateNode]

Single contained Coordinate or CoordinateDouble node that can specify a list of vertex values.

Advice

Hints

Warnings

  • Requires X3D profile='Full' or else include <component name='CADGeometry' level='1'/>
  • Rendering characteristics are undefined if polygons are not planar.
  • Avoid self-intersecting polygon line segments, otherwise defined geometry is irregular and rendering results are undefined.

See Also

This post is licensed under CC BY 4.0 by the author.