MCPcopy Create free account
hub / github.com/Kitware/VTK / test

Method test

Serialization/Manager/Testing/Python/TestDynamic.py:9–97  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

7class TestDynamic(vtkTesting.vtkTest):
8
9 def test(self):
10
11 from vtkmodules.vtkSerializationManager import vtkObjectManager
12 from vtkmodules.vtkFiltersSources import vtkConeSource
13 from vtkmodules.vtkRenderingCore import vtkActor, vtkPolyDataMapper, vtkRenderer, vtkRenderWindow, vtkRenderWindowInteractor
14
15 ser_om = vtkObjectManager()
16 ser_om.Initialize()
17
18 deser_om = vtkObjectManager()
19 deser_om.Initialize()
20
21 s = vtkConeSource()
22
23 m = vtkPolyDataMapper()
24 m.SetInputConnection(s.GetOutputPort())
25
26 a = vtkActor()
27 a.SetMapper(m)
28
29 r = vtkRenderer()
30 r.AddActor(a)
31
32 rw = vtkRenderWindow()
33 rw.AddRenderer(r)
34
35 rwi = vtkRenderWindowInteractor()
36 rwi.SetRenderWindow(rw)
37
38 rw.Render()
39
40 last_mtimes = dict()
41
42 def serialize(id_rwi):
43
44 ser_om.UpdateStatesFromObjects()
45 active_ids = ser_om.GetAllDependencies(0)
46
47 for vtk_id in active_ids:
48 vtk_obj = ser_om.GetObjectAtId(vtk_id)
49 status = dict(ids=[], mtimes=[], hashes=[])
50 status['ids'] = active_ids
51 status['mtimes'] = { object_id: ser_om.GetObjectAtId(object_id).GetMTime() for object_id in active_ids }
52 status['hashes'] = { blob_hash: ser_om.GetBlob(blob_hash, True) for blob_hash in ser_om.GetBlobHashes(active_ids) }
53 return status
54
55 def deserialize(status: dict):
56
57 if not len(status.get('ids')):
58 return
59
60 deser_om.PruneUnusedBlobs()
61
62 for object_id in status.get('ids'):
63 new_mtime = status.get('mtimes').get(object_id)
64 last_mtime = last_mtimes.get(object_id)
65 if last_mtime is not None and new_mtime is not None:
66 if last_mtime < new_mtime:

Callers

nothing calls this directly

Calls 15

deserializeFunction · 0.85
serializeFunction · 0.70
RenderMethod · 0.65
vtkConeSourceClass · 0.50
vtkPolyDataMapperClass · 0.50
vtkActorClass · 0.50
vtkRendererClass · 0.50
vtkRenderWindowClass · 0.50
rangeClass · 0.50
InitializeMethod · 0.45
SetInputConnectionMethod · 0.45

Tested by

no test coverage detected