A3DRiComputeMesh

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

Populate an A3DMeshData structure with mesh information extracted from the provided A3DRiRepresentationItem entity.

24.0

This function computes the underlying mesh structure contained within the given representation item and fills in an instance of 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:

A3DRiComputeMesh computes the mesh for kA3DTypeRiBrepModel and kA3DTypeRiPolyBrepModel representation items only.

Example:

Before calling the function, ensure that the representation item contains tessellation. Use A3DRiRepresentationItemComputeTessellation() to generate tessellation data if needed:

A3DMeshDatameshData;
A3D_INITIALIZE_DATA(A3DMeshData,meshData);

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

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

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

Parameters

pRi: The A3DRiRepresentationItem from which to compute the mesh. If nullptr, memory of the mesh is released.

pParentAttributes: The A3DMiscCascadedAttributes of the representation item’s parent.

pMesh: The A3DMeshData to 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.