///////////////////////////////////////////////////////////////////////////////
// Copyright (C) 2002-2025, Open Design Alliance (the "Alliance").
// All rights reserved.
//
// This software and its documentation and related materials are owned by
// the Alliance. The software may only be incorporated into application
// programs owned by members of the Alliance, subject to a signed
// Membership Agreement and Supplemental Software License Agreement with the
// Alliance. The structure and organization of this software are the valuable
// trade secrets of the Alliance and its suppliers. The software is also
// protected by copyright law and international treaty provisions. Application
// programs incorporating this software must include the following statement
// with their copyright notices:
//
// This application incorporates Open Design Alliance software pursuant to a license
// agreement with Open Design Alliance.
// Open Design Alliance Copyright (C) 2002-2025 by Open Design Alliance.
// All rights reserved.
//
// By use of this software, its documentation or related materials, you
// acknowledge and accept the above terms.
///////////////////////////////////////////////////////////////////////////////
// This file is generated automatically.
#ifndef _IFC2X3_IFCIMAGETEXTURE_AUTO_IMPL_H
#define _IFC2X3_IFCIMAGETEXTURE_AUTO_IMPL_H
#include "IfcSurfaceTextureAutoImpl.h"
#include "TD_PackPush.h"
/** \details
The namespace contains schema-dependent classes, definitions and sub routines
for work with IFC2X3 express schema definitions.
*/
namespace OdIfc2x3 {
/** \details
An IfcImageTexture provides a 2-dimensional texture that can be applied to a surface of a geometric item
and that provides lighting parameters of a surface onto which it is mapped.
The texture is provided as an image file at an external location for which an URL is provided.
The following definitions from ISO/IEC 19775-1 X3D Architecture and base components (X3D Specification) apply:
* Greyscale pixels without alpha or simple transparency are treated as intensity textures.
* Greyscale pixels with alpha or simple transparency are treated as intensity plus alpha textures.
* RGB pixels without alpha channel or simple transparency are treated as full RGB textures.
* RGB pixels with alpha channel or simple transparency are treated as full RGB plus alpha textures.
* If the image specifies colours as indexed-colour (that is, palettes or colourmaps),
the following semantics should be used (note that `greyscale' refers to a palette entry with equal red, green, and blue values):
1. If all the colours in the palette are greyscale and there is no transparency chunk, it is treated as an intensity texture.
2. If all the colours in the palette are greyscale and there is a transparency chunk, it is treated as an intensity plus opacity texture.
3. If any colour in the palette is not grey and there is no transparency chunk, it is treated as a full RGB texture.
4. If any colour in the palette is not grey and there is a transparency chunk, it is treated as a full RGB plus alpha texture.
* Texture nodes that require support for JPEG files interpret JPEG files as follows:
1. Greyscale files (number of components equals 1) are treated as intensity textures.
2. YCbCr files are treated as full RGB textures.
3. No other JPEG file types are required. It is recommended that other JPEG files are treated as a full RGB textures.
* Texture nodes that recommend support for GIF files follow the applicable semantics described above for the PNG format.
*/
class IFC2X3_EXPORT IfcImageTexture : public IfcSurfaceTexture
{
//DOM-IGNORE-BEGIN
OD_EXP_DECLARE_MEMBERS(OdIfc2x3::IfcImageTexture);
//DOM-IGNORE-END
public:
//
// OdDAI early binding accessors
//
/** \details
Returns the value of URLReference attribute.
This attribute represents location, provided as an URI, at which the image texture is published.
\returns
Returns the value of URLReference attribute.
*/
const OdAnsiString& getUrlReference() const;
/** \details
Sets the value of URLReference attribute.
This attribute represents location, provided as an URI, at which the image texture is published.
\param UrlReference [in] URL Reference to set.
*/
void setUrlReference(const OdAnsiString& UrlReference);
public:
/** \details
Default constructor for the IfcImageTexture class.
*/
IfcImageTexture();
/** \details
Reads object's data from the specified filer.
\param rdFiler [in] Pointer to a filer from which to read the data.
\returns
A value of OdResult type that contains the result of the method execution.
*/
virtual OdResult inFields(OdDAI::OdSpfFilerBase* rdFiler) override;
/** \details
Writes object's data the the specified filer.
\param wrFiler [in] Pointer to a filer to which to write the data.
\returns
A value of OdResult type that contains the result of the method execution.
*/
virtual OdResult outFields(OdDAI::OdSpfFilerBase* wrFiler) override;
/** \details
Returns a type of a class instance.
\returns
Pointer to the