mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-12-28 18:30:35 +05:00
Fix for issue 0019935: EDF 793 SMESH: Drawing of a line on a non-planar surface. To draw only connectivity lines.
This commit is contained in:
parent
c003632371
commit
bc3f3f9c01
@ -168,8 +168,10 @@ SMESH_ActorDef::SMESH_ActorDef()
|
|||||||
aFilter->RegisterCellsWithType(VTK_PYRAMID);
|
aFilter->RegisterCellsWithType(VTK_PYRAMID);
|
||||||
aFilter->RegisterCellsWithType(VTK_QUADRATIC_TETRA);
|
aFilter->RegisterCellsWithType(VTK_QUADRATIC_TETRA);
|
||||||
aFilter->RegisterCellsWithType(VTK_QUADRATIC_HEXAHEDRON);
|
aFilter->RegisterCellsWithType(VTK_QUADRATIC_HEXAHEDRON);
|
||||||
|
aFilter->RegisterCellsWithType(VTK_QUADRATIC_WEDGE);
|
||||||
aFilter->RegisterCellsWithType(VTK_CONVEX_POINT_SET);
|
aFilter->RegisterCellsWithType(VTK_CONVEX_POINT_SET);
|
||||||
|
|
||||||
|
|
||||||
//Definition 1D divice of the actor
|
//Definition 1D divice of the actor
|
||||||
//---------------------------------
|
//---------------------------------
|
||||||
myEdgeProp = vtkProperty::New();
|
myEdgeProp = vtkProperty::New();
|
||||||
@ -1055,6 +1057,7 @@ void SMESH_ActorDef::SetEntityMode(unsigned int theMode){
|
|||||||
aFilter->RegisterCellsWithType(VTK_PYRAMID);
|
aFilter->RegisterCellsWithType(VTK_PYRAMID);
|
||||||
aFilter->RegisterCellsWithType(VTK_QUADRATIC_TETRA);
|
aFilter->RegisterCellsWithType(VTK_QUADRATIC_TETRA);
|
||||||
aFilter->RegisterCellsWithType(VTK_QUADRATIC_HEXAHEDRON);
|
aFilter->RegisterCellsWithType(VTK_QUADRATIC_HEXAHEDRON);
|
||||||
|
aFilter->RegisterCellsWithType(VTK_QUADRATIC_WEDGE);
|
||||||
aFilter->RegisterCellsWithType(VTK_CONVEX_POINT_SET);
|
aFilter->RegisterCellsWithType(VTK_CONVEX_POINT_SET);
|
||||||
}
|
}
|
||||||
aFilter->Update();
|
aFilter->Update();
|
||||||
|
@ -112,7 +112,10 @@ static inline vtkIdType getCellType( const SMDSAbs_ElementType theType,
|
|||||||
else if ( theNbNodes == 20 ) {
|
else if ( theNbNodes == 20 ) {
|
||||||
return VTK_QUADRATIC_HEXAHEDRON;
|
return VTK_QUADRATIC_HEXAHEDRON;
|
||||||
}
|
}
|
||||||
else if ( theNbNodes==13 || theNbNodes==15 ) {
|
else if ( theNbNodes == 15 ) {
|
||||||
|
return VTK_QUADRATIC_WEDGE;
|
||||||
|
}
|
||||||
|
else if ( theNbNodes==13 ) {
|
||||||
return VTK_CONVEX_POINT_SET;
|
return VTK_CONVEX_POINT_SET;
|
||||||
}
|
}
|
||||||
else return VTK_EMPTY_CELL;
|
else return VTK_EMPTY_CELL;
|
||||||
@ -404,7 +407,8 @@ void SMESH_VisualObjDef::buildElemPrs()
|
|||||||
for (int k = 0; k < aNbNodes; k++) aConnectivities.push_back(anIds[k]);
|
for (int k = 0; k < aNbNodes; k++) aConnectivities.push_back(anIds[k]);
|
||||||
}
|
}
|
||||||
else if (aNbNodes == 15) {
|
else if (aNbNodes == 15) {
|
||||||
static int anIds[] = {0,2,1,3,5,4,8,7,6,11,10,9,12,14,13};
|
//static int anIds[] = {0,2,1,3,5,4,8,7,6,11,10,9,12,14,13};
|
||||||
|
static int anIds[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14};
|
||||||
for (int k = 0; k < aNbNodes; k++) aConnectivities.push_back(anIds[k]);
|
for (int k = 0; k < aNbNodes; k++) aConnectivities.push_back(anIds[k]);
|
||||||
//for (int k = 0; k < aNbNodes; k++) {
|
//for (int k = 0; k < aNbNodes; k++) {
|
||||||
// int nn = aConnectivities[k];
|
// int nn = aConnectivities[k];
|
||||||
|
@ -220,8 +220,8 @@ namespace SMESH {
|
|||||||
aType = VTK_CONVEX_POINT_SET;
|
aType = VTK_CONVEX_POINT_SET;
|
||||||
break;
|
break;
|
||||||
case QUAD_PENTAHEDRON:
|
case QUAD_PENTAHEDRON:
|
||||||
//aType = VTK_QUADRATIC_WEDGE; // NOT SUPPORTED IN VTK4.2
|
aType = VTK_QUADRATIC_WEDGE;
|
||||||
aType = VTK_CONVEX_POINT_SET;
|
//aType = VTK_CONVEX_POINT_SET;
|
||||||
break;
|
break;
|
||||||
case QUAD_HEXAHEDRON:
|
case QUAD_HEXAHEDRON:
|
||||||
aType = VTK_QUADRATIC_HEXAHEDRON;
|
aType = VTK_QUADRATIC_HEXAHEDRON;
|
||||||
@ -236,10 +236,14 @@ namespace SMESH {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// VTK cell connectivity opposites the MED one for volumic elements
|
// VTK cell connectivity opposites the MED one for volumic elements
|
||||||
|
if( aType != VTK_QUADRATIC_WEDGE) {
|
||||||
if ( theIds.size() > 8 ? !theReverse : theReverse ) {
|
if ( theIds.size() > 8 ? !theReverse : theReverse ) {
|
||||||
ReverseConnectivity( theIds, theType );
|
ReverseConnectivity( theIds, theType );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if(theReverse)
|
||||||
|
ReverseConnectivity( theIds, theType );
|
||||||
|
}
|
||||||
|
|
||||||
myGrid->Reset();
|
myGrid->Reset();
|
||||||
vtkIdList *anIds = vtkIdList::New();
|
vtkIdList *anIds = vtkIdList::New();
|
||||||
|
@ -137,7 +137,10 @@ vtkIdType getCellType( const SMDSAbs_ElementType theType,
|
|||||||
else if ( theNbNodes == 20 ) {
|
else if ( theNbNodes == 20 ) {
|
||||||
return VTK_QUADRATIC_HEXAHEDRON;
|
return VTK_QUADRATIC_HEXAHEDRON;
|
||||||
}
|
}
|
||||||
else if ( theNbNodes==13 || theNbNodes==15 ) {
|
else if ( theNbNodes==15 ) {
|
||||||
|
return VTK_QUADRATIC_WEDGE;
|
||||||
|
}
|
||||||
|
else if ( theNbNodes==13 ) {
|
||||||
return VTK_CONVEX_POINT_SET;
|
return VTK_CONVEX_POINT_SET;
|
||||||
}
|
}
|
||||||
else return VTK_EMPTY_CELL;
|
else return VTK_EMPTY_CELL;
|
||||||
|
Loading…
Reference in New Issue
Block a user