GeometricObjects Interface CATCurve
Usage: an implementation of this interface is supplied and you must use it as is. You should not reimplement it.
interface CATCurve
Interface representing the base class for all curves.
Each point of a curve is identified by a global parameter
CATCrvParam. A curve portion is defined by CATCrvLimits.
Curve parameterization
The geometric modeler optimal behavior requires
arc length parameterized
(or nearly arc length parameterized) curves. Standard operators generate
arc length parameterized curves and complete properly when their input data
are arc length parameterized curves. Non-standard curves (foreign curves)
should be created as arc length parameterized curves.
Retrieving the CATCrvParam of a 3D point located on a curve
To retrieve the curve parameter associated with a
3D point, use a geometric projection operator.
Retrieving the point and derivatives from a CATCrvParam
Multiple evaluations can be performed in one way by defining
a CATCrvCommand object, evaluating through the Eval
method and retrieving the results with a CATCrvEvalResult object.
Example:
CATCrvEvalLocal EvalResult;
CATCrvParam Parameter ;
Curve->GetStartLimit(Parameter) ;
Curve->Eval(Parameter, CATCrvEvalCommand::EvalPoint , EvalResult) ; // Evaluate point
Curve->Eval(Parameter, CATCrvEvalCommand::EvalFirstDerivative , EvalResult) ; // Evaluate first derivative
Curve->Eval(Parameter, CATCrvEvalCommand::EvalSecondDerivative , EvalResult) ; // Evaluate second derivative
Curve->Eval(Parameter, CATCrvEvalCommand::EvalThirdDerivative , EvalResult) ; // Evaluate third derivative
Curve->Eval(Parameter, CATCrvEvalCommand::EvalUpToFirstDerivative , EvalResult) ; // Evaluate all derivatives up to first derivative
Curve->Eval(Parameter, CATCrvEvalCommand::EvalUpToSecondDerivative , EvalResult) ; // Evaluate all derivatives up to second derivative
Curve->Eval(Parameter, CATCrvEvalCommand::EvalUpToThirdDerivative , EvalResult) ; // Evaluate all derivatives up to third derivative
The first and last arc number can be retrieved with the GetMaxLimits method.
Method Index
- o
CreateParam(double&)
- Sets a global parameter on this CATCurve.
- o
CreateParam(double,CATCrvParam&)
- Sets a global parameter on this CATCurve.
- o
CreateParam(double&,CATLONG32&)
- Sets a global parameter on a CATCurve from a local parameter and
an arc number.
- o
CreateParam(double,CATLONG32,CATCrvParam&)
- Sets a global parameter on a CATCurve from a local parameter and
an arc number.
- o
Eval(CATCrvParam&,CATCrvEvalCommand&,CATCrvEvalLocal&)
- Evaluates this CATCurve and its derivatives associated with this CATCrvParam.
- o
Eval(CATCrvLimits&,CATLONG32,CATCrvEvalCommand&,CATCrvEvalResult&)
- Evaluates this CATCurve and its derivatives inside a domain.
- o
Eval(CATCrvParam&,CATCrvEvalCommand&,CATMathPoint*,CATMathVector*,CATMathVector*,CATMathVector*)
- Evaluates this CATCurve and its derivatives associated with this CATCrvParam.
- o
EvalFirstDeriv(CATCrvParam&)
- Evaluates this CATCurve by computing a first derivative from a CATCrvParam.
- o
EvalPoint(CATCrvParam&)
- Evaluates this CATCurve by computing a CATMathPoint from a CATCrvParam.
- o
EvalSecondDeriv(CATCrvParam&)
- Evaluates this CATCurve by computing a second derivative from a CATCrvParam.
- o
EvalThirdDeriv(CATCrvParam&)
- Evaluates this CATCurve by computing a third derivative from a CATCrvParam.
- o
GetBox(CATCrvLimits&,CATMathBox&)
- Computes the bounding box of this CATCurve trimmed by given Limits.
- o
GetEndLimit()
- Returns the high current limitation of this CATCurve.
- o
GetEndLimit(CATCrvParam&)
- Returns the high current limitation of this CATCurve.
- o
GetEquation(CATLONG32,CATMathFunctionX*&,CATMathFunctionX*&,CATMathFunctionX*&)
- Retrieves the mathematical equation associated with an arc of
this CATCurve.
- o
GetGeometricRep(CATCrvLimits&,short&)
- Returns a pointer to the geometric representation of this CATCurve.
- o
GetGlobalEquation(CATMathFunctionX*&,CATMathFunctionX*&,CATMathFunctionX*&)
- Retrieves the mathematical equation associated with
this CATCurve.
- o
GetInternalBoundingBox(CATLONG32,CATMathBox&)
- Retrieves the bounding box including an arc of this CATCurve.
- o
GetInternalLimits(CATLONG32,CATCrvLimits&)
- Returns the limitations of an arc of this CATCurve.
- o
GetInternalMaxBoundingBox(CATLONG32,CATMathBox&)
- Retrieves the maximum bounding box including an arc of this CATCurve.
- o
GetInternalMaxLimits(CATLONG32,CATCrvLimits&)
- Returns the limitations of an arc of this CATCurve.
- o
GetKnotVector()
- Returns the knot vector associated with this CATCurve.
- o
GetLimits()
- Returns the limitations of this CATCurve.
- o
GetLimits(CATCrvLimits&)
- Returns the current limits of this CATCurve.
- o
GetMathCurve()
- Returns a pointer to the mathematical representation of this CATCurve.
- o
GetMaxLimits()
- Returns the maximum limitations of this CATCurve.
- o
GetMaxLimits(CATCrvLimits&)
- Returns the maximum limitations of this CATCurve.
- o
GetParam(CATMathPoint&,CATCrvParam&)
- Retrieves the CATCrvParam on this CATCurve corresponding to a given CATMathPoint.
- o
GetParam(CATMathPoint&,CATCrvParam&,CATCrvLimits&)
- Retrieves the CATCrvParam on this CATCurve corresponding to a CATMathPoint
inside limitations.
- o
GetStartLimit()
- Returns the low current limitation of this CATCurve.
- o
GetStartLimit(CATCrvParam&)
- Returns the low current limitation of this CATCurve.
- o
HasMathCurve()
- Tests whether this CATCurve has a mathematical representation.
- o
IsClosed()
- Tests whether this CATCurve is periodic.
- o
IsConfused(CATMathTransformation&,CATCurve*,CATMathTransformation1D*)
- Tests whether this CATCurve is confused with another curve.
- o
IsContaining(CATCurve*)
- Tests whether this CATCurve is containing another one.
- o
IsInvariant(CATMathTransformation&,CATMathTransformation1D*)
- Tests whether this CATCurve is invariant.
- o
Lock()
- Locks the equations of this CATCurve before read them.
- o
SetLimits(CATCrvLimits&)
- Modifies the limitations of this CATCurve.
- o
Unlock()
- Unlocks the equations of this CATCurve after read them.
Enumerated Type Index
- o
CATSolutionDiagnostic
- The diagnosis of evaluation.
Methods
o CreateParam
public virtual CreateParam( | const | iGlobalParam) |
-
Sets a global parameter on this CATCurve.
This API can lead to bad performances when it is used intensively.
The CATCurve::CreateParam signature which returns a void (see above)
should be preferred over the present signature.
- Parameters:
-
- iGlobalParam
- The value of the global parameter.
- Returns:
- ioParam The corresponding parameter on this, valuated with iGlobalParam.
o CreateParam
public virtual CreateParam( | const | iGlobalParam, |
| | ioParam) |
-
Sets a global parameter on this CATCurve.
- Parameters:
-
- iGlobalParam
- The value of the global parameter.
- ioParam
- The corresponding parameter on this, valuated with iGlobalParam.
o CreateParam
public virtual CreateParam( | const | iLocal, |
| const | iArc) |
-
Sets a global parameter on a CATCurve from a local parameter and
an arc number. This API can lead to bad performances when it is used intensively.
The CATCurve::CreateParam signature which returns a void (see above)
should be preferred over the present signature.
- Parameters:
-
- iLocal
- The value of the local parameter.
- iArc
- The arc number.
- Returns:
- The corresponding parameter on this, valuated with iGlobalParam.
o CreateParam
public virtual CreateParam( | const | iLocal, |
| const | iArc, |
| | ioParam) |
-
Sets a global parameter on a CATCurve from a local parameter and
an arc number.
- Parameters:
-
- iLocal
- The value of the local parameter.
- iArc
- The arc number.
- ioParam
- The corresponding parameter on this, valuated with iGlobalParam.
o Eval
public virtual Eval( | const | iPoint, |
| const | iCommand, |
| | ioResult) |
-
Evaluates this CATCurve and its derivatives associated with this CATCrvParam.
- Parameters:
-
- iPoint
- The parameter of the point to evaluate.
- iCommand
- The type of evaluation.
- ioResult.
- The object containing the results.
o Eval
public virtual Eval( | const | iDomainToEvaluate, |
| const | iNbOfPoints, |
| const | iCommand, |
| | ioResult) |
-
Evaluates this CATCurve and its derivatives inside a domain.
- Parameters:
-
- iDomainToEvaluate
- The limits inside which the domain is to be evaluated.
- iNbOfPoints
- The number of equally spaced points of iDomainToEvaluate.
- iCommand
- The type of evaluation.
- ioResult.
- The object containing the results.
o Eval
public virtual Eval( | const | iParam, |
| const | iCommand, |
| | iPoint, |
| | iFirstDeriv | = NULL, |
| | iSecondDeriv | = NULL, |
| | iThirdDeriv | = NULL ) |
-
Evaluates this CATCurve and its derivatives associated with this CATCrvParam.
- Parameters:
-
- iParam
- The parameter of the point to evaluate.
- iCommand
- The type of evaluation. The corresponding output pointer must be allocated.
- iPoint
- A pointer to the resulting 3D point.
- iFirstDeriv
- A pointer to the resulting first derivative.
- iSecondDeriv
- A pointer to the resulting second derivative.
- iThirdDeriv
- A pointer to the resulting third derivative.
o EvalFirstDeriv
public virtual EvalFirstDeriv( | const | iParam) |
-
Evaluates this CATCurve by computing a first derivative from a CATCrvParam.
The CATCurve::Eval signature with the CATCrvEvalCommand::EvalFirstDeriv argument
should be preferred over CATCurve::EvalFirstDeriv as CATCurve::EvalFirstDeriv
can lead to bad performances when it is used intensively.
- Parameters:
-
- iParam
- The parameter of the vector to evaluate.
- Returns:
- CATMathVector The CATMathVector which has iParam as its parameter.
o EvalPoint
public virtual EvalPoint( | const | iParam) |
-
Evaluates this CATCurve by computing a CATMathPoint from a CATCrvParam.
The CATCurve::Eval signature with the CATCrvEvalCommand::EvalPoint argument
should be preferred over CATCurve::EvalPoint as CATCurve::EvalPoint
can lead to bad performances when it is used intensively.
- Parameters:
-
- iParam
- The parameter of the point to evaluate.
- Returns:
- CATMathPoint The CATMathPoint which has iParam as its parameter.
o EvalSecondDeriv
public virtual EvalSecondDeriv( | const | iParam) |
-
Evaluates this CATCurve by computing a second derivative from a CATCrvParam.
The CATCurve::Eval signature with the CATCrvEvalCommand::EvalSecondDeriv argument
should be preferred over CATCurve::EvalSecondDeriv as CATCurve::EvalSecondDeriv
can lead to bad performances when it is used intensively.
- Parameters:
-
- iParam
- The parameter of the vector to evaluate.
- Returns:
- CATMathVector The CATMathVector which has iParam as its parameter.
o EvalThirdDeriv
public virtual EvalThirdDeriv( | const | iParam) |
-
Evaluates this CATCurve by computing a third derivative from a CATCrvParam.
The CATCurve::Eval signature with the CATCrvEvalCommand::EvalThirdDeriv argument
should be preferred over CATCurve::EvalThirdDeriv as CATCurve::EvalThirdDeriv
can lead to bad performances when it is used intensively.
- Parameters:
-
- iParam
- The parameter of the vector to evaluate.
- Returns:
- CATMathVector The CATMathVector which has iParam as its parameter.
o GetBox
public virtual GetBox( | const | iLimits, |
| | ioBox) |
-
Computes the bounding box of this CATCurve trimmed by given Limits.
This does not take into account the current limitations of the
curve.
- Parameters:
-
- iLimits
- The domain to take into account.
- ioBox.
- The 3D box.
o GetEndLimit
public virtual GetEndLimit( | ) |
-
Returns the high current limitation of this CATCurve.
The CATCurve::GetEndLimit signature which returns a void should be preferred
over the present API.
- Returns:
- The end limitation.
o GetEndLimit
public virtual GetEndLimit( | | ioEndParam) |
-
Returns the high current limitation of this CATCurve.
- Parameters:
-
- ioEndParam
- The end limitation.
o GetEquation
public virtual GetEquation( | const | iArc, |
| const | oFx, |
| const | oFy, |
| const | oFz) |
-
Retrieves the mathematical equation associated with an arc of
this CATCurve.
Before retrieving the equations, you must Lock the curve.
You can then obtained the equations. When you have finished, you Unlock the curve.
The equations are then automatically deleted.
- Parameters:
-
- iArc
- The arc number.
- oFx
- A pointer to the equation of the first coordinate X=oFx(w).
- oFy
- A pointer to the equation of the second coordinate Y=oFy(w).
- oFz
- A pointer to the equation of the third coordinate Z=oFy(w).
o GetGeometricRep
public virtual GetGeometricRep( | | ioRepLimits, |
| | ioRepOrientation) |
-
Returns a pointer to the geometric representation of this CATCurve.
- Parameters:
-
- ioRepLimits
- The limitations of the returned curve.
- ioRepOrientation
- The relative orientation of the returned curve.
Legal values::
- 1
- If the returned curve has the same orientation
- -1
- If the returned curve has the opposite orientation.
- Returns:
- The canonical underlying geometry.
This is usefull for CATEdgeCurves suc as CATSimCurves in order to access
the underlying canonical geometry (such as CATCircle, CATLine,...).
Returns this otherwise.
o GetGlobalEquation
public virtual GetGlobalEquation( | const | oFx, |
| const | oFy, |
| const | oFz) |
-
Retrieves the mathematical equation associated with
this CATCurve.
Before retrieving the equations, you must Lock the curve.
You can then obtained the equations. When you have finished, you Unlock the curve.
The equations are then automatically deleted.
- Parameters:
-
- oFx
- A pointer to the equation of the first coordinate X=oFx(w).
- oFy
- A pointer to the equation of the second coordinate Y=oFy(w).
- oFz
- A pointer to the equation of the third coordinate Z=oFy(w).
o GetInternalBoundingBox
public virtual GetInternalBoundingBox( | const | iArc, |
| | ioBox) |
-
Retrieves the bounding box including an arc of this CATCurve.
This takes into account the current limitations of the
curve.
- Parameters:
-
- iArc
- The arc number.
- ioBox.
- The 3D box.
o GetInternalLimits
public virtual GetInternalLimits( | const | iArc, |
| | ioInternalMaxLimits) |
-
Returns the limitations of an arc of this CATCurve.
This takes into account the current limitations of the
curve.
- Parameters:
-
- iArc
- The arc number.
- ioInternalMaxLimits
- The corresponding limitations.
o GetInternalMaxBoundingBox
public virtual GetInternalMaxBoundingBox( | const | iArc, |
| | ioBox) |
-
Retrieves the maximum bounding box including an arc of this CATCurve.
This does not take into account the current limitations of the curve.
- Parameters:
-
- iArc
- The arc number.
- ioBox.
- The 3D box.
o GetInternalMaxLimits
public virtual GetInternalMaxLimits( | const | iArc, |
| | ioInternalMaxLimits) |
-
Returns the limitations of an arc of this CATCurve.
This does not take into account the current limitations of the
curve.
- Parameters:
-
- iArc
- The arc number.
- ioInternalMaxLimits
- The corresponding limitations.
o GetKnotVector
public virtual GetKnotVector( | ) |
-
Returns the knot vector associated with this CATCurve.
- Returns:
- The knot vector.
o GetLimits
public virtual GetLimits( | ) |
-
Returns the limitations of this CATCurve.
The CATCurve::GetLimits signature which returns a void should be preferred
over the present API.
- Returns:
- The current limitations.
o GetLimits
public virtual GetLimits( | | ioCurrentLimits) |
-
Returns the current limits of this CATCurve.
- Parameters:
-
- ioCurrentLimits
- The current limits.
o GetMathCurve
public virtual GetMathCurve( | ) |
-
Returns a pointer to the mathematical representation of this CATCurve.
The life cycle of the returned CATMathCurve must be managed by the calling application.
CATMathCurve * pMathCurve = hCurve->GetMathCurve();
if (pMathCurve)
{
...
delete pMathCurve; pMathCurve=NULL;
}
- Returns:
- The mathematical curve associated with this. If the
mathematical representation does not exist, the method returns a
NULL pointer.
o GetMaxLimits
public virtual GetMaxLimits( | ) |
-
Returns the maximum limitations of this CATCurve.
The CATCurve::GetMaxLimits signature which returns a void should be preferred
over the present API.
- Returns:
- The current limitations.
o GetMaxLimits
public virtual GetMaxLimits( | | ioMaxLimits) |
-
Returns the maximum limitations of this CATCurve.
This does not take into account the current limitations of the
curve. This maximum
limits can be the creation limits or the limits that are obtained by
extrapolation, depending on the types of geometric objects.
- Parameters:
-
- ioMaxLimits
- The maximum limits.
o GetParam
public virtual GetParam( | const | iPoint, |
| | ioParam) |
-
Retrieves the CATCrvParam on this CATCurve corresponding to a given CATMathPoint.
This transformation is only available
on canonical objects such as planes, lines, conics.
- Parameters:
-
- iPoint
- The CATMathPoint which coordinates are to be transformed as CATCrvParam.
- ioParam
- The first corresponding CATCrvParam on the curve.
- Returns:
- The diagnosis of the number of parameters that can be evaluated on this point.
o GetParam
public virtual GetParam( | const | iPoint, |
| | ioParam, |
| const | iInside) |
-
Retrieves the CATCrvParam on this CATCurve corresponding to a CATMathPoint
inside limitations.
This transformation is only available
on canonical objects such as lines and conics.
- Parameters:
-
- iPoint
- The CATMathPoint whose coordinates are to be transformed as a CATCrvParam.
- ioParam
- The first corresponding CATCrvParam on the curve.
- iInside
- The CATCrvLimits to take into account for trimming the CATCurve.
- Returns:
- The diagnosis of the number of parameters that can be evaluated on this point.
o GetStartLimit
public virtual GetStartLimit( | ) |
-
Returns the low current limitation of this CATCurve.
The CATCurve::GetStartLimit signature which returns a void should be preferred
over the present API.
- Returns:
- The start limitation.
o GetStartLimit
public virtual GetStartLimit( | | ioStartParam) |
-
Returns the low current limitation of this CATCurve.
- Parameters:
-
- ioStartParam
- The first limitation.
o HasMathCurve
public virtual HasMathCurve( | ) |
-
Tests whether this CATCurve has a mathematical representation.
- Returns:
- The result of the test.
Legal values::
- 1
- If this has a mathematical representation.
- 0
- Otherwise.
o IsClosed
public virtual IsClosed( | ) |
-
Tests whether this CATCurve is periodic.
This method does not take into account the current limitations of
the curve.
- Returns:
- The result of the test.
Legal values::
- 0
- If the CATCurve is not periodic.
- 1
- If the CATCurve is periodic.
o IsConfused
public virtual IsConfused( | const | iTransfo, |
| const | iTCurve, |
| | oTransfo1D | = NULL) |
-
Tests whether this CATCurve is confused with another curve.
This method does not take into account the current limitations of
the curves.
- Parameters:
-
- oTransfo1D
- The 1D-transformation defining the change of parametrization between the transformation of
this and iTCurve. If NULL, this argument is not set.
- Returns:
- The result of the test.
Legal values::
- 1
- If the transformation of this is geometrically the same as iTCurve.
- 0
- Otherwise.
o IsContaining
public virtual IsContaining( | const | iOther) |
-
Tests whether this CATCurve is containing another one.
- Parameters:
-
- iOther
- The oother curve.
- Returns:
- The diagnosis of the test.
- FALSE
- if the CATCurve does not contain iOther
- TRUE
- if the CATCurve contains iOther
o IsInvariant
public virtual IsInvariant( | const | iTransfo, |
| | oTransfo1D | = NULL) |
-
Tests whether this CATCurve is invariant.
This method does not take into account the current limitations of
the curve.
- Parameters:
-
- oTransfo1D
- The 1D-transformation defining the change of parametrization between this and the transformation of
this. If NULL, this argument is not set.
- Returns:
- The result of the test.
Legal values::
- 1
- If the transformation of this is geometrically the same as this.
- 0
- Otherwise.
o Lock
-
Locks the equations of this CATCurve before read them.
o SetLimits
public virtual SetLimits( | const | iLimits) |
-
Modifies the limitations of this CATCurve.
- Parameters:
-
- iLimits
- The new current limitations.
o Unlock
-
Unlocks the equations of this CATCurve after read them.
Enumerated Types
o CATSolutionDiagnostic
-
enum CATSolutionDiagnostic {
NoSolution,
SingleSolution,
MultipleSolution,
InfiniteSolution
}
The diagnosis of evaluation.
- Parameters:
-
- NoSolution
- No parameter corresponds to this point
- SingleSolutionOnly
- one parameter corresponds to this point.
- MultipleSolutionSeveral
- parameters correspond to this point.
- InfiniteSolution
- Infinitely many parameters correspond
This object is included in the file: CATCurve.h
If needed, your Imakefile.mk should include the module: CATGMGeometricInterfaces
Copyright © 1999-2014, Dassault Systèmes. All rights reserved.