C.27 Common Surface IE Modules

This section describes the specific modules for the Surface IE.

C.27.1 Surface Mesh Module

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.27.1.1.1.
>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.27.1.1.2.
>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.27.1.1.3.
>Recommended Presentation Type (0066,000D) 1 Specifies the presentation type in which it is recommended that the surface be rendered. See C.27.1.1.3.
>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.27.1.1.4.
>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.27.1.1.5.
>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.27.1.1.6.
>>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..

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.

C.27.2 Points Macro

Table C.27-2 specifies the Attributes of the Points Macro.

Table C.27-2POINTS MACRO ATTRIBUTES

Attribute Name Tag Type Attribute Description
Number Of Surface Points (0066,0015) 1 Specifies the number of points in the point set.
Point Coordinates Data (0066,0016) 1 See C.27.2.1.1
Point Position Accuracy (0066,0017) 3 A single standard deviation of the error for all the points’ spatial positions. The units shall be the same as the units of the coordinate system in which the point coordinates are specified.
Average Point Distance (0066,0018) 3 The average point distance of the point set. It is given by the average of the distances to the nearest neighbor over all points. The units shall be the same as the units of the coordinate system in which the point coordinates are specified.
Maximum Point Distance (0066,0019) 3 The maximum distance of one point to its nearest neighbor. The units shall be the same as the units of the coordinate system in which the point coordinates are specified.
Points Bounding Box Coordinates (0066,001A) 3 Two 3D locations defining the cuboid bounding box, parallel to the coordinate system axes, encompassing the point set.
Axis of Rotation (0066,001B) 3 A 3D location that combined with Center of Rotation (0066,001C) specifies the preferred axis of rotation of this object.
Center of Rotation (0066,001C) 1C A 3D location defining the preferred center of rotation for this point set. Required if Axis of Rotation (0066,001B) is present. May be present otherwise.

C.27.2.1 Points Macro Attribute Descriptions

All Attributes within this module containing points or vectors are in x-y-z order. If multiple elements are encoded, the ordering is x 1 ,y 1 ,z 1 ,…,x n ,y n ,z n .

The points are in the coordinate system identified by the Frame of Reference UID (0020,0052). To map these points into the coordinate system of another SOP Instance a Spatial Registration Instance can be used.

C.27.2.1.1 Point Coordinates Data

When referencing individual points the index of the first point shall be 1.

C.27.3 Vectors Macro

Table C.27-3 specifies the attributes of the Vectors Macro.

Table C.27-3VECTORS MACRO ATTRIBUTES

Attribute Name Tag Type Attribute Description
Number of Vectors (0066,001E) 1 The number of vectors in the Vector Coordinate Data (0066,0021). See C.27.3.1.
Vector Dimensionality (0066,001F) 1 The dimensionality of the underlying vector field. See C.27.3.1.
Vector Accuracy (0066,0020) 3 A single standard deviation for all the vectors’ coordinates. The units shall be the same as the units of the coordinate system in which the vector coordinates are specified. See C.27.3.1.
Vector Coordinate Data (0066,0021) 1 A data stream of coordinates encoded as floats. See C.27.3.1.

C.27.3.1 Vectors Macro Attribute Descriptions

All Attributes within this module containing points or vectors are encoded as multi-valued floats in an x-y-z ordering. If multiple elements are encoded, the ordering is x 1 ,y 1 ,z 1 ,…,x n ,y n ,z n .

The vectors encoded in this macro can be anything from 1D to nD objects. The vectors are encoded as a stream of values in the Vector Coordinate Data (0066,0021) Attribute. Vector Dimensionality (0066,001F) defines how many subsequent entries in Vector Coordinate Data (0066,0021) describe one element. Vector Coordinate Data (0066,0021) shall have (Number of Vectors) x (Vector Dimensionality) values.

For measured vectors, the Vector Accuracy Attribute (0066,0020) describes the error per dimension in a multi-valued float attribute.

Note: The vectors are located at the points specified by the table including this macro.

C.27.4 Surface Mesh Primitives Macro

Table C.27-4 specifies the attributes of the Surface Mesh Primitives Macro.

Table C.27-4 SURFACE MESH PRIMITIVES MACRO ATTRIBUTES

Attribute Name Tag Type Attribute Description
Vertex Point Index List (0066,0025) 2 Contains n point indices describing Vertices. See C.27.4.1.
Edge Point Index List (0066,0024) 2 Contains 2n point indices describing unconnected Edges. See C.27.4.1.
Triangle Point Index List (0066,0023) 2 Contains 3n point indices describing unconnected Triangles. See C.27.4.1.
Triangle Strip Sequence (0066,0026) 2 All Triangle Strips in this Surface. Zero or more Items shall be included in this sequence.
>Primitive Point Index List (0066,0029) 1 See C.27.4.1.
Triangle Fan Sequence (0066,0027) 2 All Triangle Fans in this Surface. Zero or more Items shall be included in this sequence.
>Primitive Point Index List (0066,0029) 1 See C.27.4.1.
Line Sequence (0066,0028) 2 All Lines in this Surface. Zero or more Items shall be included in this sequence.
>Primitive Point Index List (0066,0029) 1 See C.27.4.1.
Facet Sequence (0066,0034) 2 All Facets in this Surface. Each sequence Item describes one facet. Zero or more Items shall be included in this sequence.
>Primitive Point Index List (0066,0029) 1 See C.27.4.1.

C.27.4.1 Surface Mesh Primitives Macro Attribute Descriptions

The Surface Mesh Primitives Macro uses point indices to reference the point rather than repeating point coordinates. All of the point coordinates used are specified within the Surface Points Sequence (0066,0011) of the same Surface Sequence (0066,0002) item. Point indices are described in C.27.2.1.1.

A Surface Mesh shall contain one or more of the following primitive types:

Vertex a single Vertex, referencing a single point

Edge an Edge, referencing two points

Line a series of connected points describing a path

Triangle a Triangle, referencing three points:

Triangle Strip a Triangle Strip with n triangles, referencing n+2 points. The first three referenced points describe the first triangle, the second, third and fourth referenced points describe the second triangle.

Triangle Fan a Triangle Fan with n triangles, referencing n+2 points. The first referenced point is in the center of the fan. Together with two subsequent referenced points, it describes a complete triangle.

Facet a closed planar polygon, referencing n points. The final point in the point index list shall be connected to the first point in the point index list to close the facet.

If the Surface Points Normals Sequence (0066,0012) is not present, the default normals can be derived from the Surface Mesh Primitives.

For the Triangle Strip, Triangle Fan, Line, and Facet the Primitive Point Index List (0066,0029) the ordering of the point references implies the direction of the primitive’s normal: The normal points in the direction from which the referenced points are specified in a counterclockwise order. For finite volumes this shall be the outward direction.

For Primitives of type Triangle Strip or Triangle Fan, the orientation of the normals is given by the order of the points in the first triangle.

Note: These points may be used to compute normals to the primitive. (See section C.27.1.1.6.) The order these point references are presented in the Primitive Point Index List (0066,0029) will affect the direction the computed normal points. If the order of the point references is reversed, the direction of the normals will be reversed as well.