From: apo Date: Mon, 5 Dec 2005 15:10:02 +0000 (+0000) Subject: Fix for [Bug GVIEW10709] X-Git-Tag: TG-D5-38-2003_D2005-29-12~21 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=bb7b4e7cabd8412a0674960139bb829c2762da9d;p=modules%2Fgui.git Fix for [Bug GVIEW10709] wrong presentation of quadratic mesh elements --- diff --git a/src/VTKViewer/VTKViewer_GeometryFilter.cxx b/src/VTKViewer/VTKViewer_GeometryFilter.cxx index b5c2afc5e..a3ca1c04e 100755 --- a/src/VTKViewer/VTKViewer_GeometryFilter.cxx +++ b/src/VTKViewer/VTKViewer_GeometryFilter.cxx @@ -569,22 +569,64 @@ void VTKViewer_GeometryFilter::UnstructuredGridExecute() } case VTK_QUADRATIC_TETRA: { aCellType = VTK_POLYGON; - numFacePts = 8; + numFacePts = 6; + //--------------------------------------------------------------- aNewPts[0] = pts[0]; aNewPts[1] = pts[4]; aNewPts[2] = pts[1]; aNewPts[3] = pts[5]; aNewPts[4] = pts[2]; aNewPts[5] = pts[6]; - aNewPts[6] = pts[3]; - aNewPts[7] = pts[7]; newCellId = output->InsertNextCell(aCellType,numFacePts,aNewPts); if(myStoreMapping) myVTK2ObjIds.push_back(cellId); outputCD->CopyData(cd,cellId,newCellId); + + //--------------------------------------------------------------- + aNewPts[0] = pts[0]; + aNewPts[1] = pts[7]; + aNewPts[2] = pts[3]; + aNewPts[3] = pts[8]; + aNewPts[4] = pts[1]; + aNewPts[5] = pts[4]; + + newCellId = output->InsertNextCell(aCellType,numFacePts,aNewPts); + if(myStoreMapping) + myVTK2ObjIds.push_back(cellId); + + outputCD->CopyData(cd,cellId,newCellId); + + //--------------------------------------------------------------- + aNewPts[0] = pts[1]; + aNewPts[1] = pts[8]; + aNewPts[2] = pts[3]; + aNewPts[3] = pts[9]; + aNewPts[4] = pts[2]; + aNewPts[5] = pts[5]; + + newCellId = output->InsertNextCell(aCellType,numFacePts,aNewPts); + if(myStoreMapping) + myVTK2ObjIds.push_back(cellId); + + outputCD->CopyData(cd,cellId,newCellId); + + //--------------------------------------------------------------- + aNewPts[0] = pts[2]; + aNewPts[1] = pts[9]; + aNewPts[2] = pts[3]; + aNewPts[3] = pts[7]; + aNewPts[4] = pts[0]; + aNewPts[5] = pts[6]; + + newCellId = output->InsertNextCell(aCellType,numFacePts,aNewPts); + if(myStoreMapping) + myVTK2ObjIds.push_back(cellId); + + outputCD->CopyData(cd,cellId,newCellId); + break; } case VTK_QUADRATIC_HEXAHEDRON: {