Как исправить событие интерактора моего vtkRenderWindow, вызывающее половину времени, которое должно быть? - PullRequest
0 голосов
/ 04 апреля 2019

У меня есть vtkRenderWindow в моем проекте Activiz.NET, и я хочу знать координаты мыши каждый раз, когда я нажимаю левую кнопку мыши.Я делаю следующее:

    m_window.GetInteractor().LeftButtonPressEvt += leftButtonPressEvent;


    private void leftButtonPressEvent(vtkObject sender, vtkObjectEventArgs e)
    {
        int[] position;
        position = m_window.GetInteractor().GetEventPosition();
        MessageBox.Show("X: " + position[0] + ", Y: " + position[1]);
    }

(где m_window - vtkRenderWindow)

Это работает ... но я делаю только 1 каждые 2 клика.То есть событие срабатывает каждые 2 клика.Я думал, что это могло быть связано с тем, что мой RenderWindowControl потерял фокус после отображения MessageBox, но это не так.Что это исправляет:

    m_window.GetInteractor().RemoveAllObservers(); 

Но это бесполезно, поскольку не позволяет мне взаимодействовать с моделями в vtkRenderers, содержащимися в vtkRenderWindow.

Есть идеи, как правильно организовать это событие?

Спасибо!

...