CATInterfereSolverUseItf Interface CATIInterfSolverResultITF

Usage: an implementation of this interface is supplied and you must use it as is. You should not reimplement it.


interface CATIInterfSolverResultITF

This interface is implemented by CATInterfereSolverUseImpl.

Role: Contains API to manage Interference Solver.


Method Index


o GetAccuracy(double&,double&)
Get accuracy of interference.
o GetClearanceValues(CATMathPoint&,CATMathPoint&,double&)
Get clearance values of interference (in case of clearance result).
o GetContactValues(CATMathPoint&,CATMathPoint&,double&)
Get contact values of interference (in case of contact result).
o GetFirstClearance(double**,int**,int&)
Get first surface (polyhedral) of object 1 of interference (in case of clearance result).
o GetFirstContact(double**,int**,int&)
Get first surface (polyhedral) of object 1 of interference (in case of contact result).
o GetIntersectionCurves(double**,int**,int&)
Get intersection curve of interference (in case of clash result).
o GetObjectsInInterference(int&,int&)
Get Id Objects of interference.
o GetPenetrationVector(CATMathPoint&,CATMathPoint&)
Get penetration vector of interference (in case of clash result).
o GetSecondClearance(double**,int**,int&)
Get second surface (polyhedral) of object 2 of interference (in case of clearance result).
o GetSecondContact(double**,int**,int&)
Get second surface (polyhedral) of object 2 of interference (in case of contact result).
o GetTypeStatus(CATIInterfSolverResultITF::InterfSolverItfType&)
Get type status of interference.

Enumerated Type Index


o InterfSolverItfType
type status of interference.

Methods


o GetAccuracy
public virtual GetAccuracy( oAccuracy1,
oAccuracy2)
Get accuracy of interference.
Parameters:
oAccuracy1
[out] The 3D accuracy of the first tesselation object of interference.
oAccuracy2
[out] The 3D accuracy of the second tesselation object of interference.
Returns:
S_OK
If the operation is successful.
E_FAIL
If the operation is failed.
o GetClearanceValues
public virtual GetClearanceValues( oPt1,
oPt2,
oMinimumDistance)
Get clearance values of interference (in case of clearance result).
Parameters:
oPt1
[out] The first point realized by the minimum distance of clearance.
oPt2
[out] The second point realized by the minimum distance of clearance.
oMinimumDistance
[out] The minimum distance realized by the clearance.
Returns:
S_OK
If the operation is successful.
E_FAIL
If the operation is failed.
o GetContactValues
public virtual GetContactValues( oPt1,
oPt2,
oMinimumDistance)
Get contact values of interference (in case of contact result).
Parameters:
oPt1
[out] The first point realized by the minimum distance of contact.
oPt2
[out] The second point realized by the minimum distance of contact.
oMinimumDistance
[out] The minimum distance realized by the contact.
Returns:
S_OK
If the operation is successful.
E_FAIL
If the operation is failed.
o GetFirstClearance
public virtual GetFirstClearance( const opVertices,
const opTriangleIndices,
oNbTriangles)
Get first surface (polyhedral) of object 1 of interference (in case of clearance result).
Parameters:
opVertices
[out] The vertex coordinates of triangles : XYZXYZXYZ....
opTriangleIndices
[out] The indices of triangles.
oNbTriangle
[out] The number of triangles.
Returns:
S_OK
If the operation is successful.
E_FAIL
If the operation is failed.
o GetFirstContact
public virtual GetFirstContact( const opVertices,
const opTriangleIndices,
oNbTriangles)
Get first surface (polyhedral) of object 1 of interference (in case of contact result).
Parameters:
opVertices
[out] The vertex coordinates of triangles : XYZXYZXYZ....
opTriangleIndices
[out] The indices of triangles : opTriangleIndices[j],opTriangleIndices[j+1],opTriangleIndices[j+2], with 0<=j<3*oNbTriangle.
oNbTriangle
[out] The number of triangles. Details:

                 --------------------       
                | *opTriangleIndices |
                 --------------------
                |       i00          |   }
                |       i01          |   } triangle 0 defined by index i00, i01 and i02
                |       i02          |   }
                |        .           |
                |        .           |
                |       ij0          |   }
                |       ij1          |   } triangle j defined by index ij0, ij1 and ij2. 
                |       ij2          |   }
                |        .           |
                |        .           |
                 --------------------

   
For example, index enables access to the triangle with :

vertex 1 : X = (*opVertices)[ij0], Y = (*opVertices)[ij0 + 1] and Z = (*opVertices)[ij0 + 2]
vertex 2 : X = (*opVertices)[ij1], Y = (*opVertices)[ij1 + 1] and Z = (*opVertices)[ij1 + 2]
vertex 3 : X = (*opVertices)[ij2], Y = (*opVertices)[ij2 + 1] and Z = (*opVertices)[ij2 + 2]
Returns:
S_OK
If the operation is successful.
E_FAIL
If the operation is failed.
o GetIntersectionCurves
public virtual GetIntersectionCurves( const opVertexPolyline,
const opNbVertexPolyline,
oNbPolylines)
Get intersection curve of interference (in case of clash result).
Parameters:
opVertexPolyline
[out] The vertex coordinates of polyline : XYZXYZXYZ....
opNbVertexPolyline
[out] The number opNbVertexPolyline[i] of vertex of each polyline with 0 <= i < oNbPolylines.
oNbPolylines
[out] The number of polylines. Details:

      -------------------------------------      
     | *opVertexPolyline                   |   } array of size [opNbVertexPolyline[0]+...+opNbVertexPolyline[oNbPolylines-1]]
      -------------------------------------
     |  x [0]                              |   }
     |  y [1]                              |   } vertex 0 of polyline 0          }
     |  y [2]                              |   }                                 }   
     |  x [3]                              |   }                                 }
     |  y [4]                              |   } vertex 1 of polyline 0          }
     |  z [5]                              |   }                                 }
     |  x [6]                              |   }                                 } polyline 0 of size [opNbVertexPolyline[0]]
     |  y [7]                              |   } vertex 2 of polyline 0 and ...  }
     |  z [8]                              |   }                                 }
     |  .                                  |                                                          
     |  .                                  |                                                          
     |  x [3*opNbVertexPolyline[i-1]    ]  |   }                                 }
     |  y [3*opNbVertexPolyline[i-1] + 1]  |   } vertex 0 of polyline i          } polyline i of size [opNbVertexPolyline[i]]
     |  z [3*opNbVertexPolyline[i-1] + 2]  |   }                                 }
     |  x [3*opNbVertexPolyline[i-1] + 3]  |   }                                 )
     |  y [3*opNbVertexPolyline[i-1] + 4]  |   } vertex 1 of polyline i and ...  }
     |  z [3*opNbVertexPolyline[i-1] + 5]  |   }
     |  .                                  |
     |  .                                  |
      -------------------------------------

   
Returns:
S_OK
If the operation is successful.
E_FAIL
If the operation is failed.
o GetObjectsInInterference
public virtual GetObjectsInInterference( oId1,
oId2)
Get Id Objects of interference.
Parameters:
oId1
[out] The identifier of the first object of interference.
oId2
[out] The identifier of the second object of interference.
Returns:
S_OK
If the operation is successful.
E_FAIL
If the operation is failed.
o GetPenetrationVector
public virtual GetPenetrationVector( oPtStart,
oPtEnd)
Get penetration vector of interference (in case of clash result).
Parameters:
oPtStart
[out] The start point of penetration vector.
oPtEnd
[out] The end point of penetration vector.
Returns:
S_OK
If the operation is successful.
E_FAIL
If the operation is failed.
o GetSecondClearance
public virtual GetSecondClearance( const opVertices,
const opTriangleIndices,
oNbTriangles)
Get second surface (polyhedral) of object 2 of interference (in case of clearance result).
Parameters:
opVertices
[out] The vertex coordinates of triangles : XYZXYZXYZ....
opTriangleIndices
[out] The indices of triangles.
oNbTriangle
[out] The number of triangles.
Returns:
S_OK
If the operation is successful.
E_FAIL
If the operation is failed.
o GetSecondContact
public virtual GetSecondContact( const opVertices,
const opTriangleIndices,
oNbTriangles)
Get second surface (polyhedral) of object 2 of interference (in case of contact result).
Parameters:
opVertices
[out] The vertex coordinates of triangles : XYZXYZXYZ....
opTriangleIndices
[out] The indices of triangles.
oNbTriangle
[out] The number of triangles.
Returns:
S_OK
If the operation is successful.
E_FAIL
If the operation is failed.
o GetTypeStatus
public virtual GetTypeStatus( oItfType)
Get type status of interference.
Parameters:
oItfType
[out] The type status result of interference defined by
enum.
Returns:
S_OK
If the operation is successful.
E_FAIL
If the operation is failed.

Enumerated Types


o InterfSolverItfType
enum InterfSolverItfType {
  ITFSolverItfTypeNONE,
  ITFSolverItfTypeCLASH,
  ITFSolverItfTypeCONTACT,
  ITFSolverItfTypeCLEARANCE
}
type status of interference.
Parameters:
ITFSolverItfTypeNONE
none result.
ITFSolverItfTypeCLASH
clash result.
ITFSolverItfTypeCONTACT
contact result.
ITFSolverItfTypeCLEARANCE
clearance result.

This object is included in the file: CATIInterfSolverResultITF.h
If needed, your Imakefile.mk should include the module: CATInterfereSolverUseItf

Copyright © 1999-2014, Dassault Systèmes. All rights reserved.