_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;
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 );
+ int mainID = meshDS->ShapeToIndex(_mainEdge);
+ if ( std::find( _revEdgesIDs.begin(), _revEdgesIDs.end(), mainID) != _revEdgesIDs.end())
+ reversed = !reversed;
}
- else if ( _revEdgesIDs.size() > 0 ) {
- for ( int i = 0; i < _revEdgesIDs.size(); i++) {
- if ( _revEdgesIDs[i] == shapeID ) {
- 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 );
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)