mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-03-02 00:05:37 +05:00
0020945: EDF 1465 SMESH: create a new mesh from a selected group or from selected elements
make AddElement() create SMDSAbs_Node element as well
This commit is contained in:
parent
6498f37c2b
commit
7c4f753517
@ -125,19 +125,7 @@ SMESH_MeshEditor::AddElement(const vector<const SMDS_MeshNode*> & node,
|
|||||||
int nbnode = node.size();
|
int nbnode = node.size();
|
||||||
SMESHDS_Mesh* mesh = GetMeshDS();
|
SMESHDS_Mesh* mesh = GetMeshDS();
|
||||||
switch ( type ) {
|
switch ( type ) {
|
||||||
case SMDSAbs_0DElement:
|
|
||||||
if ( nbnode == 1 )
|
|
||||||
if ( ID ) e = mesh->Add0DElementWithID(node[0], ID);
|
|
||||||
else e = mesh->Add0DElement (node[0] );
|
|
||||||
break;
|
|
||||||
case SMDSAbs_Edge:
|
|
||||||
if ( nbnode == 2 )
|
|
||||||
if ( ID ) e = mesh->AddEdgeWithID(node[0], node[1], ID);
|
|
||||||
else e = mesh->AddEdge (node[0], node[1] );
|
|
||||||
else if ( nbnode == 3 )
|
|
||||||
if ( ID ) e = mesh->AddEdgeWithID(node[0], node[1], node[2], ID);
|
|
||||||
else e = mesh->AddEdge (node[0], node[1], node[2] );
|
|
||||||
break;
|
|
||||||
case SMDSAbs_Face:
|
case SMDSAbs_Face:
|
||||||
if ( !isPoly ) {
|
if ( !isPoly ) {
|
||||||
if (nbnode == 3)
|
if (nbnode == 3)
|
||||||
@ -161,6 +149,7 @@ SMESH_MeshEditor::AddElement(const vector<const SMDS_MeshNode*> & node,
|
|||||||
else e = mesh->AddPolygonalFace (node );
|
else e = mesh->AddPolygonalFace (node );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SMDSAbs_Volume:
|
case SMDSAbs_Volume:
|
||||||
if ( !isPoly ) {
|
if ( !isPoly ) {
|
||||||
if (nbnode == 4)
|
if (nbnode == 4)
|
||||||
@ -218,6 +207,29 @@ SMESH_MeshEditor::AddElement(const vector<const SMDS_MeshNode*> & node,
|
|||||||
node[12],node[13],node[14],node[15],
|
node[12],node[13],node[14],node[15],
|
||||||
node[16],node[17],node[18],node[19] );
|
node[16],node[17],node[18],node[19] );
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SMDSAbs_Edge:
|
||||||
|
if ( nbnode == 2 )
|
||||||
|
if ( ID ) e = mesh->AddEdgeWithID(node[0], node[1], ID);
|
||||||
|
else e = mesh->AddEdge (node[0], node[1] );
|
||||||
|
else if ( nbnode == 3 )
|
||||||
|
if ( ID ) e = mesh->AddEdgeWithID(node[0], node[1], node[2], ID);
|
||||||
|
else e = mesh->AddEdge (node[0], node[1], node[2] );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SMDSAbs_0DElement:
|
||||||
|
if ( nbnode == 1 )
|
||||||
|
if ( ID ) e = mesh->Add0DElementWithID(node[0], ID);
|
||||||
|
else e = mesh->Add0DElement (node[0] );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SMDSAbs_Node:
|
||||||
|
if ( ID ) e = mesh->AddNodeWithID(node[0]->X(), node[0]->Y(), node[0]->Z(), ID);
|
||||||
|
else e = mesh->AddNode (node[0]->X(), node[0]->Y(), node[0]->Z());
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:;
|
||||||
}
|
}
|
||||||
return e;
|
return e;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user