Would anyone know how to solve this problem, please?

I am using the `vtkBooleanOperationPolyDataFilter`

class to produce the boundary of the intersection between two hexahedrons. Both hexahedrons are triangulated surfaces as required by this class.

The first hexahedron (white) is defined by the following corners:

```
corners_1 = [
(0, 0, 0), (300, 0, 0), (300, 300, 0), (0, 300, 0),
(0, 0, 100), (300, 0, 100), (300, 300, 100), (0, 300, 100)
]
```

And the second hexahedron (red) is defined by the following corners:

```
corners_2 = [
(200, 200, z), (400, 200, z), (400, 400, z), (200, 400, z),
(200, 200, 90), (400, 200, 90), (400, 400, 90), (200, 400, 90)
]
```

When I use `z = 30`

, the `vtkBooleanOperationPolyDataFilter`

class produces a correct result:

But when I use `z = 40`

, this class produces an incorrect result:

Why is this happening? How can I solve this problem? If anyone can help me, I will be grateful.

My code: intersection.pyw (2.1 KB)