A3DRiComputeMesh

A3DStatus A3DRiComputeMesh(const A3DRiRepresentationItem *pRi, const A3DMiscCascadedAttributes *pParentAttributes, A3DMeshData *pMesh, const A3DRiComputeMeshParametersData *psMeshOptionsData)
A3DStatus A3DRiComputeMesh(const A3DRiRepresentationItem* pRi, const A3DMiscCascadedAttributes* pParentAttributes, A3DMeshData* pMesh, const A3DRiComputeMeshParametersData* psMeshOptionsData)

Populate an:c:struct:~A3DMeshDatastructure with mesh information extracted from the provided:c:type:~A3DRiRepresentationItementity.

24.0

This function computes the underlying mesh structure contained within the given representation item and fills in an instance of:c:struct:~A3DMeshData. If normals are missing from the representation item, they are computed using``A3DRiComputeMesh``.

Memory Management:

If successful, the``pMesh``structure contains heap-allocated memory for which you are responsible. To free the memory in``pMesh``, call``A3DRiComputeMesh``with``pRi``set to*0*:

A3DRiComputeMesh(0,0,&pMesh,0);

Limitations:

A3DRiComputeMeshcomputes the mesh for:c:enumerator:~kA3DTypeRiBrepModeland:c:enumerator:~kA3DTypeRiPolyBrepModelrepresentation items only.

Example:

Before calling the function, ensure that the representation item contains tessellation. Use:c:func:~A3DRiRepresentationItemComputeTessellationto generate tessellation data if needed:

A3DMeshDatameshData=A3D_MAKE_DATA(A3DMeshData);

A3DStatusstatus=A3DRiComputeMesh(pRi,parentGraphicalContext,&meshData,0);

if(status!=A3D_SUCCESS)
{
A3DRWParamsTessellationDatatess_params=A3D_MAKE_DATA(A3DRWParamsTessellationData);
tess_params.m_eTessellationLevelOfDetail=kA3DTessLODMedium;
A3DRiRepresentationItemComputeTessellation(pRi,&tess_params);

status=A3DRiComputeMesh(pRi,parentGraphicalContext,&meshData,0);
assert(status==A3D_SUCCESS);
}

Parameters

pRi: The:c:type:~A3DRiRepresentationItemfrom which to compute the mesh. If nullptr, memory of the mesh is released.

pParentAttributes: The:c:type:~A3DMiscCascadedAttributesof the representation item’s parent.

pMesh: The:c:struct:~A3DMeshDatato store the computed mesh or release memory if pRi = nullptr.

psMeshOptionsData: Options used to compute Mesh. 0 for now, options structure for future use.

Returns

A3D_SUCCESS if successful, otherwise an error code.