mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-01-27 18:50:33 +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_Algo.hxx"
|
||||||
#include "SMESH_Mesh.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;
|
using namespace std;
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
@ -50,14 +40,14 @@ StdMeshers_FixedPoints1D::StdMeshers_FixedPoints1D(int hypId, int studyId,
|
|||||||
:SMESH_Hypothesis(hypId, studyId, gen)
|
:SMESH_Hypothesis(hypId, studyId, gen)
|
||||||
{
|
{
|
||||||
_name = "FixedPoints1D";
|
_name = "FixedPoints1D";
|
||||||
_param_algo_dim = 1;
|
_param_algo_dim = 1;
|
||||||
_nbsegs.reserve( 1 );
|
_nbsegs.reserve( 1 );
|
||||||
_nbsegs.push_back( 1 );
|
_nbsegs.push_back( 1 );
|
||||||
}
|
}
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
/*!
|
/*!
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
|
||||||
@ -72,7 +62,7 @@ StdMeshers_FixedPoints1D::~StdMeshers_FixedPoints1D()
|
|||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
|
||||||
void StdMeshers_FixedPoints1D::SetPoints(std::vector<double>& listParams)
|
void StdMeshers_FixedPoints1D::SetPoints(std::vector<double>& listParams)
|
||||||
throw(SALOME_Exception)
|
throw(SALOME_Exception)
|
||||||
{
|
{
|
||||||
_params = listParams;
|
_params = listParams;
|
||||||
NotifySubMeshesHypothesisModification();
|
NotifySubMeshesHypothesisModification();
|
||||||
@ -85,7 +75,7 @@ void StdMeshers_FixedPoints1D::SetPoints(std::vector<double>& listParams)
|
|||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
|
||||||
void StdMeshers_FixedPoints1D::SetNbSegments(std::vector<int>& listNbSeg)
|
void StdMeshers_FixedPoints1D::SetNbSegments(std::vector<int>& listNbSeg)
|
||||||
throw(SALOME_Exception)
|
throw(SALOME_Exception)
|
||||||
{
|
{
|
||||||
_nbsegs = listNbSeg;
|
_nbsegs = listNbSeg;
|
||||||
NotifySubMeshesHypothesisModification();
|
NotifySubMeshesHypothesisModification();
|
||||||
@ -140,7 +130,7 @@ ostream & StdMeshers_FixedPoints1D::SaveTo(ostream & save)
|
|||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
/*!
|
/*!
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
|
||||||
@ -185,28 +175,6 @@ istream & StdMeshers_FixedPoints1D::LoadFrom(istream & load)
|
|||||||
return 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
|
* \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::ostream & SaveTo(std::ostream & save);
|
||||||
virtual std::istream & LoadFrom(std::istream & load);
|
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
|
* \brief Initialize start and end length by the mesh built on the geometry
|
||||||
* \param theMesh - the built mesh
|
* \param theMesh - the built mesh
|
||||||
* \param theShape - the geometry of interest
|
* \param theShape - the geometry of interest
|
||||||
* \retval bool - true if parameter values have been successfully defined
|
* \retval bool - true if parameter values have been successfully defined
|
||||||
*/
|
*/
|
||||||
virtual bool SetParametersByMesh(const SMESH_Mesh* theMesh, const TopoDS_Shape& theShape);
|
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();
|
std::vector<int> nbsegs = _fpHyp->GetNbSegments();
|
||||||
if ( theReverse )
|
if ( theReverse )
|
||||||
std::reverse( nbsegs.begin(), nbsegs.end() );
|
std::reverse( nbsegs.begin(), nbsegs.end() );
|
||||||
|
if ( nbsegs.empty() )
|
||||||
|
nbsegs.push_back( 1 );
|
||||||
|
|
||||||
// sort normalized params, taking into account theReverse
|
// sort normalized params, taking into account theReverse
|
||||||
TColStd_SequenceOfReal Params;
|
TColStd_SequenceOfReal Params;
|
||||||
|
Loading…
Reference in New Issue
Block a user