OpenGeodeWeb-Viewer 1.18.0rc1__tar.gz → 1.19.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (218) hide show
  1. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/PKG-INFO +1 -1
  2. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/pyproject.toml +1 -1
  3. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/OpenGeodeWeb_Viewer.egg-info/PKG-INFO +1 -1
  4. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/OpenGeodeWeb_Viewer.egg-info/SOURCES.txt +4 -0
  5. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/object/object_methods.py +22 -10
  6. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/mesh_protocols.py +10 -6
  7. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/model_protocols.py +40 -27
  8. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/schemas/__init__.py +1 -0
  9. opengeodeweb_viewer-1.19.0/src/opengeodeweb_viewer/rpc/model/schemas/get_blocks_bounds.json +16 -0
  10. opengeodeweb_viewer-1.19.0/src/opengeodeweb_viewer/rpc/model/schemas/get_blocks_bounds.py +12 -0
  11. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/__init__.py +1 -0
  12. opengeodeweb_viewer-1.19.0/src/opengeodeweb_viewer/rpc/viewer/schemas/hover_highlight.json +24 -0
  13. opengeodeweb_viewer-1.19.0/src/opengeodeweb_viewer/rpc/viewer/schemas/hover_highlight.py +20 -0
  14. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/viewer_protocols.py +41 -2
  15. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/vtk_protocol.py +47 -6
  16. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/LICENSE +0 -0
  17. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/README.md +0 -0
  18. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/requirements.txt +0 -0
  19. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/setup.cfg +0 -0
  20. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/OpenGeodeWeb_Viewer.egg-info/dependency_links.txt +0 -0
  21. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/OpenGeodeWeb_Viewer.egg-info/entry_points.txt +0 -0
  22. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/OpenGeodeWeb_Viewer.egg-info/requires.txt +0 -0
  23. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/OpenGeodeWeb_Viewer.egg-info/top_level.txt +0 -0
  24. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/__init__.py +0 -0
  25. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/app.py +0 -0
  26. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/config.py +0 -0
  27. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/py.typed +0 -0
  28. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/generic/generic_protocols.py +0 -0
  29. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/generic/schemas/__init__.py +0 -0
  30. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/generic/schemas/deregister.json +0 -0
  31. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/generic/schemas/deregister.py +0 -0
  32. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/generic/schemas/register.json +0 -0
  33. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/generic/schemas/register.py +0 -0
  34. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/cells/attribute/cell/cells_attribute_cell_protocols.py +0 -0
  35. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/cells/attribute/cell/schemas/__init__.py +0 -0
  36. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/cells/attribute/cell/schemas/color_map.json +0 -0
  37. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/cells/attribute/cell/schemas/color_map.py +0 -0
  38. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/cells/attribute/cell/schemas/name.json +0 -0
  39. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/cells/attribute/cell/schemas/name.py +0 -0
  40. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/cells/attribute/vertex/cells_attribute_vertex_protocols.py +0 -0
  41. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/cells/attribute/vertex/schemas/__init__.py +0 -0
  42. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/cells/attribute/vertex/schemas/color_map.json +0 -0
  43. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/cells/attribute/vertex/schemas/color_map.py +0 -0
  44. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/cells/attribute/vertex/schemas/name.json +0 -0
  45. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/cells/attribute/vertex/schemas/name.py +0 -0
  46. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/cells/cells_protocols.py +0 -0
  47. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/__init__.py +0 -0
  48. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/color.json +0 -0
  49. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/color.py +0 -0
  50. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/visibility.json +0 -0
  51. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/visibility.py +0 -0
  52. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/edges/attribute/edge/edges_attribute_edge_protocols.py +0 -0
  53. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/edges/attribute/edge/schemas/__init__.py +0 -0
  54. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/edges/attribute/edge/schemas/color_map.json +0 -0
  55. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/edges/attribute/edge/schemas/color_map.py +0 -0
  56. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/edges/attribute/edge/schemas/name.json +0 -0
  57. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/edges/attribute/edge/schemas/name.py +0 -0
  58. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/edges/attribute/vertex/edges_attribute_vertex_protocols.py +0 -0
  59. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/edges/attribute/vertex/schemas/__init__.py +0 -0
  60. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/edges/attribute/vertex/schemas/color_map.json +0 -0
  61. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/edges/attribute/vertex/schemas/color_map.py +0 -0
  62. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/edges/attribute/vertex/schemas/name.json +0 -0
  63. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/edges/attribute/vertex/schemas/name.py +0 -0
  64. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/edges/edges_protocols.py +0 -0
  65. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/__init__.py +0 -0
  66. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/color.json +0 -0
  67. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/color.py +0 -0
  68. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/visibility.json +0 -0
  69. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/visibility.py +0 -0
  70. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/width.json +0 -0
  71. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/width.py +0 -0
  72. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/points/attribute/vertex/points_attribute_vertex_protocols.py +0 -0
  73. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/points/attribute/vertex/schemas/__init__.py +0 -0
  74. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/points/attribute/vertex/schemas/color_map.json +0 -0
  75. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/points/attribute/vertex/schemas/color_map.py +0 -0
  76. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/points/attribute/vertex/schemas/name.json +0 -0
  77. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/points/attribute/vertex/schemas/name.py +0 -0
  78. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/points/points_protocols.py +0 -0
  79. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/points/schemas/__init__.py +0 -0
  80. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/points/schemas/color.json +0 -0
  81. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/points/schemas/color.py +0 -0
  82. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/points/schemas/size.json +0 -0
  83. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/points/schemas/size.py +0 -0
  84. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/points/schemas/vertex_attribute.json +0 -0
  85. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/points/schemas/vertex_attribute.py +0 -0
  86. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/points/schemas/vertex_color_map.json +0 -0
  87. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/points/schemas/vertex_color_map.py +0 -0
  88. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/points/schemas/vertex_scalar_range.json +0 -0
  89. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/points/schemas/vertex_scalar_range.py +0 -0
  90. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/points/schemas/visibility.json +0 -0
  91. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/points/schemas/visibility.py +0 -0
  92. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/attribute/polygon/polygons_attribute_polygon_protocols.py +0 -0
  93. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/attribute/polygon/schemas/__init__.py +0 -0
  94. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/attribute/polygon/schemas/color_map.json +0 -0
  95. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/attribute/polygon/schemas/color_map.py +0 -0
  96. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/attribute/polygon/schemas/name.json +0 -0
  97. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/attribute/polygon/schemas/name.py +0 -0
  98. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/attribute/vertex/polygons_attribute_vertex_protocols.py +0 -0
  99. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/attribute/vertex/schemas/__init__.py +0 -0
  100. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/attribute/vertex/schemas/color_map.json +0 -0
  101. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/attribute/vertex/schemas/color_map.py +0 -0
  102. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/attribute/vertex/schemas/name.json +0 -0
  103. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/attribute/vertex/schemas/name.py +0 -0
  104. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/polygons_protocols.py +0 -0
  105. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/__init__.py +0 -0
  106. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/color.json +0 -0
  107. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/color.py +0 -0
  108. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/visibility.json +0 -0
  109. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/visibility.py +0 -0
  110. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/attribute/polyhedron/polyhedra_attribute_polyhedron_protocols.py +0 -0
  111. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/attribute/polyhedron/schemas/__init__.py +0 -0
  112. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/attribute/polyhedron/schemas/color_map.json +0 -0
  113. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/attribute/polyhedron/schemas/color_map.py +0 -0
  114. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/attribute/polyhedron/schemas/name.json +0 -0
  115. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/attribute/polyhedron/schemas/name.py +0 -0
  116. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/attribute/vertex/polyhedra_attribute_vertex_protocols.py +0 -0
  117. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/attribute/vertex/schemas/__init__.py +0 -0
  118. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/attribute/vertex/schemas/color_map.json +0 -0
  119. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/attribute/vertex/schemas/color_map.py +0 -0
  120. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/attribute/vertex/schemas/name.json +0 -0
  121. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/attribute/vertex/schemas/name.py +0 -0
  122. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/polyhedra_protocols.py +0 -0
  123. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/__init__.py +0 -0
  124. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/color.json +0 -0
  125. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/color.py +0 -0
  126. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/visibility.json +0 -0
  127. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/visibility.py +0 -0
  128. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/schemas/__init__.py +0 -0
  129. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/schemas/apply_textures.json +0 -0
  130. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/schemas/apply_textures.py +0 -0
  131. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/schemas/color.json +0 -0
  132. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/schemas/color.py +0 -0
  133. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/schemas/deregister.json +0 -0
  134. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/schemas/deregister.py +0 -0
  135. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/schemas/highlight.json +0 -0
  136. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/schemas/highlight.py +0 -0
  137. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/schemas/register.json +0 -0
  138. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/schemas/register.py +0 -0
  139. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/schemas/visibility.json +0 -0
  140. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/schemas/visibility.py +0 -0
  141. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/blocks/model_blocks_protocols.py +0 -0
  142. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/blocks/schemas/__init__.py +0 -0
  143. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/blocks/schemas/color.json +0 -0
  144. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/blocks/schemas/color.py +0 -0
  145. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/blocks/schemas/visibility.json +0 -0
  146. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/blocks/schemas/visibility.py +0 -0
  147. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/corners/model_corners_protocols.py +0 -0
  148. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/corners/schemas/__init__.py +0 -0
  149. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/corners/schemas/color.json +0 -0
  150. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/corners/schemas/color.py +0 -0
  151. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/corners/schemas/visibility.json +0 -0
  152. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/corners/schemas/visibility.py +0 -0
  153. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/edges/model_edges_protocols.py +0 -0
  154. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/edges/schemas/__init__.py +0 -0
  155. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/edges/schemas/visibility.json +0 -0
  156. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/edges/schemas/visibility.py +0 -0
  157. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/lines/model_lines_protocols.py +0 -0
  158. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/lines/schemas/__init__.py +0 -0
  159. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/lines/schemas/color.json +0 -0
  160. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/lines/schemas/color.py +0 -0
  161. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/lines/schemas/visibility.json +0 -0
  162. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/lines/schemas/visibility.py +0 -0
  163. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/points/model_points_protocols.py +0 -0
  164. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/points/schemas/__init__.py +0 -0
  165. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/points/schemas/size.json +0 -0
  166. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/points/schemas/size.py +0 -0
  167. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/points/schemas/visibility.json +0 -0
  168. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/points/schemas/visibility.py +0 -0
  169. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/schemas/deregister.json +0 -0
  170. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/schemas/deregister.py +0 -0
  171. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/schemas/highlight.json +0 -0
  172. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/schemas/highlight.py +0 -0
  173. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/schemas/register.json +0 -0
  174. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/schemas/register.py +0 -0
  175. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/schemas/visibility.json +0 -0
  176. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/schemas/visibility.py +0 -0
  177. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/surfaces/model_surfaces_protocols.py +0 -0
  178. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/surfaces/schemas/__init__.py +0 -0
  179. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/surfaces/schemas/apply_textures.json +0 -0
  180. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/surfaces/schemas/apply_textures.py +0 -0
  181. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/surfaces/schemas/color.json +0 -0
  182. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/surfaces/schemas/color.py +0 -0
  183. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/surfaces/schemas/visibility.json +0 -0
  184. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/surfaces/schemas/visibility.py +0 -0
  185. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/schemas/__init__.py +0 -0
  186. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/schemas/import_project.json +0 -0
  187. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/schemas/import_project.py +0 -0
  188. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/schemas/kill.json +0 -0
  189. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/schemas/kill.py +0 -0
  190. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/utils_protocols.py +0 -0
  191. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/axes.json +0 -0
  192. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/axes.py +0 -0
  193. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/get_point_position.json +0 -0
  194. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/get_point_position.py +0 -0
  195. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/grid_scale.json +0 -0
  196. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/grid_scale.py +0 -0
  197. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/picked_ids.json +0 -0
  198. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/picked_ids.py +0 -0
  199. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/render.json +0 -0
  200. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/render.py +0 -0
  201. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/reset_camera.json +0 -0
  202. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/reset_camera.py +0 -0
  203. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/reset_visualization.json +0 -0
  204. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/reset_visualization.py +0 -0
  205. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/set_background_color.json +0 -0
  206. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/set_background_color.py +0 -0
  207. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/set_z_scaling.json +0 -0
  208. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/set_z_scaling.py +0 -0
  209. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/take_screenshot.json +0 -0
  210. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/take_screenshot.py +0 -0
  211. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/update_camera.json +0 -0
  212. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/update_camera.py +0 -0
  213. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/update_data.json +0 -0
  214. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/update_data.py +0 -0
  215. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/utils_functions.py +0 -0
  216. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/tests/test_generic_protocols.py +0 -0
  217. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/tests/test_utils_protocols.py +0 -0
  218. {opengeodeweb_viewer-1.18.0rc1 → opengeodeweb_viewer-1.19.0}/tests/test_viewer_protocols.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: OpenGeodeWeb-Viewer
3
- Version: 1.18.0rc1
3
+ Version: 1.19.0
4
4
  Summary: OpenGeodeWeb-Viewer is an open source framework that proposes handy python functions and wrappers for the OpenGeode ecosystem
5
5
  Author-email: Geode-solutions <team-web@geode-solutions.com>
6
6
  Project-URL: Homepage, https://github.com/Geode-solutions/OpenGeodeWeb-Viewer
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
5
5
 
6
6
  [project]
7
7
  name = "OpenGeodeWeb-Viewer"
8
- version = "1.18.0-rc.1"
8
+ version = "1.19.0"
9
9
  dynamic = ["dependencies"]
10
10
  authors = [{ name = "Geode-solutions", email = "team-web@geode-solutions.com" }]
11
11
  description = "OpenGeodeWeb-Viewer is an open source framework that proposes handy python functions and wrappers for the OpenGeode ecosystem"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: OpenGeodeWeb-Viewer
3
- Version: 1.18.0rc1
3
+ Version: 1.19.0
4
4
  Summary: OpenGeodeWeb-Viewer is an open source framework that proposes handy python functions and wrappers for the OpenGeode ecosystem
5
5
  Author-email: Geode-solutions <team-web@geode-solutions.com>
6
6
  Project-URL: Homepage, https://github.com/Geode-solutions/OpenGeodeWeb-Viewer
@@ -162,6 +162,8 @@ src/opengeodeweb_viewer/rpc/model/points/schemas/visibility.py
162
162
  src/opengeodeweb_viewer/rpc/model/schemas/__init__.py
163
163
  src/opengeodeweb_viewer/rpc/model/schemas/deregister.json
164
164
  src/opengeodeweb_viewer/rpc/model/schemas/deregister.py
165
+ src/opengeodeweb_viewer/rpc/model/schemas/get_blocks_bounds.json
166
+ src/opengeodeweb_viewer/rpc/model/schemas/get_blocks_bounds.py
165
167
  src/opengeodeweb_viewer/rpc/model/schemas/highlight.json
166
168
  src/opengeodeweb_viewer/rpc/model/schemas/highlight.py
167
169
  src/opengeodeweb_viewer/rpc/model/schemas/register.json
@@ -189,6 +191,8 @@ src/opengeodeweb_viewer/rpc/viewer/schemas/get_point_position.json
189
191
  src/opengeodeweb_viewer/rpc/viewer/schemas/get_point_position.py
190
192
  src/opengeodeweb_viewer/rpc/viewer/schemas/grid_scale.json
191
193
  src/opengeodeweb_viewer/rpc/viewer/schemas/grid_scale.py
194
+ src/opengeodeweb_viewer/rpc/viewer/schemas/hover_highlight.json
195
+ src/opengeodeweb_viewer/rpc/viewer/schemas/hover_highlight.py
192
196
  src/opengeodeweb_viewer/rpc/viewer/schemas/picked_ids.json
193
197
  src/opengeodeweb_viewer/rpc/viewer/schemas/picked_ids.py
194
198
  src/opengeodeweb_viewer/rpc/viewer/schemas/render.json
@@ -13,9 +13,9 @@ from vtkmodules.vtkRenderingCore import (
13
13
  vtkDataSetMapper,
14
14
  )
15
15
  from vtkmodules.vtkCommonDataModel import (
16
- vtkDataObject,
17
16
  vtkDataSet,
18
17
  )
18
+ from vtkmodules.vtkFiltersExtraction import vtkExtractSelection
19
19
 
20
20
  # Local application imports
21
21
  from opengeodeweb_viewer.vtk_protocol import VtkView, VtkPipeline
@@ -47,7 +47,7 @@ class VtkObjectView(VtkView):
47
47
  if actor.visibility == True:
48
48
  resetCamara = False
49
49
  renderer.AddActor(data.actor)
50
- renderer.AddActor(data.highlightActor)
50
+ renderer.AddActor(data.hoverHighlight.actor)
51
51
  if resetCamara:
52
52
  renderer.ResetCamera()
53
53
 
@@ -56,7 +56,7 @@ class VtkObjectView(VtkView):
56
56
  renderWindow = self.getView("-1")
57
57
  renderer = renderWindow.GetRenderers().GetFirstRenderer()
58
58
  renderer.RemoveActor(pipeline.actor)
59
- renderer.RemoveActor(pipeline.highlightActor)
59
+ renderer.RemoveActor(pipeline.hoverHighlight.actor)
60
60
  self.deregister_object(data_id)
61
61
 
62
62
  def SetVisibility(self, data_id: str, visibility: bool) -> None:
@@ -162,19 +162,31 @@ class VtkObjectView(VtkView):
162
162
  output.GetCellData().SetActiveScalars("")
163
163
  mapper.ScalarVisibilityOff()
164
164
 
165
- def highlight(
166
- self, actor: vtkActor, mapper: vtkMapper, input_dataset: vtkDataObject
167
- ) -> None:
168
- mapper.SetInputDataObject(input_dataset)
165
+ def _apply_highlight_style(self, actor: vtkActor, mapper: vtkDataSetMapper) -> None:
169
166
  mapper.ScalarVisibilityOff()
170
167
  mapper.SetResolveCoincidentTopologyToPolygonOffset()
168
+ mapper.SetRelativeCoincidentTopologyPolygonOffsetParameters(-2, -2)
171
169
  prop = actor.GetProperty()
172
170
  prop.SetColor(0.235, 0.6, 0.514)
173
- prop.SetLineWidth(3)
174
- prop.SetPointSize(14)
171
+ prop.SetLineWidth(4)
172
+ prop.SetPointSize(15)
175
173
  prop.SetRenderPointsAsSpheres(True)
176
- prop.SetLighting(True)
174
+ prop.SetLighting(False)
177
175
  prop.SetEdgeVisibility(True)
178
176
  prop.SetEdgeColor(0.12, 0.35, 0.30)
179
177
  actor.SetMapper(mapper)
180
178
  actor.VisibilityOff()
179
+ actor.SetUseBounds(False)
180
+
181
+ def highlight(self, pipeline: VtkPipeline) -> None:
182
+ highlight = pipeline.hoverHighlight
183
+ self._apply_highlight_style(highlight.actor, highlight.mapper)
184
+ input_port = (
185
+ pipeline.filter.GetOutputPort()
186
+ if pipeline.filter
187
+ else pipeline.reader.GetOutputPort()
188
+ )
189
+ highlight.selection.AddNode(highlight.selectionNode)
190
+ highlight.extractSelection.SetInputConnection(0, input_port)
191
+ highlight.extractSelection.SetInputData(1, highlight.selection)
192
+ highlight.mapper.SetInputConnection(highlight.extractSelection.GetOutputPort())
@@ -50,11 +50,8 @@ class VtkMeshView(VtkObjectView):
50
50
  reader.Update()
51
51
  mapper = vtkDataSetMapper()
52
52
  mapper.SetInputConnection(reader.GetOutputPort())
53
- highlight_mapper = vtkDataSetMapper()
54
- data = VtkPipeline(reader, highlight_mapper, mapper)
55
- self.highlight(
56
- data.highlightActor, data.highlightMapper, reader.GetOutputDataObject(0)
57
- )
53
+ data = VtkPipeline(reader, mapper)
54
+ self.highlight(data)
58
55
  self.registerObject(data_id, file_name, data)
59
56
  except Exception as e:
60
57
  print(f"Error registering mesh {data_id}: {str(e)}", flush=True)
@@ -177,5 +174,12 @@ class VtkMeshView(VtkObjectView):
177
174
  )
178
175
  params = schemas.Highlight.from_dict(rpc_params)
179
176
  pipeline = self.get_vtk_pipeline(params.id)
180
- pipeline.highlightActor.SetVisibility(params.visibility)
177
+ if params.visibility:
178
+ dataset = pipeline.reader.GetOutputDataObject(0)
179
+ pipeline.hoverHighlight.mapper.SetInputDataObject(dataset)
180
+ else:
181
+ pipeline.hoverHighlight.mapper.SetInputConnection(
182
+ pipeline.hoverHighlight.extractSelection.GetOutputPort()
183
+ )
184
+ pipeline.hoverHighlight.actor.SetVisibility(params.visibility)
181
185
  self.render(-1)
@@ -4,11 +4,15 @@ import os
4
4
  # Third party imports
5
5
  from vtkmodules.vtkCommonDataModel import (
6
6
  vtkCompositeDataSet,
7
+ vtkBoundingBox,
8
+ vtkDataSet,
9
+ vtkSelectionNode,
7
10
  )
8
11
  from vtkmodules.vtkRenderingCore import (
9
- vtkCompositeDataDisplayAttributes,
10
12
  vtkCompositePolyDataMapper,
13
+ vtkCompositeDataDisplayAttributes,
11
14
  )
15
+ from vtkmodules.vtkFiltersCore import vtkAppendDataSets
12
16
  from vtkmodules.vtkIOXML import vtkXMLMultiBlockDataReader
13
17
  from vtkmodules.vtkFiltersGeometry import vtkGeometryFilter
14
18
  from wslink import register as exportRpc # type: ignore
@@ -118,12 +122,8 @@ class VtkModelView(VtkObjectView):
118
122
  mapper.SetInputDataObject(geometry_output)
119
123
  attributes = vtkCompositeDataDisplayAttributes()
120
124
  mapper.SetCompositeDataDisplayAttributes(attributes)
121
- highlight_mapper = vtkCompositePolyDataMapper()
122
- highlight_mapper.SetCompositeDataDisplayAttributes(
123
- vtkCompositeDataDisplayAttributes()
124
- )
125
- data = VtkPipeline(reader, highlight_mapper, mapper, filter)
126
- self.highlight(data.highlightActor, data.highlightMapper, geometry_output)
125
+ data = VtkPipeline(reader, mapper, filter)
126
+ self.highlight(data)
127
127
  iterator = geometry_output.NewTreeIterator()
128
128
  iterator.InitTraversal()
129
129
  while not iterator.IsDoneWithTraversal():
@@ -134,9 +134,6 @@ class VtkModelView(VtkObjectView):
134
134
  data.blockDataSets.append(None)
135
135
  data.blockGeodeIds.append("")
136
136
  data.blockDataSets.append(block)
137
- highlight_mapper.GetCompositeDataDisplayAttributes().SetBlockVisibility(
138
- block, False
139
- )
140
137
  meta = iterator.GetCurrentMetaData()
141
138
  name = meta.Get(vtkCompositeDataSet.NAME())
142
139
  data.blockGeodeIds.append(name)
@@ -169,21 +166,37 @@ class VtkModelView(VtkObjectView):
169
166
  )
170
167
  params = schemas.Highlight.from_dict(rpc_params)
171
168
  pipeline = self.get_vtk_pipeline(params.id)
172
- pipeline.highlightActor.SetVisibility(params.visibility)
173
- mapper = pipeline.highlightMapper
174
- assert isinstance(mapper, vtkCompositePolyDataMapper)
175
- attributes = mapper.GetCompositeDataDisplayAttributes()
176
-
177
- for i in pipeline.activeHighlightIds:
178
- attributes.SetBlockVisibility(pipeline.blockDataSets[i], False)
179
-
180
- pipeline.activeHighlightIds = []
181
- if params.visibility:
182
- pipeline.activeHighlightIds = [
183
- i for i in params.block_ids if pipeline.blockDataSets[i]
184
- ]
185
- for i in pipeline.activeHighlightIds:
186
- attributes.SetBlockVisibility(pipeline.blockDataSets[i], True)
187
-
188
- mapper.Modified()
169
+ if params.visibility and params.block_ids:
170
+ append = vtkAppendDataSets()
171
+ for i in params.block_ids:
172
+ block = (
173
+ pipeline.blockDataSets[i]
174
+ if i < len(pipeline.blockDataSets)
175
+ else None
176
+ )
177
+ if isinstance(block, vtkDataSet):
178
+ append.AddInputData(block)
179
+ append.Update()
180
+ pipeline.hoverHighlight.mapper.SetInputDataObject(append.GetOutput())
181
+ else:
182
+ pipeline.hoverHighlight.mapper.SetInputConnection(
183
+ pipeline.hoverHighlight.extractSelection.GetOutputPort()
184
+ )
185
+ pipeline.hoverHighlight.actor.SetVisibility(params.visibility)
189
186
  self.render(-1)
187
+
188
+ @exportRpc(model_prefix + model_schemas_dict["get_blocks_bounds"]["rpc"])
189
+ def getBlocksBounds(self, rpc_params: RpcParams) -> list[float]:
190
+ validate_schema(
191
+ rpc_params, self.model_schemas_dict["get_blocks_bounds"], self.model_prefix
192
+ )
193
+ params = schemas.GetBlocksBounds.from_dict(rpc_params)
194
+ pipeline = self.get_vtk_pipeline(params.id)
195
+ bbox = vtkBoundingBox()
196
+ for block_id in params.block_ids:
197
+ if isinstance(block := pipeline.blockDataSets[block_id], vtkDataSet):
198
+ bbox.AddBounds(block.GetBounds())
199
+
200
+ bounds = [0.0] * 6
201
+ bbox.GetBounds(bounds)
202
+ return bounds
@@ -1,4 +1,5 @@
1
1
  from .visibility import *
2
2
  from .register import *
3
3
  from .highlight import *
4
+ from .get_blocks_bounds import *
4
5
  from .deregister import *
@@ -0,0 +1,16 @@
1
+ {
2
+ "rpc": "get_blocks_bounds",
3
+ "type": "object",
4
+ "properties": {
5
+ "id": {
6
+ "type": "string",
7
+ "minLength": 1
8
+ },
9
+ "block_ids": {
10
+ "type": "array",
11
+ "items": { "type": "integer" }
12
+ }
13
+ },
14
+ "required": ["id", "block_ids"],
15
+ "additionalProperties": false
16
+ }
@@ -0,0 +1,12 @@
1
+ from dataclasses_json import DataClassJsonMixin
2
+ from dataclasses import dataclass
3
+ from typing import List
4
+
5
+
6
+ @dataclass
7
+ class GetBlocksBounds(DataClassJsonMixin):
8
+ def __post_init__(self) -> None:
9
+ print(self, flush=True)
10
+
11
+ block_ids: List[int]
12
+ id: str
@@ -7,6 +7,7 @@ from .reset_visualization import *
7
7
  from .reset_camera import *
8
8
  from .render import *
9
9
  from .picked_ids import *
10
+ from .hover_highlight import *
10
11
  from .grid_scale import *
11
12
  from .get_point_position import *
12
13
  from .axes import *
@@ -0,0 +1,24 @@
1
+ {
2
+ "rpc": "hover_highlight",
3
+ "type": "object",
4
+ "properties": {
5
+ "x": {
6
+ "type": "number"
7
+ },
8
+ "y": {
9
+ "type": "number"
10
+ },
11
+ "field_type": {
12
+ "enum": ["CELL", "POINT"]
13
+ },
14
+ "ids": {
15
+ "type": "array",
16
+ "items": {
17
+ "type": "string",
18
+ "minLength": 1
19
+ }
20
+ }
21
+ },
22
+ "required": ["x", "y", "field_type", "ids"],
23
+ "additionalProperties": false
24
+ }
@@ -0,0 +1,20 @@
1
+ from dataclasses_json import DataClassJsonMixin
2
+ from enum import Enum
3
+ from dataclasses import dataclass
4
+ from typing import List
5
+
6
+
7
+ class FieldType(Enum):
8
+ CELL = "CELL"
9
+ POINT = "POINT"
10
+
11
+
12
+ @dataclass
13
+ class HoverHighlight(DataClassJsonMixin):
14
+ def __post_init__(self) -> None:
15
+ print(self, flush=True)
16
+
17
+ field_type: FieldType
18
+ ids: List[str]
19
+ x: float
20
+ y: float
@@ -19,8 +19,8 @@ from vtkmodules.vtkRenderingCore import (
19
19
  vtkCompositePolyDataMapper,
20
20
  )
21
21
  from vtkmodules.vtkInteractionStyle import vtkInteractorStyleTrackball
22
- from vtkmodules.vtkCommonCore import reference
23
- from vtkmodules.vtkCommonDataModel import vtkBoundingBox, vtkDataSet
22
+ from vtkmodules.vtkCommonCore import reference, vtkIdTypeArray
23
+ from vtkmodules.vtkCommonDataModel import vtkBoundingBox, vtkDataSet, vtkSelectionNode
24
24
  from vtkmodules.vtkCommonTransforms import vtkTransform
25
25
  from vtkmodules.vtkInteractionWidgets import vtkOrientationMarkerWidget
26
26
  from opengeodeweb_microservice.schemas import get_schemas_dict
@@ -303,6 +303,45 @@ class VtkViewerView(VtkView):
303
303
  )
304
304
  self.render()
305
305
 
306
+ @exportRpc(viewer_prefix + viewer_schemas_dict["hover_highlight"]["rpc"])
307
+ def setHoverHighlight(self, rpc_params: RpcParams) -> None:
308
+ validate_schema(
309
+ rpc_params, self.viewer_schemas_dict["hover_highlight"], self.viewer_prefix
310
+ )
311
+ params = schemas.HoverHighlight.from_dict(rpc_params)
312
+ picker = vtkCellPicker(tolerance=0.005)
313
+ picker.Pick(params.x, params.y, 0, self.get_renderer())
314
+ self.clearHoverHighlights(params.ids)
315
+ actor = picker.GetActor()
316
+ pipeline = next(
317
+ (
318
+ self.get_vtk_pipeline(id)
319
+ for id in params.ids
320
+ if self.get_vtk_pipeline(id).actor == actor
321
+ ),
322
+ None,
323
+ )
324
+ if pipeline:
325
+ id_to_select = (
326
+ picker.GetCellId()
327
+ if params.field_type == schemas.FieldType.CELL
328
+ else picker.GetPointId()
329
+ )
330
+ if id_to_select != -1:
331
+ dataset = None
332
+ if isinstance(pipeline.mapper, vtkCompositePolyDataMapper):
333
+ flat_index = picker.GetFlatBlockIndex()
334
+ block = (
335
+ pipeline.blockDataSets[flat_index]
336
+ if 0 <= flat_index < len(pipeline.blockDataSets)
337
+ else None
338
+ )
339
+ dataset = block if isinstance(block, vtkDataSet) else None
340
+ self.updateHoverHighlight(
341
+ pipeline, id_to_select, params.field_type.value, dataset
342
+ )
343
+ self.render(-1)
344
+
306
345
  @exportRpc(viewer_prefix + viewer_schemas_dict["set_z_scaling"]["rpc"])
307
346
  def setZScaling(self, rpc_params: RpcParams) -> None:
308
347
  validate_schema(
@@ -17,10 +17,17 @@ from vtkmodules.vtkRenderingCore import (
17
17
  vtkMapper,
18
18
  vtkRenderer,
19
19
  vtkRenderWindow,
20
- vtkCompositePolyDataMapper,
20
+ vtkDataSetMapper,
21
21
  )
22
- from vtkmodules.vtkCommonDataModel import vtkDataObject, vtkBoundingBox
23
- from vtkmodules.vtkCommonCore import vtkStringArray
22
+ from vtkmodules.vtkCommonDataModel import (
23
+ vtkDataObject,
24
+ vtkDataSet,
25
+ vtkBoundingBox,
26
+ vtkSelection,
27
+ vtkSelectionNode,
28
+ )
29
+ from vtkmodules.vtkFiltersExtraction import vtkExtractSelection
30
+ from vtkmodules.vtkCommonCore import vtkStringArray, vtkIdTypeArray
24
31
  from vtkmodules.vtkRenderingAnnotation import vtkCubeAxesActor, vtkAxesActor
25
32
  from vtkmodules.vtkInteractionWidgets import vtkOrientationMarkerWidget
26
33
 
@@ -38,17 +45,24 @@ class ViewerData:
38
45
  viewer_elements_type: ViewerElementsType
39
46
 
40
47
 
48
+ @dataclass
49
+ class HighlightPipeline:
50
+ actor: vtkActor = field(default_factory=vtkActor)
51
+ mapper: vtkDataSetMapper = field(default_factory=vtkDataSetMapper)
52
+ selectionNode: vtkSelectionNode = field(default_factory=vtkSelectionNode)
53
+ selection: vtkSelection = field(default_factory=vtkSelection)
54
+ extractSelection: vtkExtractSelection = field(default_factory=vtkExtractSelection)
55
+
56
+
41
57
  @dataclass
42
58
  class VtkPipeline:
43
59
  reader: vtkXMLReader
44
- highlightMapper: vtkMapper
45
60
  mapper: vtkMapper
46
61
  filter: vtkAlgorithm | None = None
47
62
  actor: vtkActor = field(default_factory=vtkActor)
48
- highlightActor: vtkActor = field(default_factory=vtkActor)
63
+ hoverHighlight: HighlightPipeline = field(default_factory=HighlightPipeline)
49
64
  blockDataSets: list[vtkDataObject | None] = field(default_factory=list)
50
65
  blockGeodeIds: list[str] = field(default_factory=list)
51
- activeHighlightIds: list[int] = field(default_factory=list)
52
66
 
53
67
 
54
68
  class VtkTypingMixin:
@@ -138,6 +152,33 @@ class VtkView(VtkTypingMixin, vtk_protocols.vtkWebProtocol):
138
152
  else:
139
153
  renderer.ResetCameraClippingRange()
140
154
 
155
+ def updateHoverHighlight(
156
+ self,
157
+ pipeline: VtkPipeline,
158
+ id_to_select: int,
159
+ field_type: str,
160
+ dataset: vtkDataSet | None = None,
161
+ ) -> None:
162
+ node = pipeline.hoverHighlight.selectionNode
163
+ node.SetContentType(vtkSelectionNode.INDICES)
164
+ node.SetFieldType(
165
+ vtkSelectionNode.CELL if field_type == "CELL" else vtkSelectionNode.POINT
166
+ )
167
+ selection_list = vtkIdTypeArray()
168
+ selection_list.SetNumberOfComponents(1)
169
+ selection_list.InsertNextValue(id_to_select)
170
+ node.SetSelectionList(selection_list)
171
+ if dataset is not None:
172
+ pipeline.hoverHighlight.extractSelection.SetInputData(0, dataset)
173
+ pipeline.hoverHighlight.extractSelection.Modified()
174
+ pipeline.hoverHighlight.extractSelection.Update()
175
+ pipeline.hoverHighlight.actor.VisibilityOn()
176
+
177
+ def clearHoverHighlights(self, ids: list[str]) -> None:
178
+ for data_id in ids:
179
+ pipeline = self.get_vtk_pipeline(data_id)
180
+ pipeline.hoverHighlight.actor.VisibilityOff()
181
+
141
182
  def update_grid_scale_and_clipping_range(self) -> None:
142
183
  grid_scale = self.get_grid_scale()
143
184
  if grid_scale is not None: