AdvancedMathematics CATMathSetOfPointsND

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


public class CATMathSetOfPointsND

Class defining a set of points in R^n.


Constructor and Destructor Index


o CATMathSetOfPointsND(CATLONG32,CATLONG32)
Constructs a CATMathSetOfPointsND.
o CATMathSetOfPointsND(CATMathSetOfPointsND&)
Copy constructor.
o ~CATMathSetOfPointsND()

Method Index


o AddNewPoint(double*,double)
Appends a point at the end of the set if it is different from the last point.
o AddPoint(double*)
Appends a point at the end of the set.
o AddSet(CATMathSetOfPointsND&,CATBoolean)
Concatenates a CATMathSetOfPointsND just after the last point of this CATMathSetOfPointsND.
o AutoInvert()
Inverts the content of this CATMathSetOfPointsND inside itself.
o Beginning()
o Beginning()
Resets the iterator to read the points again.
o BoundingBox(double*)
Builds the marginless bounding box.
o ComputeTangents(double*,double*)
Computes the tangent in each point of this CATMathSetOfPointsND.
o ConvexContour(CATLONG32,double,CATMathSetOfPointsND&)
Builds the convex contour of a given two-dimensional set.
o DistanceMin(double*,CATLONG32&,CATTolerance&)
Retrieves the closest point of the polyline in RN defined by this CATMathSetOfPointsND to a given point.
o FindCircle(CATLONG32*,double&,double*,double*,double*,double,double,CATTolerance&)
Searches for a 3D circle defined by the set of points on 3 specific coordinates.
o FindConic(CATLONG32,CATLONG32,double[6],double,CATTolerance&)
Searches for a conics defined by the set of points on 2 specific coordinates.
o FindConic(CATLONG32,CATLONG32,ConicType*,double[2],double*,double*,double*,double*,double,CATTolerance&)
From V5R17, searches for a conics defined by the set of points on 2 specific coordinates.
o FindConicParameters(double[6],ConicType*,double[2],double*,double*,double*,double*,double,CATTolerance&)
From V5R17 onwards, retrieves the conics parameters from its equation parameters.
o GetClosestPoints(double*,double*,double*,CATTolerance&)
Retrieves the two points of the polyline in RN defined by this CATMathSetOfPointsND which are the closest to a given point.
o GetCurrentIndex()
Returns the index of the iterator inside this CATMathSetOfPointsND.
o GetDimension()
o GetDimension()
Returns the dimension of the space in which the points are defined.
o GetFirstPointOnSegment(CATLONG32&,double*,double*,double,CATTolerance&)
Intersects this CATMathSetOfPointsND and a segment in RN.
o GetMaxNumberOfPoints()
Returns the maximum number of points of this CATMathSetOfPointsND.
o GetNumberOfPoints()
o GetNumberOfPoints()
Returns the number of points of this CATMathSetOfPointsND that are already set.
o GetPoint(double*)
Retrieves the array of the coordinates of the current point.
o GetPoint(CATLONG32,double*)
Retrieves the coordinates of a specific point of this CATMathSetOfPointsND.
o GetPoints()
o GetPoints()
Returns the array of the coordinates of the all the points.
o InitializeParameters(double*)
Computes the distance between two successive points of this CATMathSetOfPointsND.
o InsertPoint(double*,CATLONG32)
Inserts a point at a specific position.
o Invert(CATMathSetOfPointsND&)
Inverts the content of this CATMathSetOfPointsND.
o IsAKindOf(CATMathClassId)
Tests the class of this CATMathSetOfPointsND.
o IsContaining(double*,double,CATLONG32*)
Tests if a point is on the polyline defined by this CATMathSetOfPointsND.
o IsIncludedIn(double*,double,CATLONG32&,CATTolerance&)
Tests if a point is equal to a point of this CATMathSetOfPointsND.
o IsLinear(CATLONG32,CATLONG32*,double,CATTolerance&)
Searches for a line defined by the set of points on specific coordinates.
o IsMonotonousAlong(CATLONG32)
Tests whether this CATMathSetOfPointsND is monotonous with regards to one of its coordinates.
o IsPeriodic()
o IsPeriodic()
Tests whether this CATMathSetOfPointsND is periodic.
o Length()
Returns the length of the polyline in RN defined by the set of points.
o Next()
Skips to the next point of this CATMathSetOfPointsND.
o Pack()
Packs this CATMathSetOfPoints.
o RemoveMultiplePoints(double,CATBoolean)
Removes the duplicated points of this CATMathSetOfPointsND.
o RemovePoint(CATLONG32)
Removes one point of this CATMathSetOfPointsND.
o RemovePoints(CATMathSetOfLongs&)
Removes points of this CATMathSetOfPointsND.
o ReplacePoint(double*)
Replaces the coordinates of the current point.
o ReplacePoint(CATLONG32,double*)
Replaces the coordinates of a specific point.
o ReplacePoints(CATLONG32,double*)
Sets the coordinates of all the points.
o Reset()
Resets this CATMathSetOfPoints.
o Resize(CATLONG32)
Resizes this CATMathSetOfPoints.
o SetCoordAtPoint(double,CATLONG32,CATLONG32)
Sets the value of a coordinate of a point.
o SetPeriodic(CATBoolean)
Sets the periodicity of this CATMathSetOfPointsND.
o Simplify(double,CATMathSetOfLongs*)
Simpifies this CATMathSetOfPointsND.
o Sort(CATLONG32)
Sorts this CATMathSetOfPointsND along coordinate index, from the smallest to the highest coordinate.
o Split(CATLONG32,CATMathSetOfPointsND&,CATBoolean,CATTolerance&)
Splits a CATMathSetOfPointsND just after the point corresponding to the iIndex.
o SwapPoints(CATLONG32,CATLONG32)
Swaps two points inside this CATMathSetOfPointsND.
o operator =(CATMathSetOfPointsND&)
Assignment operator.

Enumerated Type Index


o ConicType
The type of mathematical configurations of a set of points.
o MonotonyDiagnostic
The monotony of a function.

Constructor and Destructor


o CATMathSetOfPointsND
public CATMathSetOfPointsND( const iN,
const iNumberOfPoint)
Constructs a CATMathSetOfPointsND.
Parameters:
iN
The dimension of the points of the set.
iNumberOfPoints
The size of the set.
o CATMathSetOfPointsND
public CATMathSetOfPointsND( const iToCopy)
Copy constructor.
o ~CATMathSetOfPointsND
public virtual ~CATMathSetOfPointsND()

Methods


o AddNewPoint
public AddNewPoint( const iPoint,
const iTol)
Appends a point at the end of the set if it is different from the last point. If needed, this CATMathSetOfPointsND is reallocated.
Parameters:
iPoint
The array of the coordinates.
iTol
The tolerance of confusion.
o AddPoint
public virtual AddPoint( const iPoint)
Appends a point at the end of the set. If needed, this CATMathSetOfPointsND is reallocated.
Parameters:
iPoint
The array of the coordinates.
o AddSet
public virtual AddSet( const iSetToConcatenate,
iMerge)
Concatenates a CATMathSetOfPointsND just after the last point of this CATMathSetOfPointsND. If needed, this CATMathSetOfPointsND is reallocated.
Parameters:
iSetToConcatenate
The set to concatenate.
iMerge
The way to concatenate.
Legal values: TRUE if the last point of this CATMathSetOfPointsND and the first point of iSetToConcatenate must be merged, FALSE otherwise.
o AutoInvert
public virtual AutoInvert()
Inverts the content of this CATMathSetOfPointsND inside itself.
o Beginning
public Beginning()
o Beginning
public Beginning()
Resets the iterator to read the points again.
Call Next after this method to make the first point as current.
o BoundingBox
public BoundingBox( ioBox)
Builds the marginless bounding box.
Parameters:
ioBox
The bounding box. Must be previously allocated ioBox[2][GetDimension ()].
o ComputeTangents
public virtual ComputeTangents( const iParameters,
ioTangents)
Computes the tangent in each point of this CATMathSetOfPointsND.
Parameters:
iParameters
The distance of each successive interval. To be filled by the InitializeParameters method.
ioTangents
The array of the tangents. Must be previously allocated to NumberOfPoints*N.
o ConvexContour
public ConvexContour( const iChoice,
const iTol,
ioConvex)
Builds the convex contour of a given two-dimensional set.
The created contour is ordered, but its orientation is undefined.
Parameters:
iChoice
A way to tune the result. Legal values:
0
for the convex contour stricto sensu
1
for a more convenient size of the result ( less points for a bit bigger area )
ioConvex
The convex contour.
It must be previously allocated, by using the CATMathSetOfPointsND constructor, such as:
oConvex ( this.GetDimension (), this.GetNumberOfPoints () + 1 )
( +1 is necessary for algorithm efficiency ). If the method failed, oConvex.GetNumberOfPoints reurns 0.
o DistanceMin
public DistanceMin( const iPoint,
ioIndexPoint,
const iTolObject=CATGetDefaultTolerance())
Retrieves the closest point of the polyline in RN defined by this CATMathSetOfPointsND to a given point.
Parameters:
iPoint
The array of N coordinates.
ioIndexPoint
The index of the closest point in this CATMathSetOfPointsND.
iTolObject
The default tolerance.
Returns:
The distance between iPoint and this CATMathSetOfPointsND.
o FindCircle
public virtual FindCircle( const iCoordIndex,
ioRadius,
ioCenter,
ioU,
ioV,
iTol=0.,
iPlanarityTol= 0.,
const iTolObject=CATGetDefaultTolerance())
Searches for a 3D circle defined by the set of points on 3 specific coordinates.
Parameters:
iCoordIndex
The array of 3 coodinates indexes to be taken into account, such that 0 <= iCoord[i] < N, i=0,1,2.
ioRadius
The value of the radius of the circle.
ioCenter
The 3D center point.
ioU
The first normed vector of the circle plane.
ioV
The second orthonormed vector of the circle plane.
iTol
The tolerance to match the circle. By default, the numerical tolerance is used.
iPlanarityTol
The tolerance to match the circle plane. By default, the numerical tolerance is used.
iTolObject
The default tolerance.
Returns:
The result diagnosis. 1 if a circle has been found, 0 otherwise.
o FindConic
public virtual FindConic( iCoordIndex1,
iCoordIndex2,
ioEquationParameters,
const iTol=0.,
const iTolObject=CATGetDefaultTolerance())
Searches for a conics defined by the set of points on 2 specific coordinates.
Parameters:
iCoordIndex1
The index (beginning at 0) of the first coordinate to take into account.
iCoordIndex2
The index (beginning at 0) of the second coordinate to take into account.
ioEquationParameters[6]
The array of the parameters (A, B, C, D, E, F) of the conics, given as follows:
 AX**2+2BXY+CY**2+2DX+2EY+F=0
. The array must be previously allocated.
iTol
The tolerance to match the conics. By default, the numerical tolerance is used.
iTolObject
The default tolerance.
Returns:
The result diagnosis. 1 if a conics has been found, 0 otherwise.
o FindConic
public virtual FindConic( iCoordIndex1,
iCoordIndex2,
ioConicType,
ioCenter,
ioE,
ioA,
ioB,
ioPhi,
const iTol=0.,
const iTolObject=CATGetDefaultTolerance())
From V5R17, searches for a conics defined by the set of points on 2 specific coordinates.
All the pointer must be previously allocated.
Parameters:
iCoordIndex1
The index (beginning at 0) of the first coordinate to take into account.
iCoordIndex2
The index (beginning at 0) of the second coordinate to take into account.
ioConicType
A pointer to the found conic type. The pointer must be previously allocated.
ioCenter
The 2D center point. Must be previously allocated.
ioE
A pointer to the excentricity
ioA
A pointer to the major axis.
ioB
A pointer to the minor axis.
ioPhi
A pointer to the angle between the major axis and the first coordinate axis.
iTol
The tolerance to match the conics. By default, the numerical tolerance is used.
iTolObject
The default tolerance.
Returns:
The result diagnosis. 1 if a conics has been found, 0 otherwise.
o FindConicParameters
public static FindConicParameters( iEquationParameters,
oConicType,
ioCenter,
ioE,
ioA,
ioB,
ioPhi,
const iTol=0.,
const iTolObject=CATGetDefaultTolerance())
From V5R17 onwards, retrieves the conics parameters from its equation parameters.

All the pointer must be previously allocated.

Parameters:
iEquationParameters[6]
The array of the parameters (A, B, C, D, E, F) of the conics, given as follows:
 AX**2+2BXY+CY**2+2DX+2EY+F=0
.
ioCenter
The 2D center point. Must be previously allocated.
ioE
A pointer to the excentricity
ioA
A pointer to the major axis.
ioB
A pointer to the minor axis.
ioPhi
A pointer to the angle between the major axis and the first coordinate axis.
iTol
The tolerance to match the conics. By default, the numerical tolerance is used.
iTolObject
The default tolerance.
Returns:
The result diagnosis. 1 if a conics has been found, 0 otherwise.
o GetClosestPoints
public GetClosestPoints( const iPoint,
ioPoint1,
ioPoint2,
const iTolObject=CATGetDefaultTolerance())
Retrieves the two points of the polyline in RN defined by this CATMathSetOfPointsND which are the closest to a given point. To be used from V5R17.
Parameters:
iPoint
The array of N coordinates.
ioPoint1
A pointer to the coordinates of one of the two first closest points.
ioPoint2
A pointer to the coordinates of the other one.
iTolObject
The default tolerance.
o GetCurrentIndex
public GetCurrentIndex()
Returns the index of the iterator inside this CATMathSetOfPointsND.
Returns:
The index of the current point. This method should be called after the method.
o GetDimension
public GetDimension()
o GetDimension
public GetDimension()
Returns the dimension of the space in which the points are defined.
Returns:
The dimension.
o GetFirstPointOnSegment
public GetFirstPointOnSegment( ioIndex,
const iPoint1,
const Point2,
iTol,
const iTolObject=CATGetDefaultTolerance())
Intersects this CATMathSetOfPointsND and a segment in RN.
Parameters:
ioIndex
The intersection diagnosis. 1 if there is an intersection point, 0 otherwise.
iPoint1
The array of N coordinates of the first point of the segment.
iPoint2
The array of N coordinates of the second point of the segment.
iTol
The tolerance to compute the intersection. By default, the numerical tolerance is used.
o GetMaxNumberOfPoints
public GetMaxNumberOfPoints()
Returns the maximum number of points of this CATMathSetOfPointsND.
Returns:
The maximum number of points (size of the allocation).
o GetNumberOfPoints
public GetNumberOfPoints()
o GetNumberOfPoints
public GetNumberOfPoints()
Returns the number of points of this CATMathSetOfPointsND that are already set.
Returns:
The number of points that are already set.
o GetPoint
public GetPoint( ioPoint)
Retrieves the array of the coordinates of the current point.
Parameters:
ioPoint
The pointer to the coordinates, previously allocated to iN doubles (iN is the dimension of the points of the set).
o GetPoint
public GetPoint( const iPointIndex,
ioPoint)
Retrieves the coordinates of a specific point of this CATMathSetOfPointsND.
Parameters:
iPointIndex
The index of the point (0<= iPointIndex < NumberOfPoints).
ioPoint
The pointer to the coordinates, previously allocated to iN doubles (iN is the dimension of the points of the set).
o GetPoints
public GetPoints()
o GetPoints
public GetPoints()
Returns the array of the coordinates of the all the points.
Returns:
The array of point coordinates. Must not be deleted as part of CATMathSetOfPointsND.
o InitializeParameters
public virtual InitializeParameters( ioParameters)
Computes the distance between two successive points of this CATMathSetOfPointsND.
Parameters:
ioParameters
The array of distance of each successive interval. Must be previously allocated to NumberOfPoints.
o InsertPoint
public virtual InsertPoint( const iPoint,
const iPointIndex)
Inserts a point at a specific position. If needed, this CATMathSetOfPointsND is reallocated.
Parameters:
iPoint
The array of the new coordinates.
iPointIndex
The index of the point (0<= iPointIndex < NumberOfPoints).
o Invert
public virtual Invert( ioResultingSet)
Inverts the content of this CATMathSetOfPointsND.
Parameters:
ioResultingSet
The result of the inversion (must be previously allocated).
o IsAKindOf
public virtual IsAKindOf( const iClassId)
Tests the class of this CATMathSetOfPointsND.
Parameters:
iClassId
The name of the class.
Returns:
The result of the test.
Legal values: TRUE if this CATMathSetOfPointsND is a kind of iClassId, FALSE otherwise.
o IsContaining
public IsContaining( const iPoint,
const iTol,
ioPointIndex= 0)
Tests if a point is on the polyline defined by this CATMathSetOfPointsND.
Parameters:
iPoint
The array of N coordinates.
iTol
The tolerance to match the test. By default, the numerical tolerance is used.
ioPointIndex
The index of the closest arc of this CATMathSetOfPointsND, if not NULL.
Returns:
The result diagnosis. 1 if the point belongs to the polyline, 0 otherwise.
o IsIncludedIn
public IsIncludedIn( const iPoint,
const iTol,
ioPointIndex,
const iTolObject=CATGetDefaultTolerance())
Tests if a point is equal to a point of this CATMathSetOfPointsND.
Parameters:
iPoint
The array of N coordinates.
iTol
The tolerance to match the test. By default, the numerical tolerance is used.
ioPointIndex
The index of the equal point of this CATMathSetOfPointsND, if not NULL.
iTolObject
The default tolerance.
Returns:
The result diagnosis. 1 if the point belongs to the polyline, 0 otherwise.
o IsLinear
public virtual IsLinear( const iNumCoord,
const iCoordIndex,
const iTol=0.,
const iTolObject=CATGetDefaultTolerance())
Searches for a line defined by the set of points on specific coordinates.
Parameters:
iNumCoord
The number of coordinates to take into account.
iCoordIndex
The array of iNumCoord coodinates indexes to be taken into account, such that 0 <= iCoord[i] < N, i=0,..,iNumCoord-1.
iTol
The tolerance to match the line. By default, the numerical tolerance is used.
iTolObject
The default tolerance.
Returns:
The result diagnosis. 1 if a line has been found, 0 otherwise.
o IsMonotonousAlong
public IsMonotonousAlong( const iCoordNum)
Tests whether this CATMathSetOfPointsND is monotonous with regards to one of its coordinates.
Parameters:
iCoordNum
The point coordinate number(beginning at 1).
Returns:
The type of monotony.
o IsPeriodic
public IsPeriodic()
o IsPeriodic
public IsPeriodic()
Tests whether this CATMathSetOfPointsND is periodic.
Returns:
The result of the test.
Legal values: TRUE if this CATMathSetOfPointsND periodic, FALSE otherwise.
o Length
public Length()
Returns the length of the polyline in RN defined by the set of points.
Returns:
The length.
o Next
public Next()
Skips to the next point of this CATMathSetOfPointsND.
This next point becomes the current one. To read the first point, first call the Beginning method, then call Next.
o Pack
public virtual Pack()
Packs this CATMathSetOfPoints.
In this case, _MaxNumberOfPoint = _NumberOfPoint.
o RemoveMultiplePoints
public virtual RemoveMultiplePoints( const iTol,
const iAll= 0)
Removes the duplicated points of this CATMathSetOfPointsND.
Parameters:
iTol
The tolerance of confusion. By default, the numerical tolerance is used.
iAll
Legal values:
0
The first twin point is kept.
0
All the twin points are removed
o RemovePoint
public virtual RemovePoint( const iIndexToRemove)
Removes one point of this CATMathSetOfPointsND.
The points after the removed point are shift, but the memory is not deleted (_MaxNumberOfPoint still remains the same).
Parameters:
iIndexToRemove
The index of the point to remove 0<= iIndexToRemove < NumberOfPoints .
o RemovePoints
public virtual RemovePoints( const iPointIndex)
Removes points of this CATMathSetOfPointsND.
The remaining points are shift, but the memory is not deleted (_MaxNumberOfPoint still remains the same).
Parameters:
iPointsIndex
The list of the indexes of the points to remove.
o ReplacePoint
public ReplacePoint( const iPoint)
Replaces the coordinates of the current point.
Parameters:
iPoint
The array of the new coordinates.
o ReplacePoint
public ReplacePoint( const iPointIndex,
const iPoint)
Replaces the coordinates of a specific point.
Parameters:
iPointIndex
The index of the point (0<= iPointIndex < NumberOfPoints).
iPoint
The array of the new coordinates.
o ReplacePoints
public ReplacePoints( const iSize,
const iPoints)
Sets the coordinates of all the points. If needed, this CATMathSetOfPointsND is reallocated.
Parameters:
iSize
The number of points that are set.
iPoints
The coordinates of all the points.
o Reset
public virtual Reset()
Resets this CATMathSetOfPoints.
The memory is not deleted and the class can be used again.
o Resize
public virtual Resize( const iSize)
Resizes this CATMathSetOfPoints.
The memory is adjusted, the content is lost.
o SetCoordAtPoint
public virtual SetCoordAtPoint( iVal,
const iCoordIndex,
const iPointIndex)
Sets the value of a coordinate of a point.
Parameters:
iVal
The value to be set.
iCoordIndex
The index of the point coordinate (beginning at 0).
iPointIndex
The index of the point inside the set (beginning at 0).
o SetPeriodic
public virtual SetPeriodic( const iPeriodic= 1)
Sets the periodicity of this CATMathSetOfPointsND.
Parameters:
iPeriodic

Legal values :
1
Sets to periodic: in this case, the first and the last points must be the same.
0
unsets the periodicity.
o Simplify
public virtual Simplify( const iSag,
ioRemovedPoints= 0)
Simpifies this CATMathSetOfPointsND. This method removes the points of the set when they lie within iSag of the chord between the previous and the next point.
Parameters:
iSag
The distance of simplification.
ioRemovedPoints
The CATMathSetOfPointsND containing the removed points. if NULL, this argument is not filled.
o Sort
public virtual Sort( const iCoordIndex)
Sorts this CATMathSetOfPointsND along coordinate index, from the smallest to the highest coordinate.
Parameters:
iCoordIndex
The index (beginning at 0) of the coordinate for the sort.
o Split
public virtual Split( const iIndex,
ioSetbis,
iMerge,
const iTolObject=CATGetDefaultTolerance())
Splits a CATMathSetOfPointsND just after the point corresponding to the iIndex. The part of this CATMathSetOfPointsND before iIndex will stay in this CATMathSetOfPointsND, and the part after will go in ioSetbis. If needed, ioSetbis is reallocated,and this CATMathSetOfPointsND is disallocated.
Parameters:
iIndex
The index of the point where to split(0<=iIndex
iSetbis
The new set after the split(must be previously allocated).
iMerge
The way to split.
Legal values: TRUE if the last point of new this CATMathSetOfPointsND. and the first point of iSetbis will be the same equal to iIndex point, FALSE if the last . point of new this CATMathSetOfPointsND will be equal to iIndex point and the first point. of iSetbis will be the iIndex+1 point.
iTolObject
The default tolerance.
o SwapPoints
public virtual SwapPoints( const iPointIndex1,
const iPointIndex2)
Swaps two points inside this CATMathSetOfPointsND.
Parameters:
iPointIndex1
The index of the first point to swap.
iPointIndex2
The index of the second point to swap.
o operator =
public virtual operator =( const iS)
Assignment operator.

Enumerated Types


o ConicType
enum ConicType {
  Ellipse,
  Parabole,
  Hyperbole,
  DegenerateEmpty,
  DegenerateOnePoint,
  DegenerateOneLine,
  DegenerateTwoParallelLines,
  DegenerateTwoCrossingLines,
  Undefined
}
The type of mathematical configurations of a set of points.
Parameters:
Ellipse
Ellipse.
Parabole
Parabola.
Hyperbole
Hyperbola.
DegenerateEmpty
The set of points is empty.
DegenerateOnePoint
The set of points is degenerated in only one point.
DegenerateOneLine
The set of points is corresponds to a line.
DegenerateTwoParallelLine
The set of points is corresponds to two parallel lines.
DegenerateTwoCrossingLine
The set of points is corresponds to two crossing lines.
Unedfined
No particular configuration is found.
o MonotonyDiagnostic
enum MonotonyDiagnostic {
  Constant,
  Increasing,
  Decreasing,
  NoMonotonous
}
The monotony of a function.
Parameters:
Constant
The function is constant.
Increasing
The function is increasing.
Decreasing
The function is decreasing.
NoMonotonous
Otherwise.

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

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