foamToVTK, PVFoamReader: Resolve problems converting VTK_WEDGE
- There will be triangles rendered inside the mesh (when
surface-rendering), because one of the cell's triangles is defined
as a quadrangle in VTK_WEDGE.
- Therefore, this VTK_WEDGE representation is only used when
decomposing the mesh, otherwise the correct representation is done
by VTK_POLYHEDRON.
- Furthermore, using VTK_PYRAMID gave worse result, because it renders
2 triangles inside the mesh for the collapsed quadrangle, likely due
to mismatch with the adjacent cell's face.
- Using VTK_HEXAHEDRON was not tested in this iteration, given that it
should give even worse results, when compared to using VTK_PYRAMID.
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2099
This commit is contained in:
@ -152,7 +152,7 @@ Foam::vtkTopo::vtkTopo(const polyMesh& mesh)
|
||||
|
||||
cellTypes_[celli] = VTK_WEDGE;
|
||||
}
|
||||
else if (cellModel == tetWedge)
|
||||
else if (cellModel == tetWedge && decomposePoly)
|
||||
{
|
||||
// Treat as squeezed prism (VTK_WEDGE)
|
||||
vtkVerts.setSize(6);
|
||||
|
||||
@ -219,7 +219,7 @@ vtkUnstructuredGrid* Foam::vtkPV3Foam::volumeVTKMesh
|
||||
nodeIds
|
||||
);
|
||||
}
|
||||
else if (cellModel == tetWedge)
|
||||
else if (cellModel == tetWedge && !reader_->GetUseVTKPolyhedron())
|
||||
{
|
||||
// Treat as squeezed prism (VTK_WEDGE)
|
||||
|
||||
|
||||
@ -219,7 +219,7 @@ vtkUnstructuredGrid* Foam::vtkPVFoam::volumeVTKMesh
|
||||
nodeIds
|
||||
);
|
||||
}
|
||||
else if (cellModel == tetWedge)
|
||||
else if (cellModel == tetWedge && !reader_->GetUseVTKPolyhedron())
|
||||
{
|
||||
// Treat as squeezed prism (VTK_WEDGE)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user