Reference on Topology/Tessellation

Types

A3DMiscReferenceOnTopologyData

A3DMiscReferenceOnTessData

Functions

A3DStatus

A3DMiscReferenceOnTopologyGet

A3DStatus

A3DMiscReferenceOnTessGet

A3DStatus

A3DMiscReferenceOnTessCreate

A3DStatus

A3DMiscReferenceOnTopologyCreate

Detailed Description

group a3d_reference_on_topo

Creates and accesses entities that reference topology entities and that specify globally-defined attributes.

Entity type is kA3DTypeMiscReferenceOnTopology.

Version

2.0

Reference topology entity are retrieved by indexes on father elements.

For a A3DTopoConnex, it needs:

For a A3DTopoShell, it needs:
  • the A3DTopoShell index on the current A3DTopoBrepData

    . It is a global index to the “BrepData. In the case of several \ref A3DTopoConnex, it must take into account the number of shells present in the preceding \ref A3DTopoConnex.

    @code

    A3DUns32 uiShellIndex = 0;

    for all pConnex on A3DTopoBrepData

    {

    for all pShell on pConnex

    {

    if pShell is wanted

    return uiShellIndex;

    uiShellIndex++;

    }

    }

    \endcode

    For a \ref A3DTopoFace, it needs:

    \li the \ref A3DTopoFace index on the current \ref A3DTopoBrepData. It is a global index to the “BrepData. In the case of several

    A3DTopoConnex, it must take into account the number of faces present in the preceding A3DTopoConnex.
    A3DUns32 uiFaceIndex = 0;
    for all pConnex on A3DTopoBrepData
    {
        for all pShell on pConnex
        {
            for all pFace on pShell
            {
                if pFace is wanted
                    return uiFaceIndex;
                uiFaceIndex++;
            }
        }
    }
    

For a A3DTopoEdge or A3DTopoCoEdge, it needs: For a A3DTopoVertex, it needs:

Function Documentation

A3DStatus A3DMiscReferenceOnTopologyGet(const A3DMiscReferenceOnTopology *pReferenceOnTopoItem, A3DMiscReferenceOnTopologyData *pData)

Populates the A3DMiscReferenceOnTopologyData structure.

Version

2.0

Return values
  • A3D_INITIALIZE_NOT_CALLED

  • A3D_INVALID_DATA_STRUCT_SIZE

  • A3D_INVALID_DATA_STRUCT_NULL

  • A3D_INVALID_ENTITY_NULL

  • A3D_INVALID_ENTITY_TYPE

  • A3D_SUCCESS

Returns

A3D_SUCCESS in case of success or an error code

A3DStatus A3DMiscReferenceOnTessGet(const A3DMiscReferenceOnTess *pReferenceOnTess, A3DMiscReferenceOnTessData *pData)

Populates the A3DMiscReferenceOnTessData structure for PolyBrepModel.

Version

9.2

Return values
  • A3D_INITIALIZE_NOT_CALLED

  • A3D_INVALID_DATA_STRUCT_SIZE

  • A3D_INVALID_DATA_STRUCT_NULL

  • A3D_INVALID_ENTITY_NULL

  • A3D_INVALID_ENTITY_TYPE

  • A3D_SUCCESS

Returns

A3D_SUCCESS in case of success or an error code

A3DStatus A3DMiscReferenceOnTessCreate(const A3DMiscReferenceOnTessData *pData, A3DMiscReferenceOnTess **ppReferenceOnTess)

Creates an A3DMiscReferenceOnTess from an A3DMiscReferenceOnTessData structure.

Version

11.0

Edge and Vertex references

If m_eTopoItemType is kA3DTypeTessEdge, m_uiSize must be 3 and:

  • m_puiAdditionalIndexes[0] is the face index in m_pPolyBrepModel

  • m_puiAdditionalIndexes[1] is the loop index in the face

  • m_puiAdditionalIndexes[2] is the edge index in the loop

If m_eTopoItemType is kA3DTypeTessVertex, m_uiSize must be 4 and

  • m_puiAdditionalIndexes[0] is the face index in m_pPolyBrepModel

  • m_puiAdditionalIndexes[1] is the loop index in the face

  • m_puiAdditionalIndexes[2] is the edge index in the loop

  • m_puiAdditionalIndexes[3] is the vertex index in the edge

Parameters
  • pData[in] The A3DMiscReferenceOnTessData instance to create reference from

  • ppReferenceOnTess[out] A pointer to the resulting A3DMiscReferenceOnTess entity

Return values
  • A3D_INVALID_DATA_STRUCT_SIZE – if pData is null

  • A3D_INVALID_DATA_STRUCT_NULL – if pData is incorrectly initialized

  • A3D_ENTITYREFERENCE_INCONSISTENT_REFERENCE

  • A3D_INVALID_ENTITY_NULL

  • A3D_INVALID_ENTITY_TYPE

  • A3D_SUCCESS

Returns

A3D_SUCCESS in case of success or an error code

A3DStatus A3DMiscReferenceOnTopologyCreate(const A3DMiscReferenceOnTopologyData *pData, A3DMiscReferenceOnTopology **ppReferenceOnTopoItem)

Creates an A3DMiscReferenceOnTopology from an A3DMiscReferenceOnTopologyData structure.

Version

2.0

Return values
  • A3D_INVALID_ENTITY_NULL – if pData->m_pBrepData is NULL

  • A3D_INVALID_ENTITY_TYPE – if pData->m_pBrepData is not a A3DTopoBrepData

  • Until – version 2018 it was possible to pass A3DRiPolyBrepModel for pData->m_pBrepData which was not valid.

  • Use – A3DMiscReferenceOnTessCreate for that case (see CreatePRCCubes sample).

  • A3D_INVALID_DATA_STRUCT_SIZE

  • A3D_INVALID_DATA_STRUCT_NULL

  • A3D_ENTITYREFERENCE_INCONSISTENT_REFERENCE

  • A3D_SUCCESS

Returns

A3D_SUCCESS in case of success or an error code