mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-12-28 02:10:35 +05:00
SALOME Forum bug: http://www.salome-platform.org/forum/forum_10/967838025
Re-fix "Regression of XSMESH_TEST/SMESHCOMMON/SMESH_TEST/Grids/smesh/bugs12/M6" previously fixed by revision 1.23.2.9. Use TElemOfElemListMap with new comparator TIDTypeCompare instead of TElemOfElemListMap declared in SMESH_TypeDefs.hxx which uses TIDCompare (whose behavior has been just restored)
This commit is contained in:
parent
c4b93d024f
commit
211c8198b3
@ -4200,7 +4200,7 @@ void SMESH_MeshEditor::sweepElement(const SMDS_MeshElement* elem,
|
|||||||
//=======================================================================
|
//=======================================================================
|
||||||
|
|
||||||
void SMESH_MeshEditor::makeWalls (TNodeOfNodeListMap & mapNewNodes,
|
void SMESH_MeshEditor::makeWalls (TNodeOfNodeListMap & mapNewNodes,
|
||||||
TElemOfElemListMap & newElemsMap,
|
TTElemOfElemListMap & newElemsMap,
|
||||||
TElemOfVecOfNnlmiMap & elemNewNodesMap,
|
TElemOfVecOfNnlmiMap & elemNewNodesMap,
|
||||||
TIDSortedElemSet& elemSet,
|
TIDSortedElemSet& elemSet,
|
||||||
const int nbSteps,
|
const int nbSteps,
|
||||||
@ -4245,7 +4245,7 @@ void SMESH_MeshEditor::makeWalls (TNodeOfNodeListMap & mapNewNodes,
|
|||||||
// Make a ceiling for each element ie an equal element of last new nodes.
|
// Make a ceiling for each element ie an equal element of last new nodes.
|
||||||
// Find free links of faces - make edges and sweep them into faces.
|
// Find free links of faces - make edges and sweep them into faces.
|
||||||
|
|
||||||
TElemOfElemListMap::iterator itElem = newElemsMap.begin();
|
TTElemOfElemListMap::iterator itElem = newElemsMap.begin();
|
||||||
TElemOfVecOfNnlmiMap::iterator itElemNodes = elemNewNodesMap.begin();
|
TElemOfVecOfNnlmiMap::iterator itElemNodes = elemNewNodesMap.begin();
|
||||||
for ( ; itElem != newElemsMap.end(); itElem++, itElemNodes++ )
|
for ( ; itElem != newElemsMap.end(); itElem++, itElemNodes++ )
|
||||||
{
|
{
|
||||||
@ -4630,7 +4630,7 @@ SMESH_MeshEditor::RotationSweep(TIDSortedElemSet & theElems,
|
|||||||
|
|
||||||
TNodeOfNodeListMap mapNewNodes;
|
TNodeOfNodeListMap mapNewNodes;
|
||||||
TElemOfVecOfNnlmiMap mapElemNewNodes;
|
TElemOfVecOfNnlmiMap mapElemNewNodes;
|
||||||
TElemOfElemListMap newElemsMap;
|
TTElemOfElemListMap newElemsMap;
|
||||||
|
|
||||||
const bool isQuadraticMesh = bool( myMesh->NbEdges(ORDER_QUADRATIC) +
|
const bool isQuadraticMesh = bool( myMesh->NbEdges(ORDER_QUADRATIC) +
|
||||||
myMesh->NbFaces(ORDER_QUADRATIC) +
|
myMesh->NbFaces(ORDER_QUADRATIC) +
|
||||||
@ -4772,13 +4772,13 @@ const SMDS_MeshNode* SMESH_MeshEditor::CreateNode(const double x,
|
|||||||
//=======================================================================
|
//=======================================================================
|
||||||
|
|
||||||
SMESH_MeshEditor::PGroupIDs
|
SMESH_MeshEditor::PGroupIDs
|
||||||
SMESH_MeshEditor::ExtrusionSweep (TIDSortedElemSet & theElems,
|
SMESH_MeshEditor::ExtrusionSweep (TIDSortedElemSet & theElems,
|
||||||
const gp_Vec& theStep,
|
const gp_Vec& theStep,
|
||||||
const int theNbSteps,
|
const int theNbSteps,
|
||||||
TElemOfElemListMap& newElemsMap,
|
TTElemOfElemListMap& newElemsMap,
|
||||||
const bool theMakeGroups,
|
const bool theMakeGroups,
|
||||||
const int theFlags,
|
const int theFlags,
|
||||||
const double theTolerance)
|
const double theTolerance)
|
||||||
{
|
{
|
||||||
ExtrusParam aParams;
|
ExtrusParam aParams;
|
||||||
aParams.myDir = gp_Dir(theStep);
|
aParams.myDir = gp_Dir(theStep);
|
||||||
@ -4799,12 +4799,12 @@ SMESH_MeshEditor::ExtrusionSweep (TIDSortedElemSet & theElems,
|
|||||||
//=======================================================================
|
//=======================================================================
|
||||||
|
|
||||||
SMESH_MeshEditor::PGroupIDs
|
SMESH_MeshEditor::PGroupIDs
|
||||||
SMESH_MeshEditor::ExtrusionSweep (TIDSortedElemSet & theElems,
|
SMESH_MeshEditor::ExtrusionSweep (TIDSortedElemSet & theElems,
|
||||||
ExtrusParam& theParams,
|
ExtrusParam& theParams,
|
||||||
TElemOfElemListMap& newElemsMap,
|
TTElemOfElemListMap& newElemsMap,
|
||||||
const bool theMakeGroups,
|
const bool theMakeGroups,
|
||||||
const int theFlags,
|
const int theFlags,
|
||||||
const double theTolerance)
|
const double theTolerance)
|
||||||
{
|
{
|
||||||
myLastCreatedElems.Clear();
|
myLastCreatedElems.Clear();
|
||||||
myLastCreatedNodes.Clear();
|
myLastCreatedNodes.Clear();
|
||||||
@ -5468,7 +5468,7 @@ SMESH_MeshEditor::MakeExtrElements(TIDSortedElemSet& theElements
|
|||||||
|
|
||||||
TNodeOfNodeListMap mapNewNodes;
|
TNodeOfNodeListMap mapNewNodes;
|
||||||
TElemOfVecOfNnlmiMap mapElemNewNodes;
|
TElemOfVecOfNnlmiMap mapElemNewNodes;
|
||||||
TElemOfElemListMap newElemsMap;
|
TTElemOfElemListMap newElemsMap;
|
||||||
TIDSortedElemSet::iterator itElem;
|
TIDSortedElemSet::iterator itElem;
|
||||||
// source elements for each generated one
|
// source elements for each generated one
|
||||||
SMESH_SequenceOfElemPtr srcElems, srcNodes;
|
SMESH_SequenceOfElemPtr srcElems, srcNodes;
|
||||||
|
@ -193,6 +193,12 @@ public:
|
|||||||
// If the2D, smoothing is performed using UV parameters of nodes
|
// If the2D, smoothing is performed using UV parameters of nodes
|
||||||
// on geometrical faces
|
// on geometrical faces
|
||||||
|
|
||||||
|
typedef std::map < const SMDS_MeshElement*,
|
||||||
|
std::list<const SMDS_MeshElement*>, TIDTypeCompare > TTElemOfElemListMap;
|
||||||
|
typedef std::map<const SMDS_MeshNode*, std::list<const SMDS_MeshNode*> > TNodeOfNodeListMap;
|
||||||
|
typedef TNodeOfNodeListMap::iterator TNodeOfNodeListMapItr;
|
||||||
|
typedef std::vector<TNodeOfNodeListMapItr> TVecOfNnlmiMap;
|
||||||
|
typedef std::map<const SMDS_MeshElement*, TVecOfNnlmiMap, TIDCompare > TElemOfVecOfNnlmiMap;
|
||||||
typedef std::auto_ptr< std::list<int> > PGroupIDs;
|
typedef std::auto_ptr< std::list<int> > PGroupIDs;
|
||||||
|
|
||||||
PGroupIDs RotationSweep (TIDSortedElemSet & theElements,
|
PGroupIDs RotationSweep (TIDSortedElemSet & theElements,
|
||||||
@ -246,13 +252,13 @@ public:
|
|||||||
* @param theTolerance - uses for comparing locations of nodes if flag
|
* @param theTolerance - uses for comparing locations of nodes if flag
|
||||||
* EXTRUSION_FLAG_SEW is set
|
* EXTRUSION_FLAG_SEW is set
|
||||||
*/
|
*/
|
||||||
PGroupIDs ExtrusionSweep (TIDSortedElemSet & theElems,
|
PGroupIDs ExtrusionSweep (TIDSortedElemSet & theElems,
|
||||||
const gp_Vec& theStep,
|
const gp_Vec& theStep,
|
||||||
const int theNbSteps,
|
const int theNbSteps,
|
||||||
TElemOfElemListMap& newElemsMap,
|
TTElemOfElemListMap& newElemsMap,
|
||||||
const bool theMakeGroups,
|
const bool theMakeGroups,
|
||||||
const int theFlags = EXTRUSION_FLAG_BOUNDARY,
|
const int theFlags = EXTRUSION_FLAG_BOUNDARY,
|
||||||
const double theTolerance = 1.e-6);
|
const double theTolerance = 1.e-6);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Generate new elements by extrusion of theElements
|
* Generate new elements by extrusion of theElements
|
||||||
@ -264,12 +270,12 @@ public:
|
|||||||
* EXTRUSION_FLAG_SEW is set
|
* EXTRUSION_FLAG_SEW is set
|
||||||
* @param theParams - special structure for manage of extrusion
|
* @param theParams - special structure for manage of extrusion
|
||||||
*/
|
*/
|
||||||
PGroupIDs ExtrusionSweep (TIDSortedElemSet & theElems,
|
PGroupIDs ExtrusionSweep (TIDSortedElemSet & theElems,
|
||||||
ExtrusParam& theParams,
|
ExtrusParam& theParams,
|
||||||
TElemOfElemListMap& newElemsMap,
|
TTElemOfElemListMap& newElemsMap,
|
||||||
const bool theMakeGroups,
|
const bool theMakeGroups,
|
||||||
const int theFlags,
|
const int theFlags,
|
||||||
const double theTolerance);
|
const double theTolerance);
|
||||||
|
|
||||||
|
|
||||||
// Generate new elements by extrusion of theElements
|
// Generate new elements by extrusion of theElements
|
||||||
@ -581,13 +587,6 @@ public:
|
|||||||
const SMESH_SequenceOfElemPtr& elemGens,
|
const SMESH_SequenceOfElemPtr& elemGens,
|
||||||
const std::string& postfix,
|
const std::string& postfix,
|
||||||
SMESH_Mesh* targetMesh=0);
|
SMESH_Mesh* targetMesh=0);
|
||||||
|
|
||||||
|
|
||||||
typedef std::map<const SMDS_MeshNode*, std::list<const SMDS_MeshNode*> > TNodeOfNodeListMap;
|
|
||||||
typedef TNodeOfNodeListMap::iterator TNodeOfNodeListMapItr;
|
|
||||||
typedef std::vector<TNodeOfNodeListMapItr> TVecOfNnlmiMap;
|
|
||||||
typedef std::map<const SMDS_MeshElement*, TVecOfNnlmiMap, TIDCompare > TElemOfVecOfNnlmiMap;
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Create elements by sweeping an element
|
* \brief Create elements by sweeping an element
|
||||||
* \param elem - element to sweep
|
* \param elem - element to sweep
|
||||||
@ -612,7 +611,7 @@ public:
|
|||||||
* \param srcElements - to append elem for each generated element
|
* \param srcElements - to append elem for each generated element
|
||||||
*/
|
*/
|
||||||
void makeWalls (TNodeOfNodeListMap & mapNewNodes,
|
void makeWalls (TNodeOfNodeListMap & mapNewNodes,
|
||||||
TElemOfElemListMap & newElemsMap,
|
TTElemOfElemListMap & newElemsMap,
|
||||||
TElemOfVecOfNnlmiMap & elemNewNodesMap,
|
TElemOfVecOfNnlmiMap & elemNewNodesMap,
|
||||||
TIDSortedElemSet& elemSet,
|
TIDSortedElemSet& elemSet,
|
||||||
const int nbSteps,
|
const int nbSteps,
|
||||||
|
Loading…
Reference in New Issue
Block a user