/////////////////////////////////////////////////////////////////////////////// // 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 _IFC4X3_ADD2_IFCSURFACETEXTURE_AUTO_IMPL_H #define _IFC4X3_ADD2_IFCSURFACETEXTURE_AUTO_IMPL_H #include "IfcPresentationItemAutoImpl.h" #include "IfcCartesianTransformationOperator2DAutoImpl.h" #include "TD_PackPush.h" /** \details The namespace contains schema-dependent classes, definitions and sub routines for work with IFC4X3_ADD2 express schema definitions. */ namespace OdIfc4x3_add2 { /** \details An IfcSurfaceTexture provides a 2-dimensional image-based texture map. It can either be given by referencing an external image file through an URL reference (IfcImageTexture), including the image file as a blob (long binary) into the data set (IfcBlobTexture), or by explicitly including an array of pixels (IfcPixelTexture). - Details - Texture are defined by 2D images that contain an array of colour values describing the texture. The texture values are interpreted differently depending on the number of components in the texture and the specifics of the image format. In general, texture can be described using one of the following forms: * Intensity textures (one-component) * Intensity plus alpha opacity textures (two-component) * Full RGB textures (three-component) * Full RGB plus alpha opacity textures (four-component) Texture maps are defined in a 2D coordinate system (s, t) that ranges from [0.0, 1.0] in both directions. The bottom edge of the image corresponds to the S-axis of the texture map, and left edge of the image corresponds to the T-axis of the texture map. The lower-left pixel of the image corresponds to s=0, t=0, and the top-right pixel of the image corresponds to s=1, t=1. Texture maps can be viewed as two dimensional colour functions that, given an (s, t) coordinate, return a colour value colour(s, t). \remarks * Image formats specify an alpha opacity, not transparency (where alpha = 1 - transparency). * This definition may not be instantiated. \changes * IFC4 changes: * Type of the RepeatS attribute changed from boolean to IfcBoolean. * Type of the RepeatT attribute changed from boolean to IfcBoolean. * Name of the TextureType attribute changed to Mode. * Attribute TextureType is optional. * Type of the TextureType attribute changed from IfcSurfaceTextureEnum to IfcIdentifier. * IFC4X3_RC1 changes: Attribute Parameter is deprecated. */ class IFC4X3_EXPORT IfcSurfaceTexture : public IfcPresentationItem { //DOM-IGNORE-BEGIN OD_EXP_NON_INSTANTIABLE_DECLARE_MEMBERS(OdIfc4x3_add2::IfcSurfaceTexture); //DOM-IGNORE-END public: // // OdDAI early binding accessors // /** \details Returns the value of RepeatS attribute. RepeatS is the field that specifies how the texture wraps in the S direction. If RepeatS is TRUE (the default case), 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. \returns Returns the value of RepeatS attribute. */ OdDAI::Boolean getRepeatS() const; /** \details Sets the value of RepeatS attribute. RepeatS is the field that 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. \param RepeatS [in] RepeatS attribute to set. */ void setRepeatS(OdDAI::Boolean RepeatS); /** \details Returns the value of RepeatT attribute. RepeatT is the field that 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. \returns Returns the value of RepeatT attribute. */ OdDAI::Boolean getRepeatT() const; /** \details Sets the value of RepeatT attribute. RepeatT is the field that 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. \param RepeatT [in] RepeatT to set. */ void setRepeatT(OdDAI::Boolean RepeatT); /** \details Returns the value of Mode attribute. This 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 an unlit appearance, and variations of both. \returns Returns the value of Mode attribute. \remarks The applicable values for the Mode attribute are determined by view definitions or implementer agreements. * IFC4 CHANGE: New attribute replacing previous TextureType. */ const OdAnsiString& getMode() const; /** \details Sets the value of Mode attribute. This 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 an unlit appearance, and variations of both. \param Mode [in] Mode to set. \remarks The applicable values for the Mode attribute are determined by view definitions or implementer agreements. * IFC4 CHANGE: New attribute replacing previous TextureType. */ void setMode(const OdAnsiString& Mode); /** \details Returns the value of TextureTransform attribute. TextureTransform attribute 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 items. 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. \returns Returns the value of TextureTransform attribute. */ const OdDAIObjectId& getTextureTransform() const; /** \details Sets the value of TextureTransform attribute. TextureTransform attribute 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 items. 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. \param TextureTransform [in] TextureTransform to set. */ void setTextureTransform(const OdDAIObjectId& TextureTransform); /** \details Returns the value of Parameter attribute. This attribute is provided to control the appearance of a multi textures. The applicable parameters depend on the value of the Mode attribute. \param Parameter [out] Parameter to set. \remarks The applicable values for the list of Parameter attributes are determined by view definitions or implementer agreements. * IFC4 CHANGE: New attribute added at the end of the attribute list. */ void getParameter(OdArray& Parameter) const; /** \details Returns the value of Parameter attribute. This attribute is provided to control the appearance of a multi textures. The applicable parameters depend on the value of the Mode attribute. \returns Returns the value of Parameter attribute. \remarks The applicable values for the list of Parameter attributes are determined by view definitions or implementer agreements. * IFC4 CHANGE: New attribute added at the end of the attribute list. */ OdDAI::ListOfOdAnsiString& parameter(); /** \details Returns the value of IsMappedBy attribute. IsMappedBy is 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. \param IsMappedBy [out] Receives the value of IsMappedBy attribute. \remarks * IFC4 CHANGE: New attribute added at the end of the attribute list. */ void getInvIsMappedBy(OdDAIObjectIds& IsMappedBy) const; /** \details Returns the value of UsedInStyles attribute. This attribute represents an entity that allows to include image textures in surface styles. \param UsedInStyles [out] Receives the value of UsedInStyles attribute. */ void getInvUsedInStyles(OdDAIObjectIds& UsedInStyles) const; public: /** \details Default constructor for the IfcSurfaceTexture class. */ IfcSurfaceTexture(); /** \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 OdDAI::Entity type that determines an entity definition within a schema. */ virtual OdDAI::Entity* getInstanceType() const override; /** \details Returns an attribute value for the specified attribute name. \param attrName [in] Name of an attribute to query. \returns OdRxValue object that represents a generic variant type value. */ virtual OdRxValue getAttr(const char * attrName) const override; /** \details Early-bound version of instances comparison. \param pOther [in] Other application instance. \param ordering [out] Receives the ordering (comparison) status. \returns true if comparison was performed, false if method has no implementation, so late-bound version could be applied. \remarks If the method returns true, the ordering parameter can receive one of the following statuses: Name Value Description _kLessThan_ -1 This object < Other Object. _kEqual_ 0 This object = Other Object. _kGreaterThan_ 1 This object > Other Object. _kNotOrderable_ 2 This class is not orderable.
*/ virtual bool comparedToEarlyImpl(const OdDAI::ApplicationInstance *pOther, OdRx::Ordering &ordering) const override; /** \details Resets a value for the specified attribute. \param explicitAttrName [in] Explicit name of the attribute to reset. */ virtual void unsetAttr(const char * explicitAttrName) override; /** \details Checks whether the specified attribute is set. \param explicitAttrName [in] Explicit name of the attribute to test. \returns true if the specified attribute is set, false otherwise. */ virtual bool testAttr(const char * explicitAttrName) const override; /** \details Sets the specified attribute with a given value. \param explicitAttrName [in] Explicit name of the attribute to set. \param val [in] Value to set. \returns true if the value is successfully set for the specified attribute, false otherwise. */ virtual bool putAttr(const char * explicitAttrName, const OdRxValue &val) override; /** \details Checks whether the specified instance is the object derived from or belongs to this class. \param entityType [in] Entity to check. \returns true if the specified instance is the object derived from or belongs to this class, false otherwise. */ virtual bool isKindOf(OdIfc::OdIfcEntityType entityType) const override; /** \details Returns the type of this entity. \returns A value of the OdIfc::OdIfcEntityType type that represents type of this entity. */ virtual OdIfc::OdIfcEntityType type() const override; /** \details Returns an attribute value for the specified attribute definition. \param attrDef [in] Attribute definition to query. \returns OdRxValue object that represents a generic variant type value. */ virtual OdRxValue getAttr(const OdIfc::OdIfcAttribute attrDef) const override; /** \details Resets a value for the specified attribute. \param explicitAttrDef [in] Explicit definition that represents an attribute to reset. */ virtual void unsetAttr(const OdIfc::OdIfcAttribute explicitAttrDef) override; /** \details Checks whether the specified attribute is set. \param explicitAttrDef [in] Attribute definition to test. \returns true if the specified attribute is set, false otherwise. */ virtual bool testAttr(const OdIfc::OdIfcAttribute explicitAttrDef) const override; /** \details Sets the specified attribute with a given value. \param explicitAttrDef [in] Explicit attribute definition to set. \param val [in] Value to set. \returns true if the value is successfully set for the specified attribute, false otherwise. */ virtual bool putAttr(const OdIfc::OdIfcAttribute explicitAttrDef, const OdRxValue &val) override; protected: // Fields declaration: OdDAI::Boolean m_RepeatS; // IfcBoolean OdDAI::Boolean m_RepeatT; // IfcBoolean OdAnsiString m_Mode; // IfcIdentifier [optional] OdDAIObjectId m_TextureTransform; // IfcCartesianTransformationOperator2D [optional] OdDAI::ListOfOdAnsiString m_Parameter; // LIST [1:?] of IfcIdentifier [optional] // Declare friend classes for inverse attributes functionality: friend class IfcTextureCoordinate; friend class IfcSurfaceStyleWithTextures; }; /** \details A data type that represents a smart pointer to a IfcSurfaceTexture object. */ typedef OdSmartPtr IfcSurfaceTexturePtr; } // namespace #include "TD_PackPop.h" #endif // _IFC4X3_ADD2_IFCSURFACETEXTURE_AUTO_IMPL_H