Determine if there are interferences between parts from an assembly. More...

Data Structures

struct  A3DCollisionGroupData
 A3DCollisionGroupData structure. More...
 
struct  A3DCollisionParameterData
 A3DCollisionParameterData structure. More...
 
struct  A3DCollisionResultData
 A3DCollisionResultData structure. More...
 
struct  A3DTransfoRepresentationItemData
 A3DTransfoRepresentationItemData structure. More...
 

Enumerations

enum  A3DCollisionType {
  A3DCollision_Unknown = 0,
  A3DCollision_NoCollision = 1,
  A3DCollision_Clearance = 2,
  A3DCollision_Contact = 3,
  A3DCollision_Collision = 4,
  A3DCollision_FirstInside = 5,
  A3DCollision_SecondInside = 6
}
 Collision type between to A3DRiRepresentationItem. More...
 

Functions

A3DStatus A3DCollisionCompute (A3DCollisionGroupData const *pGroup1, A3DCollisionGroupData const *pGroup2, A3DCollisionParameterData const *pParameterData, A3DUns32 *uCollisionResultsSize, A3DCollisionResultData **pCollisionResults)
 Determine interferences between A3DRiRepresentationItem. More...
 

Detailed Description

Determine if there are interferences between parts from an assembly.

This functionality allows to determine if there are interferences (clashes) between parts from an assembly, and if a specified clearance distance is verified between parts (clearance analysis).

Depending on the nature of the analysis, one or two groups can be defined:

Enumeration Type Documentation

◆ A3DCollisionType

Collision type between to A3DRiRepresentationItem.

Version
11.1
Enumerator
A3DCollision_Unknown 

Cannot compute the result

A3DCollision_NoCollision 

There is no colision or contact between the two A3DRiRepresentationItem

A3DCollision_Clearance 

The safety distance is not verified between the two A3DRiRepresentationItem

A3DCollision_Contact 

There is a contact between the two A3DRiRepresentationItem

A3DCollision_Collision 

There is a collision between the two A3DRiRepresentationItem

A3DCollision_FirstInside 

The first A3DRiRepresentationItem is inside of the second A3DRiRepresentationItem

A3DCollision_SecondInside 

The second A3DRiRepresentationItem is inside of the first A3DRiRepresentationItem

Function Documentation

◆ A3DCollisionCompute()

A3DStatus A3DCollisionCompute ( A3DCollisionGroupData const *  pGroup1,
A3DCollisionGroupData const *  pGroup2,
A3DCollisionParameterData const *  pParameterData,
A3DUns32 uCollisionResultsSize,
A3DCollisionResultData **  pCollisionResults 
)

Determine interferences between A3DRiRepresentationItem.

Version
11.1

This function allows to determine if there are interferences between A3DRiRepresentationItem from one or two groups.

Parameters
[in]pGroup1define the first group of A3DTransfoRepresentationItemData.
[in]pGroup2define a optional second group of A3DTransfoRepresentationItemData.
[in]pParameterDataset parameters for collision computation.
[out]uCollisionResultsSizeNumber of A3DCollisionResultData in pCollisionResults.
[out]pCollisionResultsArray of A3DCollisionResultData, containing collision computation result. pCollisionResults is automatically allocated by A3DCollisionCompute.

Call A3DCollisionCompute( NULL, NULL, NULL, uCollisionResultsSize, pCollisionResults) to release pCollisionResults structure

if pParameterData->m_dContactLimit is set to 0., the function return only A3DCollision_Collision instead of A3DCollision_Contact, A3DCollision_FirstInside and A3DCollision_SecondInside.

Returns
A3D_INVALID_DATA_STRUCT_SIZE
A3D_INVALID_DATA_STRUCT_NULL
A3D_INVALID_DATA
A3D_SUCCESS
A3D_ERROR