# CompositePolyDataMapper2 and QuadricLODActor

**URL:** https://discourse.vtk.org/t/compositepolydatamapper2-and-quadriclodactor/5440
**Category:** Support
**Created:** [March 25, 2021, 1:26pm UTC](https://discourse.vtk.org/t/compositepolydatamapper2-and-quadriclodactor/5440 "2021-03-25T13:26:53Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![afa](https://discourse.vtk.org/letter_avatar_proxy/v4/letter/a/e9bcb4/32.png) [@afa](https://discourse.vtk.org/u/afa)
#### Post date: [March 25, 2021, 1:26pm UTC](https://discourse.vtk.org/t/compositepolydatamapper2-and-quadriclodactor/5440/1 "2021-03-25T13:26:53Z")

</div>

Hello all,

I managed to use a QuadricLODActor with a composite mapper but then encountered crashes for example, when zooming out.

It appears that vtkQuadricLODActor::Render will decide whether or not to rebuild LOD. If this is the case then it will call mapper::GetInput.  
The issue is that the composite mapper will return NULL here. And the code will crash a bit later when PolyData::GetBounds will be called on NULL.

Is it wrong trying to use a composite mapper with such actor?  
Should the actor be patched to call mapper::GetInputDataObject(0, 0) if composite?

I am currently using a more simple vtkLODActor but would like to hear your suggestions.  
Thank you

Here is a minimal crashy Python script (tested on VTK8.2.1 and VTK9):

```python
import vtk

composite = vtk.vtkMultiBlockDataSet()
for i in (1, 2):
  sphere = vtk.vtkSphereSource()
  sphere.SetCenter(i, 0., 0.)
  sphere.SetRadius(0.5)

  sphere.Update()
  composite.SetBlock(i, sphere.GetOutput())

mapper = vtk.vtkCompositePolyDataMapper2()
mapper.SetInputDataObject(composite)

# XXX THE CRASH TRIGGER
crash = True
if crash:
  actor = vtk.vtkQuadricLODActor()
else:
  actor = vtk.vtkLODActor()
actor.SetMapper(mapper)

renderer = vtk.vtkRenderer()
renderer.AddActor(actor)

window = vtk.vtkRenderWindow()
window.AddRenderer(renderer)

interactor = vtk.vtkRenderWindowInteractor()
interactor.SetRenderWindow(window)

window.Render()
interactor.Start()

```

---

<div class="post-metadata">

### Author: ![mohaya](https://discourse.vtk.org/letter_avatar_proxy/v4/letter/m/dbc845/32.png) [@mohaya](https://discourse.vtk.org/u/mohaya)
#### Post date: [August 8, 2023, 8:51pm UTC](https://discourse.vtk.org/t/compositepolydatamapper2-and-quadriclodactor/5440/2 "2023-08-08T20:51:28Z")

</div>

Kind of an old topic that unfortunately got no attention. I had the exact same issue, having a `vtkCompositePolyDataMapper2` as mapper for a `vtkQuadricLODActor` causing this crash during the render pass.

```cpp
vtkActor::RenderTranslucentPolygonalGeometry(vtkViewport*)
#1 Object "libvtkRenderingLOD-9.0.so.9.0.3" at 0x7f091afc35bb, in
vtkQuadricLODActor::Render(vtkRenderer*, vtkMapper*)
#0 Object "libvtkCommonDataModel-9.0.so.9.0.3", at 0x7f092102d4dc, in vtkDataSet::GetBounds(double*)
Segmentation fault

```
