2016-08-07 2 views
0

Notre société veut que notre application web paraview affiche des données pertinentes lorsque les utilisateurs cliquent sur le bouton gauche de la souris.Comment implémenter le point de prélèvement à la souris sous le Web paraview

L'autre partie, comme comment extraire des données à partir d'un point sélectionné, était simple. Mais je ne peux pas résoudre le problème: comment choisir un point dans les coordonnées en cliquant sur la souris?

J'ai ajouté une fonction de rappel pour gérer le bouton gauche dans le script python. Et puis j'ai essayé d'utiliser un vtkPointPicker pour lancer un rayon et choisir le point dans les coordonnées. Mais le programme pvpython qui exécute le script python que le serveur se bloque lorsque vous cliquez sur la souris (pour être exact lorsque le sélecteur exécuter pick()). Sous le débogage, j'ai trouvé que le pointeur NULL de déréférencement de code VTK était pourquoi le programme plante. Mais le code source VTK est juste trop compliqué pour approfondir.

Voici ma fonction de rappel:

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) provoque l'accident.

Répondre

0

Je devrais utiliser vtkWorldPointPicker au lieu de vtkPointPicker.