[vtkusers] Notification after interaction with vtkComposite(TransferFunction|ControlPoints)Item
elvis.stansvik at orexplore.com
Wed Jun 22 06:23:48 EDT 2016
2016-06-22 11:07 GMT+02:00 Elvis Stansvik <elvis.stansvik at orexplore.com>:
> 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
>> lambda *_: print('interaction
>> 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
> 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?
Although I realized now that this approach won't work, since for some
reason, by the time I get the vtkCommand.MiddleButtonReleaseEvent, the
point has not yet been deleted. So still looking for a proper solution.
>>> Thanks in advance,
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the vtkusers