Table C.27-1 specifies the Attributes of the Surface Mesh Module.
Table C.27-1SURFACE MESH MODULE ATTRIBUTES
|Attribute Name||Tag||Type||Attribute Description|
|Number of Surfaces||(0066,0001)||1||Number of surfaces contained in the Instance. Shall be 1 or more. Shall be the same as the number of Items in Surface Sequence (0066,0002).|
|Surface Sequence||(0066,0002)||1||The surfaces that are described within the data. One or more Items shall be included in this sequence. There shall be Number of Surfaces (0066,0001) Items in the sequence. See C.220.127.116.11.|
|>Surface Number||(0066,0003)||1||Identification number of the surface. Uniquely identifies a surface within this SOP instance. Shall start at a value of 1, and increase monotonically by 1.|
|>Surface Comments||(0066,0004)||3||User-defined comments describing the surface.|
|>Surface Processing||(0066,0009)||2||Specifies whether the surface has been modified subsequent to the original generation of the surface. Enumerated Values: YES NO See C.18.104.22.168.|
|>Surface Processing Ratio||(0066,000A)||2C||The Ratio of Remaining points to Original points after processing. Required if Surface Processing (0066,0009) is YES.|
|>Surface Processing Description||(0066,000B)||3||A textual description of the surface processing performed.|
|>Surface Processing Algorithm Identification Sequence||(0066,0035)||2C||Describes the processing method. Zero or one Item shall be included in this sequence. Required if Surface Processing (0066,0009) is YES.|
|>>Include ‘Algorithm Identification Macro’ Table 10-19||Baseline Context ID for Algorithm Family Code Sequence (0066,002F) is 7162.|
|>Recommended Display Grayscale Value||(0062,000C)||1||A default single gray unsigned value in which it is recommended that the maximum pixel value in this surface be rendered on a monochrome display. The units are specified in P-Values from a minimum of 0000H (black) up to a maximum of FFFFH (white). Note: The maximum P-Value for this Attribute may be different from the maximum P-Value from the output of the Presentation LUT, which may be less than 16 bits in depth.|
|>Recommended Display CIELab Value||(0062,000D)||1||A default triplet value in which it is recommended that the surface be rendered on a color display. The units are specified in PCS-Values, and the value is encoded as CIELab. See C.10.7.1.1|
|>Recommended Presentation Opacity||(0066,000C)||1||Specifies the opacity in which it is recommended that the surface be rendered. See C.22.214.171.124.|
|>Recommended Presentation Type||(0066,000D)||1||Specifies the presentation type in which it is recommended that the surface be rendered. See C.126.96.36.199.|
|>Finite Volume||(0066,000E)||1||Indicates, whether the surface represents a solid (“waterproof”) object with an outside and an inside. Enumerated Values: YES = Contains a finite volume NO = Does not contain a finite volume UNKNOWN = Might or might not contain a finite volume See C.188.8.131.52.|
|>Manifold||(0066,0010)||1||Indicates whether the surface is describing an n-1 dimensional manifold in the underlying n-dimensional vector space. Enumerated Values: YES = Manifold in every point NO = Does contain non-manifold points UNKNOWN = Might or might not contain non-manifold points See C.184.108.40.206.|
|>Surface Points Sequence||(0066,0011)||1||The point positions representing vertices of the surface. Only a single item shall be included in this sequence.|
|>> Include ‘Points Macro’ Table C.27-2|
|>Surface Points Normals Sequence||(0066,0012)||2||The normals on the surface for each point. Zero or one item shall be included in this sequence. See C.220.127.116.11.|
|>>Include ‘Vectors Macro’ Table C.27-3||The Number of Vectors (0066,001E) shall equal Number of Surface Points (0066,0015) in this Surface Sequence Item.. The Vector Dimensionality (0066,001F) shall be 3. If Finite Volume (0066,000E) is YES, the normals of the vertices shall point toward the outside of the object. If Finite Volume (0066,000E) is not YES, the direction of the normals shall be consistent where possible.|
|>Surface Mesh Primitives Sequence||(0066,0013)||1||Only a single item shall be included in this sequence.|
|>>Include ‘Surface Mesh Primitives Macro Table’ C.27-4||The primitives’ indices shall not exceed Number of Surface Points (0066,0015) in this Surface Sequence Item..|
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.
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).
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.
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:
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.
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:
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.
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:
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.