PAL13464 : SMESH homogenize algorithm hypothesis

LengthFromEdges is default hypothesis now
This commit is contained in:
eap 2008-03-05 14:46:04 +00:00
parent b78bf0bb14
commit a8d87f2c1b
2 changed files with 7 additions and 8 deletions

View File

@ -113,6 +113,8 @@ bool StdMeshers_MEFISTO_2D::CheckHypothesis
{ {
_hypMaxElementArea = NULL; _hypMaxElementArea = NULL;
_hypLengthFromEdges = NULL; _hypLengthFromEdges = NULL;
_edgeLength = 0;
_maxElementArea = 0;
list <const SMESHDS_Hypothesis * >::const_iterator itl; list <const SMESHDS_Hypothesis * >::const_iterator itl;
const SMESHDS_Hypothesis *theHyp; const SMESHDS_Hypothesis *theHyp;
@ -121,8 +123,8 @@ bool StdMeshers_MEFISTO_2D::CheckHypothesis
int nbHyp = hyps.size(); int nbHyp = hyps.size();
if (!nbHyp) if (!nbHyp)
{ {
aStatus = SMESH_Hypothesis::HYP_MISSING; aStatus = SMESH_Hypothesis::HYP_OK; //SMESH_Hypothesis::HYP_MISSING;
return false; // can't work with no hypothesis return true; // (PAL13464) can work with no hypothesis, LengthFromEdges is default one
} }
itl = hyps.begin(); itl = hyps.begin();
@ -137,7 +139,6 @@ bool StdMeshers_MEFISTO_2D::CheckHypothesis
_hypMaxElementArea = static_cast<const StdMeshers_MaxElementArea *>(theHyp); _hypMaxElementArea = static_cast<const StdMeshers_MaxElementArea *>(theHyp);
ASSERT(_hypMaxElementArea); ASSERT(_hypMaxElementArea);
_maxElementArea = _hypMaxElementArea->GetMaxArea(); _maxElementArea = _hypMaxElementArea->GetMaxArea();
_edgeLength = 0;
isOk = true; isOk = true;
aStatus = SMESH_Hypothesis::HYP_OK; aStatus = SMESH_Hypothesis::HYP_OK;
} }
@ -146,8 +147,6 @@ bool StdMeshers_MEFISTO_2D::CheckHypothesis
{ {
_hypLengthFromEdges = static_cast<const StdMeshers_LengthFromEdges *>(theHyp); _hypLengthFromEdges = static_cast<const StdMeshers_LengthFromEdges *>(theHyp);
ASSERT(_hypLengthFromEdges); ASSERT(_hypLengthFromEdges);
_edgeLength = 0;
_maxElementArea = 0;
isOk = true; isOk = true;
aStatus = SMESH_Hypothesis::HYP_OK; aStatus = SMESH_Hypothesis::HYP_OK;
} }
@ -201,7 +200,7 @@ bool StdMeshers_MEFISTO_2D::Compute(SMESH_Mesh & aMesh, const TopoDS_Shape & aSh
SMESH_Comment("Too few segments: ")<<wires[0]->NbSegments()); SMESH_Comment("Too few segments: ")<<wires[0]->NbSegments());
// compute average edge length // compute average edge length
if (_hypLengthFromEdges) if (!_hypMaxElementArea)
{ {
_edgeLength = 0; _edgeLength = 0;
int nbSegments = 0; int nbSegments = 0;
@ -215,7 +214,7 @@ bool StdMeshers_MEFISTO_2D::Compute(SMESH_Mesh & aMesh, const TopoDS_Shape & aSh
_edgeLength /= nbSegments; _edgeLength /= nbSegments;
} }
if (_hypLengthFromEdges && _edgeLength < DBL_MIN ) if (/*_hypLengthFromEdges &&*/ _edgeLength < DBL_MIN )
_edgeLength = 100; _edgeLength = 100;
Z nblf; //nombre de lignes fermees (enveloppe en tete) Z nblf; //nombre de lignes fermees (enveloppe en tete)

View File

@ -83,7 +83,7 @@ protected:
std::list<const SMDS_MeshNode*> myNodesOnCommonV; std::list<const SMDS_MeshNode*> myNodesOnCommonV;
SMESH_MesherHelper* myTool; // toll for working with quadratic elements SMESH_MesherHelper* myTool; // tool for working with quadratic elements
}; };
#endif #endif