mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-02-11 00:33:08 +05:00
Solve problems:
1. Trying to apply the same 2d pattern subsequently to two adjacent mesh faces leads to segmentation violation 2. Attempt to apply a 3D pattern to two adjacent volumes hangs up SALOME. 3. Passing 0 or 1 as node index argument to SMESH_Pattern::ApplyToMeshFaces() gives identical results.
This commit is contained in:
parent
5b961b878c
commit
1e59cc2426
@ -2495,7 +2495,7 @@ bool SMESH_Pattern::Apply (const SMDS_MeshFace* theFace,
|
|||||||
nodes.reverse();
|
nodes.reverse();
|
||||||
}
|
}
|
||||||
else if ( n != nodes.begin() )
|
else if ( n != nodes.begin() )
|
||||||
nodes.splice( nodes.end(), nodes, nodes.begin(), --n );
|
nodes.splice( nodes.end(), nodes, nodes.begin(), n );
|
||||||
}
|
}
|
||||||
list< gp_XYZ > xyzList;
|
list< gp_XYZ > xyzList;
|
||||||
myOrderedNodes.resize( theFace->NbNodes() );
|
myOrderedNodes.resize( theFace->NbNodes() );
|
||||||
@ -2708,9 +2708,13 @@ bool SMESH_Pattern::Apply (std::set<const SMDS_MeshFace*> theFaces,
|
|||||||
return setErrorCode( ERR_APPL_BAD_NB_VERTICES );
|
return setErrorCode( ERR_APPL_BAD_NB_VERTICES );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
myXYZ.clear();
|
||||||
|
myElemXYZIDs.clear();
|
||||||
|
myXYZIdToNodeMap.clear();
|
||||||
|
myElements.clear();
|
||||||
|
|
||||||
myXYZ.resize( myPoints.size() * theFaces.size(), undefinedXYZ() );
|
myXYZ.resize( myPoints.size() * theFaces.size(), undefinedXYZ() );
|
||||||
myElements.reserve( theFaces.size() );
|
myElements.reserve( theFaces.size() );
|
||||||
myElemXYZIDs.clear();
|
|
||||||
|
|
||||||
// to find point index
|
// to find point index
|
||||||
map< TPoint*, int > pointIndex;
|
map< TPoint*, int > pointIndex;
|
||||||
@ -2807,9 +2811,13 @@ bool SMESH_Pattern::Apply (std::set<const SMDS_MeshVolume*> theVolumes,
|
|||||||
return setErrorCode( ERR_APPL_BAD_NB_VERTICES );
|
return setErrorCode( ERR_APPL_BAD_NB_VERTICES );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
myXYZ.clear();
|
||||||
|
myElemXYZIDs.clear();
|
||||||
|
myXYZIdToNodeMap.clear();
|
||||||
|
myElements.clear();
|
||||||
|
|
||||||
myXYZ.resize( myPoints.size() * theVolumes.size(), undefinedXYZ() );
|
myXYZ.resize( myPoints.size() * theVolumes.size(), undefinedXYZ() );
|
||||||
myElements.reserve( theVolumes.size() );
|
myElements.reserve( theVolumes.size() );
|
||||||
myElemXYZIDs.clear();
|
|
||||||
|
|
||||||
// to find point index
|
// to find point index
|
||||||
map< TPoint*, int > pointIndex;
|
map< TPoint*, int > pointIndex;
|
||||||
|
Loading…
Reference in New Issue
Block a user