"""
Misc wrappers for some VTK classes.
"""
# Author: Oualid Benkarim <oualid.benkarim@mcgill.ca>
# License: BSD 3 clause
from vtk.util.vtkConstants import VTK_ID_TYPE
from .base import BSVTKObjectWrapper
from ..decorators import unwrap_input, wrap_output
[docs]class BSCollection(BSVTKObjectWrapper):
"""Wrapper for vtkCollection."""
[docs] def __init__(self, vtkobject=None, **kwargs):
super().__init__(vtkobject, **kwargs)
@property
def n_items(self):
return self.VTKObject.GetNumberOfItems()
@wrap_output
def __getitem__(self, i):
if i < 0:
i += self.n_items
return self.VTKObject.GetItemAsObject(i)
def __setitem__(self, i, obj):
if i < 0:
i += self.n_items
self.VTKObject.ReplaceItem(i, obj)
[docs]class BSPropCollection(BSCollection):
"""Wrapper for vtkPropCollection."""
pass
[docs]class BSActor2DCollection(BSPropCollection):
"""Wrapper for vtkActor2DCollection."""
pass
[docs]class BSActorCollection(BSPropCollection):
"""Wrapper for vtkActorCollection."""
pass
[docs]class BSProp3DCollection(BSPropCollection):
"""Wrapper for vtkProp3DCollection."""
pass
[docs]class BSMapperCollection(BSCollection):
"""Wrapper for vtkMapperCollection."""
pass
[docs]class BSRendererCollection(BSCollection):
"""Wrapper for vtkRendererCollection."""
pass
[docs]class BSPolyDataCollection(BSCollection):
"""Wrapper for vtkPolyDataCollection."""
pass
[docs]class BSTextPropertyCollection(BSCollection):
"""Wrapper for vtkTextPropertyCollection."""
pass
############################################################
# Coordinate object
############################################################
[docs]class BSCoordinate(BSVTKObjectWrapper):
"""Wrapper for vtkCoordinate."""
[docs] def __init__(self, vtkobject=None, **kwargs):
super().__init__(vtkobject, **kwargs)
############################################################
# Cell Array
############################################################
[docs]class BSCellArray(BSVTKObjectWrapper):
"""Wrapper for vtkCellArray."""
[docs] def __init__(self, vtkobject=None, **kwargs):
super().__init__(vtkobject=vtkobject, **kwargs)
[docs] @unwrap_input(2, vtype={2: VTK_ID_TYPE})
def SetCells(self, n_cells, cells):
self.VTKObject.SetCells(n_cells, cells)
############################################################
# GL2PS Exporter
############################################################
[docs]class BSGL2PSExporter(BSVTKObjectWrapper):
"""Wrapper for vtkGL2PSExporter."""
[docs] def __init__(self, vtkobject=None, **kwargs):
super().__init__(vtkobject=vtkobject, **kwargs)