This section describes the specific modules for the Surface IE.
Table C.27-1 specifies the Attributes of the Surface Mesh Module.
Table C.27-1. Surface 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 Section 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:
See Section 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 Table 10-19 “Algorithm Identification Macro Attributes” |
For Algorithm Family Code Sequence (0066,002F) Baseline CID 7162 “Surface Processing Algorithm Families”. |
||
>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). NoteThe 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. |
>Recommended Presentation Opacity |
(0066,000C) |
1 |
Specifies the opacity in which it is recommended that the surface be rendered. See Section 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 Section C.27.1.1.3. |
>Recommended Point Radius |
(0066,0037) |
3 |
Specifies the radius of the vertex points defined in the Vertex Point Index List (0066,0025) with which it is recommended that the point be rendered. The units shall be the same as the units of the coordinate system in which the point coordinates are specified. |
>Recommended Line Thickness |
(0066,0038) |
3 |
Specifies the thickness of each edge or line defined in the Edge Point Index List (0066,0024) or Line Sequence (0066,0028) with which it is recommended that the line be rendered. The units shall be the same as the units of the coordinate system in which the point coordinates are specified. |
>Finite Volume |
(0066,000E) |
1 |
Indicates, whether the surface represents a solid ("waterproof") object with an outside and an inside. Enumerated Values:
See Section 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:
See Section 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 Table C.27-2 “Points Macro Attributes” |
|||
>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 Section C.27.1.1.6. |
>>Include Table C.27-3 “Vectors Macro Attributes” |
Number of Vectors (0066,001E) shall equal Number of Surface Points (0066,0015) in this Surface Sequence Item. 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 Table C.27-4 “Surface Mesh Primitives Macro Attributes” |
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:
Render the surface as a solid, applying the opacity as specified in the Recommended Presentation Opacity (0066,000C) attribute.
Represent the surface as a series of lines connecting the vertices to form the defined primitive faces.
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:
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 Euclidean 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 Euclidean 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:
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.
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 Primitive Point Index List (0066,0029). Figure C.27.1.1-3 shows the method to compute the normal:
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.
Table C.27-2 specifies the Attributes of the Points Macro.
Table C.27-2. Points Macro Attributes
Attribute Name |
Tag |
Type |
Attribute Description |
---|---|---|---|
Number Of Surface Points |
(0066,0015) |
1 |
Specifies the number of points in the point set. Shall be less than or equal to 65535, if there are indexes into Points Coordinates Data (0066,0016) that are limited in length. See Section C.27.2.1.1. |
Point Coordinates Data |
(0066,0016) |
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. |
Mean Point Distance |
(0066,0018) |
3 |
The mean point distance of the point set. It is given by the mean 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. |
All Attributes within this module containing points or vectors are in x-y-z order. If multiple elements are encoded, the ordering is x1,y1,z1,…,xn,yn,zn.
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.
When referencing individual points the index of the first point shall be 1.
For the Attributes (defined in Section C.27.4 Surface Mesh Primitives Macro) that index the coordinates, the OW VR imposes the limitation to 65535 coordinates.
Table C.27-3 specifies the attributes of the Vectors Macro.
Table C.27-3. Vectors 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 Section C.27.3.1. |
Vector Dimensionality |
(0066,001F) |
1 |
The dimensionality of the underlying vector field. See Section 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 Section C.27.3.1. |
Vector Coordinate Data |
(0066,0021) |
1 |
A data stream of coordinates encoded as floats. See Section C.27.3.1. |
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 x1,y1,z1,…,xn,yn,zn.
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, Vector Accuracy (0066,0020) describes the error per dimension in a multi-valued float attribute.
The vectors are located at the points specified by the table including this macro.
Though not explicitly limited, so that the macro may be of general use, the Number of Vectors (0066,001E) is implicitly limited by the number of points specified by the table including this macro, which in the case of Section C.27.1 Surface Mesh Module, is the Number of Surface Points (0066,0015), which is limited to 65535, because of the limit on the number of index values.
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 Section C.27.4.1. |
Edge Point Index List |
(0066,0024) |
2 |
Contains 2n point indices describing unconnected Edges. See Section C.27.4.1. |
Triangle Point Index List |
(0066,0023) |
2 |
Contains 3n point indices describing unconnected Triangles. See Section 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 Section 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 Section 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 Section 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 Section C.27.4.1. |
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 Section 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 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 the Line primitive, the ordering of the point references defines a directed path, starting with the first point and ending with the last point referenced in each Primitive Point Index List (0066,0029).
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.
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.
Table C.27.5-1 specifies the Attributes of the Point Cloud Module.
Table C.27.5-1. Point Cloud Module Attributes
Attribute Name |
Tag |
Type |
Attribute Description |
---|---|---|---|
Surface Points Sequence |
(0066,0011) |
1 |
The point positions representing vertices of the surface. Only one item shall be included in the sequence. |
Surface Point Presentation Value Data |
(0080,0006) |
3 |
Contains a vector of P-Values to assign a gray value to each point. The number of values shall be equal to the value of Number Of Surface Points (0066,0015) in the Points Macro. Each value shall correspond to the respective point in the Point Coordinates Data (0066,0016). |
Surface Point Color CIELab Value Data |
(0080,0007) |
3 |
Contains a vector of color triplets to assign colors to each point. The number of triplets shall be equal to the value of Number Of Surface Points (0066,0015) in the Points Macro. The units are PCS-Values, and the value is encoded as CIELab. See Section C.10.7.1.1. Each triplet shall correspond to the respective point in the Point Coordinates Data (0066,0016). |
Table C.27.6-1 specifies the Attributes of the UV Mapping Module.
Table C.27.6-1. UV Mapping Module Attributes
Attribute Name |
Tag |
Type |
Attribute Description |
---|---|---|---|
UV Mapping Sequence |
(0080,0008) |
1 |
Maps each point of the Surface Points Sequence (0066,0011) in the Point Cloud Module or the Surface Mesh Module to the coordinates of a VL Photographic Image Instance. One or more Items shall be included in this Sequence. |
>Texture Label |
(0080,0009) |
1 |
Contains a label that uniquely identifies this UV map to distinguish it from other items in the sequence. |
>U Value Data |
(0080,0010) |
1 |
Contains a vector of column offsets. Each value is normalized to the range of 0.0 to 1.0 pointing in the pixel data of the referenced textures sequence image. Each value shall correspond to the respective point in the Point Coordinates Data (0066,0016). The number of values must be equal to the number of points of the Point Cloud or the Surface Mesh. |
>V Value Data |
(0080,0011) |
1 |
Contains a vector of row offsets. Each value is normalized to the range of 0.0 to 1.0 pointing in the pixel data of the referenced textures sequence image. Each value shall correspond to the respective point in the Point Coordinates Data (0066,0016). The number of values must be equal to the number of points of the Point Cloud or the Surface Mesh. |
>Referenced Texture Sequence |
(0080,0012) |
1 |
The image that is being mapped to the point cloud or the surface mesh. Only one item shall be included in the Sequence. |
>>Include Table 10-3b “Referenced Instances and Access Macro Attributes” |
UV texturing allows a 3D object to be colored with the color from a 2D image. The 2D image therefore is called texture map. During the UV mapping process pixels from the 2D image are assigned to each point in the point cloud or the surface mesh of the object. The 2D image shall fully cover the space of the scanned object. If more than one texture with different resolutions or different exposures is required separate SOP Instances shall be created.
The term U and V is used because X, Y and Z are already assigned to the coordinates of the points of the scanned object.