私たちの会社は、ユーザーがマウスの左ボタンをクリックすると、関連するデータを表示するためにparaview Webアプリケーションを望みます。paraview webの下でマウスでピッキングポイントを実装する方法
選択したポイントからデータを抽出する方法のような他の部分は簡単でした。しかし、私は問題を解決することはできません:どのようにマウスのクリック中に座標内のポイントを選択する?
私は、コールバック関数を追加して、Pythonスクリプトの左ボタンを押して処理しました。そして、私はvtkPointPickerを使ってレイをキャストし、座標内のポイントを選んだ。しかし、pvpython pythonスクリプトをサーバーとして実行するプログラムは、マウスをクリックすると正確にピッカーがピック()を実行したときにクラッシュします。デバッグ中に、私はVTKコード逆参照ヌルポインタがプログラムがクラッシュする理由であることが判明しました。しかし、VTKのソースコードは複雑すぎて、さらに深く掘り下げることはできません。
def CustomLeftButtonPress(obj, event):
x = obj.GetEventPosition()[0]
y = obj.GetEventPosition()[1]
picker = vtkPointPicker()
obj.SetPicker(picker)
currentRenderer = obj.FindPokedRenderer(x,y)
picker.Pick(x, y, 0.0, currentRenderer)
...
picker.Pick(x, y, 0.0, currentRenderer)
は、クラッシュが発生します。
は、ここに私のコールバック関数です。