mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-11-15 10:08:34 +05:00
0021363: EDF 1957 SMESH: Use of viscous layers with BLSURF
fix up incorrect uv of nodes on the FACE
This commit is contained in:
parent
d5627df2d4
commit
0f954310b4
@ -71,7 +71,7 @@
|
|||||||
|
|
||||||
#include <list>
|
#include <list>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <math.h>
|
#include <cmath>
|
||||||
#include <limits>
|
#include <limits>
|
||||||
|
|
||||||
//#define __myDEBUG
|
//#define __myDEBUG
|
||||||
@ -116,7 +116,7 @@ namespace VISCOUS
|
|||||||
//--------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------
|
||||||
/*!
|
/*!
|
||||||
* \brief Listener of events of 3D sub-meshes computed with viscous layers.
|
* \brief Listener of events of 3D sub-meshes computed with viscous layers.
|
||||||
* It is used to clear an inferior dim sub-mesh modified by viscous layers
|
* It is used to clear an inferior dim sub-meshes modified by viscous layers
|
||||||
*/
|
*/
|
||||||
class _SrinkShapeListener : SMESH_subMeshEventListener
|
class _SrinkShapeListener : SMESH_subMeshEventListener
|
||||||
{
|
{
|
||||||
@ -911,7 +911,7 @@ SMESH_ComputeErrorPtr _ViscousBuilder::Compute(SMESH_Mesh& theMesh,
|
|||||||
|
|
||||||
//================================================================================
|
//================================================================================
|
||||||
/*!
|
/*!
|
||||||
* \brief Finds SOLIDs to compute using viscous layers. Fill _sdVec
|
* \brief Finds SOLIDs to compute using viscous layers. Fills _sdVec
|
||||||
*/
|
*/
|
||||||
//================================================================================
|
//================================================================================
|
||||||
|
|
||||||
@ -3312,6 +3312,7 @@ bool _ViscousBuilder::shrink()
|
|||||||
SMDS_ElemIteratorPtr fIt = smDS->GetElements();
|
SMDS_ElemIteratorPtr fIt = smDS->GetElements();
|
||||||
while ( fIt->more() )
|
while ( fIt->more() )
|
||||||
proxySub->AddElement( fIt->next() );
|
proxySub->AddElement( fIt->next() );
|
||||||
|
// as a result 3D algo will use elements from proxySub and not from smDS
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3341,8 +3342,8 @@ bool _ViscousBuilder::shrink()
|
|||||||
// Prepare data for shrinking
|
// Prepare data for shrinking
|
||||||
// ===========================
|
// ===========================
|
||||||
|
|
||||||
// Collect nodes to smooth as src nodes are not yet replaced by tgt ones
|
// Collect nodes to smooth, as src nodes are not yet replaced by tgt ones
|
||||||
// and thus all nodes on FACE connected to 2d elements are to be smoothed
|
// and thus all nodes on a FACE connected to 2d elements are to be smoothed
|
||||||
vector < const SMDS_MeshNode* > smoothNodes;
|
vector < const SMDS_MeshNode* > smoothNodes;
|
||||||
{
|
{
|
||||||
SMDS_NodeIteratorPtr nIt = smDS->GetNodes();
|
SMDS_NodeIteratorPtr nIt = smDS->GetNodes();
|
||||||
@ -3410,6 +3411,7 @@ bool _ViscousBuilder::shrink()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Create _SmoothNode's on face F
|
// Create _SmoothNode's on face F
|
||||||
|
bool isOkUV;
|
||||||
vector< _SmoothNode > nodesToSmooth( smoothNodes.size() );
|
vector< _SmoothNode > nodesToSmooth( smoothNodes.size() );
|
||||||
{
|
{
|
||||||
dumpFunction(SMESH_Comment("beforeShrinkFace")<<f2sd->first); // debug
|
dumpFunction(SMESH_Comment("beforeShrinkFace")<<f2sd->first); // debug
|
||||||
@ -3419,6 +3421,8 @@ bool _ViscousBuilder::shrink()
|
|||||||
nodesToSmooth[ i ]._node = n;
|
nodesToSmooth[ i ]._node = n;
|
||||||
// src nodes must be replaced by tgt nodes to have tgt nodes in _simplices
|
// src nodes must be replaced by tgt nodes to have tgt nodes in _simplices
|
||||||
getSimplices( n, nodesToSmooth[ i ]._simplices, ignoreShapes );
|
getSimplices( n, nodesToSmooth[ i ]._simplices, ignoreShapes );
|
||||||
|
// fix up incorrect uv of nodes on the FACE
|
||||||
|
helper.GetNodeUV( F, n, 0, &isOkUV);
|
||||||
dumpMove( n );
|
dumpMove( n );
|
||||||
}
|
}
|
||||||
dumpFunctionEnd();
|
dumpFunctionEnd();
|
||||||
@ -4020,6 +4024,7 @@ void _Shrinker1D::RestoreParams()
|
|||||||
}
|
}
|
||||||
_done = false;
|
_done = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
//================================================================================
|
//================================================================================
|
||||||
/*!
|
/*!
|
||||||
* \brief Replace source nodes by target nodes in shrinked mesh edges
|
* \brief Replace source nodes by target nodes in shrinked mesh edges
|
||||||
|
Loading…
Reference in New Issue
Block a user