Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_itkpolylineparametricpath_to_geometry():
Dimension = 2
polyline = itk.PolyLineParametricPath[Dimension].New()
polyline.AddVertex([3.0, 3.0])
polyline.AddVertex([4.0, 7.0])
polyline.AddVertex([5.0, 5.0])
geometry = to_geometry(polyline)
assert(geometry['vtkClass'] == 'vtkPolyData')
assert(geometry['points']['vtkClass'] == 'vtkPoints')
assert(geometry['points']['numberOfComponents'] == 3)
assert(geometry['points']['dataType'] == 'Float32Array')
assert(geometry['points']['size'] == 3 * 3)
assert(np.array_equal(geometry['points']['values'],
np.array([3.0, 3.0, -5.0e-6, 4.0, 7.0, -5e-6, 5.0, 5.0, -5e-6]).astype(np.float32)))
assert(geometry['verts']['vtkClass'] == 'vtkCellArray')
assert(geometry['verts']['numberOfComponents'] == 1)
assert(geometry['verts']['dataType'] == 'Uint32Array')
assert(geometry['verts']['size'] == 6)
assert(np.array_equal(geometry['verts']['values'],
[1, 0, 1, 1, 1, 2]))
assert(geometry['lines']['vtkClass'] == 'vtkCellArray')
mesh.SetPointData(1, 9.0)
mesh.SetPoint(1, point1)
point2 = PointType()
point2[0] = 1
point2[1] = 1
point2[2] = 0
mesh.SetPoint(2, point2)
mesh.SetPointData(2, 19.0)
point3 = PointType()
point3[0] = 1
point3[1] = 1
point3[2] = 0
mesh.SetPoint(3, point3)
mesh.SetPointData(3, 24.0)
geometry = to_geometry(mesh)
points = mesh.GetPoints()
point_template = itk.template(points)
element_type = point_template[1][1]
point_values = itk.PyVectorContainer[element_type].array_from_vector_container(
points)
assert(geometry['vtkClass'] == 'vtkPolyData')
assert(geometry['points']['vtkClass'] == 'vtkPoints')
assert(geometry['points']['numberOfComponents'] == 3)
assert(geometry['points']['dataType'] == 'Float32Array')
assert(geometry['points']['size'] == 4 * 3)
assert(np.array_equal(geometry['points']['values'],
point_values.astype(np.float32)))
assert(geometry['pointData']['vtkClass'] == 'vtkDataSetAttributes')
assert(geometry['pointData']['arrays'][0]
cone_source = vtk.vtkConeSource()
cone_source.Update()
cone = cone_source.GetOutput()
points = cone.GetPoints()
point_scalars = vtk.vtkFloatArray()
for ii in range(points.GetNumberOfPoints()):
point_scalars.InsertTuple1(ii, ii)
cone.GetPointData().SetScalars(point_scalars)
cell_scalars = vtk.vtkFloatArray()
for ii in range(cone.GetNumberOfCells()):
cell_scalars.InsertTuple1(ii, ii)
cone.GetCellData().SetScalars(cell_scalars)
geometry = to_geometry(cone)
assert(geometry['vtkClass'] == 'vtkPolyData')
assert(geometry['points']['vtkClass'] == 'vtkPoints')
assert(geometry['points']['numberOfComponents'] == 3)
assert(geometry['points']['dataType'] == 'Float32Array')
assert(geometry['points']['size'] == points.GetNumberOfPoints() * 3)
assert(np.array_equal(geometry['points']['values'],
vtk_to_numpy(points.GetData()).astype(np.float32).ravel()))
polys = cone.GetPolys()
assert(geometry['polys']['vtkClass'] == 'vtkCellArray')
assert(geometry['polys']['numberOfComponents'] == 1)
assert(geometry['polys']['dataType'] == 'Uint32Array')
assert(geometry['polys']['size'] == polys.GetData().GetNumberOfValues())
assert(np.array_equal(geometry['polys']['values'],
if not pv.is_pyvista_dataset(mesh):
mesh = pv.wrap(mesh)
mesh = mesh.copy()
if scalars is None and color is None:
scalars = mesh.active_scalar_name
if scalars is not None:
array = mesh[scalars].copy()
mesh.clear_arrays()
mesh[scalars] = array
mesh.active_scalar_name = scalars
elif color is not None:
mesh.clear_arrays()
mesh = to_geometry(mesh)
self._geometries.append(mesh)
self._geometry_colors.append(pv.parse_color(color))
self._geometry_opacities.append(opacity)
self._cmap = cmap
return
def validate(self, obj, value):
self._source_object = value
# For convenience, support assigning a single geometry instead of a
# list
geometries = value
if not isinstance(
geometries, collections.Sequence) and geometries is not None:
geometries = [geometries]
try:
for index, geometry in enumerate(geometries):
if not isinstance(
geometry, dict) or 'vtkClass' not in geometry:
geometries[index] = to_geometry(geometry)
return geometries
except BaseException:
self.error(obj, value)