mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-01-06 23:00:34 +05:00
NPAL18025: Regression between 3.2.6 and 3.2.9rc1 about SMESH display
This commit is contained in:
parent
8b495b9b50
commit
4125a96db1
@ -236,7 +236,7 @@ bool StdMeshers_Regular_1D::CheckHypothesis
|
|||||||
}
|
}
|
||||||
|
|
||||||
static bool computeParamByFunc(Adaptor3d_Curve& C3d, double first, double last,
|
static bool computeParamByFunc(Adaptor3d_Curve& C3d, double first, double last,
|
||||||
double length, bool theReverse,
|
double length, bool theReverse,
|
||||||
int nbSeg, Function& func,
|
int nbSeg, Function& func,
|
||||||
list<double>& theParams)
|
list<double>& theParams)
|
||||||
{
|
{
|
||||||
@ -261,7 +261,7 @@ static bool computeParamByFunc(Adaptor3d_Curve& C3d, double first, double last,
|
|||||||
sprintf( buf, "%f\n", float(x[i] ) );
|
sprintf( buf, "%f\n", float(x[i] ) );
|
||||||
MESSAGE( buf );
|
MESSAGE( buf );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// apply parameters in range [0,1] to the space of the curve
|
// apply parameters in range [0,1] to the space of the curve
|
||||||
@ -662,13 +662,14 @@ bool StdMeshers_Regular_1D::computeInternalParameters(Adaptor3d_Curve& theC3d,
|
|||||||
GCPnts_AbscissaPoint Discret( theC3d, eltSize, param );
|
GCPnts_AbscissaPoint Discret( theC3d, eltSize, param );
|
||||||
if ( !Discret.IsDone() ) break;
|
if ( !Discret.IsDone() ) break;
|
||||||
param = Discret.Parameter();
|
param = Discret.Parameter();
|
||||||
if ( param > f && param < l )
|
if ( f < param && param < l )
|
||||||
theParams.push_back( param );
|
theParams.push_back( param );
|
||||||
else
|
else
|
||||||
break;
|
break;
|
||||||
eltSize *= q;
|
eltSize *= q;
|
||||||
}
|
}
|
||||||
compensateError( a1, an, U1, Un, theLength, theC3d, theParams );
|
compensateError( a1, an, U1, Un, theLength, theC3d, theParams );
|
||||||
|
if (theReverse) theParams.reverse(); // NPAL18025
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -703,6 +704,7 @@ bool StdMeshers_Regular_1D::computeInternalParameters(Adaptor3d_Curve& theC3d,
|
|||||||
eltSize += q;
|
eltSize += q;
|
||||||
}
|
}
|
||||||
compensateError( a1, an, U1, Un, theLength, theC3d, theParams );
|
compensateError( a1, an, U1, Un, theLength, theC3d, theParams );
|
||||||
|
if (theReverse) theParams.reverse(); // NPAL18025
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -720,7 +722,6 @@ bool StdMeshers_Regular_1D::computeInternalParameters(Adaptor3d_Curve& theC3d,
|
|||||||
theParams.push_back( param );
|
theParams.push_back( param );
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
default:;
|
default:;
|
||||||
@ -779,12 +780,17 @@ bool StdMeshers_Regular_1D::Compute(SMESH_Mesh & aMesh, const TopoDS_Shape & aSh
|
|||||||
const SMDS_MeshNode * idPrev = idFirst;
|
const SMDS_MeshNode * idPrev = idFirst;
|
||||||
double parPrev = f;
|
double parPrev = f;
|
||||||
double parLast = l;
|
double parLast = l;
|
||||||
if(reversed) {
|
|
||||||
|
/* NPAL18025
|
||||||
|
if (reversed) {
|
||||||
idPrev = idLast;
|
idPrev = idLast;
|
||||||
|
idLast = idFirst;
|
||||||
|
idFirst = idPrev;
|
||||||
parPrev = l;
|
parPrev = l;
|
||||||
parLast = f;
|
parLast = f;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
for (list<double>::iterator itU = params.begin(); itU != params.end(); itU++) {
|
for (list<double>::iterator itU = params.begin(); itU != params.end(); itU++) {
|
||||||
double param = *itU;
|
double param = *itU;
|
||||||
gp_Pnt P = Curve->Value(param);
|
gp_Pnt P = Curve->Value(param);
|
||||||
@ -819,14 +825,8 @@ bool StdMeshers_Regular_1D::Compute(SMESH_Mesh & aMesh, const TopoDS_Shape & aSh
|
|||||||
meshDS->SetMeshElementOnShape(edge, shapeID);
|
meshDS->SetMeshElementOnShape(edge, shapeID);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if(!reversed) {
|
SMDS_MeshEdge* edge = meshDS->AddEdge(idPrev, idLast);
|
||||||
SMDS_MeshEdge* edge = meshDS->AddEdge(idPrev, idLast);
|
meshDS->SetMeshElementOnShape(edge, shapeID);
|
||||||
meshDS->SetMeshElementOnShape(edge, shapeID);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
SMDS_MeshEdge* edge = meshDS->AddEdge(idPrev, idFirst);
|
|
||||||
meshDS->SetMeshElementOnShape(edge, shapeID);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
Loading…
Reference in New Issue
Block a user