mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-01-27 04:00:34 +05:00
23386: EDF 13811 - Crash SALOME during compute
reason: empty NbSegments in FixedPoints1D hypothesis
This commit is contained in:
parent
1c1bbf6798
commit
6ea484ee5f
@ -27,16 +27,6 @@
|
||||
#include "SMESH_Algo.hxx"
|
||||
#include "SMESH_Mesh.hxx"
|
||||
|
||||
//#include <BRep_Tool.hxx>
|
||||
//#include <GCPnts_AbscissaPoint.hxx>
|
||||
//#include <GeomAdaptor_Curve.hxx>
|
||||
//#include <Geom_Curve.hxx>
|
||||
//#include <TopExp.hxx>
|
||||
//#include <TopLoc_Location.hxx>
|
||||
//#include <TopTools_IndexedMapOfShape.hxx>
|
||||
//#include <TopoDS.hxx>
|
||||
//#include <TopoDS_Edge.hxx>
|
||||
|
||||
using namespace std;
|
||||
|
||||
//=============================================================================
|
||||
@ -50,14 +40,14 @@ StdMeshers_FixedPoints1D::StdMeshers_FixedPoints1D(int hypId, int studyId,
|
||||
:SMESH_Hypothesis(hypId, studyId, gen)
|
||||
{
|
||||
_name = "FixedPoints1D";
|
||||
_param_algo_dim = 1;
|
||||
_param_algo_dim = 1;
|
||||
_nbsegs.reserve( 1 );
|
||||
_nbsegs.push_back( 1 );
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
/*!
|
||||
*
|
||||
*
|
||||
*/
|
||||
//=============================================================================
|
||||
|
||||
@ -72,7 +62,7 @@ StdMeshers_FixedPoints1D::~StdMeshers_FixedPoints1D()
|
||||
//=============================================================================
|
||||
|
||||
void StdMeshers_FixedPoints1D::SetPoints(std::vector<double>& listParams)
|
||||
throw(SALOME_Exception)
|
||||
throw(SALOME_Exception)
|
||||
{
|
||||
_params = listParams;
|
||||
NotifySubMeshesHypothesisModification();
|
||||
@ -85,7 +75,7 @@ void StdMeshers_FixedPoints1D::SetPoints(std::vector<double>& listParams)
|
||||
//=============================================================================
|
||||
|
||||
void StdMeshers_FixedPoints1D::SetNbSegments(std::vector<int>& listNbSeg)
|
||||
throw(SALOME_Exception)
|
||||
throw(SALOME_Exception)
|
||||
{
|
||||
_nbsegs = listNbSeg;
|
||||
NotifySubMeshesHypothesisModification();
|
||||
@ -140,7 +130,7 @@ ostream & StdMeshers_FixedPoints1D::SaveTo(ostream & save)
|
||||
|
||||
//=============================================================================
|
||||
/*!
|
||||
*
|
||||
*
|
||||
*/
|
||||
//=============================================================================
|
||||
|
||||
@ -185,28 +175,6 @@ istream & StdMeshers_FixedPoints1D::LoadFrom(istream & load)
|
||||
return load;
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
/*!
|
||||
*
|
||||
*/
|
||||
//=============================================================================
|
||||
|
||||
ostream & operator <<(ostream & save, StdMeshers_FixedPoints1D & hyp)
|
||||
{
|
||||
return hyp.SaveTo( save );
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
/*!
|
||||
*
|
||||
*/
|
||||
//=============================================================================
|
||||
|
||||
istream & operator >>(istream & load, StdMeshers_FixedPoints1D & hyp)
|
||||
{
|
||||
return hyp.LoadFrom( load );
|
||||
}
|
||||
|
||||
//================================================================================
|
||||
/*!
|
||||
* \brief Initialize start and end length by the mesh built on the geometry
|
||||
|
@ -61,14 +61,12 @@ public:
|
||||
|
||||
virtual std::ostream & SaveTo(std::ostream & save);
|
||||
virtual std::istream & LoadFrom(std::istream & load);
|
||||
friend std::ostream& operator << (std::ostream & save, StdMeshers_FixedPoints1D & hyp);
|
||||
friend std::istream& operator >> (std::istream & load, StdMeshers_FixedPoints1D & hyp);
|
||||
|
||||
/*!
|
||||
* \brief Initialize start and end length by the mesh built on the geometry
|
||||
* \param theMesh - the built mesh
|
||||
* \param theShape - the geometry of interest
|
||||
* \retval bool - true if parameter values have been successfully defined
|
||||
* \param theMesh - the built mesh
|
||||
* \param theShape - the geometry of interest
|
||||
* \retval bool - true if parameter values have been successfully defined
|
||||
*/
|
||||
virtual bool SetParametersByMesh(const SMESH_Mesh* theMesh, const TopoDS_Shape& theShape);
|
||||
|
||||
|
@ -994,6 +994,8 @@ bool StdMeshers_Regular_1D::computeInternalParameters(SMESH_Mesh & theMesh,
|
||||
std::vector<int> nbsegs = _fpHyp->GetNbSegments();
|
||||
if ( theReverse )
|
||||
std::reverse( nbsegs.begin(), nbsegs.end() );
|
||||
if ( nbsegs.empty() )
|
||||
nbsegs.push_back( 1 );
|
||||
|
||||
// sort normalized params, taking into account theReverse
|
||||
TColStd_SequenceOfReal Params;
|
||||
|
Loading…
Reference in New Issue
Block a user