IFC 4.3.x development

8.12.3.21 IfcPixelTexture

Change log

IFC4

additions where_rules MinPixelInS
additions where_rules MinPixelInT
additions where_rules NumberOfColours
additions where_rules PixelAsByteAndSameLength
additions where_rules SizeOfPixelList
deletions where_rules WR21
deletions where_rules WR22
deletions where_rules WR23
deletions where_rules WR24
modificationsattributes Pixel definitionChanged from list[1:?] of binary to list[1:?] of IfcBinary

8.12.3.21.1 Semantic definitions at the entity

An IfcPixelTexture provides a 2D image-based texture map as an explicit array of pixel values (list of Pixel binary attributes). In contrary to the IfcImageTexture the IfcPixelTexture holds a 2 dimensional list of pixel color (and opacity) directly, instead of referencing to an URL.

The following definitions from ISO/IEC 19775-1 X3D Architecture and base components (X3D Specification) apply:

  • The PixelTexture node defines a 2D image-based texture map as an explicit array of pixel values (image field) and parameters controlling tiling repetition of the texture onto geometry.
  • Texture maps are defined in a 2D coordinate system (s, t) that ranges from 0.0 to 1.0 in both directions. The bottom edge of the pixel image corresponds to the S-axis of the texture map, and left edge of the pixel image corresponds to the T-axis of the texture map. The lower-left pixel of the pixel image corresponds to s=0.0, t=0.0, and the top-right pixel of the image corresponds to s = 1.0, t = 1.0.
  • The Image field specifies a single uncompressed 2-dimensional pixel image. Image fields contain three integers representing the width, height and number of components in the image, followed by width×height hexadecimal values representing the pixels in the image. Pixel values are limited to 256 levels of intensity (that is, 0x00-0xFF hexadecimal).
    1. A one-component image specifies one-byte hexadecimal value representing the intensity of the image. For example, 0xFF is full intensity in hexadecimal (255 in decimal), 0x00 is no intensity (0 in decimal).
    2. A two-component image specifies the intensity in the first (high) byte and the alpha opacity in the second (low) byte.
    3. Pixels in a three-component image specify the red component in the first (high) byte, followed by the green and blue components (for example, 0xFF0000 is red, 0x00FF00 is green, 0x0000FF is blue).
    4. Four-component images specify the alpha opacity byte after red/green/blue (e.g., 0x0000FF80 is semi-transparent blue). A value of 00 is completely transparent, FF is completely opaque, 80 is semi-transparent.
  • Note that alpha equals (1.0 -transparency), if alpha and transparency each range from 0.0 to 1.0.

HISTORY  New entity in IFC2x2.

8.12.3.21.1 Attributes

# Attribute Type Description
IfcPresentationItem
IfcSurfaceTexture
1 RepeatS IfcBoolean The RepeatS field specifies how the texture wraps in the S direction. If RepeatS is TRUE (the default), the texture map is repeated outside the [0.0, 1.0] texture coordinate range in the S direction so that it fills the shape. If RepeatS is FALSE, the texture coordinates are clamped in the S direction to lie within the [0.0, 1.0] range.
2 RepeatT IfcBoolean The RepeatT field specifies how the texture wraps in the T direction. If RepeatT is TRUE (the default), the texture map is repeated outside the [0.0, 1.0] texture coordinate range in the T direction so that it fills the shape. If RepeatT is FALSE, the texture coordinates are clamped in the T direction to lie within the [0.0, 1.0] range.
3 Mode OPTIONAL IfcIdentifier The Mode attribute is provided to control the appearance of a multi textures. The mode then controls the type of blending operation. The mode includes a MODULATE for a lit appearance, a REPLACE for a unlit appearance, and variations of the two.

> NOTE  The applicable values for the Mode attribute are determined by view definitions or implementer agreements. It is recommended to use the modes described in ISO/IES 19775-1.2:2008 X3D Architecture and base components Edition 2, Part 1. See [18.4.3 MultiTexture](http://www.web3d.org/x3d/specifications/ISO-IEC-19775-1.2-X3D-AbstractSpecification/Part01/components/texturing.html#MultiTexture) for recommended values.

> IFC4 CHANGE  New attribute replacing previous TextureType.
4 TextureTransformOPTIONAL IfcCartesianTransformationOperator2D The TextureTransform defines a 2D transformation that is applied to the texture coordinates. It affects the way texture coordinates are applied to the surfaces of geometric representation itesm. The 2D transformation supports changes to the size, orientation, and position of textures on shapes. Mirroring is not allowed to be used in the IfcCartesianTransformationOperator
5 Parameter OPTIONAL LIST [1:?] OF IfcIdentifier The Parameter attribute is provided to control the appearance of a multi textures. The applicable parameters depend on the value of the Mode attribute.

> NOTE  The applicable values for the list of Parameter attributes are determined by view definitions or implementer agreements. It is recommended to use the source and the function fields described in ISO/IES 19775-1.2:2008 X3D Architecture and base components Edition 2, Part 1. See [18.4.3 MultiTexture](http://www.web3d.org/x3d/specifications/ISO-IEC-19775-1.2-X3D-AbstractSpecification/Part01/components/texturing.html#MultiTexture) for recommended values.

> By convention, _Parameter[1]_ shall then hold the source value, _Parameter[2]_ the function value, _Parameter[3]_ the base RGB color for select operations, and _Parameter[4]_ the alpha value for select operations.

> IFC4 CHANGE  New attribute added at the end of the attribute list.
IsMappedBy SET [0:?] OF IfcTextureCoordinate FOR Maps Texture coordinates, either provided by a corresponding list of texture vertices to vertex-based geometric items or by a texture coordinate generator, that applies the surface texture to the surfaces of the geometric items.

> IFC4 CHANGE  New attribute added at the end of the attribute list.
UsedInStyles SET [0:?] OF IfcSurfaceStyleWithTextures FOR Textures
IfcPixelTexture
6 Width IfcInteger The number of pixels in width (S) direction.
7 Height IfcInteger The number of pixels in height (T) direction.
8 ColourComponentsIfcInteger Indication whether the pixel values contain a 1, 2, 3, or 4 colour component.
9 Pixel LIST [1:?] OF IfcBinary Flat list of hexadecimal values, each describing one pixel by 1, 2, 3, or 4 components.

> IFC2x3 CHANGE  The data type has been changed from STRING to BINARY.

8.12.3.21.2 Entity inheritance

dot_inheritance IfcPixelTexture IfcPixelTexture IfcSurfaceTexture IfcSurfaceTexture IfcPixelTexture->IfcSurfaceTexture IfcBlobTexture IfcBlobTexture IfcBlobTexture->IfcSurfaceTexture IfcPresentationItem IfcPresentationItem IfcSurfaceTexture->IfcPresentationItem IfcImageTexture IfcImageTexture IfcImageTexture->IfcSurfaceTexture IfcPresentationItem_children 16 more... IfcPresentationItem_children->IfcPresentationItem

8.12.3.21.3 Formal representations

ENTITY IfcPixelTexture
 SUBTYPE OF (IfcSurfaceTexture);
	Width : IfcInteger;
	Height : IfcInteger;
	ColourComponents : IfcInteger;
	Pixel : LIST [1:?] OF IfcBinary;
 WHERE
	MinPixelInS : Width >= 1;
	MinPixelInT : Height >= 1;
	NumberOfColours : {1 <= ColourComponents <= 4};
	SizeOfPixelList : SIZEOF(Pixel) = (Width * Height);
	PixelAsByteAndSameLength : SIZEOF(QUERY(temp<* Pixel |
 (BLENGTH(temp) MOD 8 = 0) AND
 (BLENGTH(temp) = BLENGTH(Pixel[1]))
)) = SIZEOF(Pixel);
END_ENTITY;