OpenGeodeWeb-Viewer 1.18.0rc2__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.0rc2 → opengeodeweb_viewer-1.19.0}/PKG-INFO +1 -1
  2. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/pyproject.toml +1 -1
  3. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/OpenGeodeWeb_Viewer.egg-info/PKG-INFO +1 -1
  4. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/OpenGeodeWeb_Viewer.egg-info/SOURCES.txt +2 -0
  5. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/object/object_methods.py +22 -10
  6. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/mesh_protocols.py +10 -6
  7. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/model_protocols.py +22 -27
  8. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/__init__.py +1 -0
  9. opengeodeweb_viewer-1.19.0/src/opengeodeweb_viewer/rpc/viewer/schemas/hover_highlight.json +24 -0
  10. opengeodeweb_viewer-1.19.0/src/opengeodeweb_viewer/rpc/viewer/schemas/hover_highlight.py +20 -0
  11. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/viewer_protocols.py +41 -2
  12. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/vtk_protocol.py +47 -6
  13. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/LICENSE +0 -0
  14. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/README.md +0 -0
  15. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/requirements.txt +0 -0
  16. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/setup.cfg +0 -0
  17. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/OpenGeodeWeb_Viewer.egg-info/dependency_links.txt +0 -0
  18. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/OpenGeodeWeb_Viewer.egg-info/entry_points.txt +0 -0
  19. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/OpenGeodeWeb_Viewer.egg-info/requires.txt +0 -0
  20. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/OpenGeodeWeb_Viewer.egg-info/top_level.txt +0 -0
  21. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/__init__.py +0 -0
  22. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/app.py +0 -0
  23. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/config.py +0 -0
  24. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/py.typed +0 -0
  25. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/generic/generic_protocols.py +0 -0
  26. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/generic/schemas/__init__.py +0 -0
  27. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/generic/schemas/deregister.json +0 -0
  28. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/generic/schemas/deregister.py +0 -0
  29. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/generic/schemas/register.json +0 -0
  30. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/generic/schemas/register.py +0 -0
  31. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/cells/attribute/cell/cells_attribute_cell_protocols.py +0 -0
  32. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/cells/attribute/cell/schemas/__init__.py +0 -0
  33. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/cells/attribute/cell/schemas/color_map.json +0 -0
  34. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/cells/attribute/cell/schemas/color_map.py +0 -0
  35. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/cells/attribute/cell/schemas/name.json +0 -0
  36. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/cells/attribute/cell/schemas/name.py +0 -0
  37. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/cells/attribute/vertex/cells_attribute_vertex_protocols.py +0 -0
  38. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/cells/attribute/vertex/schemas/__init__.py +0 -0
  39. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/cells/attribute/vertex/schemas/color_map.json +0 -0
  40. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/cells/attribute/vertex/schemas/color_map.py +0 -0
  41. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/cells/attribute/vertex/schemas/name.json +0 -0
  42. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/cells/attribute/vertex/schemas/name.py +0 -0
  43. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/cells/cells_protocols.py +0 -0
  44. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/__init__.py +0 -0
  45. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/color.json +0 -0
  46. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/color.py +0 -0
  47. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/visibility.json +0 -0
  48. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/visibility.py +0 -0
  49. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/edges/attribute/edge/edges_attribute_edge_protocols.py +0 -0
  50. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/edges/attribute/edge/schemas/__init__.py +0 -0
  51. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/edges/attribute/edge/schemas/color_map.json +0 -0
  52. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/edges/attribute/edge/schemas/color_map.py +0 -0
  53. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/edges/attribute/edge/schemas/name.json +0 -0
  54. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/edges/attribute/edge/schemas/name.py +0 -0
  55. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/edges/attribute/vertex/edges_attribute_vertex_protocols.py +0 -0
  56. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/edges/attribute/vertex/schemas/__init__.py +0 -0
  57. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/edges/attribute/vertex/schemas/color_map.json +0 -0
  58. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/edges/attribute/vertex/schemas/color_map.py +0 -0
  59. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/edges/attribute/vertex/schemas/name.json +0 -0
  60. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/edges/attribute/vertex/schemas/name.py +0 -0
  61. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/edges/edges_protocols.py +0 -0
  62. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/__init__.py +0 -0
  63. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/color.json +0 -0
  64. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/color.py +0 -0
  65. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/visibility.json +0 -0
  66. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/visibility.py +0 -0
  67. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/width.json +0 -0
  68. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/width.py +0 -0
  69. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/points/attribute/vertex/points_attribute_vertex_protocols.py +0 -0
  70. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/points/attribute/vertex/schemas/__init__.py +0 -0
  71. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/points/attribute/vertex/schemas/color_map.json +0 -0
  72. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/points/attribute/vertex/schemas/color_map.py +0 -0
  73. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/points/attribute/vertex/schemas/name.json +0 -0
  74. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/points/attribute/vertex/schemas/name.py +0 -0
  75. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/points/points_protocols.py +0 -0
  76. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/points/schemas/__init__.py +0 -0
  77. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/points/schemas/color.json +0 -0
  78. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/points/schemas/color.py +0 -0
  79. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/points/schemas/size.json +0 -0
  80. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/points/schemas/size.py +0 -0
  81. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/points/schemas/vertex_attribute.json +0 -0
  82. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/points/schemas/vertex_attribute.py +0 -0
  83. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/points/schemas/vertex_color_map.json +0 -0
  84. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/points/schemas/vertex_color_map.py +0 -0
  85. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/points/schemas/vertex_scalar_range.json +0 -0
  86. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/points/schemas/vertex_scalar_range.py +0 -0
  87. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/points/schemas/visibility.json +0 -0
  88. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/points/schemas/visibility.py +0 -0
  89. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/attribute/polygon/polygons_attribute_polygon_protocols.py +0 -0
  90. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/attribute/polygon/schemas/__init__.py +0 -0
  91. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/attribute/polygon/schemas/color_map.json +0 -0
  92. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/attribute/polygon/schemas/color_map.py +0 -0
  93. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/attribute/polygon/schemas/name.json +0 -0
  94. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/attribute/polygon/schemas/name.py +0 -0
  95. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/attribute/vertex/polygons_attribute_vertex_protocols.py +0 -0
  96. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/attribute/vertex/schemas/__init__.py +0 -0
  97. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/attribute/vertex/schemas/color_map.json +0 -0
  98. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/attribute/vertex/schemas/color_map.py +0 -0
  99. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/attribute/vertex/schemas/name.json +0 -0
  100. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/attribute/vertex/schemas/name.py +0 -0
  101. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/polygons_protocols.py +0 -0
  102. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/__init__.py +0 -0
  103. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/color.json +0 -0
  104. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/color.py +0 -0
  105. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/visibility.json +0 -0
  106. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/visibility.py +0 -0
  107. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/attribute/polyhedron/polyhedra_attribute_polyhedron_protocols.py +0 -0
  108. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/attribute/polyhedron/schemas/__init__.py +0 -0
  109. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/attribute/polyhedron/schemas/color_map.json +0 -0
  110. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/attribute/polyhedron/schemas/color_map.py +0 -0
  111. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/attribute/polyhedron/schemas/name.json +0 -0
  112. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/attribute/polyhedron/schemas/name.py +0 -0
  113. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/attribute/vertex/polyhedra_attribute_vertex_protocols.py +0 -0
  114. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/attribute/vertex/schemas/__init__.py +0 -0
  115. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/attribute/vertex/schemas/color_map.json +0 -0
  116. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/attribute/vertex/schemas/color_map.py +0 -0
  117. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/attribute/vertex/schemas/name.json +0 -0
  118. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/attribute/vertex/schemas/name.py +0 -0
  119. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/polyhedra_protocols.py +0 -0
  120. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/__init__.py +0 -0
  121. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/color.json +0 -0
  122. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/color.py +0 -0
  123. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/visibility.json +0 -0
  124. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/visibility.py +0 -0
  125. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/schemas/__init__.py +0 -0
  126. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/schemas/apply_textures.json +0 -0
  127. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/schemas/apply_textures.py +0 -0
  128. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/schemas/color.json +0 -0
  129. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/schemas/color.py +0 -0
  130. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/schemas/deregister.json +0 -0
  131. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/schemas/deregister.py +0 -0
  132. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/schemas/highlight.json +0 -0
  133. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/schemas/highlight.py +0 -0
  134. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/schemas/register.json +0 -0
  135. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/schemas/register.py +0 -0
  136. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/schemas/visibility.json +0 -0
  137. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/mesh/schemas/visibility.py +0 -0
  138. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/blocks/model_blocks_protocols.py +0 -0
  139. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/blocks/schemas/__init__.py +0 -0
  140. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/blocks/schemas/color.json +0 -0
  141. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/blocks/schemas/color.py +0 -0
  142. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/blocks/schemas/visibility.json +0 -0
  143. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/blocks/schemas/visibility.py +0 -0
  144. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/corners/model_corners_protocols.py +0 -0
  145. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/corners/schemas/__init__.py +0 -0
  146. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/corners/schemas/color.json +0 -0
  147. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/corners/schemas/color.py +0 -0
  148. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/corners/schemas/visibility.json +0 -0
  149. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/corners/schemas/visibility.py +0 -0
  150. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/edges/model_edges_protocols.py +0 -0
  151. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/edges/schemas/__init__.py +0 -0
  152. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/edges/schemas/visibility.json +0 -0
  153. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/edges/schemas/visibility.py +0 -0
  154. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/lines/model_lines_protocols.py +0 -0
  155. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/lines/schemas/__init__.py +0 -0
  156. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/lines/schemas/color.json +0 -0
  157. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/lines/schemas/color.py +0 -0
  158. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/lines/schemas/visibility.json +0 -0
  159. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/lines/schemas/visibility.py +0 -0
  160. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/points/model_points_protocols.py +0 -0
  161. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/points/schemas/__init__.py +0 -0
  162. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/points/schemas/size.json +0 -0
  163. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/points/schemas/size.py +0 -0
  164. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/points/schemas/visibility.json +0 -0
  165. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/points/schemas/visibility.py +0 -0
  166. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/schemas/__init__.py +0 -0
  167. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/schemas/deregister.json +0 -0
  168. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/schemas/deregister.py +0 -0
  169. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/schemas/get_blocks_bounds.json +0 -0
  170. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/schemas/get_blocks_bounds.py +0 -0
  171. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/schemas/highlight.json +0 -0
  172. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/schemas/highlight.py +0 -0
  173. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/schemas/register.json +0 -0
  174. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/schemas/register.py +0 -0
  175. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/schemas/visibility.json +0 -0
  176. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/schemas/visibility.py +0 -0
  177. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/surfaces/model_surfaces_protocols.py +0 -0
  178. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/surfaces/schemas/__init__.py +0 -0
  179. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/surfaces/schemas/apply_textures.json +0 -0
  180. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/surfaces/schemas/apply_textures.py +0 -0
  181. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/surfaces/schemas/color.json +0 -0
  182. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/surfaces/schemas/color.py +0 -0
  183. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/surfaces/schemas/visibility.json +0 -0
  184. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/model/surfaces/schemas/visibility.py +0 -0
  185. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/schemas/__init__.py +0 -0
  186. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/schemas/import_project.json +0 -0
  187. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/schemas/import_project.py +0 -0
  188. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/schemas/kill.json +0 -0
  189. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/schemas/kill.py +0 -0
  190. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/utils_protocols.py +0 -0
  191. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/axes.json +0 -0
  192. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/axes.py +0 -0
  193. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/get_point_position.json +0 -0
  194. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/get_point_position.py +0 -0
  195. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/grid_scale.json +0 -0
  196. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/grid_scale.py +0 -0
  197. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/picked_ids.json +0 -0
  198. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/picked_ids.py +0 -0
  199. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/render.json +0 -0
  200. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/render.py +0 -0
  201. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/reset_camera.json +0 -0
  202. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/reset_camera.py +0 -0
  203. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/reset_visualization.json +0 -0
  204. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/reset_visualization.py +0 -0
  205. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/set_background_color.json +0 -0
  206. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/set_background_color.py +0 -0
  207. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/set_z_scaling.json +0 -0
  208. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/set_z_scaling.py +0 -0
  209. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/take_screenshot.json +0 -0
  210. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/take_screenshot.py +0 -0
  211. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/update_camera.json +0 -0
  212. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/update_camera.py +0 -0
  213. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/update_data.json +0 -0
  214. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/update_data.py +0 -0
  215. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/src/opengeodeweb_viewer/utils_functions.py +0 -0
  216. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/tests/test_generic_protocols.py +0 -0
  217. {opengeodeweb_viewer-1.18.0rc2 → opengeodeweb_viewer-1.19.0}/tests/test_utils_protocols.py +0 -0
  218. {opengeodeweb_viewer-1.18.0rc2 → 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.0rc2
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.2"
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.0rc2
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
@@ -191,6 +191,8 @@ src/opengeodeweb_viewer/rpc/viewer/schemas/get_point_position.json
191
191
  src/opengeodeweb_viewer/rpc/viewer/schemas/get_point_position.py
192
192
  src/opengeodeweb_viewer/rpc/viewer/schemas/grid_scale.json
193
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
194
196
  src/opengeodeweb_viewer/rpc/viewer/schemas/picked_ids.json
195
197
  src/opengeodeweb_viewer/rpc/viewer/schemas/picked_ids.py
196
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)
@@ -6,11 +6,13 @@ from vtkmodules.vtkCommonDataModel import (
6
6
  vtkCompositeDataSet,
7
7
  vtkBoundingBox,
8
8
  vtkDataSet,
9
+ vtkSelectionNode,
9
10
  )
10
11
  from vtkmodules.vtkRenderingCore import (
11
- vtkCompositeDataDisplayAttributes,
12
12
  vtkCompositePolyDataMapper,
13
+ vtkCompositeDataDisplayAttributes,
13
14
  )
15
+ from vtkmodules.vtkFiltersCore import vtkAppendDataSets
14
16
  from vtkmodules.vtkIOXML import vtkXMLMultiBlockDataReader
15
17
  from vtkmodules.vtkFiltersGeometry import vtkGeometryFilter
16
18
  from wslink import register as exportRpc # type: ignore
@@ -120,12 +122,8 @@ class VtkModelView(VtkObjectView):
120
122
  mapper.SetInputDataObject(geometry_output)
121
123
  attributes = vtkCompositeDataDisplayAttributes()
122
124
  mapper.SetCompositeDataDisplayAttributes(attributes)
123
- highlight_mapper = vtkCompositePolyDataMapper()
124
- highlight_mapper.SetCompositeDataDisplayAttributes(
125
- vtkCompositeDataDisplayAttributes()
126
- )
127
- data = VtkPipeline(reader, highlight_mapper, mapper, filter)
128
- self.highlight(data.highlightActor, data.highlightMapper, geometry_output)
125
+ data = VtkPipeline(reader, mapper, filter)
126
+ self.highlight(data)
129
127
  iterator = geometry_output.NewTreeIterator()
130
128
  iterator.InitTraversal()
131
129
  while not iterator.IsDoneWithTraversal():
@@ -136,9 +134,6 @@ class VtkModelView(VtkObjectView):
136
134
  data.blockDataSets.append(None)
137
135
  data.blockGeodeIds.append("")
138
136
  data.blockDataSets.append(block)
139
- highlight_mapper.GetCompositeDataDisplayAttributes().SetBlockVisibility(
140
- block, False
141
- )
142
137
  meta = iterator.GetCurrentMetaData()
143
138
  name = meta.Get(vtkCompositeDataSet.NAME())
144
139
  data.blockGeodeIds.append(name)
@@ -171,23 +166,23 @@ class VtkModelView(VtkObjectView):
171
166
  )
172
167
  params = schemas.Highlight.from_dict(rpc_params)
173
168
  pipeline = self.get_vtk_pipeline(params.id)
174
- pipeline.highlightActor.SetVisibility(params.visibility)
175
- mapper = pipeline.highlightMapper
176
- assert isinstance(mapper, vtkCompositePolyDataMapper)
177
- attributes = mapper.GetCompositeDataDisplayAttributes()
178
-
179
- for i in pipeline.activeHighlightIds:
180
- attributes.SetBlockVisibility(pipeline.blockDataSets[i], False)
181
-
182
- pipeline.activeHighlightIds = []
183
- if params.visibility:
184
- pipeline.activeHighlightIds = [
185
- i for i in params.block_ids if pipeline.blockDataSets[i]
186
- ]
187
- for i in pipeline.activeHighlightIds:
188
- attributes.SetBlockVisibility(pipeline.blockDataSets[i], True)
189
-
190
- 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)
191
186
  self.render(-1)
192
187
 
193
188
  @exportRpc(model_prefix + model_schemas_dict["get_blocks_bounds"]["rpc"])
@@ -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: