OCC Main Page | ModelingAlgorithms | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals

ModelingAlgorithms
TKGeomAlgo
FairCurve


FairCurve_MinimalVariation Class Reference

Computes a 2D curve using an algorithm which
minimizes tension, sagging, and jerk energy. As in
FairCurve_Batten, two reference points are used.
Unlike that class, FairCurve_MinimalVariation
requires curvature settings at the first and second
reference points. These are defined by the rays of
curvature desired at each point.
.

#include <FairCurve_MinimalVariation.hxx>

Inheritance diagram for FairCurve_MinimalVariation:

Inheritance graph
[legend]

Public Member Functions

void * operator new (size_t, void *anAddress)
void * operator new (size_t size)
void operator delete (void *anAddress)
Standard_EXPORT FairCurve_MinimalVariation (const gp_Pnt2d &P1, const gp_Pnt2d &P2, const Standard_Real Heigth, const Standard_Real Slope=0, const Standard_Real PhysicalRatio=0)
 Constructs the two contact points P1 and P2 and the geometrical
characteristics of the batten (elastic beam)
These include the real number values for height of
deformation Height, slope value Slope, and kind of
energy PhysicalRatio. The kinds of energy include:
- Jerk (0)
- Sagging (1).
Note that the default setting for Physical Ration is in FairCurve_Batten
Other parameters are initialized as follow :
- FreeSliding = False
- ConstraintOrder1 = 1
- ConstraintOrder2 = 1
- Angle1 = 0
- Angle2 = 0
- Curvature1 = 0
- Curvature2 = 0
- SlidingFactor = 1
Warning
If PhysicalRatio equals 1, you cannot impose constraints on curvature.
Exceptions
NegativeValue if Height is less than or equal to 0.
NullValue if the distance between P1 and P2 is less
than or equal to the tolerance value for distance in
Precision::Confusion: P1.IsEqual(P2,
Precision::Confusion()). The function
gp_Pnt2d::IsEqual tests to see if this is the case.
//! Definition of the geometricals constraints
.
void SetCurvature1 (const Standard_Real Curvature)
 Allows you to set a new constraint on curvature at the first point.
.
void SetCurvature2 (const Standard_Real Curvature)
 Allows you to set a new constraint on curvature at the second point.

.
void SetPhysicalRatio (const Standard_Real Ratio)
 Allows you to set the physical ratio Ratio.
The kinds of energy which you can specify include:
0 is only "Jerk" Energy
1 is only "Sagging" Energy like batten
Warning: if Ratio is 1 it is impossible to impose curvature constraints.
Raises DomainError if Ratio < 0 or Ratio > 1
.
virtual Standard_EXPORT Standard_Boolean Compute (FairCurve_AnalysisCode &ACode, const Standard_Integer NbIterations=50, const Standard_Real Tolerance=1.0e-3)
 Computes the curve with respect to the constraints,
NbIterations and Tolerance. The tolerance setting
allows you to control the precision of computation, and
the maximum number of iterations allows you to set a limit on computation time.
.
Standard_Real GetCurvature1 () const
 Returns the first established curvature.
.
Standard_Real GetCurvature2 () const
 Returns the second established curvature.
.
Standard_Real GetPhysicalRatio () const
 Returns the physical ratio, or kind of energy.
.
virtual Standard_EXPORT void Dump (Standard_OStream &o) const
 Prints on the stream o information on the current state
of the object.
Is used to redefine the operator <<.
.

Private Member Functions

Standard_EXPORT Standard_Boolean Compute (const gp_Vec2d &DeltaP1, const gp_Vec2d &DeltaP2, const Standard_Real DeltaAngle1, const Standard_Real DeltaAngle2, const Standard_Real DeltaCurvature1, const Standard_Real DeltaCurvature2, FairCurve_AnalysisCode &ACode, const Standard_Integer NbIterations, const Standard_Real Tolerance)
 compute the curve with respect of the delta-constraints.


Private Attributes

Standard_Real OldCurvature1
Standard_Real OldCurvature2
Standard_Real OldPhysicalRatio
Standard_Real NewCurvature1
Standard_Real NewCurvature2
Standard_Real NewPhysicalRatio

Constructor & Destructor Documentation

Standard_EXPORT FairCurve_MinimalVariation::FairCurve_MinimalVariation const gp_Pnt2d &  P1,
const gp_Pnt2d &  P2,
const Standard_Real  Heigth,
const Standard_Real  Slope = 0,
const Standard_Real  PhysicalRatio = 0
 


Member Function Documentation

Standard_EXPORT Standard_Boolean FairCurve_MinimalVariation::Compute const gp_Vec2d &  DeltaP1,
const gp_Vec2d &  DeltaP2,
const Standard_Real  DeltaAngle1,
const Standard_Real  DeltaAngle2,
const Standard_Real  DeltaCurvature1,
const Standard_Real  DeltaCurvature2,
FairCurve_AnalysisCode ACode,
const Standard_Integer  NbIterations,
const Standard_Real  Tolerance
[private]
 

virtual Standard_EXPORT Standard_Boolean FairCurve_MinimalVariation::Compute FairCurve_AnalysisCode ACode,
const Standard_Integer  NbIterations = 50,
const Standard_Real  Tolerance = 1.0e-3
[virtual]
 

Reimplemented from FairCurve_Batten.

virtual Standard_EXPORT void FairCurve_MinimalVariation::Dump Standard_OStream &  o  )  const [virtual]
 

Reimplemented from FairCurve_Batten.

Standard_Real FairCurve_MinimalVariation::GetCurvature1  )  const [inline]
 

Standard_Real FairCurve_MinimalVariation::GetCurvature2  )  const [inline]
 

Standard_Real FairCurve_MinimalVariation::GetPhysicalRatio  )  const [inline]
 

void FairCurve_MinimalVariation::operator delete void *  anAddress  )  [inline]
 

Reimplemented from FairCurve_Batten.

void* FairCurve_MinimalVariation::operator new size_t  size  )  [inline]
 

Reimplemented from FairCurve_Batten.

void* FairCurve_MinimalVariation::operator new size_t  ,
void *  anAddress
[inline]
 

Reimplemented from FairCurve_Batten.

void FairCurve_MinimalVariation::SetCurvature1 const Standard_Real  Curvature  )  [inline]
 

void FairCurve_MinimalVariation::SetCurvature2 const Standard_Real  Curvature  )  [inline]
 

void FairCurve_MinimalVariation::SetPhysicalRatio const Standard_Real  Ratio  )  [inline]
 


Field Documentation

Standard_Real FairCurve_MinimalVariation::NewCurvature1 [private]
 

Standard_Real FairCurve_MinimalVariation::NewCurvature2 [private]
 

Standard_Real FairCurve_MinimalVariation::NewPhysicalRatio [private]
 

Standard_Real FairCurve_MinimalVariation::OldCurvature1 [private]
 

Standard_Real FairCurve_MinimalVariation::OldCurvature2 [private]
 

Standard_Real FairCurve_MinimalVariation::OldPhysicalRatio [private]
 


The documentation for this class was generated from the following files:
Generated on Mon Aug 25 13:41:43 2008 for OpenCASCADE by  doxygen 1.4.1