mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-01-19 00:30:36 +05:00
0020714: EDF GHS3DPLUGIN: shapeToMesh when creating 3D mesh from 2D mesh
* Fix FaceNormal() * Add + static std::vector< const SMDS_MeshNode*> GetCommonNodes(const SMDS_MeshElement* e1, + const SMDS_MeshElement* e2);
This commit is contained in:
parent
8ac52f19a5
commit
4fadfe037a
@ -194,10 +194,10 @@ bool SMESH_Algo::FaceNormal(const SMDS_MeshElement* F, gp_XYZ& normal, bool norm
|
|||||||
gp_XYZ p[3];
|
gp_XYZ p[3];
|
||||||
for ( int n = 0; n < 3; ++n )
|
for ( int n = 0; n < 3; ++n )
|
||||||
{
|
{
|
||||||
const SMDS_MeshNode* node = F->GetNode( n );
|
const SMDS_MeshNode* node = F->GetNode( i + n );
|
||||||
p[n].SetCoord( node->X(), node->Y(), node->Z() );
|
p[n].SetCoord( node->X(), node->Y(), node->Z() );
|
||||||
}
|
}
|
||||||
normal += ( p[0] - p[1] ) ^ ( p[2] - p[1] );
|
normal += ( p[2] - p[1] ) ^ ( p[0] - p[1] );
|
||||||
}
|
}
|
||||||
double size2 = normal.SquareModulus();
|
double size2 = normal.SquareModulus();
|
||||||
bool ok = ( size2 > numeric_limits<double>::min() * numeric_limits<double>::min());
|
bool ok = ( size2 > numeric_limits<double>::min() * numeric_limits<double>::min());
|
||||||
@ -532,6 +532,21 @@ const SMDS_MeshNode* SMESH_Algo::VertexNode(const TopoDS_Vertex& V,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//=======================================================================
|
||||||
|
//function : GetCommonNodes
|
||||||
|
//purpose : Return nodes common to two elements
|
||||||
|
//=======================================================================
|
||||||
|
|
||||||
|
vector< const SMDS_MeshNode*> SMESH_Algo::GetCommonNodes(const SMDS_MeshElement* e1,
|
||||||
|
const SMDS_MeshElement* e2)
|
||||||
|
{
|
||||||
|
vector< const SMDS_MeshNode*> common;
|
||||||
|
for ( int i = 0 ; i < e1->NbNodes(); ++i )
|
||||||
|
if ( e2->GetNodeIndex( e1->GetNode( i )) >= 0 )
|
||||||
|
common.push_back( e1->GetNode( i ));
|
||||||
|
return common;
|
||||||
|
}
|
||||||
|
|
||||||
//================================================================================
|
//================================================================================
|
||||||
/*!
|
/*!
|
||||||
* \brief Sets event listener to submeshes if necessary
|
* \brief Sets event listener to submeshes if necessary
|
||||||
|
@ -316,9 +316,13 @@ public:
|
|||||||
* \param meshDS - mesh
|
* \param meshDS - mesh
|
||||||
* \retval const SMDS_MeshNode* - found node or NULL
|
* \retval const SMDS_MeshNode* - found node or NULL
|
||||||
*/
|
*/
|
||||||
static const SMDS_MeshNode* VertexNode(const TopoDS_Vertex& V,
|
static const SMDS_MeshNode* VertexNode(const TopoDS_Vertex& V, const SMESHDS_Mesh* meshDS);
|
||||||
const SMESHDS_Mesh* meshDS);
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Return nodes common to two elements
|
||||||
|
*/
|
||||||
|
static std::vector< const SMDS_MeshNode*> GetCommonNodes(const SMDS_MeshElement* e1,
|
||||||
|
const SMDS_MeshElement* e2);
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
Loading…
Reference in New Issue
Block a user