OpenGeodeWeb-Viewer 1.24.0__tar.gz → 1.25.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 (235) hide show
  1. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/PKG-INFO +3 -3
  2. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/pyproject.toml +1 -1
  3. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/requirements.txt +2 -2
  4. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/OpenGeodeWeb_Viewer.egg-info/PKG-INFO +3 -3
  5. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/OpenGeodeWeb_Viewer.egg-info/SOURCES.txt +3 -0
  6. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/OpenGeodeWeb_Viewer.egg-info/requires.txt +2 -2
  7. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/object/object_methods.py +12 -43
  8. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/mesh_protocols.py +42 -42
  9. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/model_protocols.py +23 -100
  10. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/__init__.py +1 -0
  11. opengeodeweb_viewer-1.25.0/src/opengeodeweb_viewer/rpc/viewer/schemas/clipping_planes.json +48 -0
  12. opengeodeweb_viewer-1.25.0/src/opengeodeweb_viewer/rpc/viewer/schemas/clipping_planes.py +21 -0
  13. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/viewer/viewer_protocols.py +9 -1
  14. opengeodeweb_viewer-1.25.0/src/opengeodeweb_viewer/vtk_pipeline.py +229 -0
  15. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/vtk_protocol.py +83 -92
  16. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/tests/test_viewer_protocols.py +27 -2
  17. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/LICENSE +0 -0
  18. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/README.md +0 -0
  19. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/setup.cfg +0 -0
  20. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/OpenGeodeWeb_Viewer.egg-info/dependency_links.txt +0 -0
  21. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/OpenGeodeWeb_Viewer.egg-info/entry_points.txt +0 -0
  22. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/OpenGeodeWeb_Viewer.egg-info/top_level.txt +0 -0
  23. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/__init__.py +0 -0
  24. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/app.py +0 -0
  25. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/config.py +0 -0
  26. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/py.typed +0 -0
  27. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/generic/generic_protocols.py +0 -0
  28. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/generic/schemas/__init__.py +0 -0
  29. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/generic/schemas/deregister.json +0 -0
  30. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/generic/schemas/deregister.py +0 -0
  31. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/generic/schemas/register.json +0 -0
  32. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/generic/schemas/register.py +0 -0
  33. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/cells/attribute/cell/cells_attribute_cell_protocols.py +0 -0
  34. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/cells/attribute/cell/schemas/__init__.py +0 -0
  35. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/cells/attribute/cell/schemas/attribute.json +0 -0
  36. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/cells/attribute/cell/schemas/attribute.py +0 -0
  37. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/cells/attribute/vertex/cells_attribute_vertex_protocols.py +0 -0
  38. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/cells/attribute/vertex/schemas/__init__.py +0 -0
  39. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/cells/attribute/vertex/schemas/attribute.json +0 -0
  40. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/cells/attribute/vertex/schemas/attribute.py +0 -0
  41. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/cells/cells_protocols.py +0 -0
  42. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/__init__.py +0 -0
  43. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/color.json +0 -0
  44. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/color.py +0 -0
  45. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/visibility.json +0 -0
  46. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/visibility.py +0 -0
  47. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/edges/attribute/edge/edges_attribute_edge_protocols.py +0 -0
  48. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/edges/attribute/edge/schemas/__init__.py +0 -0
  49. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/edges/attribute/edge/schemas/attribute.json +0 -0
  50. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/edges/attribute/edge/schemas/attribute.py +0 -0
  51. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/edges/attribute/vertex/edges_attribute_vertex_protocols.py +0 -0
  52. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/edges/attribute/vertex/schemas/__init__.py +0 -0
  53. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/edges/attribute/vertex/schemas/attribute.json +0 -0
  54. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/edges/attribute/vertex/schemas/attribute.py +0 -0
  55. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/edges/edges_protocols.py +0 -0
  56. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/__init__.py +0 -0
  57. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/color.json +0 -0
  58. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/color.py +0 -0
  59. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/visibility.json +0 -0
  60. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/visibility.py +0 -0
  61. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/width.json +0 -0
  62. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/width.py +0 -0
  63. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/points/attribute/vertex/points_attribute_vertex_protocols.py +0 -0
  64. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/points/attribute/vertex/schemas/__init__.py +0 -0
  65. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/points/attribute/vertex/schemas/attribute.json +0 -0
  66. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/points/attribute/vertex/schemas/attribute.py +0 -0
  67. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/points/points_protocols.py +0 -0
  68. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/points/schemas/__init__.py +0 -0
  69. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/points/schemas/color.json +0 -0
  70. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/points/schemas/color.py +0 -0
  71. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/points/schemas/size.json +0 -0
  72. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/points/schemas/size.py +0 -0
  73. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/points/schemas/vertex_attribute.json +0 -0
  74. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/points/schemas/vertex_attribute.py +0 -0
  75. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/points/schemas/vertex_color_map.json +0 -0
  76. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/points/schemas/vertex_color_map.py +0 -0
  77. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/points/schemas/vertex_scalar_range.json +0 -0
  78. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/points/schemas/vertex_scalar_range.py +0 -0
  79. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/points/schemas/visibility.json +0 -0
  80. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/points/schemas/visibility.py +0 -0
  81. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/attribute/polygon/polygons_attribute_polygon_protocols.py +0 -0
  82. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/attribute/polygon/schemas/__init__.py +0 -0
  83. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/attribute/polygon/schemas/attribute.json +0 -0
  84. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/attribute/polygon/schemas/attribute.py +0 -0
  85. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/attribute/vertex/polygons_attribute_vertex_protocols.py +0 -0
  86. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/attribute/vertex/schemas/__init__.py +0 -0
  87. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/attribute/vertex/schemas/attribute.json +0 -0
  88. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/attribute/vertex/schemas/attribute.py +0 -0
  89. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/polygons_protocols.py +0 -0
  90. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/__init__.py +0 -0
  91. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/color.json +0 -0
  92. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/color.py +0 -0
  93. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/visibility.json +0 -0
  94. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/visibility.py +0 -0
  95. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/attribute/polyhedron/polyhedra_attribute_polyhedron_protocols.py +0 -0
  96. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/attribute/polyhedron/schemas/__init__.py +0 -0
  97. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/attribute/polyhedron/schemas/attribute.json +0 -0
  98. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/attribute/polyhedron/schemas/attribute.py +0 -0
  99. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/attribute/vertex/polyhedra_attribute_vertex_protocols.py +0 -0
  100. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/attribute/vertex/schemas/__init__.py +0 -0
  101. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/attribute/vertex/schemas/attribute.json +0 -0
  102. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/attribute/vertex/schemas/attribute.py +0 -0
  103. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/polyhedra_protocols.py +0 -0
  104. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/__init__.py +0 -0
  105. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/color.json +0 -0
  106. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/color.py +0 -0
  107. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/visibility.json +0 -0
  108. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/visibility.py +0 -0
  109. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/schemas/__init__.py +0 -0
  110. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/schemas/apply_textures.json +0 -0
  111. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/schemas/apply_textures.py +0 -0
  112. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/schemas/color.json +0 -0
  113. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/schemas/color.py +0 -0
  114. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/schemas/deregister.json +0 -0
  115. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/schemas/deregister.py +0 -0
  116. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/schemas/highlight.json +0 -0
  117. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/schemas/highlight.py +0 -0
  118. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/schemas/register.json +0 -0
  119. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/schemas/register.py +0 -0
  120. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/schemas/visibility.json +0 -0
  121. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/mesh/schemas/visibility.py +0 -0
  122. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/blocks/attribute/polyhedron/blocks_attribute_polyhedron_protocols.py +0 -0
  123. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/blocks/attribute/polyhedron/schemas/__init__.py +0 -0
  124. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/blocks/attribute/polyhedron/schemas/attribute.json +0 -0
  125. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/blocks/attribute/polyhedron/schemas/attribute.py +0 -0
  126. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/blocks/attribute/vertex/blocks_attribute_vertex_protocols.py +0 -0
  127. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/blocks/attribute/vertex/schemas/__init__.py +0 -0
  128. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/blocks/attribute/vertex/schemas/attribute.json +0 -0
  129. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/blocks/attribute/vertex/schemas/attribute.py +0 -0
  130. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/blocks/model_blocks_protocols.py +0 -0
  131. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/blocks/schemas/__init__.py +0 -0
  132. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/blocks/schemas/color.json +0 -0
  133. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/blocks/schemas/color.py +0 -0
  134. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/blocks/schemas/visibility.json +0 -0
  135. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/blocks/schemas/visibility.py +0 -0
  136. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/corners/attribute/vertex/corners_attribute_vertex_protocols.py +0 -0
  137. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/corners/attribute/vertex/schemas/__init__.py +0 -0
  138. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/corners/attribute/vertex/schemas/attribute.json +0 -0
  139. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/corners/attribute/vertex/schemas/attribute.py +0 -0
  140. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/corners/model_corners_protocols.py +0 -0
  141. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/corners/schemas/__init__.py +0 -0
  142. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/corners/schemas/color.json +0 -0
  143. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/corners/schemas/color.py +0 -0
  144. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/corners/schemas/visibility.json +0 -0
  145. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/corners/schemas/visibility.py +0 -0
  146. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/edges/model_edges_protocols.py +0 -0
  147. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/edges/schemas/__init__.py +0 -0
  148. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/edges/schemas/visibility.json +0 -0
  149. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/edges/schemas/visibility.py +0 -0
  150. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/lines/attribute/edge/lines_attribute_edge_protocols.py +0 -0
  151. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/lines/attribute/edge/schemas/__init__.py +0 -0
  152. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/lines/attribute/edge/schemas/attribute.json +0 -0
  153. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/lines/attribute/edge/schemas/attribute.py +0 -0
  154. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/lines/attribute/vertex/lines_attribute_vertex_protocols.py +0 -0
  155. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/lines/attribute/vertex/schemas/__init__.py +0 -0
  156. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/lines/attribute/vertex/schemas/attribute.json +0 -0
  157. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/lines/attribute/vertex/schemas/attribute.py +0 -0
  158. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/lines/model_lines_protocols.py +0 -0
  159. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/lines/schemas/__init__.py +0 -0
  160. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/lines/schemas/color.json +0 -0
  161. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/lines/schemas/color.py +0 -0
  162. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/lines/schemas/visibility.json +0 -0
  163. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/lines/schemas/visibility.py +0 -0
  164. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/points/model_points_protocols.py +0 -0
  165. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/points/schemas/__init__.py +0 -0
  166. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/points/schemas/size.json +0 -0
  167. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/points/schemas/size.py +0 -0
  168. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/points/schemas/visibility.json +0 -0
  169. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/points/schemas/visibility.py +0 -0
  170. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/schemas/__init__.py +0 -0
  171. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/schemas/deregister.json +0 -0
  172. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/schemas/deregister.py +0 -0
  173. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/schemas/get_blocks_bounds.json +0 -0
  174. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/schemas/get_blocks_bounds.py +0 -0
  175. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/schemas/highlight.json +0 -0
  176. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/schemas/highlight.py +0 -0
  177. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/schemas/register.json +0 -0
  178. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/schemas/register.py +0 -0
  179. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/schemas/visibility.json +0 -0
  180. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/schemas/visibility.py +0 -0
  181. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/surfaces/attribute/polygon/schemas/__init__.py +0 -0
  182. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/surfaces/attribute/polygon/schemas/attribute.json +0 -0
  183. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/surfaces/attribute/polygon/schemas/attribute.py +0 -0
  184. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/surfaces/attribute/polygon/surfaces_attribute_polygon_protocols.py +0 -0
  185. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/surfaces/attribute/vertex/schemas/__init__.py +0 -0
  186. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/surfaces/attribute/vertex/schemas/attribute.json +0 -0
  187. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/surfaces/attribute/vertex/schemas/attribute.py +0 -0
  188. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/surfaces/attribute/vertex/surfaces_attribute_vertex_protocols.py +0 -0
  189. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/surfaces/model_surfaces_protocols.py +0 -0
  190. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/surfaces/schemas/__init__.py +0 -0
  191. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/surfaces/schemas/apply_textures.json +0 -0
  192. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/surfaces/schemas/apply_textures.py +0 -0
  193. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/surfaces/schemas/color.json +0 -0
  194. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/surfaces/schemas/color.py +0 -0
  195. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/surfaces/schemas/visibility.json +0 -0
  196. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/model/surfaces/schemas/visibility.py +0 -0
  197. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/schemas/__init__.py +0 -0
  198. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/schemas/import_project.json +0 -0
  199. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/schemas/import_project.py +0 -0
  200. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/schemas/kill.json +0 -0
  201. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/schemas/kill.py +0 -0
  202. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/utils_protocols.py +0 -0
  203. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/axes.json +0 -0
  204. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/axes.py +0 -0
  205. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/get_point_position.json +0 -0
  206. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/get_point_position.py +0 -0
  207. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/grid_scale.json +0 -0
  208. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/grid_scale.py +0 -0
  209. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/highlight.json +0 -0
  210. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/highlight.py +0 -0
  211. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/pick_colormap.json +0 -0
  212. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/pick_colormap.py +0 -0
  213. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/picked_ids.json +0 -0
  214. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/picked_ids.py +0 -0
  215. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/preview_points.json +0 -0
  216. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/preview_points.py +0 -0
  217. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/render.json +0 -0
  218. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/render.py +0 -0
  219. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/reset_camera.json +0 -0
  220. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/reset_camera.py +0 -0
  221. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/reset_visualization.json +0 -0
  222. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/reset_visualization.py +0 -0
  223. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/set_background_color.json +0 -0
  224. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/set_background_color.py +0 -0
  225. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/set_z_scaling.json +0 -0
  226. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/set_z_scaling.py +0 -0
  227. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/take_screenshot.json +0 -0
  228. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/take_screenshot.py +0 -0
  229. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/update_camera.json +0 -0
  230. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/update_camera.py +0 -0
  231. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/update_data.json +0 -0
  232. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/rpc/viewer/schemas/update_data.py +0 -0
  233. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/src/opengeodeweb_viewer/utils_functions.py +0 -0
  234. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/tests/test_generic_protocols.py +0 -0
  235. {opengeodeweb_viewer-1.24.0 → opengeodeweb_viewer-1.25.0}/tests/test_utils_protocols.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: OpenGeodeWeb-Viewer
3
- Version: 1.24.0
3
+ Version: 1.25.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
@@ -24,7 +24,7 @@ Requires-Dist: kiwisolver>=1
24
24
  Requires-Dist: matplotlib>=3
25
25
  Requires-Dist: multidict>=6
26
26
  Requires-Dist: numpy>=2
27
- Requires-Dist: packaging==26.2
27
+ Requires-Dist: packaging==26.3
28
28
  Requires-Dist: pillow>=12
29
29
  Requires-Dist: propcache>=0
30
30
  Requires-Dist: pyparsing>=3
@@ -35,7 +35,7 @@ Requires-Dist: vtk==9.5.2
35
35
  Requires-Dist: websocket-client>=1
36
36
  Requires-Dist: wslink==1.12.4
37
37
  Requires-Dist: yarl>=1
38
- Requires-Dist: opengeodeweb-microservice==1.*,>=1.1.4
38
+ Requires-Dist: opengeodeweb-microservice==1.*,>=1.2.0rc2
39
39
  Dynamic: license-file
40
40
 
41
41
  # OpenGeodeWeb-Viewer
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
5
5
 
6
6
  [project]
7
7
  name = "OpenGeodeWeb-Viewer"
8
- version = "1.24.0"
8
+ version = "1.25.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"
@@ -36,7 +36,7 @@ numpy>=2
36
36
  # via
37
37
  # contourpy
38
38
  # matplotlib
39
- packaging==26.2
39
+ packaging==26.3
40
40
  # via matplotlib
41
41
  pillow>=12
42
42
  # via matplotlib
@@ -63,4 +63,4 @@ wslink==1.12.4
63
63
  yarl>=1
64
64
  # via aiohttp
65
65
 
66
- opengeodeweb-microservice==1.*,>=1.1.4
66
+ opengeodeweb-microservice==1.*,>=1.2.0rc2
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: OpenGeodeWeb-Viewer
3
- Version: 1.24.0
3
+ Version: 1.25.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
@@ -24,7 +24,7 @@ Requires-Dist: kiwisolver>=1
24
24
  Requires-Dist: matplotlib>=3
25
25
  Requires-Dist: multidict>=6
26
26
  Requires-Dist: numpy>=2
27
- Requires-Dist: packaging==26.2
27
+ Requires-Dist: packaging==26.3
28
28
  Requires-Dist: pillow>=12
29
29
  Requires-Dist: propcache>=0
30
30
  Requires-Dist: pyparsing>=3
@@ -35,7 +35,7 @@ Requires-Dist: vtk==9.5.2
35
35
  Requires-Dist: websocket-client>=1
36
36
  Requires-Dist: wslink==1.12.4
37
37
  Requires-Dist: yarl>=1
38
- Requires-Dist: opengeodeweb-microservice==1.*,>=1.1.4
38
+ Requires-Dist: opengeodeweb-microservice==1.*,>=1.2.0rc2
39
39
  Dynamic: license-file
40
40
 
41
41
  # OpenGeodeWeb-Viewer
@@ -13,6 +13,7 @@ src/opengeodeweb_viewer/app.py
13
13
  src/opengeodeweb_viewer/config.py
14
14
  src/opengeodeweb_viewer/py.typed
15
15
  src/opengeodeweb_viewer/utils_functions.py
16
+ src/opengeodeweb_viewer/vtk_pipeline.py
16
17
  src/opengeodeweb_viewer/vtk_protocol.py
17
18
  src/opengeodeweb_viewer/object/object_methods.py
18
19
  src/opengeodeweb_viewer/rpc/utils_protocols.py
@@ -197,6 +198,8 @@ src/opengeodeweb_viewer/rpc/viewer/viewer_protocols.py
197
198
  src/opengeodeweb_viewer/rpc/viewer/schemas/__init__.py
198
199
  src/opengeodeweb_viewer/rpc/viewer/schemas/axes.json
199
200
  src/opengeodeweb_viewer/rpc/viewer/schemas/axes.py
201
+ src/opengeodeweb_viewer/rpc/viewer/schemas/clipping_planes.json
202
+ src/opengeodeweb_viewer/rpc/viewer/schemas/clipping_planes.py
200
203
  src/opengeodeweb_viewer/rpc/viewer/schemas/get_point_position.json
201
204
  src/opengeodeweb_viewer/rpc/viewer/schemas/get_point_position.py
202
205
  src/opengeodeweb_viewer/rpc/viewer/schemas/grid_scale.json
@@ -11,7 +11,7 @@ kiwisolver>=1
11
11
  matplotlib>=3
12
12
  multidict>=6
13
13
  numpy>=2
14
- packaging==26.2
14
+ packaging==26.3
15
15
  pillow>=12
16
16
  propcache>=0
17
17
  pyparsing>=3
@@ -22,4 +22,4 @@ vtk==9.5.2
22
22
  websocket-client>=1
23
23
  wslink==1.12.4
24
24
  yarl>=1
25
- opengeodeweb-microservice==1.*,>=1.1.4
25
+ opengeodeweb-microservice==1.*,>=1.2.0rc2
@@ -1,25 +1,17 @@
1
- # Standard library imports
2
- import os
3
-
4
1
  # Third party imports
5
- from vtkmodules.vtkIOXML import vtkXMLDataReader, vtkXMLImageDataReader
6
- from vtkmodules.vtkCommonExecutionModel import vtkAlgorithm
2
+ from vtkmodules.vtkCommonDataModel import (
3
+ vtkDataSet,
4
+ vtkMultiBlockDataSet,
5
+ )
7
6
  from vtkmodules.vtkRenderingCore import (
8
- vtkMapper,
9
7
  vtkActor,
10
- vtkTexture,
11
8
  vtkCompositePolyDataMapper,
12
- vtkCompositeDataDisplayAttributes,
13
9
  vtkDataSetMapper,
14
10
  )
15
- from vtkmodules.vtkCommonDataModel import (
16
- vtkDataSet,
17
- vtkMultiBlockDataSet,
18
- )
19
- from vtkmodules.vtkFiltersExtraction import vtkExtractSelection
20
11
 
21
12
  # Local application imports
22
- from opengeodeweb_viewer.vtk_protocol import VtkView, VtkPipeline
13
+ from opengeodeweb_viewer.vtk_pipeline import VtkPipeline
14
+ from opengeodeweb_viewer.vtk_protocol import VtkView
23
15
 
24
16
 
25
17
  class VtkObjectView(VtkView):
@@ -133,28 +125,6 @@ class VtkObjectView(VtkView):
133
125
  actor = self.get_vtk_pipeline(data_id).actor
134
126
  actor.GetProperty().SetVertexColor([red / 255, green / 255, blue / 255])
135
127
 
136
- def _prune_hidden_blocks(
137
- self,
138
- dataset: vtkMultiBlockDataSet,
139
- visibility_attributes: vtkCompositeDataDisplayAttributes,
140
- ) -> vtkMultiBlockDataSet:
141
- # Recursively construct a new multi-block dataset excluding hidden blocks.
142
- pruned = vtkMultiBlockDataSet()
143
- pruned.SetNumberOfBlocks(dataset.GetNumberOfBlocks())
144
- for index in range(dataset.GetNumberOfBlocks()):
145
- block = dataset.GetBlock(index)
146
- if block is None:
147
- continue
148
- if not visibility_attributes.GetBlockVisibility(block):
149
- continue
150
- if isinstance(block, vtkMultiBlockDataSet):
151
- pruned.SetBlock(
152
- index, self._prune_hidden_blocks(block, visibility_attributes)
153
- )
154
- else:
155
- pruned.SetBlock(index, block)
156
- return pruned
157
-
158
128
  def SetBlocksVisibility(
159
129
  self, data_id: str, block_ids: list[int], visibility: bool
160
130
  ) -> None:
@@ -164,16 +134,17 @@ class VtkObjectView(VtkView):
164
134
  raise Exception("Mapper is not a vtkCompositePolyDataMapper")
165
135
  blocks = pipeline.blockDataSets
166
136
  visibility_attributes = mapper.GetCompositeDataDisplayAttributes()
137
+ print(f"{visibility_attributes=}", flush=True)
167
138
  for block_id in block_ids:
168
139
  visibility_attributes.SetBlockVisibility(blocks[block_id], visibility)
169
- dataset = (pipeline.filter or pipeline.reader).GetOutputDataObject(0)
140
+ dataset = mapper.GetInputDataObject(0, 0)
170
141
  if not isinstance(dataset, vtkMultiBlockDataSet):
171
142
  return
172
143
  # Re-build a pruned dataset for the dedicated pick mapper
173
144
  if pipeline.pick_mapper is None:
174
145
  pipeline.pick_mapper = vtkCompositePolyDataMapper()
175
146
  pipeline.pick_mapper.SetInputDataObject(
176
- self._prune_hidden_blocks(dataset, visibility_attributes)
147
+ pipeline.prune_hidden_blocks(dataset, visibility_attributes)
177
148
  )
178
149
 
179
150
  def SetBlocksColor(
@@ -228,11 +199,9 @@ class VtkObjectView(VtkView):
228
199
  def highlight(self, pipeline: VtkPipeline) -> None:
229
200
  highlight = pipeline.highlight
230
201
  self._apply_highlight_style(highlight.actor, highlight.mapper)
231
- input_port = (
232
- pipeline.filter.GetOutputPort()
233
- if pipeline.filter
234
- else pipeline.reader.GetOutputPort()
235
- )
202
+ if pipeline.filter.GetNumberOfInputConnections(0) == 0:
203
+ pipeline.filter.SetInputConnection(pipeline.reader.GetOutputPort())
204
+ input_port = pipeline.filter.GetOutputPort()
236
205
  highlight.selection.AddNode(highlight.selectionNode)
237
206
  highlight.extractSelection.SetInputConnection(0, input_port)
238
207
  highlight.extractSelection.SetInputData(1, highlight.selection)
@@ -2,27 +2,23 @@
2
2
  import os
3
3
 
4
4
  # Third party imports
5
- from wslink import register as exportRpc # type: ignore
5
+ from opengeodeweb_microservice.database.data import Data
6
+ from opengeodeweb_microservice.schemas import get_schemas_dict
6
7
  from vtkmodules.vtkIOXML import vtkXMLGenericDataObjectReader, vtkXMLImageDataReader
7
8
  from vtkmodules.vtkRenderingCore import (
9
+ vtkColorTransferFunction,
8
10
  vtkDataSetMapper,
9
- vtkActor,
10
11
  vtkTexture,
11
- vtkColorTransferFunction,
12
12
  )
13
- from vtkmodules.vtkCommonDataModel import vtkDataSet, vtkCellTypes
14
- from vtkmodules.vtkCommonExecutionModel import vtkAlgorithm
15
- from vtkmodules.vtkCommonDataModel import vtkPolyData
16
- from opengeodeweb_microservice.database.data import Data
17
- from opengeodeweb_microservice.schemas import get_schemas_dict
13
+ from wslink import register as exportRpc # type: ignore
18
14
 
19
15
  # Local application imports
16
+ from opengeodeweb_viewer.object.object_methods import VtkObjectView
20
17
  from opengeodeweb_viewer.utils_functions import (
21
- validate_schema,
22
18
  RpcParams,
19
+ validate_schema,
23
20
  )
24
- from opengeodeweb_viewer.object.object_methods import VtkObjectView
25
- from opengeodeweb_viewer.vtk_protocol import VtkPipeline
21
+ from opengeodeweb_viewer.vtk_pipeline import VtkPipeline
26
22
  from . import schemas
27
23
 
28
24
 
@@ -50,12 +46,9 @@ class VtkMeshView(VtkObjectView):
50
46
  reader = vtkXMLGenericDataObjectReader()
51
47
  reader.SetFileName(os.path.join(self.DATA_FOLDER_PATH, data_id, file_name))
52
48
  reader.Update()
53
- dataset = reader.GetOutputDataObject(0)
54
- if dataset:
55
- dataset.SetObjectName(params.name)
56
49
  mapper = vtkDataSetMapper()
57
- mapper.SetInputConnection(reader.GetOutputPort())
58
50
  data = VtkPipeline(reader, mapper)
51
+ self.setup_pipeline(data, params.name)
59
52
  self.highlight(data)
60
53
  self.registerObject(data_id, file_name, data)
61
54
  except Exception as e:
@@ -107,16 +100,14 @@ class VtkMeshView(VtkObjectView):
107
100
  texture = vtkTexture()
108
101
  texture.SetInputConnection(texture_reader.GetOutputPort())
109
102
  texture.InterpolateOn()
110
- reader = self.get_vtk_pipeline(mesh_id).reader
111
- output = reader.GetOutputAsDataSet()
112
- point_data = output.GetPointData()
113
- for i in range(point_data.GetNumberOfArrays()):
114
- array = point_data.GetArray(i)
115
- if array.GetName() == tex_info.texture_name:
116
- point_data.SetTCoords(array)
117
- break
118
- actor = self.get_vtk_pipeline(mesh_id).actor
119
- actor.SetTexture(texture)
103
+ pipeline = self.get_vtk_pipeline(mesh_id)
104
+ output = pipeline.reader.GetOutputAsDataSet()
105
+ array = output.GetPointData().GetArray(tex_info.texture_name)
106
+ if array:
107
+ output.GetPointData().SetTCoords(array)
108
+ pipeline.filter.Modified()
109
+ pipeline.filter.Update()
110
+ pipeline.actor.SetTexture(texture)
120
111
 
121
112
  def displayAttributeOnVertices(
122
113
  self,
@@ -127,14 +118,15 @@ class VtkMeshView(VtkObjectView):
127
118
  minimum: float,
128
119
  maximum: float,
129
120
  ) -> None:
130
- reader = self.get_vtk_pipeline(data_id).reader
131
- points = reader.GetOutputAsDataSet().GetPointData()
132
- points.SetActiveScalars(name)
133
- mapper = self.get_vtk_pipeline(data_id).mapper
134
- mapper.ScalarVisibilityOn()
135
- mapper.SetScalarModeToUsePointData()
136
- mapper.SetArrayComponent(item)
137
- self.setupColorMap(data_id, color_map, minimum, maximum)
121
+ pipeline = self.get_vtk_pipeline(data_id)
122
+ pipeline.reader.GetOutputAsDataSet().GetPointData().SetActiveScalars(name)
123
+ pipeline.filter.Update()
124
+ if active_ds := pipeline.mapper.GetInputDataObject(0, 0):
125
+ active_ds.GetPointData().SetActiveScalars(name)
126
+ pipeline.mapper.ScalarVisibilityOn()
127
+ pipeline.mapper.SetScalarModeToUsePointData()
128
+ pipeline.mapper.ColorByArrayComponent(name, item)
129
+ self.setupColorMap(data_id, color_map, minimum, maximum, item)
138
130
 
139
131
  def displayAttributeOnCells(
140
132
  self,
@@ -145,14 +137,15 @@ class VtkMeshView(VtkObjectView):
145
137
  minimum: float,
146
138
  maximum: float,
147
139
  ) -> None:
148
- reader = self.get_vtk_pipeline(data_id).reader
149
- cells = reader.GetOutputAsDataSet().GetCellData()
150
- cells.SetActiveScalars(name)
151
- mapper = self.get_vtk_pipeline(data_id).mapper
152
- mapper.ScalarVisibilityOn()
153
- mapper.SetScalarModeToUseCellData()
154
- mapper.SetArrayComponent(item)
155
- self.setupColorMap(data_id, color_map, minimum, maximum)
140
+ pipeline = self.get_vtk_pipeline(data_id)
141
+ pipeline.reader.GetOutputAsDataSet().GetCellData().SetActiveScalars(name)
142
+ pipeline.filter.Update()
143
+ if active_ds := pipeline.mapper.GetInputDataObject(0, 0):
144
+ active_ds.GetCellData().SetActiveScalars(name)
145
+ pipeline.mapper.ScalarVisibilityOn()
146
+ pipeline.mapper.SetScalarModeToUseCellData()
147
+ pipeline.mapper.ColorByArrayComponent(name, item)
148
+ self.setupColorMap(data_id, color_map, minimum, maximum, item)
156
149
 
157
150
  def displayScalarRange(self, data_id: str, minimum: float, maximum: float) -> None:
158
151
  print(
@@ -164,10 +157,17 @@ class VtkMeshView(VtkObjectView):
164
157
  data.mapper.SetUseLookupTableScalarRange(False)
165
158
 
166
159
  def setupColorMap(
167
- self, data_id: str, points: list[float], minimum: float, maximum: float
160
+ self,
161
+ data_id: str,
162
+ points: list[float],
163
+ minimum: float,
164
+ maximum: float,
165
+ item: int = 0,
168
166
  ) -> None:
169
167
  data = self.get_vtk_pipeline(data_id)
170
168
  lut = vtkColorTransferFunction()
169
+ lut.SetVectorModeToComponent()
170
+ lut.SetVectorComponent(item)
171
171
  data.mapper.SetLookupTable(lut)
172
172
 
173
173
  if not points:
@@ -1,33 +1,31 @@
1
1
  # Standard library imports
2
2
  import os
3
+ from typing import Optional, Protocol, TypedDict, cast
3
4
 
4
5
  # Third party imports
6
+ from opengeodeweb_microservice.schemas import get_schemas_dict
5
7
  from vtkmodules.vtkCommonDataModel import (
6
- vtkCompositeDataSet,
7
8
  vtkBoundingBox,
9
+ vtkCompositeDataSet,
8
10
  vtkDataSet,
9
- vtkSelectionNode,
10
11
  )
12
+ from vtkmodules.vtkCommonDataModel import vtkMultiBlockDataSet
13
+ from vtkmodules.vtkFiltersCore import vtkAppendDataSets
14
+ from vtkmodules.vtkIOXML import vtkXMLMultiBlockDataReader
11
15
  from vtkmodules.vtkRenderingCore import (
12
- vtkCompositePolyDataMapper,
13
16
  vtkCompositeDataDisplayAttributes,
14
- vtkColorTransferFunction,
17
+ vtkCompositePolyDataMapper,
15
18
  )
16
- from vtkmodules.vtkFiltersCore import vtkAppendDataSets
17
- from vtkmodules.vtkIOXML import vtkXMLMultiBlockDataReader
18
- from vtkmodules.vtkFiltersGeometry import vtkGeometryFilter
19
19
  from wslink import register as exportRpc # type: ignore
20
- from opengeodeweb_microservice.schemas import get_schemas_dict
21
20
 
22
21
  # Local application imports
22
+ from opengeodeweb_viewer.object.object_methods import VtkObjectView
23
23
  from opengeodeweb_viewer.utils_functions import (
24
- validate_schema,
25
- RpcParams,
26
24
  deterministic_color,
25
+ RpcParams,
26
+ validate_schema,
27
27
  )
28
- from opengeodeweb_viewer.object.object_methods import VtkObjectView
29
- from opengeodeweb_viewer.vtk_protocol import VtkPipeline, BlockStyle
30
- from typing import Optional, List, TypedDict, Protocol
28
+ from opengeodeweb_viewer.vtk_pipeline import VtkPipeline
31
29
  from . import schemas
32
30
 
33
31
 
@@ -60,78 +58,6 @@ class VtkModelView(VtkObjectView):
60
58
  def __init__(self) -> None:
61
59
  super().__init__()
62
60
 
63
- def _get_block_style(self, pipeline: VtkPipeline, block_id: int) -> BlockStyle:
64
- if block_id not in pipeline.block_styles:
65
- style = BlockStyle(
66
- name="",
67
- attribute_location="point",
68
- points=[],
69
- minimum=0.0,
70
- maximum=1.0,
71
- item=0,
72
- )
73
- pipeline.block_styles[block_id] = style
74
- return pipeline.block_styles[block_id]
75
-
76
- def updateBlockColors(self, pipeline: VtkPipeline, block_id: int) -> None:
77
- block = pipeline.blockDataSets[block_id]
78
- if not isinstance(block, vtkDataSet):
79
- return
80
-
81
- style = self._get_block_style(pipeline, block_id)
82
- if not style["name"]:
83
- block.GetPointData().SetActiveScalars("")
84
- block.GetCellData().SetActiveScalars("")
85
- return
86
-
87
- field_data = (
88
- block.GetPointData()
89
- if style["attribute_location"] == "point"
90
- else block.GetCellData()
91
- )
92
- scalar_array = field_data.GetArray(style["name"])
93
- if not scalar_array:
94
- return
95
-
96
- lut = vtkColorTransferFunction()
97
- points = style["points"]
98
- minimum = style["minimum"]
99
- maximum = style["maximum"]
100
- if points:
101
- x_min, x_max = points[0], points[-4]
102
- span = x_max - x_min
103
- for i in range(0, len(points), 4):
104
- x, r, g, b = points[i : i + 4]
105
- new_x = (
106
- minimum + (x - x_min) / span * (maximum - minimum)
107
- if span
108
- else minimum
109
- )
110
- lut.AddRGBPoint(new_x, r, g, b)
111
- else:
112
- lut.AddRGBPoint(minimum, 0, 0, 0)
113
- lut.AddRGBPoint(maximum, 1, 1, 1)
114
-
115
- lut.SetRange(minimum, maximum)
116
- rgba_colors = lut.MapScalars(scalar_array, 0, style.get("item", 0))
117
- rgba_colors.SetName(f"__colors_{style['name']}")
118
-
119
- field_data.AddArray(rgba_colors)
120
- field_data.SetActiveScalars(rgba_colors.GetName())
121
-
122
- other_field_data = (
123
- block.GetCellData()
124
- if style["attribute_location"] == "point"
125
- else block.GetPointData()
126
- )
127
- other_field_data.SetActiveScalars("")
128
-
129
- mapper = pipeline.mapper
130
- mapper.ScalarVisibilityOn()
131
- mapper.SetColorModeToDirectScalars()
132
- mapper.SetScalarModeToDefault()
133
- mapper.Modified()
134
-
135
61
  def apply_color(
136
62
  self,
137
63
  pipeline: VtkPipeline,
@@ -143,13 +69,14 @@ class VtkModelView(VtkObjectView):
143
69
  if not isinstance(mapper, vtkCompositePolyDataMapper):
144
70
  return []
145
71
  attr = mapper.GetCompositeDataDisplayAttributes()
72
+ print(f"{attr=}", flush=True)
146
73
  colors: list[ColorResult] = []
147
74
  for block_id in block_ids:
148
75
  block_dataset = pipeline.blockDataSets[block_id]
149
76
  if isinstance(block_dataset, vtkDataSet):
150
77
  block_dataset.GetPointData().SetActiveScalars("")
151
78
  block_dataset.GetCellData().SetActiveScalars("")
152
- self._get_block_style(pipeline, block_id)["name"] = ""
79
+ pipeline.get_block_style(block_id)["name"] = ""
153
80
  if color_mode == "random":
154
81
  geode_id = pipeline.blockGeodeIds[block_id]
155
82
  red, green, blue = deterministic_color(str(geode_id))
@@ -191,14 +118,14 @@ class VtkModelView(VtkObjectView):
191
118
  ) -> None:
192
119
  pipeline = self.get_vtk_pipeline(data_id)
193
120
  for block_id in block_ids:
194
- style = self._get_block_style(pipeline, block_id)
121
+ style = pipeline.get_block_style(block_id)
195
122
  style["name"] = name
196
123
  style["item"] = item
197
124
  style["attribute_location"] = "point"
198
125
  style["points"] = color_map
199
126
  style["minimum"] = minimum
200
127
  style["maximum"] = maximum
201
- self.updateBlockColors(pipeline, block_id)
128
+ pipeline.update_block_colors(block_id)
202
129
 
203
130
  def displayAttributeOnCells(
204
131
  self,
@@ -212,14 +139,14 @@ class VtkModelView(VtkObjectView):
212
139
  ) -> None:
213
140
  pipeline = self.get_vtk_pipeline(data_id)
214
141
  for block_id in block_ids:
215
- style = self._get_block_style(pipeline, block_id)
142
+ style = pipeline.get_block_style(block_id)
216
143
  style["name"] = name
217
144
  style["item"] = item
218
145
  style["attribute_location"] = "cell"
219
146
  style["points"] = color_map
220
147
  style["minimum"] = minimum
221
148
  style["maximum"] = maximum
222
- self.updateBlockColors(pipeline, block_id)
149
+ pipeline.update_block_colors(block_id)
223
150
 
224
151
  def setupColorMap(
225
152
  self,
@@ -230,11 +157,11 @@ class VtkModelView(VtkObjectView):
230
157
  maximum: float,
231
158
  ) -> None:
232
159
  for block_id in block_ids:
233
- style = self._get_block_style(pipeline, block_id)
160
+ style = pipeline.get_block_style(block_id)
234
161
  style["points"] = points
235
162
  style["minimum"] = minimum
236
163
  style["maximum"] = maximum
237
- self.updateBlockColors(pipeline, block_id)
164
+ pipeline.update_block_colors(block_id)
238
165
 
239
166
  @exportRpc(model_prefix + model_schemas_dict["register"]["rpc"])
240
167
  def registerModel(self, rpc_params: RpcParams) -> None:
@@ -250,17 +177,13 @@ class VtkModelView(VtkObjectView):
250
177
  reader = vtkXMLMultiBlockDataReader()
251
178
  reader.SetFileName(os.path.join(self.DATA_FOLDER_PATH, data_id, file_name))
252
179
  reader.Update()
253
- filter = vtkGeometryFilter()
254
- filter.SetInputConnection(reader.GetOutputPort())
255
- filter.Update()
256
- geometry_output = filter.GetOutputDataObject(0)
257
- if geometry_output:
258
- geometry_output.SetObjectName(params.name)
259
180
  mapper = vtkCompositePolyDataMapper()
260
- mapper.SetInputDataObject(geometry_output)
261
181
  attributes = vtkCompositeDataDisplayAttributes()
262
182
  mapper.SetCompositeDataDisplayAttributes(attributes)
263
- data = VtkPipeline(reader, mapper, filter)
183
+ data = VtkPipeline(reader, mapper)
184
+ geometry_output = cast(
185
+ vtkMultiBlockDataSet, self.setup_pipeline(data, params.name)
186
+ )
264
187
  self.highlight(data)
265
188
  iterator = geometry_output.NewTreeIterator()
266
189
  iterator.InitTraversal()
@@ -12,4 +12,5 @@ from .pick_colormap import *
12
12
  from .highlight import *
13
13
  from .grid_scale import *
14
14
  from .get_point_position import *
15
+ from .clipping_planes import *
15
16
  from .axes import *
@@ -0,0 +1,48 @@
1
+ {
2
+ "rpc": "clipping_planes",
3
+ "type": "object",
4
+ "properties": {
5
+ "ids": {
6
+ "type": "array",
7
+ "items": {
8
+ "type": "string",
9
+ "minLength": 32,
10
+ "maxLength": 32
11
+ }
12
+ },
13
+ "planes": {
14
+ "type": "array",
15
+ "items": {
16
+ "type": "object",
17
+ "properties": {
18
+ "origin": {
19
+ "type": "array",
20
+ "items": {
21
+ "type": "number"
22
+ },
23
+ "minItems": 3,
24
+ "maxItems": 3
25
+ },
26
+ "normal": {
27
+ "type": "array",
28
+ "items": {
29
+ "type": "number"
30
+ },
31
+ "minItems": 3,
32
+ "maxItems": 3
33
+ }
34
+ },
35
+ "required": [
36
+ "origin",
37
+ "normal"
38
+ ],
39
+ "additionalProperties": false
40
+ }
41
+ }
42
+ },
43
+ "required": [
44
+ "ids",
45
+ "planes"
46
+ ],
47
+ "additionalProperties": false
48
+ }
@@ -0,0 +1,21 @@
1
+ from dataclasses_json import DataClassJsonMixin
2
+ from dataclasses import dataclass
3
+ from typing import List
4
+
5
+
6
+ @dataclass
7
+ class Plane(DataClassJsonMixin):
8
+ def __post_init__(self) -> None:
9
+ print(self, flush=True)
10
+
11
+ normal: List[float]
12
+ origin: List[float]
13
+
14
+
15
+ @dataclass
16
+ class ClippingPlanes(DataClassJsonMixin):
17
+ def __post_init__(self) -> None:
18
+ print(self, flush=True)
19
+
20
+ ids: List[str]
21
+ planes: List[Plane]
@@ -31,7 +31,7 @@ from opengeodeweb_viewer.utils_functions import (
31
31
  RpcParams,
32
32
  )
33
33
  from opengeodeweb_viewer.vtk_protocol import VtkView
34
- from . import schemas
34
+ from opengeodeweb_viewer.rpc.viewer import schemas
35
35
 
36
36
 
37
37
  class VtkViewerView(VtkView):
@@ -362,6 +362,14 @@ class VtkViewerView(VtkView):
362
362
  "attributes": data_attributes,
363
363
  }
364
364
 
365
+ @exportRpc(viewer_prefix + viewer_schemas_dict["clipping_planes"]["rpc"])
366
+ def setClippingPlanes(self, rpc_params: RpcParams) -> None:
367
+ validate_schema(
368
+ rpc_params, self.viewer_schemas_dict["clipping_planes"], self.viewer_prefix
369
+ )
370
+ params = schemas.ClippingPlanes.from_dict(rpc_params)
371
+ self.set_clipping_planes(params.ids, params.planes)
372
+
365
373
  @exportRpc(viewer_prefix + viewer_schemas_dict["set_z_scaling"]["rpc"])
366
374
  def setZScaling(self, rpc_params: RpcParams) -> None:
367
375
  validate_schema(