GMModelInterfaces Interface CATICGMNurbsSurfaceTools

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


interface CATICGMNurbsSurfaceTools

Class used to manipulate a Nurbs surface.


Method Index


o ActiveSplits(double,double,double,double)
Splits the surface.
o Check()
Checks the current surface.
o ExchangeUV()
Reverses U and V along the surface.
o GetDeformation(double&,double&,double&)
Computes an estimation of the deformation value.
o GetDegrees(int&,int&)
Retrieves the surface degree.
o GetInfo()
Retrieves the CATNurbsToolsInfo.
o GetNumberOfControlPoints(int&,int&)
Retrieves the number of control points of the Nurbs surface.
o GetNumberOfKnots(int&,int&)
Retrieves the number of knot values of the Nurbs surface.
o GetResult()
Returns the new surface computed by this operator.
o ImposeParametrizations(CATSurface*,int,int,int,int)
Imposes the parameterization of another surface This method deforms the surface.
o Run()
Runs this operator.
o SetDegrees(int,int,int,int,int,int)
Modifies the degree of the surface.
o UActiveSplit(double,double)
Splits the surface along U.
o UChangeKnotVector(CATKnotVector*,int,int)
Modifies the knot vector along U.
o UImposeParametrization(CATCurve*,int,int)
Imposes the parameterization of a surface along U.
o UInvert()
Inverts the surface along U.
o UKnotInsertion(double,int)
Inserts a knot along U.
o UKnotRankToKnotValue(int,double&)
Retrieves a knot value along U from its rank.
o UKnotRemoval(int)
Removes a knot along U.
o UKnotReplace(int,double,int,int)
Replaces a knot along U.
o UKnotValueToKnotRank(double,int&)
Retrieves the rank of a knot along U from its value.
o UMultipleKnotInsertion(int,double*,int*)
Inserts several knots along U.
o USetDegree(int,int,int)
Modifies the degree of the surface along U.
o USetMultiplicity(int,int)
Modifies the multiplicity of a knot along U.
o VActiveSplit(double,double)
Splits the surface along V.
o VChangeKnotVector(CATKnotVector*,int,int)
Modifies the knot vector along U.
o VImposeParametrization(CATCurve*,int,int)
Imposes the parameterization of a surface along V.
o VInvert()
Inverts the surface along V.
o VKnotInsertion(double,int)
Inserts a knot along V.
o VKnotRankToKnotValue(int,double&)
Retrieves a knot value along V from its rank.
o VKnotRemoval(int)
Removes a knot along V.
o VKnotReplace(int,double,int,int)
Replaces a knot along V.
o VKnotValueToKnotRank(double,int&)
Retrieves the rank of a knot along V from its value.
o VMultipleKnotInsertion(int,double*,int*)
Inserts several knots along V.
o VSetDegree(int,int,int)
Modifies the degree of the surface along V.
o VSetMultiplicity(int,int)
Modifies the multiplicity of a knot along V.

Methods


o ActiveSplits
public virtual ActiveSplits( const iStartKnotValuesU,
const iEndKnotValuesU,
const iStartKnotValuesV,
const iEndKnotValuesV)
Splits the surface.
Parameters:
iStartKnotValuesU
The start parameter of the surface along U.
iEndKnotValuesU
The end parameter of the surface along U.
iStartKnotValuesV
The start parameter of the surface along V.
iEndKnotValuesV
The end parameter of the surface along V.
Returns:
The information value.
Info_KnotValueOnAKnot
The input knot value is corresponding to an existing knot.
Error_KnotValueOutLimits
value is lower than first knot value or greater than the last knot value.
Use include to see all the information values.
o Check
public virtual Check()
Checks the current surface.
Returns:
The information value.
Legal values:
Info_OK
No info. It is OK.
Info_InternalContinuity
The internal continuity must be greater or equal to C2.
Info_ConfusedKnots
Two knots are coincident.
Use include to see all the information values.
o ExchangeUV
public virtual ExchangeUV()
Reverses U and V along the surface.
Returns:
The information value.
Legal values:
Info_OK
No info. It is OK.
Use include to see all the information values.
o GetDeformation
public virtual GetDeformation( oDeformation,
oParamValueU,
oParamValueV)
Computes an estimation of the deformation value.
Parameters:
oDeformation
The deformation is the max distance between the input surface and current surface. It can be called several times and before
.
oParamValueU
The parameter value along U where the maximum deformation is computed.
oParamValueV
The parameter value along V where the maximum deformation is computed.
Returns:
The information value.
Legal values:
Info_OK
No info. It is OK.
Use include to see all the information values.
o GetDegrees
public virtual GetDegrees( oDegreeU,
oDegreeV)
Retrieves the surface degree.
Parameters:
oDegreeU
The degree along U.
oDegreeV
The degree along V.
Returns:
The information value.
Legal values:
Info_OK
No info. It is OK.
Use include for the list of information values.
o GetInfo
public virtual GetInfo()
Retrieves the CATNurbsToolsInfo.
Returns:
The information value.
Legal values:
Info_OK
No info. It is OK.
Use include to see all information values.
o GetNumberOfControlPoints
public virtual GetNumberOfControlPoints( oNumberOfControlPointsU,
oNumberOfControlPointsV)
Retrieves the number of control points of the Nurbs surface.
Parameters:
oNumberOfControlPointsU
The number of control points along U.
oNumberOfControlPointsV
The number of control points along V.
Returns:
The information value.
Legal values:
Info_OK
No info. It is OK.
Use include to see all the information values.
o GetNumberOfKnots
public virtual GetNumberOfKnots( oNumberOfKnotsU,
oNumberOfKnotsV)
Retrieves the number of knot values of the Nurbs surface.
Parameters:
oNumberOfKnotsU
The number of distinct knot values along U.
oNumberOfKnotsV
The number of distinct knot values along V.
Returns:
The information value.
Legal values:
Info_OK
No info. It is OK.
Use include to see all the information values.
o GetResult
public virtual GetResult()
Returns the new surface computed by this operator.
Returns:
The pointer to the new surface. Pointer is 0 if an error has occurred (use for more information).
o ImposeParametrizations
public virtual ImposeParametrizations( iSurface,
const iLeftContinuityU= 0,
const iRightContinuityU= 0,
const iLeftContinuityV= 0,
const iRightContinuityV= 0)
Imposes the parameterization of another surface This method deforms the surface. Use to compute this deformation.
Parameters:
iSurface
The surface whose parametrization is to be kept.
iLeftContinuityU
The left continuity along U.
iRightContinuityU
The right continuity along U.
iLeftContinuityV
The left continuity along V.
iRightContinuityV
The right continuity along V.
Legal values:
0
C0 continuity (Default value).
1
C1 continuity.
2
C2 continuity.
Returns:
The information value.
Legal values:
Info_OK
No info. It is OK.
Error_InputPtrNull
Input pointer of Surface is null
Error_InputNotNurbs
Input Surface is not a Nurbs
Error_InvalidContinuity
The input continuity is lower than 0 or greatest than 2
Error_UncompContinuities
2 + startcontinuity + endcontinuity must be lower or equal nb of control points.
Use include to see all the information values.
o Run
public virtual Run()
Runs this operator.
Returns:
The information value.
Legal values:
0
It is OK.
1
Error.
100
Fatal Error.
If an error has occurred, use for more information.
o SetDegrees
public virtual SetDegrees( const iDegreeU,
const iDegreeV,
const iLeftContinuityU= 0,
const iRightContinuityU= 0,
const iLeftContinuityV= 0,
const iRightContinuityV= 0)
Modifies the degree of the surface.
Parameters:
iDegreeU
The new degree along U.
iDegreeV
The new degree along V.
iLeftContinuityU
The left continuity along U.
iRightContinuityU
The right continuity along U.
iLeftContinuityV
The left continuity along V.
iRightContinuityV
The right continuity along V.
Legal values:
0
C0 continuity (default value).
1
C1 continuity.
2
C2 continuity.
Returns:
The information value.
Legal values:
Info_OK
No info. It is OK.
Error_InvalidDegree
The input degree is lower than 3 (1 in a single-arc case) or greater than the MaxDegree (11)
Error_InvalidContinuity
The input continuity is lower than 0 or greater than 2.
Error_UncompContinuities
2 + startcontinuity + endcontinuity must be lower or equal to the number of control points.
Use include to see all the information values.
o UActiveSplit
public virtual UActiveSplit( const iStartKnotValues,
const iEndKnotValues)
Splits the surface along U.
Parameters:
iStartKnotValues
The start parameter of the surface.
iEndKnotValues
The end parameter of the surface
Returns:
The information value.
Info_KnotValueOnAKnot
The input knot value is corresponding to an existing knot.
Error_KnotValueOutLimits
value is lower than first knot value or greater than the last knot value
Use include to see all the information values.
o UChangeKnotVector
public virtual UChangeKnotVector( const iNewKnotVector,
const iLeftContinuity= 0,
const iRightContinuity= 0)
Modifies the knot vector along U. This method deform the Surface. Use to compute this deformation
Parameters:
iNewKnotVector
The Surface to keep the parametrization.
iLeftContinuity
The left continuity.
iRightContinuity
The right continuity.
Legal values:
0
C0 continuity (Default value).
1
C1 continuity.
2
C2 continuity.
Returns:
The information value.
Legal values:
Info_OK
No info. It is OK.
Error_InputPtrNull
Input pointer of New Knot Vector is null
Error_InvalidContinuity
The input continuity is lower than 0 or greatest than 2
Error_UncompContinuities
2 + startcontinuity + endcontinuity must be lower or equal nb of control points.
Use include to see all the information values.
o UImposeParametrization
public virtual UImposeParametrization( iCurve,
const iLeftContinuity= 0,
const iRightContinuity= 0)
Imposes the parameterization of a surface along U. This method deforms the surface. Use to compute this deformation.
Parameters:
iSurface
The surface whose parameterization is to be kept.
iLeftContinuity
The left continuity.
iRightContinuity
The right continuity.
Legal values:
0
C0 continuity (default value).
1
C1 continuity.
2
C2 continuity.
Returns:
The information value.
Legal values:
Info_OK
No info. It is OK.
Error_InputPtrNull
Surface input pointer is null.
Error_InputNotNurbs
Input surface is not a Nurbs.
Error_InvalidContinuity
The input continuity is lower than 0 or greater than 2.
Error_UncompContinuities
2 + startcontinuity + endcontinuity must be lower or equal to the number of control points.
Use include to see all the information values.
o UInvert
public virtual UInvert()
Inverts the surface along U.
Returns:
The information value.
Legal values:
Info_OK
No info. It is OK.
Use include to see all the information values.
o UKnotInsertion
public virtual UKnotInsertion( const iKnotValue,
const iMultiplicity= 0)
Inserts a knot along U.
Parameters:
iKnotValue
The parameter value of the new knot.
iMultiplicity
The multiplicity value of the new knot.
Returns:
The information value.
Legal values:
Info_OK
No info. It is OK.
Error_InvalidDegree
The input degree is lower than 3 (1 in a single-arc case) or greater than the maxDegree (11).
Error_KnotValueOnAKnot
The input knot value is corresponding to an existing knot.
Error_KnotValueOutLimits
Input value is lower than first knot value or greater than the last knot value.
Error_InvalidMultiplicity
The input multiplicity is lower than 1 or greater than Degree-2.
Use include to see all the information values.
o UKnotRankToKnotValue
public virtual UKnotRankToKnotValue( const iKnotRank,
oKnotValue)
Retrieves a knot value along U from its rank.
Parameters:
iKnotRank
The rank of the knot. The rank starts from 1.
oKnotValue
The parameter value of the knot.
Returns:
The information value.
Legal values:
Info_OK
No info. It is OK.
Error_KnotRankOutLimits
The input rank is lower than 1 or greater than the number of knots.
Use include to see all the information values.
o UKnotRemoval
public virtual UKnotRemoval( const iKnotRank)
Removes a knot along U. This method deforms the surface. Use to compute this deformation.
Parameters:
iKnotRank
The rank of the knot to be removed. The rank starts from 1.
Returns:
The information value.
Legal values:
Info_OK
No info. It is OK.
Error_KnotRankOutLimits
The input rank is lower than 1 or greater than the number of knots.
Error_ExtremityKnot
An extremity knot can not be removed.
Use include to see all the information values.
o UKnotReplace
public virtual UKnotReplace( const iKnotRank,
const iKnotNewValue,
const iLeftContinuity= 0,
const iRightContinuity= 0)
Replaces a knot along U. This method deforms the surface. Use to compute this deformation.
Parameters:
iKnotRank
The rank of the knot to be replaced. The rank starts from 1.
iKnotNewValue
The new parameter value of the knot.
Returns:
The information value.
Legal values:
Info_OK
No info. It is OK.
Error_KnotRankOutLimits
The input rank is lower than 1 or greater than the number of knots
Error_ExtremityKnot
An extremity knot can not be modified.
Error_KnotValueOnAKnot
The new knot value is corresponding to an existing knot.
Error_KnotValueOutLimits
The new value is lower than the first knot value or greater than the last knot value.
Error_InvalidContinuity
The input continuity is lower than 0 or greater than 2.
Error_UncompContinuities
2 + startcontinuity + endcontinuity must be lower or equal to the number of control points.
Use include to see all the information values.
o UKnotValueToKnotRank
public virtual UKnotValueToKnotRank( const iKnotValue,
oKnotRank)
Retrieves the rank of a knot along U from its value. The parameter corresponds to a knot if the length between the input parameter and the knot value is lower than TolKnotConfusion.
Parameters:
iKnotValue
The parameter value of the knot.
oKnotRank
The rank of the knot. The rank starts from 1. If the parameter value does not correspond to a knot, iKnotRank = 0;
Returns:
The information value.
Legal values:
Info_OK
No info. It is OK.
Info_NotAKnot
The value is not corresponding to a knot
Info_KnotValueOnTwoKnots
The value is corresponding to two knots
Error_KnotValueOutLimits
Input value is lower than first knot value or greater than the last knot value.
Use include to see all the information values.
o UMultipleKnotInsertion
public virtual UMultipleKnotInsertion( const iNumberOfKnotsToInsert,
const iKnotValues,
const iMultiplicities= 0)
Inserts several knots along U.
Parameters:
iNumberOfKnotsToInsert
The number of knots to be inserted.
iKnotValues
The array of parameter values of the new knots.
iMultiplicities
The array of multiplicity values of the new knots.
Returns:
The information value.
Legal values:
Info_OK
No info. It is OK.
Error_KnotValueOnAKnot
The input knot value is corresponding to an existing knots.
Error_KnotValueOutLimits
Input value is lower than first knot value or greater than last knot value
Error_InvalidMultiplicity
The input multiplicity is lower than 1 or greater than Degree-2
Use include to see all the information values.
o USetDegree
public virtual USetDegree( const iDegreeU,
const iLeftContinuityU= 0,
const iRightContinuityU= 0)
Modifies the degree of the surface along U.
Parameters:
iDegree
The new degree of the surface.
iLeftContinuity
The left continuity.
iRightContinuity
The right continuity
Legal values:
0
C0 continuity (default value).
1
C1 continuity.
2
C2 continuity.
Returns:
The information value.
Legal values:
Info_OK
No info. It is OK.
Error_InvalidDegree
The input degree is lower than 3 (1 in single-arc case) or greater than the MaxDegree (11)
Error_InvalidContinuity
The input continuity is lower than 0 or greater than 2
Error_UncompContinuities
2 + startcontinuity + endcontinuity must be lower or equal to the number of control points.
Use include to see all information values.
o USetMultiplicity
public virtual USetMultiplicity( const iKnotRank,
const iMultiplicity)
Modifies the multiplicity of a knot along U. This method deforms the surface if the new multiplicity is lower than the previous multiplicity. Use to compute this deformation.
Parameters:
iKnotRank
The rank of the knot to be removed. The rank starts from 1.
iMultiplicity
The new multiplicity of the knot.
Returns:
The information value.
Legal values:
Info_OK
No info. It is OK.
Info_NoModification
No modification - new multiplicity is equal to previous multiplicity
Error_InvalidMultiplicity
The input multiplicity is lower than 1 or greater than degree-2
Error_KnotRankOutLimits
The input rank is lower than 1 or greater than number of knots
Error_ExtremityKnot
An extremity knot can not be modified.
Use include to see all the information values.
o VActiveSplit
public virtual VActiveSplit( const iStartKnotValues,
const iEndKnotValues)
Splits the surface along V.
Parameters:
iStartKnotValues
The start parameter of the surface.
iEndKnotValues
The end parameter of the surface
Returns:
The information value.
Info_KnotValueOnAKnot
The input knot value is corresponding to an existing knot.
Error_KnotValueOutLimits
value is lower than first knot value or greater than the last knot value
Use include to see all the information values.
o VChangeKnotVector
public virtual VChangeKnotVector( const iNewKnotVector,
const iLeftContinuity= 0,
const iRightContinuity= 0)
Modifies the knot vector along U. This method deform the Surface. Use to compute this deformation
Parameters:
iNewKnotVector
The surface to keep the parametrization.
iLeftContinuity
The left continuity.
iRightContinuity
The right continuity.
Legal values:
0
C0 continuity (Default value).
1
C1 continuity.
2
C2 continuity.
Returns:
The information value.
Legal values:
Info_OK
No info. It is OK.
Error_InputPtrNull
Input pointer of New Knot Vector is null
Error_InvalidContinuity
The input continuity is lower than 0 or greatest than 2
Error_UncompContinuities
2 + startcontinuity + endcontinuity must be lower or equal nb of control points.
Use include to see all the information values.
o VImposeParametrization
public virtual VImposeParametrization( iCurve,
const iLeftContinuity= 0,
const iRightContinuity= 0)
Imposes the parameterization of a surface along V. This method deforms the surface. Use to compute this deformation.
Parameters:
iSurface
The surface whose parameterization is to be kept.
iLeftContinuity
The left continuity.
iRightContinuity
The right continuity.
Legal values:
0
C0 continuity (default value).
1
C1 continuity.
2
C2 continuity.
Returns:
The information value.
Legal values:
Info_OK
No info. It is OK.
Error_InputPtrNull
Surface input pointer is null.
Error_InputNotNurbs
Input surface is not a Nurbs.
Error_InvalidContinuity
The input continuity is lower than 0 or greater than 2.
Error_UncompContinuities
2 + startcontinuity + endcontinuity must be lower or equal to the number of control points.
Use include to see all the information values.
o VInvert
public virtual VInvert()
Inverts the surface along V.
Returns:
The information value.
Legal values:
Info_OK
No info. It is OK.
Use include to see all the information values.
o VKnotInsertion
public virtual VKnotInsertion( const iKnotValue,
const iMultiplicity= 0)
Inserts a knot along V.
Parameters:
iKnotValue
The parameter value of the new knot.
iMultiplicity
The multiplicity value of the new knot.
Returns:
The information value.
Legal values:
Info_OK
No info. It is OK.
Error_InvalidDegree
The input degree is lower than 3 (1 in a single-arc case) or greater than the maxDegree (11).
Error_KnotValueOnAKnot
The input knot value is corresponding to an existing knot.
Error_KnotValueOutLimits
Input value is lower than first knot value or greater than the last knot value.
Error_InvalidMultiplicity
The input multiplicity is lower than 1 or greater than Degree-2.
Use include to see all the information values.
o VKnotRankToKnotValue
public virtual VKnotRankToKnotValue( const iKnotRank,
oKnotValue)
Retrieves a knot value along V from its rank.
Parameters:
iKnotRank
The rank of the knot. The rank starts from 1.
oKnotValue
The parameter value of the knot.
Returns:
The information value.
Legal values:
Info_OK
No info. It is OK.
Error_KnotRankOutLimits
The input rank is lower than 1 or greater than the number of knots.
Use include to see all the information values.
o VKnotRemoval
public virtual VKnotRemoval( const iKnotRank)
Removes a knot along V. This method deforms the surface. Use to compute this deformation.
Parameters:
iKnotRank
The rank of the knot to be removed. The rank starts from 1.
Returns:
The information value.
Legal values:
Info_OK
No info. It is OK.
Error_KnotRankOutLimits
The input rank is lower than 1 or greater than the number of knots.
Error_ExtremityKnot
An extremity knot can not be removed.
Use include to see all the information values.
o VKnotReplace
public virtual VKnotReplace( const iKnotRank,
const iKnotNewValue,
const iLeftContinuity= 0,
const iRightContinuity= 0)
Replaces a knot along V. This method deforms the surface. Use to compute this deformation.
Parameters:
iKnotRank
The rank of the knot to be replaced. The rank starts from 1.
iKnotNewValue
The new parameter value of the knot.
Returns:
The information value.
Legal values:
Info_OK
No info. It is OK.
Error_KnotRankOutLimits
The input rank is lower than 1 or greater than the number of knots
Error_ExtremityKnot
An extremity knot can not be modified.
Error_KnotValueOnAKnot
The new knot value is corresponding to an existent knot.
Error_KnotValueOutLimits
The new value is lower than the first knot value or greater than the last knot value.
Error_InvalidContinuity
The input continuity is lower than 0 or greater than 2.
Error_UncompContinuities
2 + startcontinuity + endcontinuity must be lower or equal to the number of control points.
Use include to see all the information values.
o VKnotValueToKnotRank
public virtual VKnotValueToKnotRank( const iKnotValue,
oKnotRank)
Retrieves the rank of a knot along V from its value. The parameter corresponds to a knot if the length between the input parameter and the knot value is lower than TolKnotConfusion.
Parameters:
iKnotValue
The parameter value of the knot.
oKnotRank
The rank of the knot. The rank starts from 1. If the parameter value does not correspond to a knot, iKnotRank = 0;
Returns:
The information value.
Legal values:
Info_OK
No info. It is OK.
Info_NotAKnot
The value is not corresponding to a knot
Info_KnotValueOnTwoKnots
The value is corresponding to two knots
Error_KnotValueOutLimits
Input value is lower than first knot value or greater than the last knot value.
Use include to see all the information values.
o VMultipleKnotInsertion
public virtual VMultipleKnotInsertion( const iNumberOfKnotsToInsert,
const iKnotValues,
const iMultiplicities= 0)
Inserts several knots along V.
Parameters:
iNumberOfKnotsToInsert
The number of knots to be inserted.
iKnotValues
The array of parameter values of the new knots.
iMultiplicities
The array of multiplicity values of the new knots.
Returns:
The information value.
Legal values:
Info_OK
No info. It is OK.
Error_KnotValueOnAKnot
The input knot value is corresponding to an existing knots.
Error_KnotValueOutLimits
Input value is lower than first knot value or greater than last knot value
Error_InvalidMultiplicity
The input multiplicity is lower than 1 or greater than Degree-2
Use include to see all the information values.
o VSetDegree
public virtual VSetDegree( const iDegreeV,
const iLeftContinuityV= 0,
const iRightContinuityV= 0)
Modifies the degree of the surface along V.
Parameters:
iDegree
The new degree of the surface.
iLeftContinuity
The left continuity.
iRightContinuity
The right continuity
Legal values:
0
C0 continuity (default value).
1
C1 continuity.
2
C2 continuity.
Returns:
The information value.
Legal values:
Info_OK
No info. It is OK.
Error_InvalidDegree
The input degree is lower than 3 (1 in single-arc case) or greater than the MaxDegree (11)
Error_InvalidContinuity
The input continuity is lower than 0 or greater than 2
Error_UncompContinuities
2 + startcontinuity + endcontinuity must be lower or equal to the number of control points.
Use include to see all the information values.
o VSetMultiplicity
public virtual VSetMultiplicity( const iKnotRank,
const iMultiplicity)
Modifies the multiplicity of a knot along V. This method deforms the surface if the new multiplicity is lower than the previous multiplicity. Use to compute this deformation.
Parameters:
iKnotRank
The rank of the knot to be removed. The rank starts from 1.
iMultiplicity
The new multiplicity of the knot.
Returns:
The information value.
Legal values:
Info_OK
No info. It is OK.
Info_NoModification
No modification - new multiplicity is equal to previous multiplicity
Error_InvalidMultiplicity
The input multiplicity is lower than 1 or greater than degree-2
Error_KnotRankOutLimits
The input rank is lower than 1 or greater than number of knots
Error_ExtremityKnot
An extremity knot cannot be modified.
Use include to see all the information values.

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

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