mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-12-26 01:10:35 +05:00
introduce biquadratic quadratic pentahedron (18 nodes)
This commit is contained in:
parent
76430457f1
commit
2077baef82
@ -191,6 +191,7 @@ module SMESH
|
|||||||
Entity_TriQuad_Hexa,
|
Entity_TriQuad_Hexa,
|
||||||
Entity_Penta,
|
Entity_Penta,
|
||||||
Entity_Quad_Penta,
|
Entity_Quad_Penta,
|
||||||
|
Entity_BiQuad_Penta,
|
||||||
Entity_Hexagonal_Prism,
|
Entity_Hexagonal_Prism,
|
||||||
Entity_Polyhedra,
|
Entity_Polyhedra,
|
||||||
Entity_Quad_Polyhedra,
|
Entity_Quad_Polyhedra,
|
||||||
|
@ -616,7 +616,8 @@ double MaxElementLength3D::GetValue( long theElementId )
|
|||||||
aVal = Max(aVal,Max(L7,L8));
|
aVal = Max(aVal,Max(L7,L8));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SMDSEntity_Quad_Penta: { // quadratic pentas
|
case SMDSEntity_Quad_Penta:
|
||||||
|
case SMDSEntity_BiQuad_Penta: { // quadratic pentas
|
||||||
double L1 = getDistance(P( 1 ),P( 7 )) + getDistance(P( 7 ),P( 2 ));
|
double L1 = getDistance(P( 1 ),P( 7 )) + getDistance(P( 7 ),P( 2 ));
|
||||||
double L2 = getDistance(P( 2 ),P( 8 )) + getDistance(P( 8 ),P( 3 ));
|
double L2 = getDistance(P( 2 ),P( 8 )) + getDistance(P( 8 ),P( 3 ));
|
||||||
double L3 = getDistance(P( 3 ),P( 9 )) + getDistance(P( 9 ),P( 1 ));
|
double L3 = getDistance(P( 3 ),P( 9 )) + getDistance(P( 9 ),P( 1 ));
|
||||||
@ -1619,7 +1620,7 @@ double Length2D::GetValue( long theElementId )
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case SMDSEntity_Pyramid:
|
case SMDSEntity_Pyramid:
|
||||||
if (len == 5){ // piramids
|
if (len == 5){ // pyramid
|
||||||
double L1 = getDistance(P( 1 ),P( 2 ));
|
double L1 = getDistance(P( 1 ),P( 2 ));
|
||||||
double L2 = getDistance(P( 2 ),P( 3 ));
|
double L2 = getDistance(P( 2 ),P( 3 ));
|
||||||
double L3 = getDistance(P( 3 ),P( 4 ));
|
double L3 = getDistance(P( 3 ),P( 4 ));
|
||||||
@ -1634,7 +1635,7 @@ double Length2D::GetValue( long theElementId )
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case SMDSEntity_Penta:
|
case SMDSEntity_Penta:
|
||||||
if (len == 6) { // pentaidres
|
if (len == 6) { // pentahedron
|
||||||
double L1 = getDistance(P( 1 ),P( 2 ));
|
double L1 = getDistance(P( 1 ),P( 2 ));
|
||||||
double L2 = getDistance(P( 2 ),P( 3 ));
|
double L2 = getDistance(P( 2 ),P( 3 ));
|
||||||
double L3 = getDistance(P( 3 ),P( 1 ));
|
double L3 = getDistance(P( 3 ),P( 1 ));
|
||||||
@ -1670,7 +1671,7 @@ double Length2D::GetValue( long theElementId )
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case SMDSEntity_Quad_Tetra:
|
case SMDSEntity_Quad_Tetra:
|
||||||
if (len == 10){ // quadratic tetraidrs
|
if (len == 10){ // quadratic tetrahedron
|
||||||
double L1 = getDistance(P( 1 ),P( 5 )) + getDistance(P( 5 ),P( 2 ));
|
double L1 = getDistance(P( 1 ),P( 5 )) + getDistance(P( 5 ),P( 2 ));
|
||||||
double L2 = getDistance(P( 2 ),P( 6 )) + getDistance(P( 6 ),P( 3 ));
|
double L2 = getDistance(P( 2 ),P( 6 )) + getDistance(P( 6 ),P( 3 ));
|
||||||
double L3 = getDistance(P( 3 ),P( 7 )) + getDistance(P( 7 ),P( 1 ));
|
double L3 = getDistance(P( 3 ),P( 7 )) + getDistance(P( 7 ),P( 1 ));
|
||||||
@ -1681,7 +1682,7 @@ double Length2D::GetValue( long theElementId )
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case SMDSEntity_Quad_Pyramid:
|
case SMDSEntity_Quad_Pyramid:
|
||||||
if (len == 13){ // quadratic piramids
|
if (len == 13){ // quadratic pyramid
|
||||||
double L1 = getDistance(P( 1 ),P( 6 )) + getDistance(P( 6 ),P( 2 ));
|
double L1 = getDistance(P( 1 ),P( 6 )) + getDistance(P( 6 ),P( 2 ));
|
||||||
double L2 = getDistance(P( 2 ),P( 7 )) + getDistance(P( 7 ),P( 3 ));
|
double L2 = getDistance(P( 2 ),P( 7 )) + getDistance(P( 7 ),P( 3 ));
|
||||||
double L3 = getDistance(P( 3 ),P( 8 )) + getDistance(P( 8 ),P( 4 ));
|
double L3 = getDistance(P( 3 ),P( 8 )) + getDistance(P( 8 ),P( 4 ));
|
||||||
@ -1695,7 +1696,8 @@ double Length2D::GetValue( long theElementId )
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case SMDSEntity_Quad_Penta:
|
case SMDSEntity_Quad_Penta:
|
||||||
if (len == 15){ // quadratic pentaidres
|
case SMDSEntity_BiQuad_Penta:
|
||||||
|
if (len >= 15){ // quadratic pentahedron
|
||||||
double L1 = getDistance(P( 1 ),P( 7 )) + getDistance(P( 7 ),P( 2 ));
|
double L1 = getDistance(P( 1 ),P( 7 )) + getDistance(P( 7 ),P( 2 ));
|
||||||
double L2 = getDistance(P( 2 ),P( 8 )) + getDistance(P( 8 ),P( 3 ));
|
double L2 = getDistance(P( 2 ),P( 8 )) + getDistance(P( 8 ),P( 3 ));
|
||||||
double L3 = getDistance(P( 3 ),P( 9 )) + getDistance(P( 9 ),P( 1 ));
|
double L3 = getDistance(P( 3 ),P( 9 )) + getDistance(P( 9 ),P( 1 ));
|
||||||
@ -1711,7 +1713,7 @@ double Length2D::GetValue( long theElementId )
|
|||||||
break;
|
break;
|
||||||
case SMDSEntity_Quad_Hexa:
|
case SMDSEntity_Quad_Hexa:
|
||||||
case SMDSEntity_TriQuad_Hexa:
|
case SMDSEntity_TriQuad_Hexa:
|
||||||
if (len >= 20) { // quadratic hexaider
|
if (len >= 20) { // quadratic hexahedron
|
||||||
double L1 = getDistance(P( 1 ),P( 9 )) + getDistance(P( 9 ),P( 2 ));
|
double L1 = getDistance(P( 1 ),P( 9 )) + getDistance(P( 9 ),P( 2 ));
|
||||||
double L2 = getDistance(P( 2 ),P( 10 )) + getDistance(P( 10 ),P( 3 ));
|
double L2 = getDistance(P( 2 ),P( 10 )) + getDistance(P( 10 ),P( 3 ));
|
||||||
double L3 = getDistance(P( 3 ),P( 11 )) + getDistance(P( 11 ),P( 4 ));
|
double L3 = getDistance(P( 3 ),P( 11 )) + getDistance(P( 11 ),P( 4 ));
|
||||||
|
@ -130,6 +130,11 @@ namespace
|
|||||||
interlaces[SMDSEntity_Quad_Penta] = ids;
|
interlaces[SMDSEntity_Quad_Penta] = ids;
|
||||||
cgTypes [SMDSEntity_Quad_Penta] = CGNS_ENUMV( PENTA_15 );
|
cgTypes [SMDSEntity_Quad_Penta] = CGNS_ENUMV( PENTA_15 );
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
static int ids[] = { 0,2,1,3,5,4,8,7,6,9,11,10,14,13,12,15,16,17 }; // TODO: check CGNS ORDER
|
||||||
|
interlaces[SMDSEntity_BiQuad_Penta] = ids;
|
||||||
|
cgTypes [SMDSEntity_BiQuad_Penta] = CGNS_ENUMV( PENTA_18 );
|
||||||
|
}
|
||||||
{
|
{
|
||||||
static int ids[] = { 0,3,2,1,4,7,6,5 };
|
static int ids[] = { 0,3,2,1,4,7,6,5 };
|
||||||
interlaces[SMDSEntity_Hexa] = ids;
|
interlaces[SMDSEntity_Hexa] = ids;
|
||||||
|
@ -393,6 +393,7 @@ namespace DriverMED // Implemetation of fuctions declared in DriverMED.hxx
|
|||||||
theVec[ SMDSEntity_TriQuad_Hexa ] = MED::eHEXA27 ;
|
theVec[ SMDSEntity_TriQuad_Hexa ] = MED::eHEXA27 ;
|
||||||
theVec[ SMDSEntity_Penta ] = MED::ePENTA6 ;
|
theVec[ SMDSEntity_Penta ] = MED::ePENTA6 ;
|
||||||
theVec[ SMDSEntity_Quad_Penta ] = MED::ePENTA15 ;
|
theVec[ SMDSEntity_Quad_Penta ] = MED::ePENTA15 ;
|
||||||
|
theVec[ SMDSEntity_BiQuad_Penta ] = MED::ePENTA18 ;
|
||||||
theVec[ SMDSEntity_Hexagonal_Prism ] = MED::eOCTA12 ;
|
theVec[ SMDSEntity_Hexagonal_Prism ] = MED::eOCTA12 ;
|
||||||
theVec[ SMDSEntity_Polyhedra ] = MED::ePOLYEDRE;
|
theVec[ SMDSEntity_Polyhedra ] = MED::ePOLYEDRE;
|
||||||
//theVec[ SMDSEntity_Quad_Polyhedra ] = MED::ePOLYEDRE; // !!
|
//theVec[ SMDSEntity_Quad_Polyhedra ] = MED::ePOLYEDRE; // !!
|
||||||
|
@ -70,7 +70,7 @@ namespace MED{
|
|||||||
typedef enum {ePOINT1=1, eSEG2=102, eSEG3=103, eTRIA3=203,
|
typedef enum {ePOINT1=1, eSEG2=102, eSEG3=103, eTRIA3=203,
|
||||||
eQUAD4=204, eTRIA6=206, eTRIA7=207, eQUAD8=208, eQUAD9=209,eTETRA4=304,
|
eQUAD4=204, eTRIA6=206, eTRIA7=207, eQUAD8=208, eQUAD9=209,eTETRA4=304,
|
||||||
ePYRA5=305, ePENTA6=306, eHEXA8=308, eOCTA12=312, eTETRA10=310,
|
ePYRA5=305, ePENTA6=306, eHEXA8=308, eOCTA12=312, eTETRA10=310,
|
||||||
ePYRA13=313, ePENTA15=315, eHEXA20=320, eHEXA27=327,
|
ePYRA13=313, ePENTA15=315, ePENTA18=318, eHEXA20=320, eHEXA27=327,
|
||||||
ePOLYGONE=400, ePOLYGON2=420, ePOLYEDRE=500, eNONE=0,
|
ePOLYGONE=400, ePOLYGON2=420, ePOLYEDRE=500, eNONE=0,
|
||||||
eBALL=1101 /*no such a type in med.h, it's just a trick*/,
|
eBALL=1101 /*no such a type in med.h, it's just a trick*/,
|
||||||
eAllGeoType=-1 } EGeometrieElement;
|
eAllGeoType=-1 } EGeometrieElement;
|
||||||
|
@ -98,6 +98,7 @@ enum SMDSAbs_EntityType {
|
|||||||
SMDSEntity_TriQuad_Hexa,
|
SMDSEntity_TriQuad_Hexa,
|
||||||
SMDSEntity_Penta,
|
SMDSEntity_Penta,
|
||||||
SMDSEntity_Quad_Penta,
|
SMDSEntity_Quad_Penta,
|
||||||
|
SMDSEntity_BiQuad_Penta,
|
||||||
SMDSEntity_Hexagonal_Prism,
|
SMDSEntity_Hexagonal_Prism,
|
||||||
SMDSEntity_Polyhedra,
|
SMDSEntity_Polyhedra,
|
||||||
SMDSEntity_Quad_Polyhedra,
|
SMDSEntity_Quad_Polyhedra,
|
||||||
|
@ -4210,7 +4210,7 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
|
|||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
//function : AddVolume
|
//function : AddVolume
|
||||||
//purpose :
|
//purpose : 2d order Pentahedron (prism) with 15 nodes
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
SMDS_MeshVolume* SMDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
|
SMDS_MeshVolume* SMDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
|
||||||
const SMDS_MeshNode * n2,
|
const SMDS_MeshNode * n2,
|
||||||
@ -4238,7 +4238,7 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
|
|||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
//function : AddVolumeWithID
|
//function : AddVolumeWithID
|
||||||
//purpose :
|
//purpose : 2d order Pentahedron (prism) with 15 nodes
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(int n1, int n2, int n3,
|
SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(int n1, int n2, int n3,
|
||||||
int n4, int n5, int n6,
|
int n4, int n5, int n6,
|
||||||
@ -4267,7 +4267,7 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(int n1, int n2, int n3,
|
|||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
//function : AddVolumeWithID
|
//function : AddVolumeWithID
|
||||||
//purpose : 2d order Pentahedron with 15 nodes
|
//purpose : 2d order Pentahedron (prism) with 15 nodes
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
|
SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
|
||||||
const SMDS_MeshNode * n2,
|
const SMDS_MeshNode * n2,
|
||||||
@ -4334,6 +4334,146 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
|
|||||||
return volvtk;
|
return volvtk;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//=======================================================================
|
||||||
|
//function : AddVolume
|
||||||
|
//purpose : 2d order Pentahedron (prism) with 18 nodes
|
||||||
|
//=======================================================================
|
||||||
|
SMDS_MeshVolume* SMDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
|
||||||
|
const SMDS_MeshNode * n2,
|
||||||
|
const SMDS_MeshNode * n3,
|
||||||
|
const SMDS_MeshNode * n4,
|
||||||
|
const SMDS_MeshNode * n5,
|
||||||
|
const SMDS_MeshNode * n6,
|
||||||
|
const SMDS_MeshNode * n12,
|
||||||
|
const SMDS_MeshNode * n23,
|
||||||
|
const SMDS_MeshNode * n31,
|
||||||
|
const SMDS_MeshNode * n45,
|
||||||
|
const SMDS_MeshNode * n56,
|
||||||
|
const SMDS_MeshNode * n64,
|
||||||
|
const SMDS_MeshNode * n14,
|
||||||
|
const SMDS_MeshNode * n25,
|
||||||
|
const SMDS_MeshNode * n36,
|
||||||
|
const SMDS_MeshNode * n1245,
|
||||||
|
const SMDS_MeshNode * n2356,
|
||||||
|
const SMDS_MeshNode * n1346)
|
||||||
|
{
|
||||||
|
int ID = myElementIDFactory->GetFreeID();
|
||||||
|
SMDS_MeshVolume * v =
|
||||||
|
SMDS_Mesh::AddVolumeWithID(n1, n2, n3, n4, n5, n6, n12, n23, n31,
|
||||||
|
n45, n56, n64, n14, n25, n36, n1245, n2356, n1346, ID);
|
||||||
|
if(v==NULL) myElementIDFactory->ReleaseID(ID);
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
|
||||||
|
//=======================================================================
|
||||||
|
//function : AddVolumeWithID
|
||||||
|
//purpose : 2d order Pentahedron (prism) with 18 nodes
|
||||||
|
//=======================================================================
|
||||||
|
SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(int n1, int n2, int n3,
|
||||||
|
int n4, int n5, int n6,
|
||||||
|
int n12,int n23,int n31,
|
||||||
|
int n45,int n56,int n64,
|
||||||
|
int n14,int n25,int n36,
|
||||||
|
int n1245, int n2356, int n1346, int ID)
|
||||||
|
{
|
||||||
|
return SMDS_Mesh::AddVolumeWithID
|
||||||
|
((SMDS_MeshNode*) myNodeIDFactory->MeshElement(n1) ,
|
||||||
|
(SMDS_MeshNode*) myNodeIDFactory->MeshElement(n2) ,
|
||||||
|
(SMDS_MeshNode*) myNodeIDFactory->MeshElement(n3) ,
|
||||||
|
(SMDS_MeshNode*) myNodeIDFactory->MeshElement(n4) ,
|
||||||
|
(SMDS_MeshNode*) myNodeIDFactory->MeshElement(n5) ,
|
||||||
|
(SMDS_MeshNode*) myNodeIDFactory->MeshElement(n6) ,
|
||||||
|
(SMDS_MeshNode*) myNodeIDFactory->MeshElement(n12),
|
||||||
|
(SMDS_MeshNode*) myNodeIDFactory->MeshElement(n23),
|
||||||
|
(SMDS_MeshNode*) myNodeIDFactory->MeshElement(n31),
|
||||||
|
(SMDS_MeshNode*) myNodeIDFactory->MeshElement(n45),
|
||||||
|
(SMDS_MeshNode*) myNodeIDFactory->MeshElement(n56),
|
||||||
|
(SMDS_MeshNode*) myNodeIDFactory->MeshElement(n64),
|
||||||
|
(SMDS_MeshNode*) myNodeIDFactory->MeshElement(n14),
|
||||||
|
(SMDS_MeshNode*) myNodeIDFactory->MeshElement(n25),
|
||||||
|
(SMDS_MeshNode*) myNodeIDFactory->MeshElement(n36),
|
||||||
|
(SMDS_MeshNode*) myNodeIDFactory->MeshElement(n1245),
|
||||||
|
(SMDS_MeshNode*) myNodeIDFactory->MeshElement(n2356),
|
||||||
|
(SMDS_MeshNode*) myNodeIDFactory->MeshElement(n1346),
|
||||||
|
ID);
|
||||||
|
}
|
||||||
|
|
||||||
|
//=======================================================================
|
||||||
|
//function : AddVolumeWithID
|
||||||
|
//purpose : 2d order Pentahedron (prism) with 18 nodes
|
||||||
|
//=======================================================================
|
||||||
|
SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
|
||||||
|
const SMDS_MeshNode * n2,
|
||||||
|
const SMDS_MeshNode * n3,
|
||||||
|
const SMDS_MeshNode * n4,
|
||||||
|
const SMDS_MeshNode * n5,
|
||||||
|
const SMDS_MeshNode * n6,
|
||||||
|
const SMDS_MeshNode * n12,
|
||||||
|
const SMDS_MeshNode * n23,
|
||||||
|
const SMDS_MeshNode * n31,
|
||||||
|
const SMDS_MeshNode * n45,
|
||||||
|
const SMDS_MeshNode * n56,
|
||||||
|
const SMDS_MeshNode * n64,
|
||||||
|
const SMDS_MeshNode * n14,
|
||||||
|
const SMDS_MeshNode * n25,
|
||||||
|
const SMDS_MeshNode * n36,
|
||||||
|
const SMDS_MeshNode * n1245,
|
||||||
|
const SMDS_MeshNode * n2356,
|
||||||
|
const SMDS_MeshNode * n1346,
|
||||||
|
int ID)
|
||||||
|
{
|
||||||
|
if (!n1 || !n2 || !n3 || !n4 || !n5 || !n6 || !n12 || !n23 ||
|
||||||
|
!n31 || !n45 || !n56 || !n64 || !n14 || !n25 || !n36 || !n1245 || !n2356 || !n1346)
|
||||||
|
return 0;
|
||||||
|
if(hasConstructionFaces()) {
|
||||||
|
// creation quadratic faces - not implemented
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
// --- retrieve nodes ID
|
||||||
|
myNodeIds.resize(15);
|
||||||
|
myNodeIds[0] = n1->getVtkId();
|
||||||
|
myNodeIds[1] = n2->getVtkId();
|
||||||
|
myNodeIds[2] = n3->getVtkId();
|
||||||
|
|
||||||
|
myNodeIds[3] = n4->getVtkId();
|
||||||
|
myNodeIds[4] = n5->getVtkId();
|
||||||
|
myNodeIds[5] = n6->getVtkId();
|
||||||
|
|
||||||
|
myNodeIds[6] = n12->getVtkId();
|
||||||
|
myNodeIds[7] = n23->getVtkId();
|
||||||
|
myNodeIds[8] = n31->getVtkId();
|
||||||
|
|
||||||
|
myNodeIds[9] = n45->getVtkId();
|
||||||
|
myNodeIds[10] = n56->getVtkId();
|
||||||
|
myNodeIds[11] = n64->getVtkId();
|
||||||
|
|
||||||
|
myNodeIds[12] = n14->getVtkId();
|
||||||
|
myNodeIds[13] = n25->getVtkId();
|
||||||
|
myNodeIds[14] = n36->getVtkId();
|
||||||
|
|
||||||
|
myNodeIds[15] = n1245->getVtkId();
|
||||||
|
myNodeIds[16] = n2356->getVtkId();
|
||||||
|
myNodeIds[17] = n1346->getVtkId();
|
||||||
|
|
||||||
|
SMDS_VtkVolume *volvtk = myVolumePool->getNew();
|
||||||
|
volvtk->init(myNodeIds, this);
|
||||||
|
if (!this->registerElement(ID,volvtk))
|
||||||
|
{
|
||||||
|
this->myGrid->GetCellTypesArray()->SetValue(volvtk->getVtkId(), VTK_EMPTY_CELL);
|
||||||
|
myVolumePool->destroy(volvtk);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
adjustmyCellsCapacity(ID);
|
||||||
|
myCells[ID] = volvtk;
|
||||||
|
myInfo.myNbBiQuadPrisms++;
|
||||||
|
|
||||||
|
// if (!registerElement(ID, volvtk)) {
|
||||||
|
// RemoveElement(volvtk, false);
|
||||||
|
// volvtk = NULL;
|
||||||
|
// }
|
||||||
|
return volvtk;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
//function : AddVolume
|
//function : AddVolume
|
||||||
|
@ -454,6 +454,53 @@ public:
|
|||||||
const SMDS_MeshNode * n25,
|
const SMDS_MeshNode * n25,
|
||||||
const SMDS_MeshNode * n36);
|
const SMDS_MeshNode * n36);
|
||||||
|
|
||||||
|
// 2d order Pentahedron with 18 nodes
|
||||||
|
virtual SMDS_MeshVolume* AddVolumeWithID(int n1, int n2, int n3,
|
||||||
|
int n4, int n5, int n6,
|
||||||
|
int n12,int n23,int n31,
|
||||||
|
int n45,int n56,int n64,
|
||||||
|
int n14,int n25,int n36,
|
||||||
|
int n1245, int n2356, int n1346,
|
||||||
|
int ID);
|
||||||
|
virtual SMDS_MeshVolume* AddVolumeWithID(const SMDS_MeshNode * n1,
|
||||||
|
const SMDS_MeshNode * n2,
|
||||||
|
const SMDS_MeshNode * n3,
|
||||||
|
const SMDS_MeshNode * n4,
|
||||||
|
const SMDS_MeshNode * n5,
|
||||||
|
const SMDS_MeshNode * n6,
|
||||||
|
const SMDS_MeshNode * n12,
|
||||||
|
const SMDS_MeshNode * n23,
|
||||||
|
const SMDS_MeshNode * n31,
|
||||||
|
const SMDS_MeshNode * n45,
|
||||||
|
const SMDS_MeshNode * n56,
|
||||||
|
const SMDS_MeshNode * n64,
|
||||||
|
const SMDS_MeshNode * n14,
|
||||||
|
const SMDS_MeshNode * n25,
|
||||||
|
const SMDS_MeshNode * n36,
|
||||||
|
const SMDS_MeshNode * n1245,
|
||||||
|
const SMDS_MeshNode * n2356,
|
||||||
|
const SMDS_MeshNode * n1346,
|
||||||
|
int ID);
|
||||||
|
virtual SMDS_MeshVolume* AddVolume(const SMDS_MeshNode * n1,
|
||||||
|
const SMDS_MeshNode * n2,
|
||||||
|
const SMDS_MeshNode * n3,
|
||||||
|
const SMDS_MeshNode * n4,
|
||||||
|
const SMDS_MeshNode * n5,
|
||||||
|
const SMDS_MeshNode * n6,
|
||||||
|
const SMDS_MeshNode * n12,
|
||||||
|
const SMDS_MeshNode * n23,
|
||||||
|
const SMDS_MeshNode * n31,
|
||||||
|
const SMDS_MeshNode * n45,
|
||||||
|
const SMDS_MeshNode * n56,
|
||||||
|
const SMDS_MeshNode * n64,
|
||||||
|
const SMDS_MeshNode * n14,
|
||||||
|
const SMDS_MeshNode * n25,
|
||||||
|
const SMDS_MeshNode * n36,
|
||||||
|
const SMDS_MeshNode * n1245,
|
||||||
|
const SMDS_MeshNode * n2356,
|
||||||
|
const SMDS_MeshNode * n1346);
|
||||||
|
|
||||||
|
|
||||||
// 2d oreder Hexahedrons with 20 nodes
|
// 2d oreder Hexahedrons with 20 nodes
|
||||||
virtual SMDS_MeshVolume* AddVolumeWithID(int n1, int n2, int n3, int n4,
|
virtual SMDS_MeshVolume* AddVolumeWithID(int n1, int n2, int n3, int n4,
|
||||||
int n5, int n6, int n7, int n8,
|
int n5, int n6, int n7, int n8,
|
||||||
|
@ -66,6 +66,7 @@ VTKCellType SMDS_MeshCell::toVtkType (SMDSAbs_EntityType smdsType)
|
|||||||
vtkTypes[ SMDSEntity_TriQuad_Hexa ] = VTK_TRIQUADRATIC_HEXAHEDRON;
|
vtkTypes[ SMDSEntity_TriQuad_Hexa ] = VTK_TRIQUADRATIC_HEXAHEDRON;
|
||||||
vtkTypes[ SMDSEntity_Penta ] = VTK_WEDGE;
|
vtkTypes[ SMDSEntity_Penta ] = VTK_WEDGE;
|
||||||
vtkTypes[ SMDSEntity_Quad_Penta ] = VTK_QUADRATIC_WEDGE;
|
vtkTypes[ SMDSEntity_Quad_Penta ] = VTK_QUADRATIC_WEDGE;
|
||||||
|
vtkTypes[ SMDSEntity_BiQuad_Penta ] = VTK_BIQUADRATIC_QUADRATIC_WEDGE;
|
||||||
vtkTypes[ SMDSEntity_Hexagonal_Prism ] = VTK_HEXAGONAL_PRISM;
|
vtkTypes[ SMDSEntity_Hexagonal_Prism ] = VTK_HEXAGONAL_PRISM;
|
||||||
vtkTypes[ SMDSEntity_Polyhedra ] = VTK_POLYHEDRON;
|
vtkTypes[ SMDSEntity_Polyhedra ] = VTK_POLYHEDRON;
|
||||||
//vtkTypes[ SMDSEntity_Quad_Polyhedra ] = ;
|
//vtkTypes[ SMDSEntity_Quad_Polyhedra ] = ;
|
||||||
@ -153,9 +154,13 @@ const std::vector< int >& SMDS_MeshCell::toVtkOrder(SMDSAbs_EntityType smdsType)
|
|||||||
toVtkInterlaces[SMDSEntity_Penta].assign( &ids[0], &ids[0]+6 );
|
toVtkInterlaces[SMDSEntity_Penta].assign( &ids[0], &ids[0]+6 );
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
const int ids[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14};
|
const int ids[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14}; // TODO: check
|
||||||
toVtkInterlaces[SMDSEntity_Quad_Penta].assign( &ids[0], &ids[0]+15 );
|
toVtkInterlaces[SMDSEntity_Quad_Penta].assign( &ids[0], &ids[0]+15 );
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
const int ids[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17};// TODO: check
|
||||||
|
toVtkInterlaces[SMDSEntity_BiQuad_Penta].assign( &ids[0], &ids[0]+18 );
|
||||||
|
}
|
||||||
{
|
{
|
||||||
const int ids[] = {0,5,4,3,2,1,6,11,10,9,8,7};
|
const int ids[] = {0,5,4,3,2,1,6,11,10,9,8,7};
|
||||||
toVtkInterlaces[SMDSEntity_Hexagonal_Prism].assign( &ids[0], &ids[0]+12 );
|
toVtkInterlaces[SMDSEntity_Hexagonal_Prism].assign( &ids[0], &ids[0]+12 );
|
||||||
@ -254,6 +259,10 @@ const std::vector<int>& SMDS_MeshCell::reverseSmdsOrder(SMDSAbs_EntityType smdsT
|
|||||||
reverseInterlaces[SMDSEntity_Quad_Penta].assign( &ids[0], &ids[0]+15 );
|
reverseInterlaces[SMDSEntity_Quad_Penta].assign( &ids[0], &ids[0]+15 );
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
|
const int ids[] = {0,2,1,3,5,4, 8,7,6,11,10,9,12,14,13,15,16,17};
|
||||||
|
reverseInterlaces[SMDSEntity_BiQuad_Penta].assign( &ids[0], &ids[0]+18 );
|
||||||
|
}
|
||||||
|
{
|
||||||
const int ids[] = {0,5,4,3,2,1,6,11,10,9,8,7};
|
const int ids[] = {0,5,4,3,2,1,6,11,10,9,8,7};
|
||||||
reverseInterlaces[SMDSEntity_Hexagonal_Prism].assign( &ids[0], &ids[0]+12 );
|
reverseInterlaces[SMDSEntity_Hexagonal_Prism].assign( &ids[0], &ids[0]+12 );
|
||||||
}
|
}
|
||||||
@ -414,6 +423,7 @@ SMDSAbs_ElementType SMDS_MeshCell::toSmdsType(SMDSAbs_EntityType entityType)
|
|||||||
case SMDSEntity_TriQuad_Hexa:
|
case SMDSEntity_TriQuad_Hexa:
|
||||||
case SMDSEntity_Penta:
|
case SMDSEntity_Penta:
|
||||||
case SMDSEntity_Quad_Penta:
|
case SMDSEntity_Quad_Penta:
|
||||||
|
case SMDSEntity_BiQuad_Penta:
|
||||||
case SMDSEntity_Hexagonal_Prism:
|
case SMDSEntity_Hexagonal_Prism:
|
||||||
case SMDSEntity_Polyhedra:
|
case SMDSEntity_Polyhedra:
|
||||||
case SMDSEntity_Quad_Polyhedra: return SMDSAbs_Volume;
|
case SMDSEntity_Quad_Polyhedra: return SMDSAbs_Volume;
|
||||||
|
@ -64,6 +64,8 @@ public:
|
|||||||
inline int NbPrisms (SMDSAbs_ElementOrder order = ORDER_ANY) const;
|
inline int NbPrisms (SMDSAbs_ElementOrder order = ORDER_ANY) const;
|
||||||
inline int NbHexPrisms(SMDSAbs_ElementOrder order = ORDER_ANY) const;
|
inline int NbHexPrisms(SMDSAbs_ElementOrder order = ORDER_ANY) const;
|
||||||
int NbTriQuadHexas() const { return myNbTriQuadHexas; }
|
int NbTriQuadHexas() const { return myNbTriQuadHexas; }
|
||||||
|
int NbQuadPrisms() const { return myNbQuadPrisms; }
|
||||||
|
int NbBiQuadPrisms() const { return myNbBiQuadPrisms; }
|
||||||
int NbPolyhedrons() const { return myNbPolyhedrons; }
|
int NbPolyhedrons() const { return myNbPolyhedrons; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
@ -94,7 +96,7 @@ private:
|
|||||||
int myNbTetras , myNbQuadTetras ;
|
int myNbTetras , myNbQuadTetras ;
|
||||||
int myNbHexas , myNbQuadHexas, myNbTriQuadHexas;
|
int myNbHexas , myNbQuadHexas, myNbTriQuadHexas;
|
||||||
int myNbPyramids, myNbQuadPyramids;
|
int myNbPyramids, myNbQuadPyramids;
|
||||||
int myNbPrisms , myNbQuadPrisms ;
|
int myNbPrisms , myNbQuadPrisms, myNbBiQuadPrisms;
|
||||||
int myNbHexPrism;
|
int myNbHexPrism;
|
||||||
int myNbPolyhedrons;
|
int myNbPolyhedrons;
|
||||||
|
|
||||||
@ -113,7 +115,7 @@ inline SMDS_MeshInfo::SMDS_MeshInfo():
|
|||||||
myNbTetras (0), myNbQuadTetras (0),
|
myNbTetras (0), myNbQuadTetras (0),
|
||||||
myNbHexas (0), myNbQuadHexas (0), myNbTriQuadHexas(0),
|
myNbHexas (0), myNbQuadHexas (0), myNbTriQuadHexas(0),
|
||||||
myNbPyramids (0), myNbQuadPyramids(0),
|
myNbPyramids (0), myNbQuadPyramids(0),
|
||||||
myNbPrisms (0), myNbQuadPrisms (0),
|
myNbPrisms (0), myNbQuadPrisms (0), myNbBiQuadPrisms(0),
|
||||||
myNbHexPrism (0),
|
myNbHexPrism (0),
|
||||||
myNbPolyhedrons(0)
|
myNbPolyhedrons(0)
|
||||||
{
|
{
|
||||||
@ -297,7 +299,7 @@ SMDS_MeshInfo::NbElements(SMDSAbs_ElementType type) const
|
|||||||
break;
|
break;
|
||||||
case SMDSAbs_Volume:
|
case SMDSAbs_Volume:
|
||||||
nb = ( myNbTetras+ myNbPyramids+ myNbPrisms+ myNbHexas+ myNbHexPrism+
|
nb = ( myNbTetras+ myNbPyramids+ myNbPrisms+ myNbHexas+ myNbHexPrism+
|
||||||
myNbQuadTetras+ myNbQuadPyramids+ myNbQuadPrisms+ myNbQuadHexas+ myNbTriQuadHexas+
|
myNbQuadTetras+ myNbQuadPyramids+ myNbQuadPrisms+ myNbBiQuadPrisms + myNbQuadHexas+ myNbTriQuadHexas+
|
||||||
myNbPolyhedrons );
|
myNbPolyhedrons );
|
||||||
break;
|
break;
|
||||||
case SMDSAbs_Face:
|
case SMDSAbs_Face:
|
||||||
@ -345,6 +347,7 @@ SMDS_MeshInfo::NbEntities(SMDSAbs_EntityType type) const
|
|||||||
case SMDSEntity_TriQuad_Hexa: return myNbTriQuadHexas;
|
case SMDSEntity_TriQuad_Hexa: return myNbTriQuadHexas;
|
||||||
case SMDSEntity_Penta: return myNbPrisms;
|
case SMDSEntity_Penta: return myNbPrisms;
|
||||||
case SMDSEntity_Quad_Penta: return myNbQuadPrisms;
|
case SMDSEntity_Quad_Penta: return myNbQuadPrisms;
|
||||||
|
case SMDSEntity_BiQuad_Penta: return myNbBiQuadPrisms;
|
||||||
case SMDSEntity_Hexagonal_Prism: return myNbHexPrism;
|
case SMDSEntity_Hexagonal_Prism: return myNbHexPrism;
|
||||||
case SMDSEntity_Polyhedra: return myNbPolyhedrons;
|
case SMDSEntity_Polyhedra: return myNbPolyhedrons;
|
||||||
case SMDSEntity_0D: return myNb0DElements;
|
case SMDSEntity_0D: return myNb0DElements;
|
||||||
@ -414,6 +417,7 @@ SMDS_MeshInfo::setNb(const SMDSAbs_EntityType geomType, const int nb)
|
|||||||
case SMDSEntity_Quad_Edge: myNbQuadEdges = nb; break;
|
case SMDSEntity_Quad_Edge: myNbQuadEdges = nb; break;
|
||||||
case SMDSEntity_Quad_Hexa: myNbQuadHexas = nb; break;
|
case SMDSEntity_Quad_Hexa: myNbQuadHexas = nb; break;
|
||||||
case SMDSEntity_Quad_Penta: myNbQuadPrisms = nb; break;
|
case SMDSEntity_Quad_Penta: myNbQuadPrisms = nb; break;
|
||||||
|
case SMDSEntity_BiQuad_Penta: myNbBiQuadPrisms = nb; break;
|
||||||
case SMDSEntity_Quad_Pyramid: myNbQuadPyramids = nb; break;
|
case SMDSEntity_Quad_Pyramid: myNbQuadPyramids = nb; break;
|
||||||
case SMDSEntity_Quad_Quadrangle: myNbQuadQuadrangles = nb; break;
|
case SMDSEntity_Quad_Quadrangle: myNbQuadQuadrangles = nb; break;
|
||||||
case SMDSEntity_Quad_Tetra: myNbQuadTetras = nb; break;
|
case SMDSEntity_Quad_Tetra: myNbQuadTetras = nb; break;
|
||||||
|
@ -381,6 +381,7 @@ SMDSAbs_EntityType SMDS_QuadraticVolumeOfNodes::GetEntityType() const
|
|||||||
case 10: aType = SMDSEntity_Quad_Tetra; break;
|
case 10: aType = SMDSEntity_Quad_Tetra; break;
|
||||||
case 13: aType = SMDSEntity_Quad_Pyramid; break;
|
case 13: aType = SMDSEntity_Quad_Pyramid; break;
|
||||||
case 15: aType = SMDSEntity_Quad_Penta; break;
|
case 15: aType = SMDSEntity_Quad_Penta; break;
|
||||||
|
case 18: aType = SMDSEntity_BiQuad_Penta; break;
|
||||||
case 20:
|
case 20:
|
||||||
default: aType = SMDSEntity_Quad_Hexa; break;
|
default: aType = SMDSEntity_Quad_Hexa; break;
|
||||||
}
|
}
|
||||||
|
@ -115,6 +115,7 @@ SMDS_VtkCellIteratorToUNV::SMDS_VtkCellIteratorToUNV(SMDS_Mesh* mesh, int vtkCel
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SMDSEntity_Quad_Penta:
|
case SMDSEntity_Quad_Penta:
|
||||||
|
case SMDSEntity_BiQuad_Penta: //TODO: check
|
||||||
{
|
{
|
||||||
static int id[] = { 0, 8, 2, 7, 1, 6, 12, 14, 13, 3, 11, 5, 10, 4, 9 };
|
static int id[] = { 0, 8, 2, 7, 1, 6, 12, 14, 13, 3, 11, 5, 10, 4, 9 };
|
||||||
ids = id;
|
ids = id;
|
||||||
|
@ -45,16 +45,17 @@ void SMDS_VtkVolume::init(const std::vector<vtkIdType>& nodeIds, SMDS_Mesh* mesh
|
|||||||
vtkIdType aType = VTK_TETRA;
|
vtkIdType aType = VTK_TETRA;
|
||||||
switch (nodeIds.size()) // cases are in order of usage frequency
|
switch (nodeIds.size()) // cases are in order of usage frequency
|
||||||
{
|
{
|
||||||
case 4: aType = VTK_TETRA; break;
|
case 4: aType = VTK_TETRA; break;
|
||||||
case 8: aType = VTK_HEXAHEDRON; break;
|
case 8: aType = VTK_HEXAHEDRON; break;
|
||||||
case 5: aType = VTK_PYRAMID; break;
|
case 5: aType = VTK_PYRAMID; break;
|
||||||
case 6: aType = VTK_WEDGE; break;
|
case 6: aType = VTK_WEDGE; break;
|
||||||
case 10: aType = VTK_QUADRATIC_TETRA; break;
|
case 10: aType = VTK_QUADRATIC_TETRA; break;
|
||||||
case 20: aType = VTK_QUADRATIC_HEXAHEDRON; break;
|
case 20: aType = VTK_QUADRATIC_HEXAHEDRON; break;
|
||||||
case 13: aType = VTK_QUADRATIC_PYRAMID; break;
|
case 13: aType = VTK_QUADRATIC_PYRAMID; break;
|
||||||
case 15: aType = VTK_QUADRATIC_WEDGE; break;
|
case 15: aType = VTK_QUADRATIC_WEDGE; break;
|
||||||
case 12: aType = VTK_HEXAGONAL_PRISM; break;
|
case 18: aType = VTK_BIQUADRATIC_QUADRATIC_WEDGE; break;
|
||||||
case 27: aType = VTK_TRIQUADRATIC_HEXAHEDRON;break;
|
case 12: aType = VTK_HEXAGONAL_PRISM; break;
|
||||||
|
case 27: aType = VTK_TRIQUADRATIC_HEXAHEDRON; break;
|
||||||
default: aType = VTK_HEXAHEDRON;
|
default: aType = VTK_HEXAHEDRON;
|
||||||
}
|
}
|
||||||
myVtkID = mesh->getGrid()->InsertNextLinkedCell(aType, nodeIds.size(), (vtkIdType *) &nodeIds[0]);
|
myVtkID = mesh->getGrid()->InsertNextLinkedCell(aType, nodeIds.size(), (vtkIdType *) &nodeIds[0]);
|
||||||
@ -571,6 +572,9 @@ SMDSAbs_EntityType SMDS_VtkVolume::GetEntityType() const
|
|||||||
case VTK_QUADRATIC_WEDGE:
|
case VTK_QUADRATIC_WEDGE:
|
||||||
aType = SMDSEntity_Quad_Penta;
|
aType = SMDSEntity_Quad_Penta;
|
||||||
break;
|
break;
|
||||||
|
case VTK_BIQUADRATIC_QUADRATIC_WEDGE:
|
||||||
|
aType = SMDSEntity_BiQuad_Penta;
|
||||||
|
break;
|
||||||
case VTK_QUADRATIC_HEXAHEDRON:
|
case VTK_QUADRATIC_HEXAHEDRON:
|
||||||
aType = SMDSEntity_Quad_Hexa;
|
aType = SMDSEntity_Quad_Hexa;
|
||||||
break;
|
break;
|
||||||
|
@ -1890,6 +1890,19 @@ int SMESH_Mesh::NbPrisms(SMDSAbs_ElementOrder order) const throw(SALOME_Exceptio
|
|||||||
return _myMeshDS->GetMeshInfo().NbPrisms(order);
|
return _myMeshDS->GetMeshInfo().NbPrisms(order);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int SMESH_Mesh::NbQuadPrisms() const throw (SALOME_Exception)
|
||||||
|
{
|
||||||
|
Unexpect aCatch(SalomeException);
|
||||||
|
return _myMeshDS->GetMeshInfo().NbQuadPrisms();
|
||||||
|
}
|
||||||
|
|
||||||
|
int SMESH_Mesh::NbBiQuadPrisms() const throw (SALOME_Exception)
|
||||||
|
{
|
||||||
|
Unexpect aCatch(SalomeException);
|
||||||
|
return _myMeshDS->GetMeshInfo().NbBiQuadPrisms();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//================================================================================
|
//================================================================================
|
||||||
/*!
|
/*!
|
||||||
* \brief Return number of hexagonal prisms in the mesh
|
* \brief Return number of hexagonal prisms in the mesh
|
||||||
|
@ -297,6 +297,8 @@ class SMESH_EXPORT SMESH_Mesh
|
|||||||
int NbTriQuadraticHexas() const throw(SALOME_Exception);
|
int NbTriQuadraticHexas() const throw(SALOME_Exception);
|
||||||
int NbPyramids(SMDSAbs_ElementOrder order = ORDER_ANY) const throw(SALOME_Exception);
|
int NbPyramids(SMDSAbs_ElementOrder order = ORDER_ANY) const throw(SALOME_Exception);
|
||||||
int NbPrisms(SMDSAbs_ElementOrder order = ORDER_ANY) const throw(SALOME_Exception);
|
int NbPrisms(SMDSAbs_ElementOrder order = ORDER_ANY) const throw(SALOME_Exception);
|
||||||
|
int NbQuadPrisms() const throw(SALOME_Exception);
|
||||||
|
int NbBiQuadPrisms() const throw(SALOME_Exception);
|
||||||
int NbHexagonalPrisms() const throw(SALOME_Exception);
|
int NbHexagonalPrisms() const throw(SALOME_Exception);
|
||||||
int NbPolyhedrons() const throw(SALOME_Exception);
|
int NbPolyhedrons() const throw(SALOME_Exception);
|
||||||
|
|
||||||
|
@ -1914,6 +1914,7 @@ namespace
|
|||||||
break;
|
break;
|
||||||
case SMDSEntity_Penta:
|
case SMDSEntity_Penta:
|
||||||
case SMDSEntity_Quad_Penta:
|
case SMDSEntity_Quad_Penta:
|
||||||
|
case SMDSEntity_BiQuad_Penta:
|
||||||
connVariants = thePentaTo3; nbTet = 3; nbVariants = 6;
|
connVariants = thePentaTo3; nbTet = 3; nbVariants = 6;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -9229,6 +9230,7 @@ int SMESH_MeshEditor::convertElemToQuadratic(SMESHDS_SubMesh * theSm,
|
|||||||
SMESH_MesherHelper& theHelper,
|
SMESH_MesherHelper& theHelper,
|
||||||
const bool theForce3d)
|
const bool theForce3d)
|
||||||
{
|
{
|
||||||
|
MESSAGE("convertElemToQuadratic");
|
||||||
int nbElem = 0;
|
int nbElem = 0;
|
||||||
if( !theSm ) return nbElem;
|
if( !theSm ) return nbElem;
|
||||||
|
|
||||||
@ -9254,18 +9256,20 @@ int SMESH_MeshEditor::convertElemToQuadratic(SMESHDS_SubMesh * theSm,
|
|||||||
case SMDSEntity_Quad_Triangle:
|
case SMDSEntity_Quad_Triangle:
|
||||||
case SMDSEntity_Quad_Quadrangle:
|
case SMDSEntity_Quad_Quadrangle:
|
||||||
case SMDSEntity_Quad_Hexa:
|
case SMDSEntity_Quad_Hexa:
|
||||||
|
case SMDSEntity_Quad_Penta:
|
||||||
alreadyOK = !theHelper.GetIsBiQuadratic(); break;
|
alreadyOK = !theHelper.GetIsBiQuadratic(); break;
|
||||||
|
|
||||||
case SMDSEntity_BiQuad_Triangle:
|
case SMDSEntity_BiQuad_Triangle:
|
||||||
case SMDSEntity_BiQuad_Quadrangle:
|
case SMDSEntity_BiQuad_Quadrangle:
|
||||||
case SMDSEntity_TriQuad_Hexa:
|
case SMDSEntity_TriQuad_Hexa:
|
||||||
|
case SMDSEntity_BiQuad_Penta:
|
||||||
alreadyOK = theHelper.GetIsBiQuadratic();
|
alreadyOK = theHelper.GetIsBiQuadratic();
|
||||||
hasCentralNodes = true;
|
hasCentralNodes = true;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
alreadyOK = true;
|
alreadyOK = true;
|
||||||
}
|
}
|
||||||
// take into account already present modium nodes
|
// take into account already present medium nodes
|
||||||
switch ( aType ) {
|
switch ( aType ) {
|
||||||
case SMDSAbs_Volume:
|
case SMDSAbs_Volume:
|
||||||
theHelper.AddTLinks( static_cast< const SMDS_MeshVolume* >( elem )); break;
|
theHelper.AddTLinks( static_cast< const SMDS_MeshVolume* >( elem )); break;
|
||||||
@ -9332,6 +9336,9 @@ int SMESH_MeshEditor::convertElemToQuadratic(SMESHDS_SubMesh * theSm,
|
|||||||
NewElem = theHelper.AddVolume(nodes[0], nodes[1], nodes[2], nodes[3], nodes[4], id, theForce3d);
|
NewElem = theHelper.AddVolume(nodes[0], nodes[1], nodes[2], nodes[3], nodes[4], id, theForce3d);
|
||||||
break;
|
break;
|
||||||
case SMDSEntity_Penta:
|
case SMDSEntity_Penta:
|
||||||
|
case SMDSEntity_Quad_Penta:
|
||||||
|
case SMDSEntity_BiQuad_Penta:
|
||||||
|
MESSAGE("--- " << aGeomType);
|
||||||
NewElem = theHelper.AddVolume(nodes[0], nodes[1], nodes[2], nodes[3], nodes[4], nodes[5], id, theForce3d);
|
NewElem = theHelper.AddVolume(nodes[0], nodes[1], nodes[2], nodes[3], nodes[4], nodes[5], id, theForce3d);
|
||||||
break;
|
break;
|
||||||
case SMDSEntity_Hexa:
|
case SMDSEntity_Hexa:
|
||||||
@ -9362,6 +9369,7 @@ int SMESH_MeshEditor::convertElemToQuadratic(SMESHDS_SubMesh * theSm,
|
|||||||
|
|
||||||
void SMESH_MeshEditor::ConvertToQuadratic(const bool theForce3d, const bool theToBiQuad)
|
void SMESH_MeshEditor::ConvertToQuadratic(const bool theForce3d, const bool theToBiQuad)
|
||||||
{
|
{
|
||||||
|
MESSAGE("ConvertToQuadratic "<< theForce3d << " " << theToBiQuad);
|
||||||
SMESHDS_Mesh* meshDS = GetMeshDS();
|
SMESHDS_Mesh* meshDS = GetMeshDS();
|
||||||
|
|
||||||
SMESH_MesherHelper aHelper(*myMesh);
|
SMESH_MesherHelper aHelper(*myMesh);
|
||||||
@ -9489,6 +9497,8 @@ void SMESH_MeshEditor::ConvertToQuadratic(const bool theForce3d, const bool theT
|
|||||||
{
|
{
|
||||||
case SMDSEntity_Quad_Hexa: alreadyOK = !theToBiQuad; break;
|
case SMDSEntity_Quad_Hexa: alreadyOK = !theToBiQuad; break;
|
||||||
case SMDSEntity_TriQuad_Hexa: alreadyOK = theToBiQuad; break;
|
case SMDSEntity_TriQuad_Hexa: alreadyOK = theToBiQuad; break;
|
||||||
|
case SMDSEntity_Quad_Penta: alreadyOK = !theToBiQuad; break;
|
||||||
|
case SMDSEntity_BiQuad_Penta: alreadyOK = theToBiQuad; break;
|
||||||
default: alreadyOK = true;
|
default: alreadyOK = true;
|
||||||
}
|
}
|
||||||
if ( alreadyOK )
|
if ( alreadyOK )
|
||||||
@ -9526,8 +9536,14 @@ void SMESH_MeshEditor::ConvertToQuadratic(const bool theForce3d, const bool theT
|
|||||||
nodes[3], nodes[4], id, theForce3d);
|
nodes[3], nodes[4], id, theForce3d);
|
||||||
break;
|
break;
|
||||||
case SMDSEntity_Penta:
|
case SMDSEntity_Penta:
|
||||||
|
case SMDSEntity_Quad_Penta:
|
||||||
|
case SMDSEntity_BiQuad_Penta:
|
||||||
|
MESSAGE("--- " << type);
|
||||||
NewVolume = aHelper.AddVolume(nodes[0], nodes[1], nodes[2],
|
NewVolume = aHelper.AddVolume(nodes[0], nodes[1], nodes[2],
|
||||||
nodes[3], nodes[4], nodes[5], id, theForce3d);
|
nodes[3], nodes[4], nodes[5], id, theForce3d);
|
||||||
|
for ( size_t i = 15; i < nodes.size(); ++i ) // rm central nodes
|
||||||
|
if ( nodes[i]->NbInverseElements() == 0 )
|
||||||
|
GetMeshDS()->RemoveFreeNode( nodes[i], /*sm=*/0, /*fromGroups=*/true );
|
||||||
break;
|
break;
|
||||||
case SMDSEntity_Hexagonal_Prism:
|
case SMDSEntity_Hexagonal_Prism:
|
||||||
default:
|
default:
|
||||||
|
@ -2179,13 +2179,30 @@ SMDS_MeshVolume* SMESH_MesherHelper::AddVolume(const SMDS_MeshNode* n1,
|
|||||||
const SMDS_MeshNode* n14 = GetMediumNode( n1, n4, force3d, TopAbs_SOLID );
|
const SMDS_MeshNode* n14 = GetMediumNode( n1, n4, force3d, TopAbs_SOLID );
|
||||||
const SMDS_MeshNode* n25 = GetMediumNode( n2, n5, force3d, TopAbs_SOLID );
|
const SMDS_MeshNode* n25 = GetMediumNode( n2, n5, force3d, TopAbs_SOLID );
|
||||||
const SMDS_MeshNode* n36 = GetMediumNode( n3, n6, force3d, TopAbs_SOLID );
|
const SMDS_MeshNode* n36 = GetMediumNode( n3, n6, force3d, TopAbs_SOLID );
|
||||||
|
if ( myCreateBiQuadratic )
|
||||||
|
{
|
||||||
|
const SMDS_MeshNode* n1245 = GetCentralNode( n1,n2,n4,n5,n12,n25,n45,n14,force3d );
|
||||||
|
const SMDS_MeshNode* n1346 = GetCentralNode( n1,n3,n4,n6,n31,n36,n64,n14,force3d );
|
||||||
|
const SMDS_MeshNode* n2356 = GetCentralNode( n2,n3,n6,n5,n23,n36,n56,n25,force3d );
|
||||||
|
|
||||||
if(id)
|
if(id)
|
||||||
elem = meshDS->AddVolumeWithID(n1, n2, n3, n4, n5, n6,
|
elem = meshDS->AddVolumeWithID(n1, n2, n3, n4, n5, n6,
|
||||||
n12, n23, n31, n45, n56, n64, n14, n25, n36, id);
|
n12, n23, n31, n45, n56, n64, n14, n25, n36,
|
||||||
|
n1245, n2356, n1346, id);
|
||||||
|
else
|
||||||
|
elem = meshDS->AddVolume(n1, n2, n3, n4, n5, n6,
|
||||||
|
n12, n23, n31, n45, n56, n64, n14, n25, n36,
|
||||||
|
n1245, n2356, n1346);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
elem = meshDS->AddVolume(n1, n2, n3, n4, n5, n6,
|
{
|
||||||
n12, n23, n31, n45, n56, n64, n14, n25, n36);
|
if(id)
|
||||||
|
elem = meshDS->AddVolumeWithID(n1, n2, n3, n4, n5, n6,
|
||||||
|
n12, n23, n31, n45, n56, n64, n14, n25, n36, id);
|
||||||
|
else
|
||||||
|
elem = meshDS->AddVolume(n1, n2, n3, n4, n5, n6,
|
||||||
|
n12, n23, n31, n45, n56, n64, n14, n25, n36);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if ( mySetElemOnShape && myShapeID > 0 )
|
if ( mySetElemOnShape && myShapeID > 0 )
|
||||||
meshDS->SetMeshElementOnShape( elem, myShapeID );
|
meshDS->SetMeshElementOnShape( elem, myShapeID );
|
||||||
@ -4866,6 +4883,7 @@ namespace { // Structures used by FixQuadraticElements()
|
|||||||
void SMESH_MesherHelper::FixQuadraticElements(SMESH_ComputeErrorPtr& compError,
|
void SMESH_MesherHelper::FixQuadraticElements(SMESH_ComputeErrorPtr& compError,
|
||||||
bool volumeOnly)
|
bool volumeOnly)
|
||||||
{
|
{
|
||||||
|
MESSAGE("FixQuadraticElements " << volumeOnly);
|
||||||
// setenv NO_FixQuadraticElements to know if FixQuadraticElements() is guilty of bad conversion
|
// setenv NO_FixQuadraticElements to know if FixQuadraticElements() is guilty of bad conversion
|
||||||
if ( getenv("NO_FixQuadraticElements") )
|
if ( getenv("NO_FixQuadraticElements") )
|
||||||
return;
|
return;
|
||||||
@ -4893,6 +4911,7 @@ void SMESH_MesherHelper::FixQuadraticElements(SMESH_ComputeErrorPtr& compError,
|
|||||||
}
|
}
|
||||||
else { // fix nodes in the solid and its faces
|
else { // fix nodes in the solid and its faces
|
||||||
#ifdef _DEBUG_
|
#ifdef _DEBUG_
|
||||||
|
MESSAGE("FIX SOLID " << nbSolids-- << " #" << GetMeshDS()->ShapeToIndex(s.Current()));
|
||||||
MSG("FIX SOLID " << nbSolids-- << " #" << GetMeshDS()->ShapeToIndex(s.Current()));
|
MSG("FIX SOLID " << nbSolids-- << " #" << GetMeshDS()->ShapeToIndex(s.Current()));
|
||||||
#endif
|
#endif
|
||||||
SMESH_MesherHelper h(*myMesh);
|
SMESH_MesherHelper h(*myMesh);
|
||||||
@ -4907,6 +4926,7 @@ void SMESH_MesherHelper::FixQuadraticElements(SMESH_ComputeErrorPtr& compError,
|
|||||||
nbfaces = faces.Extent(); /*avoid "unused varianbles": */ nbfaces++, nbfaces--;
|
nbfaces = faces.Extent(); /*avoid "unused varianbles": */ nbfaces++, nbfaces--;
|
||||||
#endif
|
#endif
|
||||||
for ( TopTools_MapIteratorOfMapOfShape fIt( faces ); fIt.More(); fIt.Next() ) {
|
for ( TopTools_MapIteratorOfMapOfShape fIt( faces ); fIt.More(); fIt.Next() ) {
|
||||||
|
MESSAGE("FIX FACE " << nbfaces-- << " #" << GetMeshDS()->ShapeToIndex(fIt.Key()));
|
||||||
MSG("FIX FACE " << nbfaces-- << " #" << GetMeshDS()->ShapeToIndex(fIt.Key()));
|
MSG("FIX FACE " << nbfaces-- << " #" << GetMeshDS()->ShapeToIndex(fIt.Key()));
|
||||||
SMESH_MesherHelper h(*myMesh);
|
SMESH_MesherHelper h(*myMesh);
|
||||||
h.SetSubShape( fIt.Key() );
|
h.SetSubShape( fIt.Key() );
|
||||||
@ -5263,10 +5283,11 @@ void SMESH_MesherHelper::FixQuadraticElements(SMESH_ComputeErrorPtr& compError,
|
|||||||
// 4. Move nodes
|
// 4. Move nodes
|
||||||
// -------------
|
// -------------
|
||||||
|
|
||||||
TIDSortedElemSet biQuadQuas, biQuadTris, triQuadHexa;
|
TIDSortedElemSet biQuadQuas, biQuadTris, triQuadHexa, biQuadPenta;
|
||||||
const bool toFixCentralNodes = ( myMesh->NbBiQuadQuadrangles() +
|
const bool toFixCentralNodes = ( myMesh->NbBiQuadQuadrangles() +
|
||||||
myMesh->NbBiQuadTriangles() +
|
myMesh->NbBiQuadTriangles() +
|
||||||
myMesh->NbTriQuadraticHexas() );
|
myMesh->NbTriQuadraticHexas() +
|
||||||
|
myMesh->NbBiQuadPrisms());
|
||||||
double distXYZ[4];
|
double distXYZ[4];
|
||||||
faceHlp.ToFixNodeParameters( true );
|
faceHlp.ToFixNodeParameters( true );
|
||||||
|
|
||||||
@ -5302,6 +5323,7 @@ void SMESH_MesherHelper::FixQuadraticElements(SMESH_ComputeErrorPtr& compError,
|
|||||||
case SMDSEntity_BiQuad_Quadrangle: biQuadQuas.insert( e ); break;
|
case SMDSEntity_BiQuad_Quadrangle: biQuadQuas.insert( e ); break;
|
||||||
case SMDSEntity_BiQuad_Triangle: biQuadTris.insert( e ); break;
|
case SMDSEntity_BiQuad_Triangle: biQuadTris.insert( e ); break;
|
||||||
case SMDSEntity_TriQuad_Hexa: triQuadHexa.insert( e ); break;
|
case SMDSEntity_TriQuad_Hexa: triQuadHexa.insert( e ); break;
|
||||||
|
case SMDSEntity_BiQuad_Penta: biQuadPenta.insert( e ); break;
|
||||||
default:;
|
default:;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -5452,6 +5474,16 @@ void SMESH_MesherHelper::FixQuadraticElements(SMESH_ComputeErrorPtr& compError,
|
|||||||
nCenterCoords.X(), nCenterCoords.Y(), nCenterCoords.Z());
|
nCenterCoords.X(), nCenterCoords.Y(), nCenterCoords.Z());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// treat tri-quadratic hexahedra
|
||||||
|
{
|
||||||
|
SMDS_VolumeTool volExp;
|
||||||
|
TIDSortedElemSet::iterator pentIt = biQuadPenta.begin();
|
||||||
|
for ( ; pentIt != biQuadPenta.end(); ++pentIt )
|
||||||
|
{
|
||||||
|
MESSAGE("---");
|
||||||
|
volExp.Set( *pentIt, /*ignoreCentralNodes=*/false );
|
||||||
|
}
|
||||||
|
}
|
||||||
#ifdef _DEBUG_
|
#ifdef _DEBUG_
|
||||||
// avoid warning: defined but not used operator<<()
|
// avoid warning: defined but not used operator<<()
|
||||||
SMESH_Comment() << *links.begin() << *faces.begin();
|
SMESH_Comment() << *links.begin() << *faces.begin();
|
||||||
|
@ -684,6 +684,43 @@ void SMESHDS_Command::AddVolume(int NewVolID, int n1, int n2,
|
|||||||
myIntegers.push_back(n36);
|
myIntegers.push_back(n36);
|
||||||
myNumber++;
|
myNumber++;
|
||||||
}
|
}
|
||||||
|
//=======================================================================
|
||||||
|
//function : AddVolume
|
||||||
|
//purpose :
|
||||||
|
//=======================================================================
|
||||||
|
void SMESHDS_Command::AddVolume(int NewVolID, int n1, int n2,
|
||||||
|
int n3, int n4, int n5,int n6,
|
||||||
|
int n12, int n23, int n31,
|
||||||
|
int n45, int n56, int n64,
|
||||||
|
int n14, int n25, int n36,
|
||||||
|
int n1245, int n2356, int n1346)
|
||||||
|
{
|
||||||
|
if ( myType != SMESHDS_AddBiQuadPentahedron) {
|
||||||
|
MESSAGE("SMESHDS_Command::AddVolume : Bad Type");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
myIntegers.push_back(NewVolID);
|
||||||
|
myIntegers.push_back(n1);
|
||||||
|
myIntegers.push_back(n2);
|
||||||
|
myIntegers.push_back(n3);
|
||||||
|
myIntegers.push_back(n4);
|
||||||
|
myIntegers.push_back(n5);
|
||||||
|
myIntegers.push_back(n6);
|
||||||
|
myIntegers.push_back(n12);
|
||||||
|
myIntegers.push_back(n23);
|
||||||
|
myIntegers.push_back(n31);
|
||||||
|
myIntegers.push_back(n45);
|
||||||
|
myIntegers.push_back(n56);
|
||||||
|
myIntegers.push_back(n64);
|
||||||
|
myIntegers.push_back(n14);
|
||||||
|
myIntegers.push_back(n25);
|
||||||
|
myIntegers.push_back(n36);
|
||||||
|
myIntegers.push_back(n1245);
|
||||||
|
myIntegers.push_back(n2356);
|
||||||
|
myIntegers.push_back(n1346);
|
||||||
|
myNumber++;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
//function : AddVolume
|
//function : AddVolume
|
||||||
@ -735,7 +772,7 @@ void SMESHDS_Command::AddVolume(int NewVolID, int n1, int n2, int n3,
|
|||||||
int n1234,int n1256,int n2367,int n3478,
|
int n1234,int n1256,int n2367,int n3478,
|
||||||
int n1458,int n5678,int nCenter)
|
int n1458,int n5678,int nCenter)
|
||||||
{
|
{
|
||||||
if ( myType != SMESHDS_AddQuadHexahedron) {
|
if ( myType != SMESHDS_AddTriQuadHexa) {
|
||||||
MESSAGE("SMESHDS_Command::AddVolume : Bad Type");
|
MESSAGE("SMESHDS_Command::AddVolume : Bad Type");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -83,6 +83,12 @@ class SMESHDS_EXPORT SMESHDS_Command
|
|||||||
int n12, int n23, int n31,
|
int n12, int n23, int n31,
|
||||||
int n45, int n56, int n64,
|
int n45, int n56, int n64,
|
||||||
int n14, int n25, int n36);
|
int n14, int n25, int n36);
|
||||||
|
void AddVolume(int NewVolID, int n1, int n2, int n3,
|
||||||
|
int n4, int n5, int n6,
|
||||||
|
int n12, int n23, int n31,
|
||||||
|
int n45, int n56, int n64,
|
||||||
|
int n14, int n25, int n36,
|
||||||
|
int n1245, int n2356, int n1346);
|
||||||
void AddVolume(int NewVolID, int n1, int n2, int n3, int n4,
|
void AddVolume(int NewVolID, int n1, int n2, int n3, int n4,
|
||||||
int n5, int n6, int n7, int n8,
|
int n5, int n6, int n7, int n8,
|
||||||
int n12, int n23, int n34, int n41,
|
int n12, int n23, int n34, int n41,
|
||||||
|
@ -58,6 +58,7 @@ enum SMESHDS_CommandType {
|
|||||||
SMESHDS_Add0DElement,
|
SMESHDS_Add0DElement,
|
||||||
SMESHDS_AddBiQuadTriangle,
|
SMESHDS_AddBiQuadTriangle,
|
||||||
SMESHDS_AddBiQuadQuadrangle,
|
SMESHDS_AddBiQuadQuadrangle,
|
||||||
|
SMESHDS_AddBiQuadPentahedron,
|
||||||
SMESHDS_AddTriQuadHexa,
|
SMESHDS_AddTriQuadHexa,
|
||||||
SMESHDS_AddHexagonalPrism,
|
SMESHDS_AddHexagonalPrism,
|
||||||
SMESHDS_AddBall
|
SMESHDS_AddBall
|
||||||
|
@ -1862,7 +1862,7 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
|
|||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
//function : AddVolume
|
//function : AddVolume
|
||||||
//purpose :
|
//purpose : 2nd order pentahedron (prism) with 15 nodes
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
|
SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
|
||||||
const SMDS_MeshNode * n2,
|
const SMDS_MeshNode * n2,
|
||||||
@ -1893,7 +1893,7 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
|
|||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
//function : AddVolumeWithID
|
//function : AddVolumeWithID
|
||||||
//purpose :
|
//purpose : 2nd order pentahedron (prism) with 15 nodes
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(int n1, int n2, int n3,
|
SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(int n1, int n2, int n3,
|
||||||
int n4, int n5, int n6,
|
int n4, int n5, int n6,
|
||||||
@ -1909,10 +1909,96 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(int n1, int n2, int n3,
|
|||||||
n45,n56,n64,n14,n25,n36);
|
n45,n56,n64,n14,n25,n36);
|
||||||
return anElem;
|
return anElem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//=======================================================================
|
||||||
|
//function : AddVolumeWithID
|
||||||
|
//purpose : 2d order Pentahedron (prism) with 15 nodes
|
||||||
|
//=======================================================================
|
||||||
|
SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
|
||||||
|
const SMDS_MeshNode * n2,
|
||||||
|
const SMDS_MeshNode * n3,
|
||||||
|
const SMDS_MeshNode * n4,
|
||||||
|
const SMDS_MeshNode * n5,
|
||||||
|
const SMDS_MeshNode * n6,
|
||||||
|
const SMDS_MeshNode * n12,
|
||||||
|
const SMDS_MeshNode * n23,
|
||||||
|
const SMDS_MeshNode * n31,
|
||||||
|
const SMDS_MeshNode * n45,
|
||||||
|
const SMDS_MeshNode * n56,
|
||||||
|
const SMDS_MeshNode * n64,
|
||||||
|
const SMDS_MeshNode * n14,
|
||||||
|
const SMDS_MeshNode * n25,
|
||||||
|
const SMDS_MeshNode * n36,
|
||||||
|
int ID)
|
||||||
|
{
|
||||||
|
return AddVolumeWithID(n1->GetID(), n2->GetID(), n3->GetID(),
|
||||||
|
n4->GetID(), n5->GetID(), n6->GetID(),
|
||||||
|
n12->GetID(), n23->GetID(), n31->GetID(),
|
||||||
|
n45->GetID(), n56->GetID(), n64->GetID(),
|
||||||
|
n14->GetID(), n25->GetID(), n36->GetID(),
|
||||||
|
ID);
|
||||||
|
}
|
||||||
|
//=======================================================================
|
||||||
|
//function : AddVolume
|
||||||
|
//purpose : 2nd order pentahedron (prism) with 18 nodes
|
||||||
|
//=======================================================================
|
||||||
|
SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
|
||||||
|
const SMDS_MeshNode * n2,
|
||||||
|
const SMDS_MeshNode * n3,
|
||||||
|
const SMDS_MeshNode * n4,
|
||||||
|
const SMDS_MeshNode * n5,
|
||||||
|
const SMDS_MeshNode * n6,
|
||||||
|
const SMDS_MeshNode * n12,
|
||||||
|
const SMDS_MeshNode * n23,
|
||||||
|
const SMDS_MeshNode * n31,
|
||||||
|
const SMDS_MeshNode * n45,
|
||||||
|
const SMDS_MeshNode * n56,
|
||||||
|
const SMDS_MeshNode * n64,
|
||||||
|
const SMDS_MeshNode * n14,
|
||||||
|
const SMDS_MeshNode * n25,
|
||||||
|
const SMDS_MeshNode * n36,
|
||||||
|
const SMDS_MeshNode * n1245,
|
||||||
|
const SMDS_MeshNode * n2356,
|
||||||
|
const SMDS_MeshNode * n1346)
|
||||||
|
{
|
||||||
|
SMDS_MeshVolume *anElem = SMDS_Mesh::AddVolume(n1,n2,n3,n4,n5,n6,n12,n23,n31,
|
||||||
|
n45,n56,n64,n14,n25,n36,
|
||||||
|
n1245, n2356, n1346);
|
||||||
|
if(anElem)
|
||||||
|
myScript->AddVolume(anElem->GetID(), n1->GetID(), n2->GetID(),
|
||||||
|
n3->GetID(), n4->GetID(), n5->GetID(), n6->GetID(),
|
||||||
|
n12->GetID(), n23->GetID(), n31->GetID(),
|
||||||
|
n45->GetID(), n56->GetID(), n64->GetID(),
|
||||||
|
n14->GetID(), n25->GetID(), n36->GetID(),
|
||||||
|
n1245->GetID(), n2356->GetID(), n1346->GetID());
|
||||||
|
return anElem;
|
||||||
|
}
|
||||||
|
|
||||||
|
//=======================================================================
|
||||||
|
//function : AddVolumeWithID
|
||||||
|
//purpose : 2nd order pentahedron (prism) with 18 nodes
|
||||||
|
//=======================================================================
|
||||||
|
SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(int n1, int n2, int n3,
|
||||||
|
int n4, int n5, int n6,
|
||||||
|
int n12,int n23,int n31,
|
||||||
|
int n45,int n56,int n64,
|
||||||
|
int n14,int n25,int n36,
|
||||||
|
int n1245, int n2356, int n1346,
|
||||||
|
int ID)
|
||||||
|
{
|
||||||
|
SMDS_MeshVolume *anElem = SMDS_Mesh::AddVolumeWithID(n1,n2,n3,n4,n5,n6,
|
||||||
|
n12,n23,n31,
|
||||||
|
n45,n56,n64,
|
||||||
|
n14,n25,n36,
|
||||||
|
n1245, n2356, n1346, ID);
|
||||||
|
if(anElem) myScript->AddVolume(ID,n1,n2,n3,n4,n5,n6,n12,n23,n31,
|
||||||
|
n45,n56,n64,n14,n25,n36, n1245, n2356, n1346);
|
||||||
|
return anElem;
|
||||||
|
}
|
||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
//function : AddVolumeWithID
|
//function : AddVolumeWithID
|
||||||
//purpose : 2d order Pentahedron with 15 nodes
|
//purpose : 2d order Pentahedron with 18 nodes
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
|
SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
|
||||||
const SMDS_MeshNode * n2,
|
const SMDS_MeshNode * n2,
|
||||||
@ -1929,6 +2015,9 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
|
|||||||
const SMDS_MeshNode * n14,
|
const SMDS_MeshNode * n14,
|
||||||
const SMDS_MeshNode * n25,
|
const SMDS_MeshNode * n25,
|
||||||
const SMDS_MeshNode * n36,
|
const SMDS_MeshNode * n36,
|
||||||
|
const SMDS_MeshNode * n1245,
|
||||||
|
const SMDS_MeshNode * n2356,
|
||||||
|
const SMDS_MeshNode * n1346,
|
||||||
int ID)
|
int ID)
|
||||||
{
|
{
|
||||||
return AddVolumeWithID(n1->GetID(), n2->GetID(), n3->GetID(),
|
return AddVolumeWithID(n1->GetID(), n2->GetID(), n3->GetID(),
|
||||||
@ -1936,7 +2025,7 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
|
|||||||
n12->GetID(), n23->GetID(), n31->GetID(),
|
n12->GetID(), n23->GetID(), n31->GetID(),
|
||||||
n45->GetID(), n56->GetID(), n64->GetID(),
|
n45->GetID(), n56->GetID(), n64->GetID(),
|
||||||
n14->GetID(), n25->GetID(), n36->GetID(),
|
n14->GetID(), n25->GetID(), n36->GetID(),
|
||||||
ID);
|
n1245->GetID(), n2356->GetID(), n1346->GetID(), ID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -389,6 +389,52 @@ public:
|
|||||||
const SMDS_MeshNode * n25,
|
const SMDS_MeshNode * n25,
|
||||||
const SMDS_MeshNode * n36);
|
const SMDS_MeshNode * n36);
|
||||||
|
|
||||||
|
// 2d order Pentahedron with 18 nodes
|
||||||
|
virtual SMDS_MeshVolume* AddVolumeWithID(int n1, int n2, int n3,
|
||||||
|
int n4, int n5, int n6,
|
||||||
|
int n12,int n23,int n31,
|
||||||
|
int n45,int n56,int n64,
|
||||||
|
int n14,int n25,int n36,
|
||||||
|
int n1245, int n2356, int n1346,
|
||||||
|
int ID);
|
||||||
|
virtual SMDS_MeshVolume* AddVolumeWithID(const SMDS_MeshNode * n1,
|
||||||
|
const SMDS_MeshNode * n2,
|
||||||
|
const SMDS_MeshNode * n3,
|
||||||
|
const SMDS_MeshNode * n4,
|
||||||
|
const SMDS_MeshNode * n5,
|
||||||
|
const SMDS_MeshNode * n6,
|
||||||
|
const SMDS_MeshNode * n12,
|
||||||
|
const SMDS_MeshNode * n23,
|
||||||
|
const SMDS_MeshNode * n31,
|
||||||
|
const SMDS_MeshNode * n45,
|
||||||
|
const SMDS_MeshNode * n56,
|
||||||
|
const SMDS_MeshNode * n64,
|
||||||
|
const SMDS_MeshNode * n14,
|
||||||
|
const SMDS_MeshNode * n25,
|
||||||
|
const SMDS_MeshNode * n36,
|
||||||
|
const SMDS_MeshNode * n1245,
|
||||||
|
const SMDS_MeshNode * n2356,
|
||||||
|
const SMDS_MeshNode * n1346,
|
||||||
|
int ID);
|
||||||
|
virtual SMDS_MeshVolume* AddVolume(const SMDS_MeshNode * n1,
|
||||||
|
const SMDS_MeshNode * n2,
|
||||||
|
const SMDS_MeshNode * n3,
|
||||||
|
const SMDS_MeshNode * n4,
|
||||||
|
const SMDS_MeshNode * n5,
|
||||||
|
const SMDS_MeshNode * n6,
|
||||||
|
const SMDS_MeshNode * n12,
|
||||||
|
const SMDS_MeshNode * n23,
|
||||||
|
const SMDS_MeshNode * n31,
|
||||||
|
const SMDS_MeshNode * n45,
|
||||||
|
const SMDS_MeshNode * n56,
|
||||||
|
const SMDS_MeshNode * n64,
|
||||||
|
const SMDS_MeshNode * n14,
|
||||||
|
const SMDS_MeshNode * n25,
|
||||||
|
const SMDS_MeshNode * n36,
|
||||||
|
const SMDS_MeshNode * n1245,
|
||||||
|
const SMDS_MeshNode * n2356,
|
||||||
|
const SMDS_MeshNode * n1346);
|
||||||
|
|
||||||
// 2d order Hexahedrons with 20 nodes
|
// 2d order Hexahedrons with 20 nodes
|
||||||
virtual SMDS_MeshVolume* AddVolumeWithID(int n1, int n2, int n3, int n4,
|
virtual SMDS_MeshVolume* AddVolumeWithID(int n1, int n2, int n3, int n4,
|
||||||
int n5, int n6, int n7, int n8,
|
int n5, int n6, int n7, int n8,
|
||||||
|
@ -550,6 +550,27 @@ void SMESHDS_Script::AddVolume(int NewVolID, int n1, int n2, int n3, int n4,
|
|||||||
//function : AddVolume
|
//function : AddVolume
|
||||||
//purpose :
|
//purpose :
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
|
void SMESHDS_Script::AddVolume(int NewVolID, int n1, int n2, int n3, int n4,
|
||||||
|
int n5,int n6, int n12, int n23, int n31,
|
||||||
|
int n45, int n56, int n64,
|
||||||
|
int n14, int n25, int n36,
|
||||||
|
int n1245, int n2356, int n1346)
|
||||||
|
{
|
||||||
|
if(myIsEmbeddedMode){
|
||||||
|
myIsModified = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
getCommand(SMESHDS_AddBiQuadPentahedron)->AddVolume(NewVolID, n1,n2,n3,n4,n5,n6,
|
||||||
|
n12, n23, n31,
|
||||||
|
n45, n56, n64,
|
||||||
|
n14, n25, n36,
|
||||||
|
n1245, n2356, n1346);
|
||||||
|
}
|
||||||
|
|
||||||
|
//=======================================================================
|
||||||
|
//function : AddVolume
|
||||||
|
//purpose :
|
||||||
|
//=======================================================================
|
||||||
void SMESHDS_Script::AddVolume(int NewVolID, int n1, int n2, int n3,
|
void SMESHDS_Script::AddVolume(int NewVolID, int n1, int n2, int n3,
|
||||||
int n4, int n5, int n6, int n7, int n8,
|
int n4, int n5, int n6, int n7, int n8,
|
||||||
int n12, int n23, int n34, int n41,
|
int n12, int n23, int n34, int n41,
|
||||||
|
@ -91,6 +91,12 @@ class SMESHDS_EXPORT SMESHDS_Script
|
|||||||
int n12, int n23, int n31,
|
int n12, int n23, int n31,
|
||||||
int n45, int n56, int n64,
|
int n45, int n56, int n64,
|
||||||
int n14, int n25, int n36);
|
int n14, int n25, int n36);
|
||||||
|
void AddVolume(int NewVolID, int n1, int n2, int n3,
|
||||||
|
int n4, int n5, int n6,
|
||||||
|
int n12, int n23, int n31,
|
||||||
|
int n45, int n56, int n64,
|
||||||
|
int n14, int n25, int n36,
|
||||||
|
int n1245, int n2356, int n1346);
|
||||||
void AddVolume(int NewVolID, int n1, int n2, int n3, int n4,
|
void AddVolume(int NewVolID, int n1, int n2, int n3, int n4,
|
||||||
int n5, int n6, int n7, int n8,
|
int n5, int n6, int n7, int n8,
|
||||||
int n12, int n23, int n34, int n41,
|
int n12, int n23, int n34, int n41,
|
||||||
|
@ -603,6 +603,7 @@ namespace
|
|||||||
notSupportedElemTypes.push_back( SMESH::Entity_Quad_Polygon );
|
notSupportedElemTypes.push_back( SMESH::Entity_Quad_Polygon );
|
||||||
notSupportedElemTypes.push_back( SMESH::Entity_Quad_Pyramid );
|
notSupportedElemTypes.push_back( SMESH::Entity_Quad_Pyramid );
|
||||||
notSupportedElemTypes.push_back( SMESH::Entity_Quad_Penta );
|
notSupportedElemTypes.push_back( SMESH::Entity_Quad_Penta );
|
||||||
|
notSupportedElemTypes.push_back( SMESH::Entity_BiQuad_Penta );
|
||||||
notSupportedElemTypes.push_back( SMESH::Entity_Hexagonal_Prism );
|
notSupportedElemTypes.push_back( SMESH::Entity_Hexagonal_Prism );
|
||||||
notSupportedElemTypes.push_back( SMESH::Entity_Polyhedra );
|
notSupportedElemTypes.push_back( SMESH::Entity_Polyhedra );
|
||||||
notSupportedElemTypes.push_back( SMESH::Entity_Quad_Polyhedra );
|
notSupportedElemTypes.push_back( SMESH::Entity_Quad_Polyhedra );
|
||||||
@ -626,6 +627,7 @@ namespace
|
|||||||
"SMESH_TETRAHEDRA","SMESH_QUADRATIC_TETRAHEDRONS","SMESH_PYRAMIDS",
|
"SMESH_TETRAHEDRA","SMESH_QUADRATIC_TETRAHEDRONS","SMESH_PYRAMIDS",
|
||||||
"SMESH_QUADRATIC_PYRAMIDS","SMESH_HEXAHEDRA","SMESH_QUADRATIC_HEXAHEDRONS",
|
"SMESH_QUADRATIC_PYRAMIDS","SMESH_HEXAHEDRA","SMESH_QUADRATIC_HEXAHEDRONS",
|
||||||
"SMESH_TRIQUADRATIC_HEXAHEDRONS","SMESH_PENTAHEDRA","SMESH_QUADRATIC_PENTAHEDRONS",
|
"SMESH_TRIQUADRATIC_HEXAHEDRONS","SMESH_PENTAHEDRA","SMESH_QUADRATIC_PENTAHEDRONS",
|
||||||
|
"SMESH_BIQUADRATIC_PENTAHEDRONS",
|
||||||
"SMESH_OCTAHEDRA","SMESH_POLYEDRONS","SMESH_QUADRATIC_POLYEDRONS","SMESH_BALLS"
|
"SMESH_OCTAHEDRA","SMESH_POLYEDRONS","SMESH_QUADRATIC_POLYEDRONS","SMESH_BALLS"
|
||||||
};
|
};
|
||||||
// is typeMsg complete? (compilation failure mains that enum SMDSAbs_EntityType changed)
|
// is typeMsg complete? (compilation failure mains that enum SMDSAbs_EntityType changed)
|
||||||
@ -2124,7 +2126,7 @@ bool SMESHGUI::automaticUpdate( SMESH::SMESH_IDSource_ptr theMesh,
|
|||||||
long nbVolumes = info[SMDSEntity_Tetra] + info[SMDSEntity_Quad_Tetra] +
|
long nbVolumes = info[SMDSEntity_Tetra] + info[SMDSEntity_Quad_Tetra] +
|
||||||
info[SMDSEntity_Hexa] + info[SMDSEntity_Quad_Hexa] + info[SMDSEntity_TriQuad_Hexa] +
|
info[SMDSEntity_Hexa] + info[SMDSEntity_Quad_Hexa] + info[SMDSEntity_TriQuad_Hexa] +
|
||||||
info[SMDSEntity_Pyramid] + info[SMDSEntity_Quad_Pyramid] +
|
info[SMDSEntity_Pyramid] + info[SMDSEntity_Quad_Pyramid] +
|
||||||
info[SMDSEntity_Penta] + info[SMDSEntity_Quad_Penta] +
|
info[SMDSEntity_Penta] + info[SMDSEntity_Quad_Penta] + info[SMDSEntity_BiQuad_Penta] +
|
||||||
info[SMDSEntity_Polyhedra] +
|
info[SMDSEntity_Polyhedra] +
|
||||||
info[SMDSEntity_Hexagonal_Prism];
|
info[SMDSEntity_Hexagonal_Prism];
|
||||||
long nbBalls = info[SMDSEntity_Ball];
|
long nbBalls = info[SMDSEntity_Ball];
|
||||||
@ -3304,6 +3306,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
|||||||
case SMESHOp::OpQuadraticTetrahedron:
|
case SMESHOp::OpQuadraticTetrahedron:
|
||||||
case SMESHOp::OpQuadraticPyramid:
|
case SMESHOp::OpQuadraticPyramid:
|
||||||
case SMESHOp::OpQuadraticPentahedron:
|
case SMESHOp::OpQuadraticPentahedron:
|
||||||
|
case SMESHOp::OpBiQuadraticPentahedron:
|
||||||
case SMESHOp::OpQuadraticHexahedron:
|
case SMESHOp::OpQuadraticHexahedron:
|
||||||
case SMESHOp::OpTriQuadraticHexahedron:
|
case SMESHOp::OpTriQuadraticHexahedron:
|
||||||
{
|
{
|
||||||
@ -3322,6 +3325,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
|||||||
case SMESHOp::OpQuadraticTetrahedron: type = SMDSEntity_Quad_Tetra; break;
|
case SMESHOp::OpQuadraticTetrahedron: type = SMDSEntity_Quad_Tetra; break;
|
||||||
case SMESHOp::OpQuadraticPyramid: type = SMDSEntity_Quad_Pyramid; break;
|
case SMESHOp::OpQuadraticPyramid: type = SMDSEntity_Quad_Pyramid; break;
|
||||||
case SMESHOp::OpQuadraticPentahedron: type = SMDSEntity_Quad_Penta; break;
|
case SMESHOp::OpQuadraticPentahedron: type = SMDSEntity_Quad_Penta; break;
|
||||||
|
case SMESHOp::OpBiQuadraticPentahedron: type = SMDSEntity_BiQuad_Penta; break;
|
||||||
case SMESHOp::OpQuadraticHexahedron: type = SMDSEntity_Quad_Hexa; break;
|
case SMESHOp::OpQuadraticHexahedron: type = SMDSEntity_Quad_Hexa; break;
|
||||||
case SMESHOp::OpTriQuadraticHexahedron: type = SMDSEntity_TriQuad_Hexa; break;
|
case SMESHOp::OpTriQuadraticHexahedron: type = SMDSEntity_TriQuad_Hexa; break;
|
||||||
default: break;
|
default: break;
|
||||||
@ -3954,6 +3958,7 @@ void SMESHGUI::initialize( CAM_Application* app )
|
|||||||
createSMESHAction( SMESHOp::OpQuadraticTetrahedron, "QUADRATIC_TETRAHEDRON", "ICON_DLG_QUADRATIC_TETRAHEDRON" );
|
createSMESHAction( SMESHOp::OpQuadraticTetrahedron, "QUADRATIC_TETRAHEDRON", "ICON_DLG_QUADRATIC_TETRAHEDRON" );
|
||||||
createSMESHAction( SMESHOp::OpQuadraticPyramid, "QUADRATIC_PYRAMID", "ICON_DLG_QUADRATIC_PYRAMID" );
|
createSMESHAction( SMESHOp::OpQuadraticPyramid, "QUADRATIC_PYRAMID", "ICON_DLG_QUADRATIC_PYRAMID" );
|
||||||
createSMESHAction( SMESHOp::OpQuadraticPentahedron, "QUADRATIC_PENTAHEDRON", "ICON_DLG_QUADRATIC_PENTAHEDRON" );
|
createSMESHAction( SMESHOp::OpQuadraticPentahedron, "QUADRATIC_PENTAHEDRON", "ICON_DLG_QUADRATIC_PENTAHEDRON" );
|
||||||
|
createSMESHAction( SMESHOp::OpBiQuadraticPentahedron, "BIQUADRATIC_PENTAHEDRON", "ICON_DLG_BIQUADRATIC_PENTAHEDRON" );
|
||||||
createSMESHAction( SMESHOp::OpQuadraticHexahedron, "QUADRATIC_HEXAHEDRON", "ICON_DLG_QUADRATIC_HEXAHEDRON" );
|
createSMESHAction( SMESHOp::OpQuadraticHexahedron, "QUADRATIC_HEXAHEDRON", "ICON_DLG_QUADRATIC_HEXAHEDRON" );
|
||||||
createSMESHAction( SMESHOp::OpTriQuadraticHexahedron, "TRIQUADRATIC_HEXAHEDRON", "ICON_DLG_TRIQUADRATIC_HEXAHEDRON" );
|
createSMESHAction( SMESHOp::OpTriQuadraticHexahedron, "TRIQUADRATIC_HEXAHEDRON", "ICON_DLG_TRIQUADRATIC_HEXAHEDRON" );
|
||||||
|
|
||||||
@ -4190,6 +4195,7 @@ void SMESHGUI::initialize( CAM_Application* app )
|
|||||||
createMenu( SMESHOp::OpQuadraticTetrahedron, addId, -1 );
|
createMenu( SMESHOp::OpQuadraticTetrahedron, addId, -1 );
|
||||||
createMenu( SMESHOp::OpQuadraticPyramid, addId, -1 );
|
createMenu( SMESHOp::OpQuadraticPyramid, addId, -1 );
|
||||||
createMenu( SMESHOp::OpQuadraticPentahedron, addId, -1 );
|
createMenu( SMESHOp::OpQuadraticPentahedron, addId, -1 );
|
||||||
|
createMenu( SMESHOp::OpBiQuadraticPentahedron, addId, -1 );
|
||||||
createMenu( SMESHOp::OpQuadraticHexahedron, addId, -1 );
|
createMenu( SMESHOp::OpQuadraticHexahedron, addId, -1 );
|
||||||
createMenu( SMESHOp::OpTriQuadraticHexahedron, addId, -1 );
|
createMenu( SMESHOp::OpTriQuadraticHexahedron, addId, -1 );
|
||||||
|
|
||||||
@ -4335,6 +4341,7 @@ void SMESHGUI::initialize( CAM_Application* app )
|
|||||||
createTool( SMESHOp::OpQuadraticTetrahedron, addNonElemTb );
|
createTool( SMESHOp::OpQuadraticTetrahedron, addNonElemTb );
|
||||||
createTool( SMESHOp::OpQuadraticPyramid, addNonElemTb );
|
createTool( SMESHOp::OpQuadraticPyramid, addNonElemTb );
|
||||||
createTool( SMESHOp::OpQuadraticPentahedron, addNonElemTb );
|
createTool( SMESHOp::OpQuadraticPentahedron, addNonElemTb );
|
||||||
|
createTool( SMESHOp::OpBiQuadraticPentahedron, addNonElemTb );
|
||||||
createTool( SMESHOp::OpQuadraticHexahedron, addNonElemTb );
|
createTool( SMESHOp::OpQuadraticHexahedron, addNonElemTb );
|
||||||
createTool( SMESHOp::OpTriQuadraticHexahedron, addNonElemTb );
|
createTool( SMESHOp::OpTriQuadraticHexahedron, addNonElemTb );
|
||||||
|
|
||||||
|
@ -380,6 +380,9 @@ SMESHGUI_AddQuadraticElementDlg::SMESHGUI_AddQuadraticElementDlg( SMESHGUI* theM
|
|||||||
case SMDSEntity_Quad_Penta:
|
case SMDSEntity_Quad_Penta:
|
||||||
anElementName = QString("QUADRATIC_PENTAHEDRON");
|
anElementName = QString("QUADRATIC_PENTAHEDRON");
|
||||||
break;
|
break;
|
||||||
|
case SMDSEntity_BiQuad_Penta:
|
||||||
|
anElementName = QString("BIQUADRATIC_PENTAHEDRON");
|
||||||
|
break;
|
||||||
case SMDSEntity_Quad_Hexa:
|
case SMDSEntity_Quad_Hexa:
|
||||||
anElementName = QString("QUADRATIC_HEXAHEDRON");
|
anElementName = QString("QUADRATIC_HEXAHEDRON");
|
||||||
break;
|
break;
|
||||||
@ -587,6 +590,12 @@ void SMESHGUI_AddQuadraticElementDlg::Init()
|
|||||||
myNbCorners = 6;
|
myNbCorners = 6;
|
||||||
myHelpFileName = "adding_quadratic_elements_page.html#?"; //Adding_pentahedrons
|
myHelpFileName = "adding_quadratic_elements_page.html#?"; //Adding_pentahedrons
|
||||||
break;
|
break;
|
||||||
|
case SMDSEntity_BiQuad_Penta:
|
||||||
|
aNumRows = 9;
|
||||||
|
myNbCorners = 6;
|
||||||
|
myNbMidFaceNodes = 3;
|
||||||
|
myHelpFileName = "adding_quadratic_elements_page.html#?"; //Adding_pentahedrons
|
||||||
|
break;
|
||||||
case SMDSEntity_Quad_Hexa:
|
case SMDSEntity_Quad_Hexa:
|
||||||
aNumRows = 12;
|
aNumRows = 12;
|
||||||
myNbCorners = 8;
|
myNbCorners = 8;
|
||||||
@ -707,6 +716,7 @@ bool SMESHGUI_AddQuadraticElementDlg::ClickOnApply()
|
|||||||
case SMDSEntity_Quad_Tetra:
|
case SMDSEntity_Quad_Tetra:
|
||||||
case SMDSEntity_Quad_Pyramid:
|
case SMDSEntity_Quad_Pyramid:
|
||||||
case SMDSEntity_Quad_Penta:
|
case SMDSEntity_Quad_Penta:
|
||||||
|
case SMDSEntity_BiQuad_Penta:
|
||||||
case SMDSEntity_Quad_Hexa:
|
case SMDSEntity_Quad_Hexa:
|
||||||
case SMDSEntity_TriQuad_Hexa:
|
case SMDSEntity_TriQuad_Hexa:
|
||||||
for ( int row = 0; row < myNbCorners; row++ )
|
for ( int row = 0; row < myNbCorners; row++ )
|
||||||
@ -790,6 +800,7 @@ bool SMESHGUI_AddQuadraticElementDlg::ClickOnApply()
|
|||||||
case SMDSEntity_Quad_Tetra:
|
case SMDSEntity_Quad_Tetra:
|
||||||
case SMDSEntity_Quad_Pyramid:
|
case SMDSEntity_Quad_Pyramid:
|
||||||
case SMDSEntity_Quad_Penta:
|
case SMDSEntity_Quad_Penta:
|
||||||
|
case SMDSEntity_BiQuad_Penta:
|
||||||
case SMDSEntity_Quad_Hexa:
|
case SMDSEntity_Quad_Hexa:
|
||||||
case SMDSEntity_TriQuad_Hexa:
|
case SMDSEntity_TriQuad_Hexa:
|
||||||
anElementType = SMESH::VOLUME;
|
anElementType = SMESH::VOLUME;
|
||||||
@ -1068,6 +1079,7 @@ void SMESHGUI_AddQuadraticElementDlg::SelectionIntoArgument()
|
|||||||
case SMDSEntity_Quad_Tetra:
|
case SMDSEntity_Quad_Tetra:
|
||||||
case SMDSEntity_Quad_Pyramid:
|
case SMDSEntity_Quad_Pyramid:
|
||||||
case SMDSEntity_Quad_Penta:
|
case SMDSEntity_Quad_Penta:
|
||||||
|
case SMDSEntity_BiQuad_Penta:
|
||||||
case SMDSEntity_Quad_Hexa:
|
case SMDSEntity_Quad_Hexa:
|
||||||
case SMDSEntity_TriQuad_Hexa:
|
case SMDSEntity_TriQuad_Hexa:
|
||||||
anElementType = SMESH::VOLUME; break;
|
anElementType = SMESH::VOLUME; break;
|
||||||
@ -1402,6 +1414,7 @@ void SMESHGUI_AddQuadraticElementDlg::UpdateTable( bool theConersValidity )
|
|||||||
aLastColIds = LastPyramidIds;
|
aLastColIds = LastPyramidIds;
|
||||||
break;
|
break;
|
||||||
case SMDSEntity_Quad_Penta:
|
case SMDSEntity_Quad_Penta:
|
||||||
|
case SMDSEntity_BiQuad_Penta:
|
||||||
aFirstColIds = FirstPentahedronIds;
|
aFirstColIds = FirstPentahedronIds;
|
||||||
aLastColIds = LastPentahedronIds;
|
aLastColIds = LastPentahedronIds;
|
||||||
break;
|
break;
|
||||||
|
@ -332,6 +332,7 @@ SMESHGUI_ConvToQuadOp::DestinationMesh( const SMESH::SMESH_IDSource_var& idSourc
|
|||||||
|
|
||||||
bool hasBiQuad = ( nbElemOfType[SMDSEntity_BiQuad_Triangle ] ||
|
bool hasBiQuad = ( nbElemOfType[SMDSEntity_BiQuad_Triangle ] ||
|
||||||
nbElemOfType[SMDSEntity_BiQuad_Quadrangle ] ||
|
nbElemOfType[SMDSEntity_BiQuad_Quadrangle ] ||
|
||||||
|
nbElemOfType[SMDSEntity_BiQuad_Penta ] ||
|
||||||
nbElemOfType[SMDSEntity_TriQuad_Hexa ] );
|
nbElemOfType[SMDSEntity_TriQuad_Hexa ] );
|
||||||
bool hasLinBiQuad = ( nbElemOfType[SMDSEntity_Triangle ] ||
|
bool hasLinBiQuad = ( nbElemOfType[SMDSEntity_Triangle ] ||
|
||||||
nbElemOfType[SMDSEntity_Quadrangle ] ||
|
nbElemOfType[SMDSEntity_Quadrangle ] ||
|
||||||
|
@ -1753,6 +1753,7 @@ static QList<int> entityTypes( const int theType )
|
|||||||
typeIds.append( SMDSEntity_TriQuad_Hexa );
|
typeIds.append( SMDSEntity_TriQuad_Hexa );
|
||||||
typeIds.append( SMDSEntity_Penta );
|
typeIds.append( SMDSEntity_Penta );
|
||||||
typeIds.append( SMDSEntity_Quad_Penta );
|
typeIds.append( SMDSEntity_Quad_Penta );
|
||||||
|
typeIds.append( SMDSEntity_BiQuad_Penta );
|
||||||
typeIds.append( SMDSEntity_Hexagonal_Prism );
|
typeIds.append( SMDSEntity_Hexagonal_Prism );
|
||||||
typeIds.append( SMDSEntity_Polyhedra );
|
typeIds.append( SMDSEntity_Polyhedra );
|
||||||
//typeIds.append( SMDSEntity_Quad_Polyhedra );
|
//typeIds.append( SMDSEntity_Quad_Polyhedra );
|
||||||
|
@ -386,6 +386,8 @@ SMESHGUI_MeshInfo::SMESHGUI_MeshInfo( QWidget* parent )
|
|||||||
a3DPriLin->setObjectName("nbLinearPrism");
|
a3DPriLin->setObjectName("nbLinearPrism");
|
||||||
QLabel* a3DPriQuad = createField();
|
QLabel* a3DPriQuad = createField();
|
||||||
a3DPriQuad->setObjectName("nbQuadraticPrism");
|
a3DPriQuad->setObjectName("nbQuadraticPrism");
|
||||||
|
QLabel* a3DPriBiQuad = createField();
|
||||||
|
a3DPriBiQuad->setObjectName("nbBiQuadraticPrism");
|
||||||
QLabel* a3DHexPriLab = new QLabel( tr( "HEX_PRISMS_LAB" ), this );
|
QLabel* a3DHexPriLab = new QLabel( tr( "HEX_PRISMS_LAB" ), this );
|
||||||
QLabel* a3DHexPriTotal = createField();
|
QLabel* a3DHexPriTotal = createField();
|
||||||
a3DHexPriTotal->setObjectName("nbHexagonalPrism");
|
a3DHexPriTotal->setObjectName("nbHexagonalPrism");
|
||||||
@ -397,7 +399,7 @@ SMESHGUI_MeshInfo::SMESHGUI_MeshInfo( QWidget* parent )
|
|||||||
myWidgets[ index++ ] << a3DTetLab << a3DTetTotal << a3DTetLin << a3DTetQuad;
|
myWidgets[ index++ ] << a3DTetLab << a3DTetTotal << a3DTetLin << a3DTetQuad;
|
||||||
myWidgets[ index++ ] << a3DHexLab << a3DHexTotal << a3DHexLin << a3DHexQuad << a3DHexBiQuad;
|
myWidgets[ index++ ] << a3DHexLab << a3DHexTotal << a3DHexLin << a3DHexQuad << a3DHexBiQuad;
|
||||||
myWidgets[ index++ ] << a3DPyrLab << a3DPyrTotal << a3DPyrLin << a3DPyrQuad;
|
myWidgets[ index++ ] << a3DPyrLab << a3DPyrTotal << a3DPyrLin << a3DPyrQuad;
|
||||||
myWidgets[ index++ ] << a3DPriLab << a3DPriTotal << a3DPriLin << a3DPriQuad;
|
myWidgets[ index++ ] << a3DPriLab << a3DPriTotal << a3DPriLin << a3DPriQuad << a3DPriBiQuad;
|
||||||
myWidgets[ index++ ] << a3DHexPriLab << a3DHexPriTotal;
|
myWidgets[ index++ ] << a3DHexPriLab << a3DHexPriTotal;
|
||||||
myWidgets[ index++ ] << a3DPolLab << a3DPolTotal;
|
myWidgets[ index++ ] << a3DPolLab << a3DPolTotal;
|
||||||
|
|
||||||
@ -491,6 +493,7 @@ SMESHGUI_MeshInfo::SMESHGUI_MeshInfo( QWidget* parent )
|
|||||||
l->addWidget( a3DPriTotal, 24, 1 );
|
l->addWidget( a3DPriTotal, 24, 1 );
|
||||||
l->addWidget( a3DPriLin, 24, 2 );
|
l->addWidget( a3DPriLin, 24, 2 );
|
||||||
l->addWidget( a3DPriQuad, 24, 3 );
|
l->addWidget( a3DPriQuad, 24, 3 );
|
||||||
|
l->addWidget( a3DPriBiQuad, 24, 4 );
|
||||||
l->addWidget( a3DHexPriLab, 25, 0 );
|
l->addWidget( a3DHexPriLab, 25, 0 );
|
||||||
l->addWidget( a3DHexPriTotal, 25, 1 );
|
l->addWidget( a3DHexPriTotal, 25, 1 );
|
||||||
l->addWidget( a3DPolLab, 26, 0 );
|
l->addWidget( a3DPolLab, 26, 0 );
|
||||||
@ -581,10 +584,10 @@ void SMESHGUI_MeshInfo::showInfo( SMESH::SMESH_IDSource_ptr obj )
|
|||||||
long nbTetrahedrons = info[SMDSEntity_Tetra] + info[SMDSEntity_Quad_Tetra];
|
long nbTetrahedrons = info[SMDSEntity_Tetra] + info[SMDSEntity_Quad_Tetra];
|
||||||
long nbHexahedrons = info[SMDSEntity_Hexa] + info[SMDSEntity_Quad_Hexa] + info[SMDSEntity_TriQuad_Hexa];
|
long nbHexahedrons = info[SMDSEntity_Hexa] + info[SMDSEntity_Quad_Hexa] + info[SMDSEntity_TriQuad_Hexa];
|
||||||
long nbPyramids = info[SMDSEntity_Pyramid] + info[SMDSEntity_Quad_Pyramid];
|
long nbPyramids = info[SMDSEntity_Pyramid] + info[SMDSEntity_Quad_Pyramid];
|
||||||
long nbPrisms = info[SMDSEntity_Penta] + info[SMDSEntity_Quad_Penta];
|
long nbPrisms = info[SMDSEntity_Penta] + info[SMDSEntity_Quad_Penta] + info[SMDSEntity_BiQuad_Penta];
|
||||||
long nb3DLinear = info[SMDSEntity_Tetra] + info[SMDSEntity_Hexa] + info[SMDSEntity_Pyramid] + info[SMDSEntity_Penta] + info[SMDSEntity_Polyhedra] + info[SMDSEntity_Hexagonal_Prism];
|
long nb3DLinear = info[SMDSEntity_Tetra] + info[SMDSEntity_Hexa] + info[SMDSEntity_Pyramid] + info[SMDSEntity_Penta] + info[SMDSEntity_Polyhedra] + info[SMDSEntity_Hexagonal_Prism];
|
||||||
long nb3DQuadratic = info[SMDSEntity_Quad_Tetra] + info[SMDSEntity_Quad_Hexa] + info[SMDSEntity_Quad_Pyramid] + info[SMDSEntity_Quad_Penta];
|
long nb3DQuadratic = info[SMDSEntity_Quad_Tetra] + info[SMDSEntity_Quad_Hexa] + info[SMDSEntity_Quad_Pyramid] + info[SMDSEntity_Quad_Penta];
|
||||||
long nb3DBiQuadratic = info[SMDSEntity_TriQuad_Hexa];
|
long nb3DBiQuadratic = info[SMDSEntity_TriQuad_Hexa] + info[SMDSEntity_BiQuad_Penta];
|
||||||
long nb3DTotal = nb3DLinear + nb3DQuadratic + nb3DBiQuadratic;
|
long nb3DTotal = nb3DLinear + nb3DQuadratic + nb3DBiQuadratic;
|
||||||
myWidgets[i3D][iTotal] ->setProperty( "text", QString::number( nb3DTotal ));
|
myWidgets[i3D][iTotal] ->setProperty( "text", QString::number( nb3DTotal ));
|
||||||
myWidgets[i3D][iLinear] ->setProperty( "text", QString::number( nb3DLinear ));
|
myWidgets[i3D][iLinear] ->setProperty( "text", QString::number( nb3DLinear ));
|
||||||
@ -603,6 +606,7 @@ void SMESHGUI_MeshInfo::showInfo( SMESH::SMESH_IDSource_ptr obj )
|
|||||||
myWidgets[i3DPrisms][iTotal] ->setProperty( "text", QString::number( nbPrisms ));
|
myWidgets[i3DPrisms][iTotal] ->setProperty( "text", QString::number( nbPrisms ));
|
||||||
myWidgets[i3DPrisms][iLinear] ->setProperty( "text", QString::number( info[SMDSEntity_Penta] ));
|
myWidgets[i3DPrisms][iLinear] ->setProperty( "text", QString::number( info[SMDSEntity_Penta] ));
|
||||||
myWidgets[i3DPrisms][iQuadratic] ->setProperty( "text", QString::number( info[SMDSEntity_Quad_Penta] ));
|
myWidgets[i3DPrisms][iQuadratic] ->setProperty( "text", QString::number( info[SMDSEntity_Quad_Penta] ));
|
||||||
|
myWidgets[i3DPrisms][iBiQuadratic] ->setProperty( "text", QString::number( info[SMDSEntity_BiQuad_Penta] ));
|
||||||
myWidgets[i3DHexaPrisms][iTotal] ->setProperty( "text", QString::number( info[SMDSEntity_Hexagonal_Prism] ));
|
myWidgets[i3DHexaPrisms][iTotal] ->setProperty( "text", QString::number( info[SMDSEntity_Hexagonal_Prism] ));
|
||||||
myWidgets[i3DPolyhedrons][iTotal] ->setProperty( "text", QString::number( info[SMDSEntity_Polyhedra] ));
|
myWidgets[i3DPolyhedrons][iTotal] ->setProperty( "text", QString::number( info[SMDSEntity_Polyhedra] ));
|
||||||
long nbElemTotal = info[SMDSEntity_0D] + info[SMDSEntity_Ball] + nbEdges + nb2DTotal + nb3DTotal;
|
long nbElemTotal = info[SMDSEntity_0D] + info[SMDSEntity_Ball] + nbEdges + nb2DTotal + nb3DTotal;
|
||||||
@ -1374,6 +1378,7 @@ void SMESHGUI_SimpleElemInfo::information( const QList<long>& ids )
|
|||||||
gtype = SMESHGUI_ElemInfo::tr( "HEXAHEDRON" ); break;
|
gtype = SMESHGUI_ElemInfo::tr( "HEXAHEDRON" ); break;
|
||||||
case SMDSEntity_Penta:
|
case SMDSEntity_Penta:
|
||||||
case SMDSEntity_Quad_Penta:
|
case SMDSEntity_Quad_Penta:
|
||||||
|
case SMDSEntity_BiQuad_Penta:
|
||||||
gtype = SMESHGUI_ElemInfo::tr( "PRISM" ); break;
|
gtype = SMESHGUI_ElemInfo::tr( "PRISM" ); break;
|
||||||
case SMDSEntity_Hexagonal_Prism:
|
case SMDSEntity_Hexagonal_Prism:
|
||||||
gtype = SMESHGUI_ElemInfo::tr( "HEX_PRISM" ); break;
|
gtype = SMESHGUI_ElemInfo::tr( "HEX_PRISM" ); break;
|
||||||
@ -1896,6 +1901,7 @@ void SMESHGUI_TreeElemInfo::information( const QList<long>& ids )
|
|||||||
gtype = SMESHGUI_ElemInfo::tr( "HEXAHEDRON" ); break;
|
gtype = SMESHGUI_ElemInfo::tr( "HEXAHEDRON" ); break;
|
||||||
case SMDSEntity_Penta:
|
case SMDSEntity_Penta:
|
||||||
case SMDSEntity_Quad_Penta:
|
case SMDSEntity_Quad_Penta:
|
||||||
|
case SMDSEntity_BiQuad_Penta:
|
||||||
gtype = SMESHGUI_ElemInfo::tr( "PRISM" ); break;
|
gtype = SMESHGUI_ElemInfo::tr( "PRISM" ); break;
|
||||||
case SMDSEntity_Hexagonal_Prism:
|
case SMDSEntity_Hexagonal_Prism:
|
||||||
gtype = SMESHGUI_ElemInfo::tr( "HEX_PRISM" ); break;
|
gtype = SMESHGUI_ElemInfo::tr( "HEX_PRISM" ); break;
|
||||||
|
@ -70,7 +70,7 @@ SMESHGUI_MeshInfosBox::SMESHGUI_MeshInfosBox(const bool full, QWidget* theParent
|
|||||||
myNbHexa(0), myNbLinHexa(0), myNbQuadHexa(0), myNbBiQuadHexa(0),
|
myNbHexa(0), myNbLinHexa(0), myNbQuadHexa(0), myNbBiQuadHexa(0),
|
||||||
myNbTetra(0),myNbLinTetra(0),myNbQuadTetra(0),
|
myNbTetra(0),myNbLinTetra(0),myNbQuadTetra(0),
|
||||||
myNbPyra(0), myNbLinPyra(0), myNbQuadPyra(0),
|
myNbPyra(0), myNbLinPyra(0), myNbQuadPyra(0),
|
||||||
myNbPrism(0),myNbLinPrism(0), myNbQuadPrism(0),
|
myNbPrism(0),myNbLinPrism(0), myNbQuadPrism(0), myNbBiQuadPrism(0),
|
||||||
myNbVolum(0), myNbLinVolum(0), myNbQuadVolum(0), myNbBiQuadVolum(0),
|
myNbVolum(0), myNbLinVolum(0), myNbQuadVolum(0), myNbBiQuadVolum(0),
|
||||||
myNbHexaPrism(0),
|
myNbHexaPrism(0),
|
||||||
myNbPolyh(0)
|
myNbPolyh(0)
|
||||||
@ -309,6 +309,9 @@ SMESHGUI_MeshInfosBox::SMESHGUI_MeshInfosBox(const bool full, QWidget* theParent
|
|||||||
myNbQuadPrism = new QLabel( this );
|
myNbQuadPrism = new QLabel( this );
|
||||||
l->addWidget( myNbQuadPrism, row, 3 );
|
l->addWidget( myNbQuadPrism, row, 3 );
|
||||||
// --
|
// --
|
||||||
|
myNbBiQuadPrism = new QLabel( this );
|
||||||
|
l->addWidget( myNbBiQuadPrism, row, 4 );
|
||||||
|
// --
|
||||||
row++; // increment row count
|
row++; // increment row count
|
||||||
// ... hexa prisms
|
// ... hexa prisms
|
||||||
lab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_HEXAPRISM")), this );
|
lab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_HEXAPRISM")), this );
|
||||||
@ -460,6 +463,7 @@ void SMESHGUI_MeshInfosBox::SetMeshInfo(const SMESH::long_array& theInfo)
|
|||||||
theInfo[SMDSEntity_TriQuad_Hexa] +
|
theInfo[SMDSEntity_TriQuad_Hexa] +
|
||||||
theInfo[SMDSEntity_Penta] +
|
theInfo[SMDSEntity_Penta] +
|
||||||
theInfo[SMDSEntity_Quad_Penta] +
|
theInfo[SMDSEntity_Quad_Penta] +
|
||||||
|
theInfo[SMDSEntity_BiQuad_Penta] +
|
||||||
theInfo[SMDSEntity_Hexagonal_Prism] +
|
theInfo[SMDSEntity_Hexagonal_Prism] +
|
||||||
theInfo[SMDSEntity_Polyhedra] ));
|
theInfo[SMDSEntity_Polyhedra] ));
|
||||||
myNbLinVolum ->setText( QString("%1").arg( theInfo[SMDSEntity_Tetra] +
|
myNbLinVolum ->setText( QString("%1").arg( theInfo[SMDSEntity_Tetra] +
|
||||||
@ -471,7 +475,8 @@ void SMESHGUI_MeshInfosBox::SetMeshInfo(const SMESH::long_array& theInfo)
|
|||||||
theInfo[SMDSEntity_Quad_Pyramid] +
|
theInfo[SMDSEntity_Quad_Pyramid] +
|
||||||
theInfo[SMDSEntity_Quad_Hexa] +
|
theInfo[SMDSEntity_Quad_Hexa] +
|
||||||
theInfo[SMDSEntity_Quad_Penta] ));
|
theInfo[SMDSEntity_Quad_Penta] ));
|
||||||
myNbBiQuadVolum->setText( QString("%1").arg( theInfo[SMDSEntity_TriQuad_Hexa] ));
|
myNbBiQuadVolum->setText( QString("%1").arg( theInfo[SMDSEntity_TriQuad_Hexa] +
|
||||||
|
theInfo[SMDSEntity_BiQuad_Penta] ));
|
||||||
|
|
||||||
if ( myFull )
|
if ( myFull )
|
||||||
{
|
{
|
||||||
@ -514,9 +519,11 @@ void SMESHGUI_MeshInfosBox::SetMeshInfo(const SMESH::long_array& theInfo)
|
|||||||
myNbQuadPyra ->setText( QString("%1").arg( theInfo[SMDSEntity_Quad_Pyramid] ));
|
myNbQuadPyra ->setText( QString("%1").arg( theInfo[SMDSEntity_Quad_Pyramid] ));
|
||||||
// prisms
|
// prisms
|
||||||
myNbPrism ->setText( QString("%1").arg( theInfo[SMDSEntity_Penta] +
|
myNbPrism ->setText( QString("%1").arg( theInfo[SMDSEntity_Penta] +
|
||||||
theInfo[SMDSEntity_Quad_Penta] ));
|
theInfo[SMDSEntity_Quad_Penta] +
|
||||||
myNbLinPrism ->setText( QString("%1").arg( theInfo[SMDSEntity_Penta] ));
|
theInfo[SMDSEntity_BiQuad_Penta] ));
|
||||||
myNbQuadPrism->setText( QString("%1").arg( theInfo[SMDSEntity_Quad_Penta] ));
|
myNbLinPrism ->setText( QString("%1").arg( theInfo[SMDSEntity_Penta] ));
|
||||||
|
myNbQuadPrism ->setText( QString("%1").arg( theInfo[SMDSEntity_Quad_Penta] ));
|
||||||
|
myNbBiQuadPrism->setText( QString("%1").arg( theInfo[SMDSEntity_BiQuad_Penta] ));
|
||||||
// octahedra
|
// octahedra
|
||||||
myNbHexaPrism->setText( QString("%1").arg( theInfo[ SMDSEntity_Hexagonal_Prism ]));
|
myNbHexaPrism->setText( QString("%1").arg( theInfo[ SMDSEntity_Hexagonal_Prism ]));
|
||||||
// polyedres
|
// polyedres
|
||||||
|
@ -84,6 +84,7 @@ private:
|
|||||||
QLabel* myNbPrism;
|
QLabel* myNbPrism;
|
||||||
QLabel* myNbLinPrism;
|
QLabel* myNbLinPrism;
|
||||||
QLabel* myNbQuadPrism;
|
QLabel* myNbQuadPrism;
|
||||||
|
QLabel* myNbBiQuadPrism;
|
||||||
QLabel* myNbVolum;
|
QLabel* myNbVolum;
|
||||||
QLabel* myNbLinVolum;
|
QLabel* myNbLinVolum;
|
||||||
QLabel* myNbQuadVolum;
|
QLabel* myNbQuadVolum;
|
||||||
|
@ -146,9 +146,10 @@ namespace SMESHOp {
|
|||||||
OpQuadraticTetrahedron = 4105, // MENU MODIFICATION - ADD - QUADRATIC TETRAHEDRON
|
OpQuadraticTetrahedron = 4105, // MENU MODIFICATION - ADD - QUADRATIC TETRAHEDRON
|
||||||
OpQuadraticPyramid = 4106, // MENU MODIFICATION - ADD - QUADRATIC PYRAMID
|
OpQuadraticPyramid = 4106, // MENU MODIFICATION - ADD - QUADRATIC PYRAMID
|
||||||
OpQuadraticPentahedron = 4107, // MENU MODIFICATION - ADD - QUADRATIC PENTAHEDRON
|
OpQuadraticPentahedron = 4107, // MENU MODIFICATION - ADD - QUADRATIC PENTAHEDRON
|
||||||
OpQuadraticHexahedron = 4108, // MENU MODIFICATION - ADD - QUADRATIC HEXAHEDRON
|
OpBiQuadraticPentahedron = 4108, // MENU MODIFICATION - ADD - BIQUADRATIC PENTAHEDRON
|
||||||
OpTriQuadraticHexahedron = 4109, // MENU MODIFICATION - ADD - TRIQUADRATIC HEXAHEDRON
|
OpQuadraticHexahedron = 4110, // MENU MODIFICATION - ADD - QUADRATIC HEXAHEDRON
|
||||||
OpQuadraticPolygon = 4110, // MENU MODIFICATION - ADD - QUADRATIC POLYGON
|
OpTriQuadraticHexahedron = 4111, // MENU MODIFICATION - ADD - TRIQUADRATIC HEXAHEDRON
|
||||||
|
OpQuadraticPolygon = 4112, // MENU MODIFICATION - ADD - QUADRATIC POLYGON
|
||||||
OpRemoveNodes = 4200, // MENU MODIFICATION - REMOVE - NODE
|
OpRemoveNodes = 4200, // MENU MODIFICATION - REMOVE - NODE
|
||||||
OpRemoveElements = 4201, // MENU MODIFICATION - REMOVE - ELEMENTS
|
OpRemoveElements = 4201, // MENU MODIFICATION - REMOVE - ELEMENTS
|
||||||
OpRemoveOrphanNodes = 4202, // MENU MODIFICATION - REMOVE - ORPHAN NODES
|
OpRemoveOrphanNodes = 4202, // MENU MODIFICATION - REMOVE - ORPHAN NODES
|
||||||
|
@ -211,6 +211,10 @@
|
|||||||
<source>ICON_DLG_QUADRATIC_PENTAHEDRON</source>
|
<source>ICON_DLG_QUADRATIC_PENTAHEDRON</source>
|
||||||
<translation>mesh_quad_pentahedron.png</translation>
|
<translation>mesh_quad_pentahedron.png</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>ICON_DLG_BIQUADRATIC_PENTAHEDRON</source>
|
||||||
|
<translation>mesh_quad_pentahedron.png</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>ICON_DLG_QUADRATIC_PYRAMID</source>
|
<source>ICON_DLG_QUADRATIC_PYRAMID</source>
|
||||||
<translation>mesh_quad_pyramid.png</translation>
|
<translation>mesh_quad_pyramid.png</translation>
|
||||||
|
@ -892,6 +892,10 @@
|
|||||||
<source>MEN_QUADRATIC_PENTAHEDRON</source>
|
<source>MEN_QUADRATIC_PENTAHEDRON</source>
|
||||||
<translation>Quadratic Pentahedron</translation>
|
<translation>Quadratic Pentahedron</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>MEN_BIQUADRATIC_PENTAHEDRON</source>
|
||||||
|
<translation>BiQuadratic Pentahedron</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>MEN_QUADRATIC_PYRAMID</source>
|
<source>MEN_QUADRATIC_PYRAMID</source>
|
||||||
<translation>Quadratic Pyramid</translation>
|
<translation>Quadratic Pyramid</translation>
|
||||||
@ -1370,6 +1374,10 @@ Please enter correct values and try again</translation>
|
|||||||
<source>SMESH_ADD_QUADRATIC_PENTAHEDRON_TITLE</source>
|
<source>SMESH_ADD_QUADRATIC_PENTAHEDRON_TITLE</source>
|
||||||
<translation>Add Quadratic Pentahedron</translation>
|
<translation>Add Quadratic Pentahedron</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>SMESH_ADD_BIQUADRATIC_PENTAHEDRON_TITLE</source>
|
||||||
|
<translation>Add BiQuadratic Pentahedron</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>SMESH_ADD_QUADRATIC_PYRAMID_TITLE</source>
|
<source>SMESH_ADD_QUADRATIC_PYRAMID_TITLE</source>
|
||||||
<translation>Add Quadratic Pyramid</translation>
|
<translation>Add Quadratic Pyramid</translation>
|
||||||
@ -2530,10 +2538,18 @@ Check algorithm documentation for supported geometry</translation>
|
|||||||
<source>SMESH_QUADRATIC_PENTAHEDRON</source>
|
<source>SMESH_QUADRATIC_PENTAHEDRON</source>
|
||||||
<translation>Quadratic Pentahedron</translation>
|
<translation>Quadratic Pentahedron</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>SMESH_BIQUADRATIC_PENTAHEDRON</source>
|
||||||
|
<translation>BiQuadratic Pentahedron</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>SMESH_QUADRATIC_PENTAHEDRONS</source>
|
<source>SMESH_QUADRATIC_PENTAHEDRONS</source>
|
||||||
<translation>Quadratic Pentahedrons</translation>
|
<translation>Quadratic Pentahedrons</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>SMESH_BIQUADRATIC_PENTAHEDRONS</source>
|
||||||
|
<translation>BiQuadratic Pentahedrons</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>SMESH_QUADRATIC_PYRAMID</source>
|
<source>SMESH_QUADRATIC_PYRAMID</source>
|
||||||
<translation>Quadratic Pyramid</translation>
|
<translation>Quadratic Pyramid</translation>
|
||||||
@ -3386,6 +3402,10 @@ Use Display Entity menu command to show them.
|
|||||||
<source>STB_QUADRATIC_PENTAHEDRON</source>
|
<source>STB_QUADRATIC_PENTAHEDRON</source>
|
||||||
<translation>Quadratic Pentahedron</translation>
|
<translation>Quadratic Pentahedron</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>STB_BIQUADRATIC_PENTAHEDRON</source>
|
||||||
|
<translation>BiQuadratic Pentahedron</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>STB_QUADRATIC_PYRAMID</source>
|
<source>STB_QUADRATIC_PYRAMID</source>
|
||||||
<translation>Quadratic Pyramid</translation>
|
<translation>Quadratic Pyramid</translation>
|
||||||
@ -4062,6 +4082,10 @@ Use Display Entity menu command to show them.
|
|||||||
<source>TOP_QUADRATIC_PENTAHEDRON</source>
|
<source>TOP_QUADRATIC_PENTAHEDRON</source>
|
||||||
<translation>Quadratic Pentahedron</translation>
|
<translation>Quadratic Pentahedron</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>TOP_BIQUADRATIC_PENTAHEDRON</source>
|
||||||
|
<translation>BiQuadratic Pentahedron</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>TOP_QUADRATIC_PYRAMID</source>
|
<source>TOP_QUADRATIC_PYRAMID</source>
|
||||||
<translation>Quadratic Pyramid</translation>
|
<translation>Quadratic Pyramid</translation>
|
||||||
@ -4899,6 +4923,10 @@ Please, create VTK viewer and try again</translation>
|
|||||||
<source>SMESH_ADD_QUADRATIC_PENTAHEDRON</source>
|
<source>SMESH_ADD_QUADRATIC_PENTAHEDRON</source>
|
||||||
<translation>Add Quadratic Pentahedron</translation>
|
<translation>Add Quadratic Pentahedron</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>SMESH_ADD_BIQUADRATIC_PENTAHEDRON</source>
|
||||||
|
<translation>Add BiQuadratic Pentahedron</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>SMESH_ADD_QUADRATIC_PYRAMID</source>
|
<source>SMESH_ADD_QUADRATIC_PYRAMID</source>
|
||||||
<translation>Add Quadratic Pyramid</translation>
|
<translation>Add Quadratic Pyramid</translation>
|
||||||
|
@ -872,6 +872,10 @@
|
|||||||
<source>MEN_QUADRATIC_PENTAHEDRON</source>
|
<source>MEN_QUADRATIC_PENTAHEDRON</source>
|
||||||
<translation>Pentaèdre quadratique</translation>
|
<translation>Pentaèdre quadratique</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>MEN_BIQUADRATIC_PENTAHEDRON</source>
|
||||||
|
<translation>Pentaèdre biquadratique</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>MEN_QUADRATIC_PYRAMID</source>
|
<source>MEN_QUADRATIC_PYRAMID</source>
|
||||||
<translation>Pyramide quadratique</translation>
|
<translation>Pyramide quadratique</translation>
|
||||||
@ -1350,6 +1354,10 @@ Merci de les corriger, puis essayez de nouveau</translation>
|
|||||||
<source>SMESH_ADD_QUADRATIC_PENTAHEDRON_TITLE</source>
|
<source>SMESH_ADD_QUADRATIC_PENTAHEDRON_TITLE</source>
|
||||||
<translation>Ajouter un pentaèdre quadratique</translation>
|
<translation>Ajouter un pentaèdre quadratique</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>SMESH_ADD_BIQUADRATIC_PENTAHEDRON_TITLE</source>
|
||||||
|
<translation>Ajouter un pentaèdre biquadratique</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>SMESH_ADD_QUADRATIC_PYRAMID_TITLE</source>
|
<source>SMESH_ADD_QUADRATIC_PYRAMID_TITLE</source>
|
||||||
<translation>Ajouter une pyramide quadratique</translation>
|
<translation>Ajouter une pyramide quadratique</translation>
|
||||||
@ -2510,10 +2518,18 @@ Référez-vous à la documentation sur l'algorithme et la géométrie suppo
|
|||||||
<source>SMESH_QUADRATIC_PENTAHEDRON</source>
|
<source>SMESH_QUADRATIC_PENTAHEDRON</source>
|
||||||
<translation>Pentaèdre quadratique</translation>
|
<translation>Pentaèdre quadratique</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>SMESH_BIQUADRATIC_PENTAHEDRON</source>
|
||||||
|
<translation>Pentaèdre biquadratique</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>SMESH_QUADRATIC_PENTAHEDRONS</source>
|
<source>SMESH_QUADRATIC_PENTAHEDRONS</source>
|
||||||
<translation>Pentaèdres quadratiques</translation>
|
<translation>Pentaèdres quadratiques</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>SMESH_BIQUADRATIC_PENTAHEDRONS</source>
|
||||||
|
<translation>Pentaèdres biquadratiques</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>SMESH_QUADRATIC_PYRAMID</source>
|
<source>SMESH_QUADRATIC_PYRAMID</source>
|
||||||
<translation>Pyramide quadratique</translation>
|
<translation>Pyramide quadratique</translation>
|
||||||
@ -3367,6 +3383,10 @@ Utilisez le menu "Visualiser une entité" pour les afficher.
|
|||||||
<source>STB_QUADRATIC_PENTAHEDRON</source>
|
<source>STB_QUADRATIC_PENTAHEDRON</source>
|
||||||
<translation>Pentaèdre quadratique</translation>
|
<translation>Pentaèdre quadratique</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>STB_BIQUADRATIC_PENTAHEDRON</source>
|
||||||
|
<translation>Pentaèdre biquadratique</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>STB_QUADRATIC_PYRAMID</source>
|
<source>STB_QUADRATIC_PYRAMID</source>
|
||||||
<translation>Pyramide quadratique</translation>
|
<translation>Pyramide quadratique</translation>
|
||||||
@ -4043,6 +4063,10 @@ Utilisez le menu "Visualiser une entité" pour les afficher.
|
|||||||
<source>TOP_QUADRATIC_PENTAHEDRON</source>
|
<source>TOP_QUADRATIC_PENTAHEDRON</source>
|
||||||
<translation>Pentaèdre quadratique</translation>
|
<translation>Pentaèdre quadratique</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>TOP_BIQUADRATIC_PENTAHEDRON</source>
|
||||||
|
<translation>Pentaèdre biquadratique</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>TOP_QUADRATIC_PYRAMID</source>
|
<source>TOP_QUADRATIC_PYRAMID</source>
|
||||||
<translation>Pyramide quadratique</translation>
|
<translation>Pyramide quadratique</translation>
|
||||||
@ -4880,6 +4904,10 @@ Ouvrez une fenêtre VTK et essayez de nouveau</translation>
|
|||||||
<source>SMESH_ADD_QUADRATIC_PENTAHEDRON</source>
|
<source>SMESH_ADD_QUADRATIC_PENTAHEDRON</source>
|
||||||
<translation>Ajouter un pentaèdre quadratique</translation>
|
<translation>Ajouter un pentaèdre quadratique</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>SMESH_ADD_BIQUADRATIC_PENTAHEDRON</source>
|
||||||
|
<translation>Ajouter un pentaèdre biquadratique</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>SMESH_ADD_QUADRATIC_PYRAMID</source>
|
<source>SMESH_ADD_QUADRATIC_PYRAMID</source>
|
||||||
<translation>Ajouter une pyramide quadratique</translation>
|
<translation>Ajouter une pyramide quadratique</translation>
|
||||||
|
@ -922,7 +922,7 @@ Handle(_pyCommand) _pyGen::AddCommand( const TCollection_AsciiString& theCommand
|
|||||||
"Entity_Polygon", "Entity_Quad_Polygon", "Entity_Tetra", "Entity_Quad_Tetra",
|
"Entity_Polygon", "Entity_Quad_Polygon", "Entity_Tetra", "Entity_Quad_Tetra",
|
||||||
"Entity_Pyramid", "Entity_Quad_Pyramid",
|
"Entity_Pyramid", "Entity_Quad_Pyramid",
|
||||||
"Entity_Hexa", "Entity_Quad_Hexa", "Entity_TriQuad_Hexa",
|
"Entity_Hexa", "Entity_Quad_Hexa", "Entity_TriQuad_Hexa",
|
||||||
"Entity_Penta", "Entity_Quad_Penta", "Entity_Hexagonal_Prism",
|
"Entity_Penta", "Entity_Quad_Penta", "Entity_BiQuad_Penta", "Entity_Hexagonal_Prism",
|
||||||
"Entity_Polyhedra", "Entity_Quad_Polyhedra", "Entity_Ball" };
|
"Entity_Polyhedra", "Entity_Quad_Polyhedra", "Entity_Ball" };
|
||||||
if ( -1 < iGeom && iGeom < nbTypes )
|
if ( -1 < iGeom && iGeom < nbTypes )
|
||||||
Threshold = SMESH + types[ iGeom ];
|
Threshold = SMESH + types[ iGeom ];
|
||||||
|
@ -234,6 +234,7 @@ namespace SMESH
|
|||||||
case Entity_TriQuad_Hexa: myStream<<"Entity_TriQuad_Hexa"; break;
|
case Entity_TriQuad_Hexa: myStream<<"Entity_TriQuad_Hexa"; break;
|
||||||
case Entity_Penta: myStream<<"Entity_Penta"; break;
|
case Entity_Penta: myStream<<"Entity_Penta"; break;
|
||||||
case Entity_Quad_Penta: myStream<<"Entity_Quad_Penta"; break;
|
case Entity_Quad_Penta: myStream<<"Entity_Quad_Penta"; break;
|
||||||
|
case Entity_BiQuad_Penta: myStream<<"Entity_BiQuad_Penta"; break;
|
||||||
case Entity_Hexagonal_Prism: myStream<<"Entity_Hexagonal_Prism"; break;
|
case Entity_Hexagonal_Prism: myStream<<"Entity_Hexagonal_Prism"; break;
|
||||||
case Entity_Polyhedra: myStream<<"Entity_Polyhedra"; break;
|
case Entity_Polyhedra: myStream<<"Entity_Polyhedra"; break;
|
||||||
case Entity_Quad_Polyhedra: myStream<<"Entity_Quad_Polyhedra"; break;
|
case Entity_Quad_Polyhedra: myStream<<"Entity_Quad_Polyhedra"; break;
|
||||||
|
@ -20,6 +20,7 @@ dicoDimENtite= { 'Entity_Node':0,
|
|||||||
'Entity_Quad_Pyramid':1,
|
'Entity_Quad_Pyramid':1,
|
||||||
'Entity_Penta ':1,
|
'Entity_Penta ':1,
|
||||||
'Entity_Quad_Penta':1,
|
'Entity_Quad_Penta':1,
|
||||||
|
'Entity_BiQuad_Penta':1,
|
||||||
'Entity_Hexagonal_Prism':1,
|
'Entity_Hexagonal_Prism':1,
|
||||||
'Entity_Polyhedra':1,
|
'Entity_Polyhedra':1,
|
||||||
'Entity_Quad_Polyhedra':1,
|
'Entity_Quad_Polyhedra':1,
|
||||||
|
Loading…
Reference in New Issue
Block a user