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

Elvis Stansvik elvis.stansvik at orexplore.com
Wed Jun 22 05:07:36 EDT 2016


2016-06-22 10:36 GMT+02:00 Elvis Stansvik <elvis.stansvik at orexplore.com>:

> 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.
>

After some more experimentation, trying to observe various events on the
items, the chart, the context view and the context scene, I've realized I
can observe

vtkCommand.LeftButtonReleaseEvent
vtkCommand.RightButtonReleaseEvent
vtkCommand.MiddleButtonReleaseEvent

on the context scene. This will work as a workaround, but seems overly
liberal and complicated. Is there no single event on the composite control
points item or the composite transfer function item I could observe?

Elvis


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


More information about the vtkusers mailing list