Reference on Topology/Tessellation
Types
Functions
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:
the A3DTopoConnex index on the current A3DTopoBrepData.
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++; } } }
the A3DTopoFace index on the current A3DTopoBrepData (see index need for A3DTopoFace reference)..
the A3DTopoLoop index on the current A3DTopoFace.
the A3DTopoCoEdge index on the current A3DTopoLoop.
the A3DTopoFace index on the current A3DTopoBrepData (see index need for A3DTopoFace reference).
the A3DTopoLoop index on the current A3DTopoFace.
the A3DTopoEdge index on the current A3DTopoLoop.
the A3DTopoVertex index on the current A3DTopoEdge. Is set to 0 for the start vertex, and 1 for the end vertex.
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
on success, or an error code on failure
-
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
on success, or an error code on failure
-
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 inm_pPolyBrepModel
m_puiAdditionalIndexes
[1] is the loop index in the facem_puiAdditionalIndexes
[2] is the edge index in the loop
If
m_eTopoItemType
is kA3DTypeTessVertex,m_uiSize
must be 4 andm_puiAdditionalIndexes
[0] is the face index inm_pPolyBrepModel
m_puiAdditionalIndexes
[1] is the loop index in the facem_puiAdditionalIndexes
[2] is the edge index in the loopm_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 nullA3D_INVALID_DATA_STRUCT_NULL – if
pData
is incorrectly initializedA3D_ENTITYREFERENCE_INCONSISTENT_REFERENCE –
A3D_INVALID_ENTITY_NULL –
A3D_INVALID_ENTITY_TYPE –
A3D_SUCCESS –
- Returns:
A3D_SUCCESS
on success, or an error code on failure
-
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
on success, or an error code on failure