Creando una matriz con p_points = vtk.vtkPoints

Y luego agregue datos p_points.InsertNextPoint(value).

Hay como 50000 puntos.

Quiero poner esa matriz de puntos en una fuente.

Intenté con una programable con:

  • servermanager recupera getPoints que me dan la matriz de puntos (p_array)

  • Luego con un bucle p_array.InsertNextPoint(p_points.GetPoint(index_point))

Pero sin suerte. La matriz de puntos en la fuente permanece vacía.

Gracias

0
Vince 14 nov. 2017 a las 19:44

2 respuestas

La mejor respuesta

Eso funciona bien, pero es bastante lento cuando tienes 50000 puntos (algo así como 400-500 segundos)

Cuando estoy usando servermanager.Fetch(ProgrammableSource).GetPoints().InsertNextPoints(x,y,z), está actualizando la matriz.

Puedo verlo haciendo un Render (). Y un tiempo dormido ().

Pero al final de la ejecución del script paraview, el contenido parece estar en blanco.

¿Estoy accediendo a un puntero establecido temporalmente y luego no está configurado?

Resuelto: Encontré una manera de usar un PolylineSource en lugar de ProgrammableSource .

Gracias por tu ayuda Cory

0
Vince 22 nov. 2017 a las 10:53

Utilice una fuente programable con una secuencia de comandos como:

import vtk

pts = vtk.vtkPoints()
for i in xrange(10):
  pts.InsertNextPoint(i, i, i)

output.SetPoints(pts)

El objeto output está predefinido en el entorno de Python ejecutado por la Fuente programable y es el objeto de salida de la fuente.

0
Cory Quammen 15 nov. 2017 a las 17:37