Open CASCADE Technology  6.5.4
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Protected Member Functions | Protected Attributes
FairCurve_Energy Class Reference

necessary methodes to compute the energy of an FairCurve.

#include <FairCurve_Energy.hxx>

Inheritance diagram for FairCurve_Energy:
Inheritance graph
[legend]

Public Member Functions

virtual DEFINE_STANDARD_ALLOC
Standard_Integer 
NbVariables () const
 returns the number of variables of the energy.

virtual Standard_Boolean Value (const math_Vector &X, Standard_Real &E)
 computes the values of the Energys E for the
variable <X>.
Returns True if the computation was done successfully,
False otherwise.

virtual Standard_Boolean Gradient (const math_Vector &X, math_Vector &G)
 computes the gradient <G> of the energys for the
variable <X>.
Returns True if the computation was done successfully,
False otherwise.

virtual Standard_Boolean Values (const math_Vector &X, Standard_Real &E, math_Vector &G)
 computes the Energy <E> and the gradient <G> of the
energy for the variable <X>.
Returns True if the computation was done successfully,
False otherwise.

virtual Standard_Boolean Values (const math_Vector &X, Standard_Real &E, math_Vector &G, math_Matrix &H)
 computes the Energy <E>, the gradient <G> and the
Hessian <H> of the energy for the variable <X>.
Returns True if the computation was done
successfully, False otherwise.

virtual Standard_Boolean Variable (math_Vector &X) const
 compute the variables <X> wich correspond with the field <MyPoles>

const
Handle_TColgp_HArray1OfPnt2d & 
Poles () const
 return the poles

Protected Member Functions

 FairCurve_Energy (const Handle< TColgp_HArray1OfPnt2d > &Poles, const Standard_Integer ConstrOrder1, const Standard_Integer ConstrOrder2, const Standard_Boolean WithAuxValue=Standard_False, const Standard_Real Angle1=0, const Standard_Real Angle2=0, const Standard_Integer Degree=2, const Standard_Real Curvature1=0, const Standard_Real Curvature2=0)
 Angles corresspond to the Ox axis
ConstrOrder1(2) can be equal to 0, 1 or 2

void Gradient1 (const math_Vector &TheVector, math_Vector &G)
 It is use internaly to make the Gradient Vector <G>

void Hessian1 (const math_Vector &TheVector, math_Matrix &H)
 It is use internaly to make the Hessian Matrix <H>

virtual void ComputePoles (const math_Vector &X)
 compute the poles wich correspond with the variable X

Standard_Integer Indice (const Standard_Integer i, const Standard_Integer j) const
void ComputePolesG1 (const Standard_Integer Side, const Standard_Real Lambda, const gp_Pnt2d &P1, gp_Pnt2d &P2) const
 compute the pole wich depend of variables and G1 constraint

void ComputePolesG2 (const Standard_Integer Side, const Standard_Real Lambda, const Standard_Real Rho, const gp_Pnt2d &P1, gp_Pnt2d &P2) const
 compute the pole wich depend of variables and G2 constraint

virtual Standard_Boolean Compute (const Standard_Integer DerivativeOrder, math_Vector &Result)=0
 compute the energy (and derivatives) in intermediat format

Protected Attributes

Handle_TColgp_HArray1OfPnt2d MyPoles
Standard_Integer MyContrOrder1
Standard_Integer MyContrOrder2
Standard_Boolean MyWithAuxValue
Standard_Integer MyNbVar

Constructor & Destructor Documentation

FairCurve_Energy::FairCurve_Energy ( const Handle< TColgp_HArray1OfPnt2d > &  Poles,
const Standard_Integer  ConstrOrder1,
const Standard_Integer  ConstrOrder2,
const Standard_Boolean  WithAuxValue = Standard_False,
const Standard_Real  Angle1 = 0,
const Standard_Real  Angle2 = 0,
const Standard_Integer  Degree = 2,
const Standard_Real  Curvature1 = 0,
const Standard_Real  Curvature2 = 0 
) [protected]

Member Function Documentation

virtual Standard_Boolean FairCurve_Energy::Compute ( const Standard_Integer  DerivativeOrder,
math_Vector Result 
) [protected, pure virtual]
virtual void FairCurve_Energy::ComputePoles ( const math_Vector X) [protected, virtual]
void FairCurve_Energy::ComputePolesG1 ( const Standard_Integer  Side,
const Standard_Real  Lambda,
const gp_Pnt2d P1,
gp_Pnt2d P2 
) const [protected]
void FairCurve_Energy::ComputePolesG2 ( const Standard_Integer  Side,
const Standard_Real  Lambda,
const Standard_Real  Rho,
const gp_Pnt2d P1,
gp_Pnt2d P2 
) const [protected]
void FairCurve_Energy::Gradient1 ( const math_Vector TheVector,
math_Vector G 
) [protected]
void FairCurve_Energy::Hessian1 ( const math_Vector TheVector,
math_Matrix H 
) [protected]
const Handle_TColgp_HArray1OfPnt2d& FairCurve_Energy::Poles ( ) const
virtual Standard_Boolean FairCurve_Energy::Variable ( math_Vector X) const [virtual]

Field Documentation

Handle_TColgp_HArray1OfPnt2d FairCurve_Energy::MyPoles [protected]

The documentation for this class was generated from the following file: