All Frameworks Class Hierarchy This Framework Previous Next Indexes
GeometricObjects Interface CATCurve
System.IUnknown
|
+---System.IDispatch
|
+---System.CATBaseUnknown
|
+---GeometricObjects.CATICGMUnknown
|
+---GeometricObjects.CATICGMObject
|
+---GeometricObjects.CATGeometry
|
+---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 mono-parametrized
geometric elements.
Each CATCurve has a defined parametrization,
which makes it possible to identify a point by
a global parameter value CATCrvParam or to handle a part of a curve
with a CATCrvLimits. No assumption can be made on a curve
parameterization. To retrieve the curve parameter associated with a
3D point, use a geometric projection operator.
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&,CATLONG32&)
- Sets a global parameter on a CATCurve from a local parameter and
an arc number.
- o
CreateParam(double,CATCrvParam&)
- Sets a global parameter on this CATCurve.
- o
CreateParam(double,CATLONG32,CATCrvParam&)
- Sets a global parameter on a CATCurve from a local parameter and
an arc number.
- o
Eval(CATCrvLimits&,CATLONG32,CATCrvEvalCommand&,CATCrvEvalResult&)
- Evaluates this CATCurve and its derivatives inside a domain.
- o
Eval(CATCrvParam&,CATCrvEvalCommand&,CATCrvEvalLocal&)
- Evaluates this CATCurve and its derivatives associated with this CATCrvParam.
- 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 limitations 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 CATCrvParam CreateParam( | const double& | iGlobalParam) const =0 |
-
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
-
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 void CreateParam( | const double | iGlobalParam, |
| CATCrvParam& | ioParam) const =0 |
-
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 void CreateParam( | const double | iLocal, |
| const CATLONG32 | iArc, |
| CATCrvParam& | ioParam) const =0 |
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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 void GetEndLimit( | CATCrvParam& | ioEndParam) const =0 |
-
Returns the high current limitation of this CATCurve.
- Parameters:
-
- ioEndParam
- The end limitation.
o GetEquation
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
Returns the knot vector associated with this CATCurve.
- Returns:
- The knot vector.
o 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 void GetLimits( | CATCrvLimits& | ioCurrentLimits) const =0 |
-
Returns the limitations of this CATCurve.
- Parameters:
-
- ioCurrentLimits
- The current limitations.
o 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
-
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 void GetMaxLimits( | CATCrvLimits& | ioMaxLimits) const = 0 |
-
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
-
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
-
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
-
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 void GetStartLimit( | CATCrvParam& | ioStartParam) const =0 |
-
Returns the low current limitation of this CATCurve.
- Parameters:
-
- ioStartParam
- The first limitation.
o 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
-
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
-
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
-
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
-
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
public virtual void Lock( | )= 0 |
-
Locks the equations of this CATCurve before read them.
o SetLimits
-
Modifies the limitations of this CATCurve.
- Parameters:
-
- iLimits
- The new current limitations.
o Unlock
public virtual void Unlock( | )= 0 |
-
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: CATGeometricObjects