Reference on Topology/Tessellation
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:
- 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 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
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