[vtkusers] Notification after interaction with vtkComposite(TransferFunction|ControlPoints)Item

Elvis Stansvik elvis.stansvik at orexplore.com
Wed Jun 22 04:36:16 EDT 2016


2016-06-21 16:02 GMT+02:00 Elvis Stansvik <elvis.stansvik at orexplore.com>:

> Hi all,
>
> I'm using a vtkCompositeTransferFunctionItem +
> vtkCompositeControlPointsItem in a vtkChartXY to modify the transfer
> functions used for some volume rendering.
>
> Is there some event from one of these items I can observe that will fire
> once interaction has occurred? I know I can observe the ModifiedEvent of
> the vtkCompositeTransferFunctionItem, but when dragging points around, it
> will fire on each mouse move. I need to be notified only once the
> interaction has stopped.
>

Looking at the code, I noticed that vtkControlPointsItem seem to emit
vtkCommand::StartInteractionEvent and vtkCommand::EndInteractionEvent
(though I'm not sure...), and since vtkCompositeControlPointsItem
indirectly inherits vtkControlPointsItem, I tried to observe
vtkCommand::EndInteractionEvent with

        self._pointsItem.AddObserver(vtkCommand.EndInteractionEvent,
                                     lambda *_: print('interaction ended'))

where self._pointsItem is my vtkCompositeControlPointsItem.

But it seems the event is not emitted when I interact with the points.

Any ideas here? Surely there must be some way of being notified when
interaction with the color transfer functions has ended? My use case is
that I don't want to issue a re-render of my volume each time the mouse
moves when dragging a point around. Only when dragging finally stops do I
want to re-render.

Any advice is much appriciated.

Elvis


> Thanks in advance,
> Elvis
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20160622/6c7e93fb/attachment.html>


More information about the vtkusers mailing list