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;
|
cellTypes_[celli] = VTK_WEDGE;
|
||||||
}
|
}
|
||||||
else if (cellModel == tetWedge)
|
else if (cellModel == tetWedge && decomposePoly)
|
||||||
{
|
{
|
||||||
// Treat as squeezed prism (VTK_WEDGE)
|
// Treat as squeezed prism (VTK_WEDGE)
|
||||||
vtkVerts.setSize(6);
|
vtkVerts.setSize(6);
|
||||||
|
|||||||
@ -219,7 +219,7 @@ vtkUnstructuredGrid* Foam::vtkPV3Foam::volumeVTKMesh
|
|||||||
nodeIds
|
nodeIds
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
else if (cellModel == tetWedge)
|
else if (cellModel == tetWedge && !reader_->GetUseVTKPolyhedron())
|
||||||
{
|
{
|
||||||
// Treat as squeezed prism (VTK_WEDGE)
|
// Treat as squeezed prism (VTK_WEDGE)
|
||||||
|
|
||||||
|
|||||||
@ -219,7 +219,7 @@ vtkUnstructuredGrid* Foam::vtkPVFoam::volumeVTKMesh
|
|||||||
nodeIds
|
nodeIds
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
else if (cellModel == tetWedge)
|
else if (cellModel == tetWedge && !reader_->GetUseVTKPolyhedron())
|
||||||
{
|
{
|
||||||
// Treat as squeezed prism (VTK_WEDGE)
|
// Treat as squeezed prism (VTK_WEDGE)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user