C.27.1.1 Surface Mesh Module Attribute Descriptions

C.27.1.1.1 Surface Sequence

Surface Sequence (0066,0002) describes individual surfaces. There is no requirement that a surface be contiguous. For example, both kidneys could be described as a single surface consisting of 2 non-contiguous areas.

C.27.1.1.2 Surface Processing

Surface Processing refers to methods of surface modification such as smoothing operations, which remove redundant vertices, or decimation which will modify the resolution of the surface. If a surface has been subject to processing, a description of the process may be provided in Surface Processing Description (0066,000B).

C.27.1.1.3 Recommended Presentation

Recommended Presentation Opacity (0066,000C) is a fraction between 0.0 and 1.0 encoded as a float value representing the percentage of transmission through the surface.

The Recommended Presentation Type (0066,000D) attribute provides guidance as to the default presentation of the Surface. Defined terms are:

SURFACE Render the surface as a solid, applying the opacity as specified in the Recommended Presentation Opacity (0066,000C) attribute.

WIREFRAME Represent the surface as a series of lines connecting the vertices to form the defined primitive faces.

POINTS Represent the surface as a cloud of points.

C.27.1.1.4 Finite Volume

The Finite Volume attribute (0066,000E) shall be YES when the surface mesh generated by the primitives is topologically closed and has an inside and an outside. A surface mesh is closed if it has no rim (every facet has a neighboring facet along each edge). Figure C.27.1.1-1 shows a surface that is not closed on the left, and a closed and waterproof version of the same shape on the right:

[pic]

Figure C.27.1.1-1 - Finite Volume Illustration

Not all closed surfaces contain a finite volume, for example if the surface self-intersects. Such surfaces do not contain a finite volume. A surface is not required to be contiguous.

A value of NO indicates that the surface is not closed.

A value of UNKNOWN indicates that the transmitting application did not determine if the surface is closed.

C.27.1.1.5 Manifold

The Manifold attribute (0066,0010) shall be YES when the surface mesh is a manifold.

A surface embedded into an n-dimensional vector space is called an n-1 manifold if it resembles an n-1 dimensional Euclidian space in a neighborhood of every point lying on the surface. This means that every point has a neighborhood for which there exists a homeomorphism mapping that neighborhood to the n-1 dimensional Euclidian space.

A sphere in 3-space is a 2-dimensional manifold: Every point has a neighborhood that looks like a plane.

Figure C.27.1.1-2 shows examples of a surface that is not a manifold is given below:

[pic]

Figure C.27.1.1-2 - Manifold Illustration

A value of NO indicates that the surface is not a manifold.

A value of UNKNOWN indicates that the transmitting application did not determine if the surface is a manifold.

C.27.1.1.6 Surface Points Normals Sequence

The Surface Points Normals Sequence (0066,0012) attribute provides an explicit normal vector for each point in the Surface Points Sequence (0066,0011) in the Point Coordinates Data (0066,0016) attribute.

If an Item of the 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 the 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 the Primitive Point Index List (0066,0029) attribute. Figure C.27.1.1-3 shows the method to compute the normal:

[pic]

[pic]

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.