Mathematics CATMathCircle

Usage: you must use this class as is. You should never derive it.


public class CATMathCircle

Class representing a 3D mathematical circle.

A CATMathCircle has a _Center (CATMathPoint), a _Radius, and two orthonormalized vectors defining the plane where it is lying on. It can be defined with a _Scale and a _Shift, such that its parametric equation is:
Circle(Param)=_Center+ _Radius*[cos(_Scale*Param+_Shift)*_iFirstAxis + sin(_Scale*Param+_Shift)*_SecondAxis]. where Param is the circle parameter.


Constructor and Destructor Index


o CATMathCircle()
Constructs a CATMathCircle of radius 1 of center (0,0,0) lying on the plane of directions (1,0,0) and (0,1,0).
o CATMathCircle(CATMathCircle&)
Copy constructor.
o CATMathCircle(CATMathPoint&,CATMathVector&,CATMathVector&,double,double,double)

Method Index


o ConvertParamToAngle(double)
Converts a parameter on this CATMathCircle to an angle in radians.
o DistanceMin(CATMathPoint&,double,double,double&)
Computes the distance between a CATMathPoint and this CATMathCircle.
o EvalPoint(double,CATMathPoint&)
Returns the point of this CATMathCircle corresponding to a given angle in radians.
o GetCenter(CATMathPoint&)
Returns the center of this CATMathCircle.
o GetDirections(CATMathVector&,CATMathVector&)
Returns the (orthonormalized) directions of this CATMathCircle.
o GetMathType()
Returns the mathematical type.
o GetParam(CATMathPoint&,double*,double,double,double)
Retrieves the param on this CATMathCircle corresponding to a CATMathPoint inside limitations.
o GetRadius()
Returns the radius of this CATMathCircle.
o GetScale()
Returns the scale of this CATMathCircle.
o GetShift()
Returns the shift of this CATMathCircle.
o Intersect(CATMathLine&,double,double,double,double,double,double[2],double[2])
Intersects this CATMathCircle with a CATMathLine.
o Intersect(CATMathCircle&,double,double,double,double,double,double[2],double[2])
Intersects this CATMathCircle with another CATMathCircle.
o IsA()
Returns the class name CATMathCircle.
o Project(CATMathPoint&,double&)
Projects a CATMathPoint on this CATMathCircle.
o Project(CATMathPoint&,CATMathPoint&)
Projects a CATMathPoint on this CATMathCircle.
o ReverseDirection()
Changes the parameter orientation of this CATMathCircle.
o Set(CATMathPoint&,CATMathVector&,CATMathVector&,double,double,double)
Constructs a CATMathCircle of given radius and center.
o SetScale(double)
Changes the scale of this CATMathCircle.
o SetShift(double)
Changes the shift of this CATMathCircle.

Constructor and Destructor


o CATMathCircle
public CATMathCircle()
Constructs a CATMathCircle of radius 1 of center (0,0,0) lying on the plane of directions (1,0,0) and (0,1,0).
o CATMathCircle
public CATMathCircle( const iCircleToCopy)
Copy constructor.
o CATMathCircle
public CATMathCircle( const iCenter,
const iFirstAxis,
const iSecondAxis,
iRadius,
iScale= 1.,
iShift= 0.)
Deprecated:
V5R20 Set Constructs a CATMathCircle of given radius and center.
The two vectors must be orthogonal and not null, but this is not checked. If the vectors are not normed, the method normalizes them.

Methods


o ConvertParamToAngle
public ConvertParamToAngle( const iParam)
Converts a parameter on this CATMathCircle to an angle in radians.
o DistanceMin
public DistanceMin( iPt,
iStartParamOnCircle,
iEndParamOnCircle,
oParamAtMin)
Computes the distance between a CATMathPoint and this CATMathCircle.
Parameters:
iStartParamOnCircle
The start limit to take into account for this CATMathCircle.
iEndParamOnCircle
The end limit to take into account for this CATMathCircle.
oParamAtMin
The parameter of the point of this CATMathCircle which is the closest to iPt.
Returns:
The distance between iPt and the point defined by oParamAtMin.
o EvalPoint
public EvalPoint( const iParamInRadian,
ioPoint)
Returns the point of this CATMathCircle corresponding to a given angle in radians.
o GetCenter
public GetCenter( oCenter)
Returns the center of this CATMathCircle.
o GetDirections
public GetDirections( ioDirection1,
ioDirection2)
Returns the (orthonormalized) directions of this CATMathCircle.
o GetMathType
public GetMathType()
Returns the mathematical type.
Returns:
The CATMathematicType.
o GetParam
public GetParam( const iPoint,
oParam,
const iTol,
const iStartParam,
const iEndParam)
Retrieves the param on this CATMathCircle corresponding to a CATMathPoint inside limitations.
Parameters:
iPoint
The CATMathPoint which coordinates are to be transformed as a param.
ioParam
The table of parameters corresponding to iPoint (must be allocate with size = 2).
iTol
Tolerance 3D
iStartParam/iEndParam
The limits to take into account for trimming the CATMathCircle.
Returns:
The number of parameters that can be evaluated on this point.
0
No parameter corresponds to this point.
1
Only one parameter corresponds to this point.
2
Two parameters correspond to this point (at the closure of the circle).
o GetRadius
public GetRadius()
Returns the radius of this CATMathCircle.
o GetScale
public GetScale()
Returns the scale of this CATMathCircle.
o GetShift
public GetShift()
Returns the shift of this CATMathCircle.
o Intersect
public Intersect( const iLine,
iStartParamOnLine,
iEndParamOnLine,
iStartParamOnThisCircle,
iEndParamOnThisCircle,
iTol,
ioParamOnLine,
ioParamOnThisCircle)
Intersects this CATMathCircle with a CATMathLine.
Parameters:
iLine
The CATMathLine to intersect.
iStartParamOnLine/iEndParamOnLine
The limits to take into account for the iLine.
iStartParamOnThisCircle/iEndParamOnThisCircle
The limits to take into account for this CATMathCircle. Must be allocated with size 2.
ioParamOnLine[2]
The parameter of the intersection on iLine.
ioParamOnThisCircle[2]
The parameter of the intersection on this CATMathCircle. Must be allocated with size 2.
iTol
Defines the distance between iLine and this CATMathCircle, below which they are considered to be intersecting.
Returns:
The number of intersection points. Defines the number of value(s) to read in oParamOnLine and oParamOnThisCircle
o Intersect
public Intersect( const iOtherCircle,
iStartParamOnOtherCircle,
iEndParamOnOtherCircle,
iStartParamOnThisCircle,
iEndParamOnThisCircle,
iTol,
ioParamOnOtherCircle,
ioParamOnThisCircle)
Intersects this CATMathCircle with another CATMathCircle.
Parameters:
iOtherCircle
The other CATMathCircle to intersect.
iStartParamOnOtherCircle/iEndParamOnOtherCircle
The limits to take into account for iCircle.
iStartParamOnThisCircle/iEndParamOnThisCircle
The limits to take into account for this CATMathCircle.
ioParamOnOtherCircle[2]
The parameter of the intersection on iCircle. Must be allocated with size 2.
ioParamOnThisCircle[2]
The parameter of the intersection on this CATMathCircle. Must be allocated with size 2.
iTol
Defines the distance between iCircle and this CATMathCircle, below which they are considered to be intersecting.
Returns:
The number of intersection points. Defines the number of value(s) to read in oParamOnOtherCircle and oParamOnThisCircle
o IsA
public IsA()
Returns the class name CATMathCircle.
o Project
public Project( const iPointToProject,
ioParamAtProjection)
Projects a CATMathPoint on this CATMathCircle.
Returns:
FALSE if iPointToProject is the center of the circle, TRUE otherwise. ioProjectedPoint is only computed in the first case.
o Project
public Project( const iPointToProject,
ioProjectedPoint)
Projects a CATMathPoint on this CATMathCircle.
Returns:
FALSE if iPointToProject is the center of the circle, TRUE otherwise. ioParamAtProjection is only computed in the first case.
o ReverseDirection
public ReverseDirection()
Changes the parameter orientation of this CATMathCircle.
o Set
public Set( const iCenter,
const iFirstAxis,
const iSecondAxis,
iRadius,
iScale= 1.,
iShift= 0.)
Constructs a CATMathCircle of given radius and center.
Returns:
E_FAIL if the two vectors are not orthogonal or null, S_OK otherwise. Note that if he vectors are not normed, the method normalizes them.
o SetScale
public SetScale( const iScale)
Changes the scale of this CATMathCircle.
o SetShift
public SetShift( const iShift)
Changes the shift of this CATMathCircle.

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

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