Main Page | User's guide | Class Hierarchy | Class List | File List | Class Members

Multivac::CThreeCircles< T > Class Template Reference

The initial curve is defined by three circles. More...

#include <threecircles.hxx>

Inheritance diagram for Multivac::CThreeCircles< T >:

Multivac::CInitialCurve< T > List of all members.

Public Member Functions

 CThreeCircles () throw ()
 Default constructor.

 CThreeCircles (T CenterX1_, T CenterY1_, T Radius1_, T CenterX2_, T CenterY2_, T Radius2_, T CenterX3_, T CenterY3_, T Radius3_, bool reversed_=false) throw ()
 Main constructor.

 ~CThreeCircles () throw ()
 Destructor.

virtual void SetDistances (CMesh< T > &Mesh, CLevelSet< T > &Phi)
 Updates the level set function Phi by setting distances to circles.

virtual T GetDistance (T x, T y)
 Returns the distance from a given point to circles.

virtual void GetProjectionOnMesh (T &x, T &y, CMesh< T > &Mesh)
 Returns the closest mesh-point of the projection of (x, y) on the curve.

virtual void Save (string CurveFile) const
 Saves circles.


Protected Attributes

CenterX1
CenterY1
CenterX2
CenterY2
CenterX3
CenterY3
Radius1
Radius2
Radius3

Detailed Description

template<class T>
class Multivac::CThreeCircles< T >

The initial curve is defined by three circles.


Constructor & Destructor Documentation

template<class T>
Multivac::CThreeCircles< T >::CThreeCircles CenterX1_,
CenterY1_,
Radius1_,
CenterX2_,
CenterY2_,
Radius2_,
CenterX3_,
CenterY3_,
Radius3_,
bool  reversed_ = false
throw ()
 

Main constructor.

Defines circles properties.

Parameters:
CenterX1_ first circle center abscissa.
CenterY1_ first circle center ordinate.
Radius1_ first circle radius.
CenterX2_ second circle center abscissa.
CenterY2_ second circle center ordinate.
Radius2_ second circle radius.
CenterX3_ third circle center abscissa.
CenterY3_ third circle center ordinate.
Radius3_ third circle radius.


Member Function Documentation

template<class T>
T Multivac::CThreeCircles< T >::GetDistance x,
y
[inline, virtual]
 

Returns the distance from a given point to circles.

Parameters:
x point abscissa.
y point ordinate.
Returns:
Distance from (x, y) to circles.

Implements Multivac::CInitialCurve< T >.

template<class T>
void Multivac::CThreeCircles< T >::GetProjectionOnMesh T &  x,
T &  y,
CMesh< T > &  Mesh
[virtual]
 

Returns the closest mesh-point of the projection of (x, y) on the curve.

Let A = (x, y). Let B be the projection of A on the curve. Let C be the closest point to B that is on the mesh (included its vertices). On exit, C is returned through x and y: C = (x, y).

Parameters:
x first coordinate of the point to be projected.
y second coordinate of the point to be projected.
Mesh mesh.
Warning:
Undefined function.

Implements Multivac::CInitialCurve< T >.

template<class T>
void Multivac::CThreeCircles< T >::Save string  CurveFile  )  const [virtual]
 

Saves circles.

Parameters:
CurveFile the descriptor of the file where data are saved.
Warning:
This function doesn't save any point because circles are analytically defined.

Implements Multivac::CInitialCurve< T >.

template<class T>
void Multivac::CThreeCircles< T >::SetDistances CMesh< T > &  Mesh,
CLevelSet< T > &  Phi
[virtual]
 

Updates the level set function Phi by setting distances to circles.

Parameters:
Mesh orthogonal mesh.
Phi level set function defined on an orthogonal mesh.
Exceptions:
Seldon::WrongCol attempt to reach a wrong column number.
Seldon::WrongRow attempt to reach a wrong row number.

Implements Multivac::CInitialCurve< T >.


The documentation for this class was generated from the following files:
Generated on Mon Apr 19 01:59:15 2004 for Multivac by doxygen 1.3.6-20040222