/////////////////////////////////////////////////////////////////////////////// // 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. /////////////////////////////////////////////////////////////////////////////// #ifndef _PRCTESSFACE_INCLUDED_ #define _PRCTESSFACE_INCLUDED_ #include "PrcArrayRgba.h" #include "PrcObjectId.h" /** \details A class that stores tessellation data for a face. */ class PRC_TOOLKIT OdPrcTessFace { private: OdUInt32Array m_sizes_wire; OdUInt32Array m_sizes_triangulated; OdPrcObjectIdArray m_line_attributes; OdPrcArrayRgba m_ArrayRGBA; OdUInt32 m_start_wire; OdUInt32 m_used_entities_flag; OdUInt32 m_start_triangulated; OdUInt32 m_number_of_texture_coordinate_indexes; OdUInt32 m_behaviour; bool m_has_vertex_colors; bool m_b_optimised; public: PRC_DECLARE_CIO(OdPrcTessFace) /** \details Requests the current array of wire edge indexes. \returns An array of unsigned 32-bit integer values that represent wire edge indexes. \remarks The array of wire edge indexes is returned as a reference to an OdUInt32Array object; therefore, it can be used to set a new array or modify the existing one. */ OdUInt32Array &sizesWire(); /** \details Requests the current array of wire edge indexes. \returns An array of unsigned 32-bit integer values that represent wire edge indexes. */ const OdUInt32Array &sizesWire() const; /** \details Requests the current array of tessellation data. \returns An array of unsigned 32-bit integer values that represent tessellation data. \remarks The array of tessellation data is returned as a reference to an OdUInt32Array object; therefore, it can be used to set a new array or modify the existing one. */ OdUInt32Array &sizesTriangulated(); /** \details Requests the current array of tessellation data. \returns An array of unsigned 32-bit integer values that represent tessellation data. */ const OdUInt32Array &sizesTriangulated() const; /** \details Requests the current array of line styles. \returns An object that contains the array of line styles. \remarks The array of line styles is returned as a reference to an object; therefore, it can be used to set a new array or modify the existing one. */ OdPrcObjectIdArray &lineAttributes(); /** \details Requests the current array of line styles. \returns An object that contains the array of line styles. */ const OdPrcObjectIdArray &lineAttributes() const; /** \details Requests the current array of color data. \returns An object that contains color data. \remarks The array of color data is returned as a reference to an object; therefore, it can be used to set a new array or modify the existing one. */ OdPrcArrayRgba &arrayRGBA(); /** \details Requests the current array of color data. \returns An object that contains color data. */ const OdPrcArrayRgba &arrayRGBA() const; /** \details Sets a new start wire value. \param start_wire [in] A new value of the start wire to be set. */ void setStartWire(OdUInt32 start_wire); /** \details Requests the current start wire value. \returns An unsigned 32-bit integer value that contains the start wire value. */ OdUInt32 startWire() const; /** \details Sets a new value for the used entities flag. The used entities flag contains the types of triangulated entities. \param used_entities_flag [in] A new value of the flag to be set. */ void setUsedEntitiesFlag(OdUInt32 used_entities_flag); /** \details Requests the current value of the used entities flag. The used entities flag contains the types of triangulated entities. \returns An unsigned 32-bit integer value that contains the value of the used entities flag. */ OdUInt32 usedEntitiesFlag() const; /** \details Sets a new start index for triangulated entities. \param start_triangulated [in] A new start index to be set. */ void setStartTriangulated(OdUInt32 start_triangulated); /** \details Requests the current start index of triangulated entities. \returns An unsigned 32-bit integer value that contains the start index. */ OdUInt32 startTriangulated() const; /** \details Sets a new number of texture coordinate indexes. \param number_of_texture_coordinate_indexes [in] A new number of texture coordinate indexes to be set. */ void setNumberOfTextureCoordinateIndexes(OdUInt32 number_of_texture_coordinate_indexes); /** \details Requests the current number of texture coordinate indexes. \returns An unsigned 32-bit integer value that contains the number of texture coordinate indexes. */ OdUInt32 numberOfTextureCoordinateIndexes() const; /** \details Sets a new graphics behavior value. \param behaviour [in] A new graphics behavior value to be set. */ void setBehaviour(OdUInt32 behaviour); /** \details Requests the current graphics behavior value. \returns An unsigned 32-bit integer value that contains the graphics behavior value. */ OdUInt32 behaviour() const; /** \details Sets a new value of the direct color storage flag. The direct color storage flag indicates whether colors are stored directly in the vertices (true) or not (false). \param has_vertex_colors [in] A new flag value to be set. */ void setHasVertexColors(bool has_vertex_colors); /** \details Requests the current value of the direct color storage flag. The direct color storage flag indicates whether colors are stored directly in the vertices (true) or not (false). \returns The true value if colors are stored directly in vertices; otherwise, the method returns false. */ bool hasVertexColors() const; /** \details Sets a new value of the optimization flag. The optimization flag indicates whether the entity is optimized (true) or not (false). \param b_optimised [in] A new value of the optimization flag to be set. */ void setBOptimised(bool b_optimised); /** \details Requests the current value of the optimization flag. The optimization flag indicates whether the entity is optimized (true) or not (false). \returns The true value if the entity is optimized; otherwise, the method returns false. */ bool bOptimised() const; /** \details Requests the current PRC type. \returns An unsigned 32-bit integer value that represents the PRC type. */ OdUInt32 prcType() const; }; /** \details A data type that represents an array of objects. */ typedef OdArray OdPrcTessFaceArray; #endif // _PRCTESSFACE_INCLUDED_