Open CASCADE Technology 6.6.0
|
necessary methodes to compute the energy of an FairCurve.
#include <FairCurve_Energy.hxx>
Public Member Functions | |
virtual 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 |
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] |
virtual Standard_Boolean FairCurve_Energy::Compute | ( | const Standard_Integer | DerivativeOrder, |
math_Vector & | Result | ||
) | [protected, pure virtual] |
Implemented in FairCurve_EnergyOfBatten, and FairCurve_EnergyOfMVC.
virtual void FairCurve_Energy::ComputePoles | ( | const math_Vector & | X | ) | [protected, virtual] |
Reimplemented in FairCurve_EnergyOfBatten, and FairCurve_EnergyOfMVC.
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] |
virtual Standard_Boolean FairCurve_Energy::Gradient | ( | const math_Vector & | X, |
math_Vector & | G | ||
) | [virtual] |
Implements math_MultipleVarFunctionWithHessian.
void FairCurve_Energy::Gradient1 | ( | const math_Vector & | TheVector, |
math_Vector & | G | ||
) | [protected] |
void FairCurve_Energy::Hessian1 | ( | const math_Vector & | TheVector, |
math_Matrix & | H | ||
) | [protected] |
Standard_Integer FairCurve_Energy::Indice | ( | const Standard_Integer | i, |
const Standard_Integer | j | ||
) | const [protected] |
virtual Standard_Integer FairCurve_Energy::NbVariables | ( | ) | const [virtual] |
Implements math_MultipleVarFunctionWithHessian.
const Handle_TColgp_HArray1OfPnt2d& FairCurve_Energy::Poles | ( | ) | const |
virtual Standard_Boolean FairCurve_Energy::Value | ( | const math_Vector & | X, |
Standard_Real & | E | ||
) | [virtual] |
Implements math_MultipleVarFunctionWithHessian.
virtual Standard_Boolean FairCurve_Energy::Values | ( | const math_Vector & | X, |
Standard_Real & | E, | ||
math_Vector & | G | ||
) | [virtual] |
Implements math_MultipleVarFunctionWithHessian.
virtual Standard_Boolean FairCurve_Energy::Values | ( | const math_Vector & | X, |
Standard_Real & | E, | ||
math_Vector & | G, | ||
math_Matrix & | H | ||
) | [virtual] |
Implements math_MultipleVarFunctionWithHessian.
virtual Standard_Boolean FairCurve_Energy::Variable | ( | math_Vector & | X | ) | const [virtual] |
Reimplemented in FairCurve_EnergyOfBatten, and FairCurve_EnergyOfMVC.
Standard_Integer FairCurve_Energy::MyContrOrder1 [protected] |
Standard_Integer FairCurve_Energy::MyContrOrder2 [protected] |
Standard_Integer FairCurve_Energy::MyNbVar [protected] |
Handle_TColgp_HArray1OfPnt2d FairCurve_Energy::MyPoles [protected] |
Standard_Boolean FairCurve_Energy::MyWithAuxValue [protected] |