From 3b5e571d495d7ea930f2808caa08796a66220593 Mon Sep 17 00:00:00 2001 From: akl Date: Thu, 15 Jan 2009 13:32:20 +0000 Subject: [PATCH] Fix of 20123 issue (EDF VISU 914 : Pyramids are not displayed for ELGA field). --- src/VTKViewer/VTKViewer_GeometryFilter.cxx | 80 ++++++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/src/VTKViewer/VTKViewer_GeometryFilter.cxx b/src/VTKViewer/VTKViewer_GeometryFilter.cxx index 1fbe9f749..c9f40a734 100755 --- a/src/VTKViewer/VTKViewer_GeometryFilter.cxx +++ b/src/VTKViewer/VTKViewer_GeometryFilter.cxx @@ -477,6 +477,7 @@ VTKViewer_GeometryFilter case VTK_QUADRATIC_TETRA: case VTK_QUADRATIC_HEXAHEDRON: case VTK_QUADRATIC_WEDGE: + case VTK_QUADRATIC_PYRAMID: if(!myIsWireframeMode){ input->GetCell(cellId,cell); vtkIdList *pts = vtkIdList::New(); @@ -829,6 +830,85 @@ VTKViewer_GeometryFilter outputCD->CopyData(cd,cellId,newCellId); + break; + } + case VTK_QUADRATIC_PYRAMID: { + aCellType = VTK_POLYGON; + numFacePts = 6; + + //--------------------------------------------------------------- + aNewPts[0] = pts[0]; + aNewPts[1] = pts[8]; + aNewPts[2] = pts[3]; + aNewPts[3] = pts[12]; + aNewPts[4] = pts[4]; + aNewPts[5] = pts[9]; + + newCellId = output->InsertNextCell(aCellType,numFacePts,aNewPts); + if(myStoreMapping) + myVTK2ObjIds.push_back(cellId); + + outputCD->CopyData(cd,cellId,newCellId); + + //--------------------------------------------------------------- + aNewPts[0] = pts[0]; + aNewPts[1] = pts[9]; + aNewPts[2] = pts[4]; + aNewPts[3] = pts[10]; + aNewPts[4] = pts[1]; + aNewPts[5] = pts[5]; + + newCellId = output->InsertNextCell(aCellType,numFacePts,aNewPts); + if(myStoreMapping) + myVTK2ObjIds.push_back(cellId); + + outputCD->CopyData(cd,cellId,newCellId); + + //--------------------------------------------------------------- + aNewPts[0] = pts[1]; + aNewPts[1] = pts[10]; + aNewPts[2] = pts[4]; + aNewPts[3] = pts[11]; + aNewPts[4] = pts[2]; + aNewPts[5] = pts[6]; + + newCellId = output->InsertNextCell(aCellType,numFacePts,aNewPts); + if(myStoreMapping) + myVTK2ObjIds.push_back(cellId); + + outputCD->CopyData(cd,cellId,newCellId); + + //--------------------------------------------------------------- + aNewPts[0] = pts[2]; + aNewPts[1] = pts[11]; + aNewPts[2] = pts[4]; + aNewPts[3] = pts[12]; + aNewPts[4] = pts[3]; + aNewPts[5] = pts[7]; + + newCellId = output->InsertNextCell(aCellType,numFacePts,aNewPts); + if(myStoreMapping) + myVTK2ObjIds.push_back(cellId); + + outputCD->CopyData(cd,cellId,newCellId); + + //--------------------------------------------------------------- + numFacePts = 8; + aNewPts[0] = pts[0]; + aNewPts[1] = pts[5]; + aNewPts[2] = pts[1]; + aNewPts[3] = pts[6]; + aNewPts[4] = pts[2]; + aNewPts[5] = pts[7]; + aNewPts[6] = pts[3]; + aNewPts[7] = pts[8]; + + newCellId = output->InsertNextCell(aCellType,numFacePts,aNewPts); + if(myStoreMapping) + myVTK2ObjIds.push_back(cellId); + + outputCD->CopyData(cd,cellId,newCellId); + break; }} } -- 2.39.2