CAACloudQsrItf Interface CATIQsrCAAPowerFit

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


interface CATIQsrCAAPowerFit

Interface defining a PowerFit.

Role: The PowerFit's algorithm is used to create :
- An untrimmed surface supported by one cloud of points and/or curves.
- A surface supported or not by one cloud of points and trimmed by an external boundary.
A CATIQsrCAAPowerFit is created through the CreatePowerFit method of the CATIQsrCAAFactory interface and deleted with the Remove method.


Method Index


o GetDistanceFace(int,float*,float*,boolean&,float&,int&)
Gets the description of a point and its orthogonal projection on the result face.
o GetErrorAboveValue(double,int*&,int&,double&,int&)
Gets the points the error of which is greater than a given value.
o GetStatisticError(double&,double&,double&,int&)
Gets the maximum error, the mean error and the standard deviation.
o MakeFace(CATBody*&,CATFace*&,int&)
Runs the algorithm.
o SetCloudOfPoints(float*,int,int&)
Sets the cloud of points.
o SetCurveUse(int,int&)
Sets the curves'use for the computation.
o SetCurves(CATLISTP(CATCell)&,CATLISTP(CATCell)&,CATListOfInt&,double&,int&)
Sets the constrained curves.
o SetDgSpans(int,int&)
Sets the span degree.
o SetG0GlobalCurves(double,int&)
Sets the tolerance G0 on each Edge.
o SetG0Points(double,int&)
Sets the tolerance on the points.
o SetG1GlobalCurves(double,int&)
Sets the tolerance G1 on each Edge if the tangency constraint is required.
o SetNbSpans(int,int&)
Sets the maximum spans number of the NUBS result surface.
o SetPipeRadius(double,int&)
Sets the radius of the pipe.
o SetSurfaceInit(CATSurface*,int&)
Sets the initial surface.

Methods


o GetDistanceFace
public virtual GetDistanceFace( const iNumero,
oPtInput,
oPtOutput,
oDirection,
oDistance,
oStatus)
Gets the description of a point and its orthogonal projection on the result face.
Parameters:
iNumero
The point number.
Legal values :
0 <= iNumero <= Number of points - 1.
oPtInput
The coordinates of the original point.
oPtOutput
The coordinates of the orthogonal projection of oPtInput on the result face.
oDirection
The error's direction.
Legal values :
TRUE means that the direction (oPtOutput -> oPtInput) is the same as the normal direction of the result face.
oDistance
The distance between the two points.
oStatus
Information.
Legal values :
0
Means that everything is OK.
1
Means that there was an error in the MakeFace method (no face is computed).
o GetErrorAboveValue
public virtual GetErrorAboveValue( const iValue,
oIdPoints,
oNbPoints,
oPercent,
oStatus)
Gets the points the error of which is greater than a given value.
Use the GetDistanceFace method in a loop from 0 to (oNbPoints - 1) to get the coordinates of each point before and after.
Parameters:
iValue
The threshold value of the error.
oIdPoints
The pointer for the result array.
oNbPoints
The number of points of oIdPoints.
oPercent
The ratio between oNbPoints and the original number of points.
oStatus
Information.
Legal values :
0
Means that everything is OK.
1
Means that there was an error in the MakeFace method (no face is computed).
o GetStatisticError
public virtual GetStatisticError( oMaxErr,
oMeanErr,
oStdDev,
oStatus)
Gets the maximum error, the mean error and the standard deviation.
The error on one point is the distance between the point and its orthogonal projection on the surface.
Parameters:
oMaxErr
The maximum error.
oMeanErr
The mean error.
oStdDev
The standard deviation.
oStatus
Information.
Legal values :
0
Means that everything is OK.
1
Means that there was an error in the MakeFace method (no face is computed).
o MakeFace
public virtual MakeFace( oBody,
oFace,
oStatus)
Runs the algorithm.
It computes the filling face.
Parameters:
oBody
The body that contains the result face.
oFace
The result face.
oStatus
Information.
Legal values :
0
Means that everything is OK.
1
Means that the discontinuity G0 in the boundary is greater than the curves tolerance.
2
Means that there are not enough constraints, points or curves.
3
Means that some points are in counter draft.
4
Means that a PlateFe error occurred.
5
Means that the quality of the surface is too poor (high frequency). There are probably some bad points in the set of points or some points may be in a not detected counter draft.
10
Means that a precedent error occurred while using other methods of this interface.
Other
Means that an internal error occurred, no significance for the user.
o SetCloudOfPoints
public virtual SetCloudOfPoints( iPoints,
const iNbPoints,
oStatus)
Sets the cloud of points.
Parameters:
iPoints
The coordinates (in float) of the points, 3 coordinates by point.
iNbPoints
Number of points. The minimum size of iPoints is (3 * iNbPoints).
oStatus
Information.
Legal values :
0
Means that everything is OK.
1
Means that iPoints is not valid or that iNbPoints is smaller than zero.
2
Means that the allocation of iPoints is not possible.
o SetCurveUse
public virtual SetCurveUse( const iCurveUse,
oStatus)
Sets the curves'use for the computation.
If this method is not used, the default value for the computation is 0.
Parameters:
iCurveUse
The use of the boundary loaded by SetCurves.
Legal values :
0
The surface is computed on the points and the curves. The curves become the edges of the surface.
1
The surface is computed on the points. The curves are then projected on the surface to trim it.
1
The surface is computed on the points located inside the curves. The surface is not trimmed.
oStatus
Information.
Legal values :
0
Means that everything is OK.
1
Means that iCurveUse is not equal to 0, 1 or 2.
o SetCurves
public virtual SetCurves( const iListOfEdge,
const iListOfFace,
const iListOfContact,
oGapG0,
oStatus)
Sets the constrained curves.
These curves determine the boundary of the result face.
Only the points inside the boundary are used to compute the surface result.
Important : See CurveUse for more information on the boundary's use.
Parameters:
iListOfEdge
The list of the constrained edges.
Note : The edge's order in the iListOfEdge is not important.
iListOfFace
In regard with iListOfEdge, the list of associated faces, NULL if you have no face.
iListOfContact
In regard with iListOfEdge, the nature of contact.
Legal values :
0
If you want a simple passage with the Edge.
1
If you want a tangency with the mandatory corresponding Face.
oGapG0
The biggest hole G0 continuity computed on the iListOfEdge
oStatus
Information.
Legal values :
0
Means that everything is OK.
1
Means that there are no edges or that one edge is equal to NULL.
2
Means that there is only one edge. A boundary of a face with one edge is not possible.
3
Means that one of the contact values is neither equal to 0 nor equal to 1.
4
Means that a contact is equal to 1 and there is no Face corresponding.
o SetDgSpans
public virtual SetDgSpans( const iDgSpans,
oStatus)
Sets the span degree.
The degree is the same for each span.
If this method is not used, the default value for the computation is 5 (minimum value for NUBS C2).
Parameters:
iDgSpans
The span degree.
Legal values :
3 <= iDgSpans <= 12.

Note : If the maximum number of spans is equal to 1, the span degree could be equal to 3 or 4.
oStatus
Information.
Legal values :
0
Means that everything is OK.
1
Means that iDgSpans is smaller than 2 or higher than 13.
o SetG0GlobalCurves
public virtual SetG0GlobalCurves( const iTolG0,
oStatus)
Sets the tolerance G0 on each Edge.
If this method is not used, the default value for the computation is 0.1.
Parameters:
iTolG0
The acceptable mean error between the Edge and its image on the result surface.
oStatus
Information.
Legal values :
0
Means that everything is OK.
1
Means that iTolG0 is smaller than 0.
o SetG0Points
public virtual SetG0Points( const iTolG0,
oStatus)
Sets the tolerance on the points.
If this method is not used, the default value for the computation is 0.5.
Parameters:
iTolG0
The tolerance. It is the acceptable mean error between the points and the result surface.
oStatus
Information.
Legal values :
0
Means that everything is OK.
1
Means that iTolG0 is smaller than zero.
o SetG1GlobalCurves
public virtual SetG1GlobalCurves( const iTolG1,
oStatus)
Sets the tolerance G1 on each Edge if the tangency constraint is required.
If this method is not used, the default value for the computation is 2.5 Degree.
Parameters:
iTolG1
The acceptable mean error between the Edge and its image on the result surface.
oStatus
Information.
Legal values :
0
Means that everything is OK.
1
Means that iTolG1 is smaller than 0.
o SetNbSpans
public virtual SetNbSpans( const iNbSpans,
oStatus)
Sets the maximum spans number of the NUBS result surface.
If this method is not used, the default value for the computation is 64.
Parameters:
iNbSpans
The maximum number of spans.
Note : The result is a Bezier patch if the maximum number of spans is equal to 1.
oStatus
Information.
Legal values :
0
Means that everything is OK.
1
Means that iNbSpans is smaller than zero.
o SetPipeRadius
public virtual SetPipeRadius( const iRadius,
oStatus)
Sets the radius of the pipe.
The points inside a circular pipe centered on each curve and defined by its radius are deleted in order to minimize the risk of undulations.
If this method is not used, the default value for the computation is -1.
Parameters:
iRadius
The radius of the pipe. If its value is -1, the algorithm, using a heuristic, computes the radius automatically.
oStatus
Information.
Legal values :
0
Means that everything is OK.
o SetSurfaceInit
public virtual SetSurfaceInit( iInitSurface,
oStatus)
Sets the initial surface.
If this method is not used, the default for the computation is the median plane.
Parameters:
iInitSurface
The initial surface. The parameterization of the result surface is the same as iInitSurface.
oStatus
Information.
Legal values :
0
Means that everything is OK.
1
Means that iInitSurface is not valid.

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

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