Tag | (0066,0012) |
---|---|
Type | Required, Empty if Unknown (2) |
Keyword | SurfacePointsNormalsSequence |
Value Multiplicity | 1 |
Value Representation | Sequence (SQ) |
The normals on the surface for each point.
Zero or one Item shall be included in this Sequence.
See Section C.27.1.1.6.
Surface Points Normals Sequence (0066,0012) provides an explicit normal vector for each point in Surface Points Sequence (0066,0011) in Point Coordinates Data (0066,0016).
If an Item of Surface Points Normals Sequence (0066,0012) is present the normal for a primitive may be computed by combining the normals for each vertex making up the primitive.
If an Item of Surface Points Normals Sequence (0066,0012) is not present the normal for a primitive shall be computed by computing the cross product of two segments of the primitive. The segments shall be formed using the primitive definitions as specified within the Surface Mesh Primitives Sequence (0066,0013). The primitive vertices are taken in the order specified within Long Primitive Point Index List (0066,0040). Figure C.27.1.1-3 shows the method to compute the normal:
Figure C.27.1.1-3. Triangle Normal Computation
The computed normal shall point in the direction of the outside of the surface.
For Triangle Strip or Triangle Fan primitives (see Section C.27.4), the normal direction is determined by the order of the points referenced by the first triangle in the strip or fan. When constructing a list of triangles from a triangle strip, the order of the points must be flipped for every second triangle to maintain consistency in the normal directions for the triangle.