Commit ee13bc40 authored by David E. DeMarle's avatar David E. DeMarle Committed by Kitware Robot
Browse files

Merge topic 'Fix2DReflectionFilter'

368b9586

 Fix reflection for 2D cells, with valid results on nodes after triangulation
Acked-by: Kitware Robot's avatarKitware Robot <kwrobot@kitware.com>
Merge-request: !4788
parents fab90595 368b9586
...@@ -209,7 +209,32 @@ vtkIdType vtkReflectionFilter::ReflectNon3DCell( ...@@ -209,7 +209,32 @@ vtkIdType vtkReflectionFilter::ReflectNon3DCell(
} }
for (int j = numCellPts-1; j >= 0; j--) for (int j = numCellPts-1; j >= 0; j--)
{ {
newCellPts[numCellPts-1-j] = cellPts->GetId(j); // Let's take the connectivity of origin cell as follows: 0, 1, 2, 3.
// Here, left : origin, right : symmetrized
// 3 - 2 || 2' - 3'
// | | || | |
// 0 - 1 || 1' - 0'
// Previous result of connectivity of symmetric cell gave: 3', 2', 1', 0'
// Topologically connectivity is good but triangulation of this symmetric
// cell is not simply the symmetry of the triangulation of the origin cell
// if triangulation occurs between index nodes 1 and 3:
// original nodes 1 and 3, symmetric nodes 0' and 2'.
// 3 - 2 || 2' - 3'
// | \ | || | \ |
// 0 - 1 || 1' - 0'
// Visually this is wrong for values on the nodes, result is not symmetric
// as it should be. Our modification provides the following connectivity
// for the symmetric cell: 0', 3', 2', 1'.
// The triangulation behaves as expected now, as illustrated below:
// original nodes 1 and 3, symmetric nodes 1' and 3'.
// 3 - 2 || 2' - 3'
// | \ | || | / |
// 0 - 1 || 1' - 0'
// The new symmetry behaves correctly on higher order as well:
// 4 - 3 \ || / 3' - 4'
// | \ | 2 || 2' | / |
// 0 - 1 / || \ 1' - 0'
newCellPts[(numCellPts-j)%numCellPts] = cellPts->GetId(j);
} }
} }
} // end switch } // end switch
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment