mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-12-27 09:50:34 +05:00
020716: EDF 1229 SMESH : Improvement of reversed edges dialog box
fix taking into account ( reversing edges + hyp propagation )
This commit is contained in:
parent
e146cc085e
commit
9c0be12435
@ -119,9 +119,8 @@ bool StdMeshers_Regular_1D::CheckHypothesis
|
||||
_hypType = NONE;
|
||||
_quadraticMesh = false;
|
||||
|
||||
const bool ignoreAuxiliaryHyps = false;
|
||||
const list <const SMESHDS_Hypothesis * > & hyps =
|
||||
GetUsedHypothesis(aMesh, aShape, ignoreAuxiliaryHyps);
|
||||
GetUsedHypothesis(aMesh, aShape, /*ignoreAuxiliaryHyps=*/false);
|
||||
|
||||
// find non-auxiliary hypothesis
|
||||
const SMESHDS_Hypothesis *theHyp = 0;
|
||||
@ -975,18 +974,19 @@ bool StdMeshers_Regular_1D::Compute(SMESH_Mesh & theMesh, const TopoDS_Shape & t
|
||||
list< double > params;
|
||||
bool reversed = false;
|
||||
if ( theMesh.GetShapeToMesh().ShapeType() >= TopAbs_WIRE ) {
|
||||
// if the shape to mesh is WIRE or EDGE
|
||||
reversed = ( EE.Orientation() == TopAbs_REVERSED );
|
||||
}
|
||||
if ( !_mainEdge.IsNull() ) {
|
||||
// take into account reversing the edge the hypothesis is propagated from
|
||||
reversed = ( _mainEdge.Orientation() == TopAbs_REVERSED );
|
||||
}
|
||||
else if ( _revEdgesIDs.size() > 0 ) {
|
||||
for ( int i = 0; i < _revEdgesIDs.size(); i++) {
|
||||
if ( _revEdgesIDs[i] == shapeID ) {
|
||||
int mainID = meshDS->ShapeToIndex(_mainEdge);
|
||||
if ( std::find( _revEdgesIDs.begin(), _revEdgesIDs.end(), mainID) != _revEdgesIDs.end())
|
||||
reversed = !reversed;
|
||||
}
|
||||
}
|
||||
}
|
||||
// take into account this edge reversing
|
||||
if ( std::find( _revEdgesIDs.begin(), _revEdgesIDs.end(), shapeID) != _revEdgesIDs.end())
|
||||
reversed = !reversed;
|
||||
|
||||
BRepAdaptor_Curve C3d( E );
|
||||
double length = EdgeLength( E );
|
||||
@ -1186,10 +1186,9 @@ StdMeshers_Regular_1D::GetUsedHypothesis(SMESH_Mesh & aMesh,
|
||||
|
||||
SMESH_HypoFilter auxiliaryFilter, compatibleFilter;
|
||||
auxiliaryFilter.Init( SMESH_HypoFilter::IsAuxiliary() );
|
||||
const bool ignoreAux = true;
|
||||
InitCompatibleHypoFilter( compatibleFilter, ignoreAux );
|
||||
InitCompatibleHypoFilter( compatibleFilter, /*ignoreAux=*/true );
|
||||
|
||||
// get non-auxiliary assigned to aShape
|
||||
// get non-auxiliary assigned directly to aShape
|
||||
int nbHyp = aMesh.GetHypotheses( aShape, compatibleFilter, _usedHypList, false );
|
||||
|
||||
if (nbHyp == 0 && aShape.ShapeType() == TopAbs_EDGE)
|
||||
|
Loading…
Reference in New Issue
Block a user