All Frameworks  Class Hierarchy  This Framework  Previous  Next  Indexes

Mathematics Class CATMathCircle

Mathematics.CATCGMVirtual
  |
  +---Mathematics.CATMathCurve
    |
    +---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)
Constructs a CATMathCircle of given radius and center.

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(CATMathCircle&,double,double,double,double,double,double[2],double[2])
Intersects this CATMathCircle with another CATMathCircle.
o Intersect(CATMathLine&,double,double,double,double,double,double[2],double[2])
Intersects this CATMathCircle with a CATMathLine.
o IsA()
Returns the class name CATMathCircle.
o Project(CATMathPoint&,CATMathPoint&)
Projects a CATMathPoint on this CATMathCircle.
o Project(CATMathPoint&,double&)
Projects a CATMathPoint on this CATMathCircle.
o ReverseDirection()
Changes the parameter orientation of this CATMathCircle.
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 CATMathCircle& iCircleToCopy)
Copy constructor.
o CATMathCircle
public CATMathCircle( const CATMathPoint& iCenter,
const CATMathVector& iFirstAxis,
const CATMathVector& iSecondAxis,
double iRadius,
double iScale= 1.,
double iShift= 0.)
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 double ConvertParamToAngle( const double iParam) const
Converts a parameter on this CATMathCircle to an angle in radians.
o DistanceMin
public double DistanceMin(CATMathPoint& iPt,
double iStartParamOnCircle,
double iEndParamOnCircle,
double& 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 void EvalPoint( const double iParamInRadian,
CATMathPoint& ioPoint) const
Returns the point of this CATMathCircle corresponding to a given angle in radians.
o GetCenter
public void GetCenter(CATMathPoint& oCenter) const
Returns the center of this CATMathCircle.
o GetDirections
public void GetDirections(CATMathVector& ioDirection1,
CATMathVector& ioDirection2) const
Returns the (orthonormalized) directions of this CATMathCircle.
o GetMathType
public CATMathematicType GetMathType()const
Returns the mathematical type.
Returns:
The CATMathematicType.
o GetParam
public int GetParam( const CATMathPoint& iPoint,
double* oParam,
const double iTol,
const double iStartParam,
const double iEndParam) const
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 double GetRadius()const
Returns the radius of this CATMathCircle.
o GetScale
public double GetScale()const
Returns the scale of this CATMathCircle.
o GetShift
public double GetShift()const
Returns the shift of this CATMathCircle.
o Intersect
public int Intersect( const CATMathCircle& iOtherCircle,
double iStartParamOnOtherCircle,
double iEndParamOnOtherCircle,
double iStartParamOnThisCircle,
double iEndParamOnThisCircle,
double iTol,
double[2] ioParamOnOtherCircle,
double[2] ioParamOnThisCircle) const
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 Intersect
public int Intersect( const CATMathLine& iLine,
double iStartParamOnLine,
double iEndParamOnLine,
double iStartParamOnThisCircle,
double iEndParamOnThisCircle,
double iTol,
double[2] ioParamOnLine,
double[2] ioParamOnThisCircle) const
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 IsA
public CATMathClassId IsA()const
Returns the class name CATMathCircle.
o Project
public CATBoolean Project( const CATMathPoint& iPointToProject,
CATMathPoint& ioProjectedPoint) const
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 Project
public CATBoolean Project( const CATMathPoint& iPointToProject,
double& ioParamAtProjection) const
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 ReverseDirection
public void ReverseDirection()
Changes the parameter orientation of this CATMathCircle.
o SetScale
public void SetScale( const double iScale)
Changes the scale of this CATMathCircle.
o SetShift
public void SetShift( const double 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 © 2003, Dassault Systèmes. All rights reserved.