mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-01-15 04:40:33 +05:00
Add ConvertFromQuadratic()
This commit is contained in:
parent
d346815d09
commit
3b932ed49d
@ -6023,6 +6023,62 @@ void SMESH_MeshEditor::ConvertToQuadratic(const bool theForce3d)
|
||||
delete aHelper;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : ConvertFromQuadratic
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
bool SMESH_MeshEditor::ConvertFromQuadratic()
|
||||
{
|
||||
SMESHDS_Mesh* meshDS = GetMeshDS();
|
||||
SMDS_ElemIteratorPtr aElemItr = meshDS->elementsIterator();
|
||||
while(aElemItr->more())
|
||||
{
|
||||
const SMDS_MeshElement* elem = aElemItr->next();
|
||||
if(elem)
|
||||
{
|
||||
if(!elem->IsQuadratic())
|
||||
continue;
|
||||
|
||||
int id = elem->GetID();
|
||||
|
||||
int nbNodes = elem->NbNodes();
|
||||
vector<const SMDS_MeshNode *> aNds (nbNodes);
|
||||
|
||||
for(int i = 0; i < nbNodes; i++)
|
||||
{
|
||||
const SMDS_MeshNode* n = elem->GetNode(i);
|
||||
if( elem->IsMediumNode( n ) )
|
||||
meshDS->SMDS_Mesh::RemoveFreeElement( n );
|
||||
else
|
||||
aNds[i] = n;
|
||||
}
|
||||
|
||||
SMDSAbs_ElementType aType = elem->GetType();
|
||||
RemoveElemFromGroups (elem, meshDS);
|
||||
meshDS->SMDS_Mesh::RemoveFreeElement(elem);
|
||||
|
||||
SMDS_MeshElement * NewElem = 0;
|
||||
switch(aType)
|
||||
{
|
||||
case SMDSAbs_Edge:
|
||||
NewElem = meshDS->AddEdgeWithID( ,id );
|
||||
break;
|
||||
case SMDSAbs_Face:
|
||||
if( nbNds==3 )NewElem = meshDS->AddFaceWithID( ,id );
|
||||
if( nbNds==4 )NewElem = meshDS->AddFaceWithID( ,id );
|
||||
break;
|
||||
case SMDSAbs_Volume:
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
AddToSameGroups(NewElem, elem, meshDS);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : SewSideElements
|
||||
//purpose :
|
||||
|
@ -344,6 +344,11 @@ class SMESH_MeshEditor {
|
||||
//converts all mesh to quadratic one, deletes old elements, replacing
|
||||
//them with quadratic ones with the same id.
|
||||
|
||||
bool ConvertFromQuadratic();
|
||||
//converts all mesh from quadratic to ordinary ones, deletes old quadratic elements, replacing
|
||||
//them with ordinary mesh elements with the same id.
|
||||
|
||||
|
||||
// static int SortQuadNodes (const SMDS_Mesh * theMesh,
|
||||
// int theNodeIds[] );
|
||||
// // Set 4 nodes of a quadrangle face in a good order.
|
||||
|
Loading…
Reference in New Issue
Block a user