mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-02-10 07:03:08 +05:00
0020982: EDF 1547 SMESH: Creation of non-conformal quadratic pyramids
Returns description of an error/warning occured during the last mesh edition
This commit is contained in:
parent
3a58968846
commit
12c889c3f6
@ -375,7 +375,9 @@ bool SMESH_Gen::Compute(SMESH_Mesh & aMesh,
|
|||||||
{
|
{
|
||||||
SMESH_MesherHelper aHelper( aMesh );
|
SMESH_MesherHelper aHelper( aMesh );
|
||||||
if ( aHelper.IsQuadraticMesh() != SMESH_MesherHelper::LINEAR )
|
if ( aHelper.IsQuadraticMesh() != SMESH_MesherHelper::LINEAR )
|
||||||
aHelper.FixQuadraticElements();
|
{
|
||||||
|
aHelper.FixQuadraticElements( sm->GetComputeError() );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -9635,7 +9635,7 @@ void SMESH_MeshEditor::ConvertToQuadratic(const bool theForce3d)
|
|||||||
if ( !theForce3d )
|
if ( !theForce3d )
|
||||||
{ // setenv NO_FixQuadraticElements to know if FixQuadraticElements() is guilty of bad conversion
|
{ // setenv NO_FixQuadraticElements to know if FixQuadraticElements() is guilty of bad conversion
|
||||||
aHelper.SetSubShape(0); // apply FixQuadraticElements() to the whole mesh
|
aHelper.SetSubShape(0); // apply FixQuadraticElements() to the whole mesh
|
||||||
aHelper.FixQuadraticElements();
|
aHelper.FixQuadraticElements(myError);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -9775,7 +9775,7 @@ void SMESH_MeshEditor::ConvertToQuadratic(const bool theForce3d,
|
|||||||
if ( !theForce3d && !getenv("NO_FixQuadraticElements"))
|
if ( !theForce3d && !getenv("NO_FixQuadraticElements"))
|
||||||
{ // setenv NO_FixQuadraticElements to know if FixQuadraticElements() is guilty of bad conversion
|
{ // setenv NO_FixQuadraticElements to know if FixQuadraticElements() is guilty of bad conversion
|
||||||
helper.SetSubShape(0); // apply FixQuadraticElements() to the whole mesh
|
helper.SetSubShape(0); // apply FixQuadraticElements() to the whole mesh
|
||||||
helper.FixQuadraticElements();
|
helper.FixQuadraticElements( myError );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,6 +34,7 @@
|
|||||||
#include "SMESH_Controls.hxx"
|
#include "SMESH_Controls.hxx"
|
||||||
#include "SMESH_Mesh.hxx"
|
#include "SMESH_Mesh.hxx"
|
||||||
#include "SMESH_TypeDefs.hxx"
|
#include "SMESH_TypeDefs.hxx"
|
||||||
|
#include "SMESH_ComputeError.hxx"
|
||||||
|
|
||||||
#include <utilities.h>
|
#include <utilities.h>
|
||||||
|
|
||||||
@ -110,6 +111,14 @@ public:
|
|||||||
|
|
||||||
SMESH_MeshEditor( SMESH_Mesh* theMesh );
|
SMESH_MeshEditor( SMESH_Mesh* theMesh );
|
||||||
|
|
||||||
|
SMESH_Mesh * GetMesh() { return myMesh; }
|
||||||
|
SMESHDS_Mesh * GetMeshDS() { return myMesh->GetMeshDS(); }
|
||||||
|
|
||||||
|
const SMESH_SequenceOfElemPtr& GetLastCreatedNodes() const { return myLastCreatedNodes; }
|
||||||
|
const SMESH_SequenceOfElemPtr& GetLastCreatedElems() const { return myLastCreatedElems; }
|
||||||
|
|
||||||
|
SMESH_ComputeErrorPtr & GetError() { return myError; }
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Add element
|
* \brief Add element
|
||||||
*/
|
*/
|
||||||
@ -561,14 +570,6 @@ public:
|
|||||||
// Return an index of the shape theElem is on
|
// Return an index of the shape theElem is on
|
||||||
// or zero if a shape not found
|
// or zero if a shape not found
|
||||||
|
|
||||||
SMESH_Mesh * GetMesh() { return myMesh; }
|
|
||||||
|
|
||||||
SMESHDS_Mesh * GetMeshDS() { return myMesh->GetMeshDS(); }
|
|
||||||
|
|
||||||
const SMESH_SequenceOfElemPtr& GetLastCreatedNodes() const { return myLastCreatedNodes; }
|
|
||||||
|
|
||||||
const SMESH_SequenceOfElemPtr& GetLastCreatedElems() const { return myLastCreatedElems; }
|
|
||||||
|
|
||||||
bool DoubleNodes( const std::list< int >& theListOfNodes,
|
bool DoubleNodes( const std::list< int >& theListOfNodes,
|
||||||
const std::list< int >& theListOfModifiedElems );
|
const std::list< int >& theListOfModifiedElems );
|
||||||
|
|
||||||
@ -721,18 +722,13 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
SMESH_Mesh * myMesh;
|
SMESH_Mesh * myMesh;
|
||||||
|
|
||||||
/*!
|
// Nodes and elements created during last operation
|
||||||
* Sequence for keeping nodes created during last operation
|
SMESH_SequenceOfElemPtr myLastCreatedNodes, myLastCreatedElems;
|
||||||
*/
|
|
||||||
SMESH_SequenceOfElemPtr myLastCreatedNodes;
|
|
||||||
|
|
||||||
/*!
|
|
||||||
* Sequence for keeping elements created during last operation
|
|
||||||
*/
|
|
||||||
SMESH_SequenceOfElemPtr myLastCreatedElems;
|
|
||||||
|
|
||||||
|
// Description of error/warning occured during last operation
|
||||||
|
SMESH_ComputeErrorPtr myError;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -195,9 +195,10 @@ public:
|
|||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Move medium nodes of faces and volumes to fix distorted elements
|
* \brief Move medium nodes of faces and volumes to fix distorted elements
|
||||||
|
* \param error - container of fixed distorted elements
|
||||||
* \param volumeOnly - fix nodes on geom faces or not if the shape is solid
|
* \param volumeOnly - fix nodes on geom faces or not if the shape is solid
|
||||||
*/
|
*/
|
||||||
void FixQuadraticElements(bool volumeOnly=true);
|
void FixQuadraticElements(SMESH_ComputeErrorPtr& error, bool volumeOnly=true);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief To set created elements on the shape set by IsQuadraticSubMesh()
|
* \brief To set created elements on the shape set by IsQuadraticSubMesh()
|
||||||
|
Loading…
Reference in New Issue
Block a user