OpenGeodeWeb-Viewer 1.14.0rc1__py3-none-any.whl → 1.15.0__py3-none-any.whl

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 (40) hide show
  1. opengeodeweb_viewer/object/object_methods.py +5 -1
  2. opengeodeweb_viewer/rpc/mesh/cells/cells_protocols.py +20 -0
  3. opengeodeweb_viewer/rpc/mesh/cells/schemas/__init__.py +2 -0
  4. opengeodeweb_viewer/rpc/mesh/cells/schemas/cell_color_map.json +25 -0
  5. opengeodeweb_viewer/rpc/mesh/cells/schemas/cell_color_map.py +12 -0
  6. opengeodeweb_viewer/rpc/mesh/cells/schemas/vertex_color_map.json +25 -0
  7. opengeodeweb_viewer/rpc/mesh/cells/schemas/vertex_color_map.py +12 -0
  8. opengeodeweb_viewer/rpc/mesh/edges/mesh_edges_protocols.py +20 -0
  9. opengeodeweb_viewer/rpc/mesh/edges/schemas/__init__.py +2 -1
  10. opengeodeweb_viewer/rpc/mesh/edges/schemas/{size.json → edge_attribute.json} +6 -5
  11. opengeodeweb_viewer/rpc/mesh/edges/schemas/{size.py → edge_attribute.py} +2 -2
  12. opengeodeweb_viewer/rpc/mesh/edges/schemas/vertex_color_map.json +25 -0
  13. opengeodeweb_viewer/rpc/mesh/edges/schemas/vertex_color_map.py +12 -0
  14. opengeodeweb_viewer/rpc/mesh/edges/schemas/width.json +1 -1
  15. opengeodeweb_viewer/rpc/mesh/mesh_protocols.py +31 -3
  16. opengeodeweb_viewer/rpc/mesh/points/mesh_points_protocols.py +10 -0
  17. opengeodeweb_viewer/rpc/mesh/points/schemas/__init__.py +1 -0
  18. opengeodeweb_viewer/rpc/mesh/points/schemas/vertex_color_map.json +25 -0
  19. opengeodeweb_viewer/rpc/mesh/points/schemas/vertex_color_map.py +12 -0
  20. opengeodeweb_viewer/rpc/mesh/polygons/polygons_protocols.py +24 -0
  21. opengeodeweb_viewer/rpc/mesh/polygons/schemas/__init__.py +2 -0
  22. opengeodeweb_viewer/rpc/mesh/polygons/schemas/polygon_color_map.json +25 -0
  23. opengeodeweb_viewer/rpc/mesh/polygons/schemas/polygon_color_map.py +12 -0
  24. opengeodeweb_viewer/rpc/mesh/polygons/schemas/vertex_color_map.json +25 -0
  25. opengeodeweb_viewer/rpc/mesh/polygons/schemas/vertex_color_map.py +12 -0
  26. opengeodeweb_viewer/rpc/mesh/polyhedra/polyhedra_protocols.py +25 -0
  27. opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/__init__.py +2 -0
  28. opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/polyhedra_color_map.json +25 -0
  29. opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/polyhedra_color_map.py +12 -0
  30. opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/vertex_color_map.json +25 -0
  31. opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/vertex_color_map.py +12 -0
  32. opengeodeweb_viewer/rpc/viewer/viewer_protocols.py +9 -13
  33. opengeodeweb_viewer/vtk_protocol.py +1 -0
  34. opengeodeweb_viewer/vtkw_server.py +0 -1
  35. {opengeodeweb_viewer-1.14.0rc1.dist-info → opengeodeweb_viewer-1.15.0.dist-info}/METADATA +3 -3
  36. {opengeodeweb_viewer-1.14.0rc1.dist-info → opengeodeweb_viewer-1.15.0.dist-info}/RECORD +40 -24
  37. {opengeodeweb_viewer-1.14.0rc1.dist-info → opengeodeweb_viewer-1.15.0.dist-info}/WHEEL +1 -1
  38. {opengeodeweb_viewer-1.14.0rc1.dist-info → opengeodeweb_viewer-1.15.0.dist-info}/entry_points.txt +0 -0
  39. {opengeodeweb_viewer-1.14.0rc1.dist-info → opengeodeweb_viewer-1.15.0.dist-info}/licenses/LICENSE +0 -0
  40. {opengeodeweb_viewer-1.14.0rc1.dist-info → opengeodeweb_viewer-1.15.0.dist-info}/top_level.txt +0 -0
@@ -77,7 +77,11 @@ class VtkObjectView(VtkView):
77
77
 
78
78
  def SetEdgesWidth(self, data_id: str, width: float) -> None:
79
79
  actor = self.get_object(data_id).actor
80
- actor.GetProperty().SetEdgeWidth(width)
80
+ max_dimension = self.get_object(data_id).max_dimension
81
+ if max_dimension == "edges":
82
+ actor.GetProperty().SetLineWidth(width)
83
+ else:
84
+ actor.GetProperty().SetEdgeWidth(width)
81
85
 
82
86
  def SetEdgesColor(self, data_id: str, red: int, green: int, blue: int) -> None:
83
87
  actor = self.get_object(data_id).actor
@@ -85,3 +85,23 @@ class VtkMeshCellsView(VtkMeshView):
85
85
  )
86
86
  params = schemas.CellScalarRange.from_dict(rpc_params)
87
87
  self.displayScalarRange(params.id, params.minimum, params.maximum)
88
+
89
+ @exportRpc(mesh_cells_prefix + mesh_cells_schemas_dict["vertex_color_map"]["rpc"])
90
+ def setMeshCellsVertexColorMap(self, rpc_params: RpcParams) -> None:
91
+ validate_schema(
92
+ rpc_params,
93
+ self.mesh_cells_schemas_dict["vertex_color_map"],
94
+ self.mesh_cells_prefix,
95
+ )
96
+ params = schemas.VertexColorMap.from_dict(rpc_params)
97
+ self.setupColorMap(params.id, params.points)
98
+
99
+ @exportRpc(mesh_cells_prefix + mesh_cells_schemas_dict["cell_color_map"]["rpc"])
100
+ def setMeshCellsCellColorMap(self, rpc_params: RpcParams) -> None:
101
+ validate_schema(
102
+ rpc_params,
103
+ self.mesh_cells_schemas_dict["cell_color_map"],
104
+ self.mesh_cells_prefix,
105
+ )
106
+ params = schemas.CellColorMap.from_dict(rpc_params)
107
+ self.setupColorMap(params.id, params.points)
@@ -1,6 +1,8 @@
1
1
  from .visibility import *
2
2
  from .vertex_scalar_range import *
3
+ from .vertex_color_map import *
3
4
  from .vertex_attribute import *
4
5
  from .color import *
5
6
  from .cell_scalar_range import *
7
+ from .cell_color_map import *
6
8
  from .cell_attribute import *
@@ -0,0 +1,25 @@
1
+ {
2
+ "rpc": "color_map",
3
+ "type": "object",
4
+ "properties": {
5
+ "id": {
6
+ "type": "string",
7
+ "minLength": 1
8
+ },
9
+ "points": {
10
+ "type": "array",
11
+ "items": {
12
+ "type": "array",
13
+ "description": "[value, r, g, b]",
14
+ "items": {
15
+ "type": "number"
16
+ },
17
+ "minItems": 4,
18
+ "maxItems": 4
19
+ },
20
+ "minLength": 2
21
+ }
22
+ },
23
+ "required": ["id", "points"],
24
+ "additionalProperties": false
25
+ }
@@ -0,0 +1,12 @@
1
+ from dataclasses_json import DataClassJsonMixin
2
+ from dataclasses import dataclass
3
+ from typing import List
4
+
5
+
6
+ @dataclass
7
+ class CellColorMap(DataClassJsonMixin):
8
+ def __post_init__(self) -> None:
9
+ print(self, flush=True)
10
+
11
+ id: str
12
+ points: List[List[float]]
@@ -0,0 +1,25 @@
1
+ {
2
+ "rpc": "color_map",
3
+ "type": "object",
4
+ "properties": {
5
+ "id": {
6
+ "type": "string",
7
+ "minLength": 1
8
+ },
9
+ "points": {
10
+ "type": "array",
11
+ "items": {
12
+ "type": "array",
13
+ "description": "[value, r, g, b]",
14
+ "items": {
15
+ "type": "number"
16
+ },
17
+ "minItems": 4,
18
+ "maxItems": 4
19
+ },
20
+ "minLength": 2
21
+ }
22
+ },
23
+ "required": ["id", "points"],
24
+ "additionalProperties": false
25
+ }
@@ -0,0 +1,12 @@
1
+ from dataclasses_json import DataClassJsonMixin
2
+ from dataclasses import dataclass
3
+ from typing import List
4
+
5
+
6
+ @dataclass
7
+ class VertexColorMap(DataClassJsonMixin):
8
+ def __post_init__(self) -> None:
9
+ print(self, flush=True)
10
+
11
+ id: str
12
+ points: List[List[float]]
@@ -71,3 +71,23 @@ class VtkMeshEdgesView(VtkMeshView):
71
71
  )
72
72
  params = schemas.VertexScalarRange.from_dict(rpc_params)
73
73
  self.displayScalarRange(params.id, params.minimum, params.maximum)
74
+
75
+ @exportRpc(mesh_edges_prefix + mesh_edges_schemas_dict["vertex_color_map"]["rpc"])
76
+ def setMeshEdgesVertexColorMap(self, rpc_params: RpcParams) -> None:
77
+ validate_schema(
78
+ rpc_params,
79
+ self.mesh_edges_schemas_dict["vertex_color_map"],
80
+ self.mesh_edges_prefix,
81
+ )
82
+ params = schemas.VertexColorMap.from_dict(rpc_params)
83
+ self.setupColorMap(params.id, params.points)
84
+
85
+ @exportRpc(mesh_edges_prefix + mesh_edges_schemas_dict["edge_attribute"]["rpc"])
86
+ def setMeshEdgesEdgeAttribute(self, rpc_params: RpcParams) -> None:
87
+ validate_schema(
88
+ rpc_params,
89
+ self.mesh_edges_schemas_dict["edge_attribute"],
90
+ self.mesh_edges_prefix,
91
+ )
92
+ params = schemas.EdgeAttribute.from_dict(rpc_params)
93
+ self.displayAttributeOnCells(params.id, params.name)
@@ -1,6 +1,7 @@
1
1
  from .width import *
2
2
  from .visibility import *
3
3
  from .vertex_scalar_range import *
4
+ from .vertex_color_map import *
4
5
  from .vertex_attribute import *
5
- from .size import *
6
+ from .edge_attribute import *
6
7
  from .color import *
@@ -1,18 +1,19 @@
1
1
  {
2
- "rpc": "size",
2
+ "rpc": "edge_attribute",
3
3
  "type": "object",
4
4
  "properties": {
5
5
  "id": {
6
6
  "type": "string",
7
7
  "minLength": 1
8
8
  },
9
- "size": {
10
- "type": "integer"
9
+ "name": {
10
+ "type": "string",
11
+ "minLength": 1
11
12
  }
12
13
  },
13
14
  "required": [
14
15
  "id",
15
- "size"
16
+ "name"
16
17
  ],
17
18
  "additionalProperties": false
18
- }
19
+ }
@@ -3,9 +3,9 @@ from dataclasses import dataclass
3
3
 
4
4
 
5
5
  @dataclass
6
- class Size(DataClassJsonMixin):
6
+ class EdgeAttribute(DataClassJsonMixin):
7
7
  def __post_init__(self) -> None:
8
8
  print(self, flush=True)
9
9
 
10
10
  id: str
11
- size: int
11
+ name: str
@@ -0,0 +1,25 @@
1
+ {
2
+ "rpc": "color_map",
3
+ "type": "object",
4
+ "properties": {
5
+ "id": {
6
+ "type": "string",
7
+ "minLength": 1
8
+ },
9
+ "points": {
10
+ "type": "array",
11
+ "items": {
12
+ "type": "array",
13
+ "description": "[value, r, g, b]",
14
+ "items": {
15
+ "type": "number"
16
+ },
17
+ "minItems": 4,
18
+ "maxItems": 4
19
+ },
20
+ "minLength": 2
21
+ }
22
+ },
23
+ "required": ["id", "points"],
24
+ "additionalProperties": false
25
+ }
@@ -0,0 +1,12 @@
1
+ from dataclasses_json import DataClassJsonMixin
2
+ from dataclasses import dataclass
3
+ from typing import List
4
+
5
+
6
+ @dataclass
7
+ class VertexColorMap(DataClassJsonMixin):
8
+ def __post_init__(self) -> None:
9
+ print(self, flush=True)
10
+
11
+ id: str
12
+ points: List[List[float]]
@@ -1,5 +1,5 @@
1
1
  {
2
- "rpc": "size",
2
+ "rpc": "width",
3
3
  "type": "object",
4
4
  "properties": {
5
5
  "id": {
@@ -4,7 +4,12 @@ import os
4
4
  # Third party imports
5
5
  from wslink import register as exportRpc # type: ignore
6
6
  from vtkmodules.vtkIOXML import vtkXMLGenericDataObjectReader, vtkXMLImageDataReader
7
- from vtkmodules.vtkRenderingCore import vtkDataSetMapper, vtkActor, vtkTexture
7
+ from vtkmodules.vtkRenderingCore import (
8
+ vtkDataSetMapper,
9
+ vtkActor,
10
+ vtkTexture,
11
+ vtkColorTransferFunction,
12
+ )
8
13
  from vtkmodules.vtkCommonDataModel import vtkDataSet, vtkCellTypes
9
14
  from vtkmodules.vtkCommonExecutionModel import vtkAlgorithm
10
15
  from opengeodeweb_microservice.database.data import Data
@@ -148,5 +153,28 @@ class VtkMeshView(VtkObjectView):
148
153
  mapper.SetScalarRange(cells.GetScalars().GetRange())
149
154
 
150
155
  def displayScalarRange(self, data_id: str, minimum: float, maximum: float) -> None:
151
- mapper = self.get_object(data_id).mapper
152
- mapper.SetScalarRange(minimum, maximum)
156
+ data = self.get_object(data_id)
157
+ data.mapper.SetScalarRange(minimum, maximum)
158
+ if hasattr(data, "color_map_points") and data.color_map_points:
159
+ lut = vtkColorTransferFunction()
160
+ for ratio, red, green, blue in data.color_map_points:
161
+ scalar_value = minimum + ratio * (maximum - minimum)
162
+ lut.AddRGBPoint(scalar_value, red / 255, green / 255, blue / 255)
163
+ data.mapper.SetLookupTable(lut)
164
+
165
+ def setupColorMap(self, data_id: str, points: list[list[float]]) -> None:
166
+ data = self.get_object(data_id)
167
+ sorted_points = sorted(points, key=lambda x: x[0])
168
+ points_min = sorted_points[0][0]
169
+ points_max = sorted_points[-1][0]
170
+ points_range = points_max - points_min if points_max != points_min else 1.0
171
+
172
+ data.color_map_points = []
173
+ for point in sorted_points:
174
+ ratio = (point[0] - points_min) / points_range
175
+ data.color_map_points.append([ratio, *point[1:]])
176
+
177
+ data.mapper.InterpolateScalarsBeforeMappingOn()
178
+
179
+ minimum, maximum = data.mapper.GetScalarRange()
180
+ self.displayScalarRange(data_id, minimum, maximum)
@@ -71,3 +71,13 @@ class VtkMeshPointsView(VtkMeshView):
71
71
  )
72
72
  params = schemas.VertexScalarRange.from_dict(rpc_params)
73
73
  self.displayScalarRange(params.id, params.minimum, params.maximum)
74
+
75
+ @exportRpc(mesh_points_prefix + mesh_points_schemas_dict["vertex_color_map"]["rpc"])
76
+ def setMeshPointsVertexColorMap(self, rpc_params: RpcParams) -> None:
77
+ validate_schema(
78
+ rpc_params,
79
+ self.mesh_points_schemas_dict["vertex_color_map"],
80
+ self.mesh_points_prefix,
81
+ )
82
+ params = schemas.VertexColorMap.from_dict(rpc_params)
83
+ self.setupColorMap(params.id, params.points)
@@ -1,5 +1,6 @@
1
1
  from .visibility import *
2
2
  from .vertex_scalar_range import *
3
+ from .vertex_color_map import *
3
4
  from .vertex_attribute import *
4
5
  from .size import *
5
6
  from .color import *
@@ -0,0 +1,25 @@
1
+ {
2
+ "rpc": "color_map",
3
+ "type": "object",
4
+ "properties": {
5
+ "id": {
6
+ "type": "string",
7
+ "minLength": 1
8
+ },
9
+ "points": {
10
+ "type": "array",
11
+ "items": {
12
+ "type": "array",
13
+ "description": "[value, r, g, b]",
14
+ "items": {
15
+ "type": "number"
16
+ },
17
+ "minItems": 4,
18
+ "maxItems": 4
19
+ },
20
+ "minLength": 2
21
+ }
22
+ },
23
+ "required": ["id", "points"],
24
+ "additionalProperties": false
25
+ }
@@ -0,0 +1,12 @@
1
+ from dataclasses_json import DataClassJsonMixin
2
+ from dataclasses import dataclass
3
+ from typing import List
4
+
5
+
6
+ @dataclass
7
+ class VertexColorMap(DataClassJsonMixin):
8
+ def __post_init__(self) -> None:
9
+ print(self, flush=True)
10
+
11
+ id: str
12
+ points: List[List[float]]
@@ -91,3 +91,27 @@ class VtkMeshPolygonsView(VtkMeshView):
91
91
  )
92
92
  params = schemas.PolygonScalarRange.from_dict(rpc_params)
93
93
  self.displayScalarRange(params.id, params.minimum, params.maximum)
94
+
95
+ @exportRpc(
96
+ mesh_polygons_prefix + mesh_polygons_schemas_dict["vertex_color_map"]["rpc"]
97
+ )
98
+ def setMeshPolygonsVertexColorMap(self, rpc_params: RpcParams) -> None:
99
+ validate_schema(
100
+ rpc_params,
101
+ self.mesh_polygons_schemas_dict["vertex_color_map"],
102
+ self.mesh_polygons_prefix,
103
+ )
104
+ params = schemas.VertexColorMap.from_dict(rpc_params)
105
+ self.setupColorMap(params.id, params.points)
106
+
107
+ @exportRpc(
108
+ mesh_polygons_prefix + mesh_polygons_schemas_dict["polygon_color_map"]["rpc"]
109
+ )
110
+ def setMeshPolygonsPolygonColorMap(self, rpc_params: RpcParams) -> None:
111
+ validate_schema(
112
+ rpc_params,
113
+ self.mesh_polygons_schemas_dict["polygon_color_map"],
114
+ self.mesh_polygons_prefix,
115
+ )
116
+ params = schemas.PolygonColorMap.from_dict(rpc_params)
117
+ self.setupColorMap(params.id, params.points)
@@ -1,6 +1,8 @@
1
1
  from .visibility import *
2
2
  from .vertex_scalar_range import *
3
+ from .vertex_color_map import *
3
4
  from .vertex_attribute import *
4
5
  from .polygon_scalar_range import *
6
+ from .polygon_color_map import *
5
7
  from .polygon_attribute import *
6
8
  from .color import *
@@ -0,0 +1,25 @@
1
+ {
2
+ "rpc": "color_map",
3
+ "type": "object",
4
+ "properties": {
5
+ "id": {
6
+ "type": "string",
7
+ "minLength": 1
8
+ },
9
+ "points": {
10
+ "type": "array",
11
+ "items": {
12
+ "type": "array",
13
+ "description": "[value, r, g, b]",
14
+ "items": {
15
+ "type": "number"
16
+ },
17
+ "minItems": 4,
18
+ "maxItems": 4
19
+ },
20
+ "minLength": 2
21
+ }
22
+ },
23
+ "required": ["id", "points"],
24
+ "additionalProperties": false
25
+ }
@@ -0,0 +1,12 @@
1
+ from dataclasses_json import DataClassJsonMixin
2
+ from dataclasses import dataclass
3
+ from typing import List
4
+
5
+
6
+ @dataclass
7
+ class PolygonColorMap(DataClassJsonMixin):
8
+ def __post_init__(self) -> None:
9
+ print(self, flush=True)
10
+
11
+ id: str
12
+ points: List[List[float]]
@@ -0,0 +1,25 @@
1
+ {
2
+ "rpc": "color_map",
3
+ "type": "object",
4
+ "properties": {
5
+ "id": {
6
+ "type": "string",
7
+ "minLength": 1
8
+ },
9
+ "points": {
10
+ "type": "array",
11
+ "items": {
12
+ "type": "array",
13
+ "description": "[value, r, g, b]",
14
+ "items": {
15
+ "type": "number"
16
+ },
17
+ "minItems": 4,
18
+ "maxItems": 4
19
+ },
20
+ "minLength": 2
21
+ }
22
+ },
23
+ "required": ["id", "points"],
24
+ "additionalProperties": false
25
+ }
@@ -0,0 +1,12 @@
1
+ from dataclasses_json import DataClassJsonMixin
2
+ from dataclasses import dataclass
3
+ from typing import List
4
+
5
+
6
+ @dataclass
7
+ class VertexColorMap(DataClassJsonMixin):
8
+ def __post_init__(self) -> None:
9
+ print(self, flush=True)
10
+
11
+ id: str
12
+ points: List[List[float]]
@@ -94,3 +94,28 @@ class VtkMeshPolyhedraView(VtkMeshView):
94
94
  )
95
95
  params = schemas.PolyhedronScalarRange.from_dict(rpc_params)
96
96
  self.displayScalarRange(params.id, params.minimum, params.maximum)
97
+
98
+ @exportRpc(
99
+ mesh_polyhedra_prefix + mesh_polyhedra_schemas_dict["vertex_color_map"]["rpc"]
100
+ )
101
+ def setMeshPolyhedraVertexColorMap(self, rpc_params: RpcParams) -> None:
102
+ validate_schema(
103
+ rpc_params,
104
+ self.mesh_polyhedra_schemas_dict["vertex_color_map"],
105
+ self.mesh_polyhedra_prefix,
106
+ )
107
+ params = schemas.VertexColorMap.from_dict(rpc_params)
108
+ self.setupColorMap(params.id, params.points)
109
+
110
+ @exportRpc(
111
+ mesh_polyhedra_prefix
112
+ + mesh_polyhedra_schemas_dict["polyhedra_color_map"]["rpc"]
113
+ )
114
+ def setMeshPolyhedraPolyhedraColorMap(self, rpc_params: RpcParams) -> None:
115
+ validate_schema(
116
+ rpc_params,
117
+ self.mesh_polyhedra_schemas_dict["polyhedra_color_map"],
118
+ self.mesh_polyhedra_prefix,
119
+ )
120
+ params = schemas.PolyhedraColorMap.from_dict(rpc_params)
121
+ self.setupColorMap(params.id, params.points)
@@ -1,6 +1,8 @@
1
1
  from .visibility import *
2
2
  from .vertex_scalar_range import *
3
+ from .vertex_color_map import *
3
4
  from .vertex_attribute import *
4
5
  from .polyhedron_scalar_range import *
5
6
  from .polyhedron_attribute import *
7
+ from .polyhedra_color_map import *
6
8
  from .color import *
@@ -0,0 +1,25 @@
1
+ {
2
+ "rpc": "color_map",
3
+ "type": "object",
4
+ "properties": {
5
+ "id": {
6
+ "type": "string",
7
+ "minLength": 1
8
+ },
9
+ "points": {
10
+ "type": "array",
11
+ "items": {
12
+ "type": "array",
13
+ "description": "[value, r, g, b]",
14
+ "items": {
15
+ "type": "number"
16
+ },
17
+ "minItems": 4,
18
+ "maxItems": 4
19
+ },
20
+ "minLength": 2
21
+ }
22
+ },
23
+ "required": ["id", "points"],
24
+ "additionalProperties": false
25
+ }
@@ -0,0 +1,12 @@
1
+ from dataclasses_json import DataClassJsonMixin
2
+ from dataclasses import dataclass
3
+ from typing import List
4
+
5
+
6
+ @dataclass
7
+ class PolyhedraColorMap(DataClassJsonMixin):
8
+ def __post_init__(self) -> None:
9
+ print(self, flush=True)
10
+
11
+ id: str
12
+ points: List[List[float]]
@@ -0,0 +1,25 @@
1
+ {
2
+ "rpc": "color_map",
3
+ "type": "object",
4
+ "properties": {
5
+ "id": {
6
+ "type": "string",
7
+ "minLength": 1
8
+ },
9
+ "points": {
10
+ "type": "array",
11
+ "items": {
12
+ "type": "array",
13
+ "description": "[value, r, g, b]",
14
+ "items": {
15
+ "type": "number"
16
+ },
17
+ "minItems": 4,
18
+ "maxItems": 4
19
+ },
20
+ "minLength": 2
21
+ }
22
+ },
23
+ "required": ["id", "points"],
24
+ "additionalProperties": false
25
+ }
@@ -0,0 +1,12 @@
1
+ from dataclasses_json import DataClassJsonMixin
2
+ from dataclasses import dataclass
3
+ from typing import List
4
+
5
+
6
+ @dataclass
7
+ class VertexColorMap(DataClassJsonMixin):
8
+ def __post_init__(self) -> None:
9
+ print(self, flush=True)
10
+
11
+ id: str
12
+ points: List[List[float]]
@@ -13,6 +13,7 @@ from vtkmodules.vtkRenderingCore import (
13
13
  vtkRenderWindowInteractor,
14
14
  vtkAbstractMapper,
15
15
  vtkWorldPointPicker,
16
+ vtkPicker,
16
17
  )
17
18
  from vtkmodules.vtkInteractionStyle import vtkInteractorStyleTrackball
18
19
  from vtkmodules.vtkCommonCore import reference
@@ -224,20 +225,15 @@ class VtkViewerView(VtkView):
224
225
  params = schemas.PickedIDS.from_dict(rpc_params)
225
226
  renderWindow = self.getView("-1")
226
227
  renderer = renderWindow.GetRenderers().GetFirstRenderer()
227
- picker = vtkWorldPointPicker()
228
- picker.Pick([params.x, params.y, 0], renderer)
229
- point = picker.GetPickPosition()
230
- epsilon = self.computeEpsilon(renderer, point[2])
231
- bbox = vtkBoundingBox()
232
- bbox.AddPoint(point[0] + epsilon, point[1] + epsilon, point[2] + epsilon)
233
- bbox.AddPoint(point[0] - epsilon, point[1] - epsilon, point[2] - epsilon)
234
-
228
+ picker = vtkPicker()
229
+ picker.Pick(params.x, params.y, 0, renderer)
230
+ picked_actor = picker.GetActor()
235
231
  array_ids = []
236
- for id in params.ids:
237
- bounds = self.get_object(id).actor.GetBounds()
238
- bounds_box = vtkBoundingBox(bounds)
239
- if bbox.Intersects(bounds_box):
240
- array_ids.append(id)
232
+ if picked_actor:
233
+ for id in params.ids:
234
+ if self.get_object(id).actor == picked_actor:
235
+ array_ids.append(id)
236
+ break
241
237
 
242
238
  return {"array_ids": array_ids}
243
239
 
@@ -35,6 +35,7 @@ class vtkData:
35
35
  max_dimension: Literal["points", "edges", "polygons", "polyhedra", "default"] = (
36
36
  "default"
37
37
  )
38
+ color_map_points: list[list[float]] = field(default_factory=list)
38
39
 
39
40
 
40
41
  class VtkTypingMixin:
@@ -44,7 +44,6 @@ from .rpc.model.blocks.model_blocks_protocols import (
44
44
  from .rpc.generic.generic_protocols import VtkGenericView
45
45
  from .rpc.utils_protocols import VtkUtilsView
46
46
 
47
-
48
47
  # =============================================================================
49
48
  # Server class
50
49
  # =============================================================================
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: OpenGeodeWeb-Viewer
3
- Version: 1.14.0rc1
3
+ Version: 1.15.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==25.0
27
+ Requires-Dist: packaging==26.0
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.0.12
38
+ Requires-Dist: opengeodeweb-microservice==1.*,>=1.0.13rc1
39
39
  Dynamic: license-file
40
40
 
41
41
  # OpenGeodeWeb-Viewer
@@ -2,9 +2,9 @@ opengeodeweb_viewer/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKV
2
2
  opengeodeweb_viewer/config.py,sha256=Iq04mCJWy3_1toGyLwkm2domVl3CEVPQY1kcPZM9sQA,2127
3
3
  opengeodeweb_viewer/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  opengeodeweb_viewer/utils_functions.py,sha256=Nh0tS78ctULkLjOtVtDoHaMLxKn2A70ARFGkucTe-Sk,758
5
- opengeodeweb_viewer/vtk_protocol.py,sha256=jip7S-u4ZbtigDeZ2KPH8mpzhZdTeNZbRE52O2SuzUg,5024
6
- opengeodeweb_viewer/vtkw_server.py,sha256=83Khwt_cLtT9ugefZZOfcY5wzQgQyOnER1ANoHTKgiE,6127
7
- opengeodeweb_viewer/object/object_methods.py,sha256=aZRfNtZDnJ-YJtuyfBBbklbEiy2sri7YUR7wtV8v3ak,5424
5
+ opengeodeweb_viewer/vtk_protocol.py,sha256=fbuL46xc3RfGMOyF7kawTed1OCAvijhvADhhOOwnyKE,5094
6
+ opengeodeweb_viewer/vtkw_server.py,sha256=10BQJCL79MVZh2zF2ZJ8X8bVH-WdSXzyj6TD7Hlk29Q,6126
7
+ opengeodeweb_viewer/object/object_methods.py,sha256=3JmCivSmCGAUgv11OvRO-xpFIP28Uqu1y1gbHx_96Jw,5594
8
8
  opengeodeweb_viewer/rpc/utils_protocols.py,sha256=18w2N9AuXpNke7wL66Jg_k86NNOhEoRy_cK1v6Z3gX8,2506
9
9
  opengeodeweb_viewer/rpc/generic/generic_protocols.py,sha256=GtBN4eopb95Ook84ioz4jelu2sE1A-ukC_nbGx343BA,2324
10
10
  opengeodeweb_viewer/rpc/generic/schemas/__init__.py,sha256=Foxm034o9OVDZ5cZkUVNlrZ6phd68HRrXBuvaLx-PD0,50
@@ -12,71 +12,87 @@ opengeodeweb_viewer/rpc/generic/schemas/deregister.json,sha256=HqFQ1Y8Y4Xj08gDN_
12
12
  opengeodeweb_viewer/rpc/generic/schemas/deregister.py,sha256=Seu-KiYPh8Bb1Wxd4W1WtLAoan4xuPjxOPtgqlK9D_w,215
13
13
  opengeodeweb_viewer/rpc/generic/schemas/register.json,sha256=45uECnAbC7Y7uBAZ0pRTzrSg3G2fL3yn4Cz0eby6KrQ,192
14
14
  opengeodeweb_viewer/rpc/generic/schemas/register.py,sha256=5Y7idPuRLHyADe8nSLixFd04EmCKHsZuGOV1sHibebU,213
15
- opengeodeweb_viewer/rpc/mesh/mesh_protocols.py,sha256=gwWJ9S5tUx5amtbSqF2-2DySI_yWeKukM5JV7qQpazo,6569
16
- opengeodeweb_viewer/rpc/mesh/cells/cells_protocols.py,sha256=3-Q-rC7tyqF5VXosBXhqq-EOqIvFJ6y6qjNenVrKquU,3324
17
- opengeodeweb_viewer/rpc/mesh/cells/schemas/__init__.py,sha256=w8oKaxvnO6u_9dwXvM8nG18iYWaQE4sJkFWtui29p2o,177
15
+ opengeodeweb_viewer/rpc/mesh/mesh_protocols.py,sha256=vgO5DJZeeyIceaU1HPpqtapYKx_4VqWOg_naZ-DQPjM,7701
16
+ opengeodeweb_viewer/rpc/mesh/cells/cells_protocols.py,sha256=awXUQmTN-4I8jR2-L6loBld54J1CtYls4gUDMxvo81Q,4182
17
+ opengeodeweb_viewer/rpc/mesh/cells/schemas/__init__.py,sha256=AJ5I34FVw4rbo1rNagWDLCXExjhTk8P0y5whGLznHu0,239
18
18
  opengeodeweb_viewer/rpc/mesh/cells/schemas/cell_attribute.json,sha256=KSjcfw2WSKS7LvP85vAI9rAtKdunvjewtBcsLlCCHuc,265
19
19
  opengeodeweb_viewer/rpc/mesh/cells/schemas/cell_attribute.py,sha256=b0JFK7MFPxh4a3bJIa9DOWZo82geSpC86pWWLuicbYU,232
20
+ opengeodeweb_viewer/rpc/mesh/cells/schemas/cell_color_map.json,sha256=7Bm5rLp1sQVQhPutHQM1Ez5aa9TBLXcn9XTb5K-q7JI,459
21
+ opengeodeweb_viewer/rpc/mesh/cells/schemas/cell_color_map.py,sha256=UEWT4yir4yeaWf4-FdN5CN9CJycKfKySZlMES7O71H8,271
20
22
  opengeodeweb_viewer/rpc/mesh/cells/schemas/cell_scalar_range.json,sha256=VS5YEpytrMnURuRMzDxK93KMPjYNjGWEPb0FUHNXHYA,326
21
23
  opengeodeweb_viewer/rpc/mesh/cells/schemas/cell_scalar_range.py,sha256=5hHzKIU2SOMIrPNoJkHRBghV9FVkR3ZavQoNguFa_Ng,258
22
24
  opengeodeweb_viewer/rpc/mesh/cells/schemas/color.json,sha256=tGWsxiaaYsiDmyF7Ed1RTWxqfe63mHAWxSi2SmTUN6Y,818
23
25
  opengeodeweb_viewer/rpc/mesh/cells/schemas/color.py,sha256=RdjSQB-ZKsJHP10roQV0pVt8jvu6trJ20NuZTVrNAIM,444
24
26
  opengeodeweb_viewer/rpc/mesh/cells/schemas/vertex_attribute.json,sha256=0ep_P2-DyUs8E9pnIceArInwyLf-JujiJh1FmsBkpNA,278
25
27
  opengeodeweb_viewer/rpc/mesh/cells/schemas/vertex_attribute.py,sha256=iHcmXyaEiftkiCEMIK3KcUO-Iq3SBjpSy6PEP3Z8e2s,234
28
+ opengeodeweb_viewer/rpc/mesh/cells/schemas/vertex_color_map.json,sha256=7Bm5rLp1sQVQhPutHQM1Ez5aa9TBLXcn9XTb5K-q7JI,459
29
+ opengeodeweb_viewer/rpc/mesh/cells/schemas/vertex_color_map.py,sha256=9Mr3LKLreanSXUjCEAJb1g9JdzZM5tKLJHObQOzEicY,273
26
30
  opengeodeweb_viewer/rpc/mesh/cells/schemas/vertex_scalar_range.json,sha256=TVZcvyhdhR-59m-tLuKsem3KNAV_gmh9w_YQTS_RIWk,328
27
31
  opengeodeweb_viewer/rpc/mesh/cells/schemas/vertex_scalar_range.py,sha256=5Vmf-HctIcH18C3hapDRpA6lpu0MjoomDxLDFC4gGPc,260
28
32
  opengeodeweb_viewer/rpc/mesh/cells/schemas/visibility.json,sha256=MSlbqbHsPOiUZXzSfVrZXtYIMbnBQR4PhRKtrkZHtv8,263
29
33
  opengeodeweb_viewer/rpc/mesh/cells/schemas/visibility.py,sha256=OAC2F5S08RuSte2V1elIU1UwZf-IKiA39eY8yOMqr3I,236
30
- opengeodeweb_viewer/rpc/mesh/edges/mesh_edges_protocols.py,sha256=zPfaPr5SxtMDChVh0WF1K6SHYH5jOmrcF34_mQi4GeQ,2782
31
- opengeodeweb_viewer/rpc/mesh/edges/schemas/__init__.py,sha256=l36Zg3VMDWHmT5F_MPen4mCPPB5UFGkmojuiwnlWPDM,155
34
+ opengeodeweb_viewer/rpc/mesh/edges/mesh_edges_protocols.py,sha256=Hr4ydi1oXjDyN1uVzZEgyByGkR5v83bTMD6BtISPo2Q,3650
35
+ opengeodeweb_viewer/rpc/mesh/edges/schemas/__init__.py,sha256=L0gKtt5kkGJ4J7JP11JQWEgNdkTGOXBSdT8neL_Dijs,197
32
36
  opengeodeweb_viewer/rpc/mesh/edges/schemas/color.json,sha256=tGWsxiaaYsiDmyF7Ed1RTWxqfe63mHAWxSi2SmTUN6Y,818
33
37
  opengeodeweb_viewer/rpc/mesh/edges/schemas/color.py,sha256=RdjSQB-ZKsJHP10roQV0pVt8jvu6trJ20NuZTVrNAIM,444
34
- opengeodeweb_viewer/rpc/mesh/edges/schemas/size.json,sha256=tnHXOHMvdaymp1mfptzecSUadpI_zvvm5IZJQ6oZARQ,245
35
- opengeodeweb_viewer/rpc/mesh/edges/schemas/size.py,sha256=rMuHn079FcRIIcyp6EUMrMEzf6FFL3YgzLs4e8uxn0Q,223
38
+ opengeodeweb_viewer/rpc/mesh/edges/schemas/edge_attribute.json,sha256=1M5h7h-GvBqbbOED9dMh8xixS7_ScoXjj8npsS-FxOs,277
39
+ opengeodeweb_viewer/rpc/mesh/edges/schemas/edge_attribute.py,sha256=8dZQhh6BnPrbBny1BmEC3EBBw3GgAfRBVJnvRajJtuA,232
36
40
  opengeodeweb_viewer/rpc/mesh/edges/schemas/vertex_attribute.json,sha256=0ep_P2-DyUs8E9pnIceArInwyLf-JujiJh1FmsBkpNA,278
37
41
  opengeodeweb_viewer/rpc/mesh/edges/schemas/vertex_attribute.py,sha256=iHcmXyaEiftkiCEMIK3KcUO-Iq3SBjpSy6PEP3Z8e2s,234
42
+ opengeodeweb_viewer/rpc/mesh/edges/schemas/vertex_color_map.json,sha256=7Bm5rLp1sQVQhPutHQM1Ez5aa9TBLXcn9XTb5K-q7JI,459
43
+ opengeodeweb_viewer/rpc/mesh/edges/schemas/vertex_color_map.py,sha256=9Mr3LKLreanSXUjCEAJb1g9JdzZM5tKLJHObQOzEicY,273
38
44
  opengeodeweb_viewer/rpc/mesh/edges/schemas/vertex_scalar_range.json,sha256=TVZcvyhdhR-59m-tLuKsem3KNAV_gmh9w_YQTS_RIWk,328
39
45
  opengeodeweb_viewer/rpc/mesh/edges/schemas/vertex_scalar_range.py,sha256=5Vmf-HctIcH18C3hapDRpA6lpu0MjoomDxLDFC4gGPc,260
40
46
  opengeodeweb_viewer/rpc/mesh/edges/schemas/visibility.json,sha256=MSlbqbHsPOiUZXzSfVrZXtYIMbnBQR4PhRKtrkZHtv8,263
41
47
  opengeodeweb_viewer/rpc/mesh/edges/schemas/visibility.py,sha256=OAC2F5S08RuSte2V1elIU1UwZf-IKiA39eY8yOMqr3I,236
42
- opengeodeweb_viewer/rpc/mesh/edges/schemas/width.json,sha256=-TrnInMPuQFKcCBuL9ihrQQNGyGzX8JgZhT_aiQ8Q2c,246
48
+ opengeodeweb_viewer/rpc/mesh/edges/schemas/width.json,sha256=0RysliQkGh91r1OBkx3cyMQjxvqVOuoYiQeo7BmQMuY,247
43
49
  opengeodeweb_viewer/rpc/mesh/edges/schemas/width.py,sha256=ms0xK5dePaWdf4WiV1Zeqcro00-6yNmNVcP6NTjKkR4,227
44
- opengeodeweb_viewer/rpc/mesh/points/mesh_points_protocols.py,sha256=w7xM_btiu_0zhsD3ALpYabYK4Yya6Br8_d5CA1aPqx8,2808
45
- opengeodeweb_viewer/rpc/mesh/points/schemas/__init__.py,sha256=Ro-y5bba615Bsavd71rOemP16D7QgSysNFcl0oGicIA,134
50
+ opengeodeweb_viewer/rpc/mesh/points/mesh_points_protocols.py,sha256=P15dVhAVKJUtpoTboZOoAcg1TEzO3OMAFdd2sVTCpVs,3246
51
+ opengeodeweb_viewer/rpc/mesh/points/schemas/__init__.py,sha256=pwiz4YpRQKFz_ns39R4gULYscyBLOiC2hFtXfB9nQfw,166
46
52
  opengeodeweb_viewer/rpc/mesh/points/schemas/color.json,sha256=tGWsxiaaYsiDmyF7Ed1RTWxqfe63mHAWxSi2SmTUN6Y,818
47
53
  opengeodeweb_viewer/rpc/mesh/points/schemas/color.py,sha256=RdjSQB-ZKsJHP10roQV0pVt8jvu6trJ20NuZTVrNAIM,444
48
54
  opengeodeweb_viewer/rpc/mesh/points/schemas/size.json,sha256=BCAKwWmwludQp2oGHDgKW45s7FU8Y16Ah2ILPlu2Nos,244
49
55
  opengeodeweb_viewer/rpc/mesh/points/schemas/size.py,sha256=vpBbBqZDaS_keS0cjcQQWFgR7QDpmq2a5lXC3C6abcA,225
50
56
  opengeodeweb_viewer/rpc/mesh/points/schemas/vertex_attribute.json,sha256=0ep_P2-DyUs8E9pnIceArInwyLf-JujiJh1FmsBkpNA,278
51
57
  opengeodeweb_viewer/rpc/mesh/points/schemas/vertex_attribute.py,sha256=iHcmXyaEiftkiCEMIK3KcUO-Iq3SBjpSy6PEP3Z8e2s,234
58
+ opengeodeweb_viewer/rpc/mesh/points/schemas/vertex_color_map.json,sha256=7Bm5rLp1sQVQhPutHQM1Ez5aa9TBLXcn9XTb5K-q7JI,459
59
+ opengeodeweb_viewer/rpc/mesh/points/schemas/vertex_color_map.py,sha256=9Mr3LKLreanSXUjCEAJb1g9JdzZM5tKLJHObQOzEicY,273
52
60
  opengeodeweb_viewer/rpc/mesh/points/schemas/vertex_scalar_range.json,sha256=TVZcvyhdhR-59m-tLuKsem3KNAV_gmh9w_YQTS_RIWk,328
53
61
  opengeodeweb_viewer/rpc/mesh/points/schemas/vertex_scalar_range.py,sha256=5Vmf-HctIcH18C3hapDRpA6lpu0MjoomDxLDFC4gGPc,260
54
62
  opengeodeweb_viewer/rpc/mesh/points/schemas/visibility.json,sha256=MSlbqbHsPOiUZXzSfVrZXtYIMbnBQR4PhRKtrkZHtv8,263
55
63
  opengeodeweb_viewer/rpc/mesh/points/schemas/visibility.py,sha256=OAC2F5S08RuSte2V1elIU1UwZf-IKiA39eY8yOMqr3I,236
56
- opengeodeweb_viewer/rpc/mesh/polygons/polygons_protocols.py,sha256=jVScHAhXEoXjSZiJfeeBKWF5bg8yRJdWiCcbkGhmF6o,3492
57
- opengeodeweb_viewer/rpc/mesh/polygons/schemas/__init__.py,sha256=43hLmfw1vY05tcwILF53ePUVr2Szfbqd8aRVQBOAHU4,183
64
+ opengeodeweb_viewer/rpc/mesh/polygons/polygons_protocols.py,sha256=wovswSv57Cb6fh7dUBjTjvMst1YfANX-OZesIrKXiR4,4420
65
+ opengeodeweb_viewer/rpc/mesh/polygons/schemas/__init__.py,sha256=lEpwcvFKoOOOPNQBF_LcGBpVsPUGBhnEUJWVutCLrzY,248
58
66
  opengeodeweb_viewer/rpc/mesh/polygons/schemas/color.json,sha256=tGWsxiaaYsiDmyF7Ed1RTWxqfe63mHAWxSi2SmTUN6Y,818
59
67
  opengeodeweb_viewer/rpc/mesh/polygons/schemas/color.py,sha256=RdjSQB-ZKsJHP10roQV0pVt8jvu6trJ20NuZTVrNAIM,444
60
68
  opengeodeweb_viewer/rpc/mesh/polygons/schemas/polygon_attribute.json,sha256=zK3BPn496ldXZWbK6NP1UQsBzE-OQ9TuVBpubC1Vje8,279
61
69
  opengeodeweb_viewer/rpc/mesh/polygons/schemas/polygon_attribute.py,sha256=ZEGzCZRugt6TcyrB3iVMKaRyotc7CipjbzpGPmhXFJU,235
70
+ opengeodeweb_viewer/rpc/mesh/polygons/schemas/polygon_color_map.json,sha256=7Bm5rLp1sQVQhPutHQM1Ez5aa9TBLXcn9XTb5K-q7JI,459
71
+ opengeodeweb_viewer/rpc/mesh/polygons/schemas/polygon_color_map.py,sha256=1rz3v39tAAD6dAuAnd4-sRjib1K6E1GNauxT2Aksl1k,274
62
72
  opengeodeweb_viewer/rpc/mesh/polygons/schemas/polygon_scalar_range.json,sha256=vJ8yv0mTbH-IRYy4Q4PB2pXCZn0E-K_QpKjO3kJVgHU,329
63
73
  opengeodeweb_viewer/rpc/mesh/polygons/schemas/polygon_scalar_range.py,sha256=s37Z6boLeYwb1TA5Jn4STbdHnbuAzQwvO1vgtFvh3gk,261
64
74
  opengeodeweb_viewer/rpc/mesh/polygons/schemas/vertex_attribute.json,sha256=0ep_P2-DyUs8E9pnIceArInwyLf-JujiJh1FmsBkpNA,278
65
75
  opengeodeweb_viewer/rpc/mesh/polygons/schemas/vertex_attribute.py,sha256=iHcmXyaEiftkiCEMIK3KcUO-Iq3SBjpSy6PEP3Z8e2s,234
76
+ opengeodeweb_viewer/rpc/mesh/polygons/schemas/vertex_color_map.json,sha256=7Bm5rLp1sQVQhPutHQM1Ez5aa9TBLXcn9XTb5K-q7JI,459
77
+ opengeodeweb_viewer/rpc/mesh/polygons/schemas/vertex_color_map.py,sha256=9Mr3LKLreanSXUjCEAJb1g9JdzZM5tKLJHObQOzEicY,273
66
78
  opengeodeweb_viewer/rpc/mesh/polygons/schemas/vertex_scalar_range.json,sha256=TVZcvyhdhR-59m-tLuKsem3KNAV_gmh9w_YQTS_RIWk,328
67
79
  opengeodeweb_viewer/rpc/mesh/polygons/schemas/vertex_scalar_range.py,sha256=5Vmf-HctIcH18C3hapDRpA6lpu0MjoomDxLDFC4gGPc,260
68
80
  opengeodeweb_viewer/rpc/mesh/polygons/schemas/visibility.json,sha256=MSlbqbHsPOiUZXzSfVrZXtYIMbnBQR4PhRKtrkZHtv8,263
69
81
  opengeodeweb_viewer/rpc/mesh/polygons/schemas/visibility.py,sha256=OAC2F5S08RuSte2V1elIU1UwZf-IKiA39eY8yOMqr3I,236
70
- opengeodeweb_viewer/rpc/mesh/polyhedra/polyhedra_protocols.py,sha256=oS4cwj4sL0NEtVcDfTvQzVkHMErP9-5kjwOW2B0u2ko,3574
71
- opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/__init__.py,sha256=18-sKwCaalHA7SdqC7qysMkAFPZ2ymL01WGvMXSB2bc,189
82
+ opengeodeweb_viewer/rpc/mesh/polyhedra/polyhedra_protocols.py,sha256=8Y9-QjzbD3jAPR6sU7wIHdPgxdbkdaMhq55hvBBKeXI,4528
83
+ opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/__init__.py,sha256=qJXXGLHWi1ZcmgbkjlLNHgx-i5yfT1PDXH4EFUamtm8,256
72
84
  opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/color.json,sha256=tGWsxiaaYsiDmyF7Ed1RTWxqfe63mHAWxSi2SmTUN6Y,818
73
85
  opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/color.py,sha256=RdjSQB-ZKsJHP10roQV0pVt8jvu6trJ20NuZTVrNAIM,444
86
+ opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/polyhedra_color_map.json,sha256=7Bm5rLp1sQVQhPutHQM1Ez5aa9TBLXcn9XTb5K-q7JI,459
87
+ opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/polyhedra_color_map.py,sha256=M7KJIkKFy9N5gKNpg1WAl19vFh2eI2qRxXNlms3v4Pw,276
74
88
  opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/polyhedron_attribute.json,sha256=skILAhL5uGjvxB0ccUyyvh45ohnX4Tj0Y9xt2P-YTQ4,282
75
89
  opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/polyhedron_attribute.py,sha256=bqypKCNzPcM-ZyxEQdqv4_fUh_ZXCXx8fvIHMR0deH8,238
76
90
  opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/polyhedron_scalar_range.json,sha256=nXgkeuqVeiygfLEdFBwz6nTYqvg_rTlaLz0xFqSXMNg,332
77
91
  opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/polyhedron_scalar_range.py,sha256=ycqsPO0PnBT-Qm25Gpz5R_v8dLmZKoc4PszUC_3Z61g,264
78
92
  opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/vertex_attribute.json,sha256=0ep_P2-DyUs8E9pnIceArInwyLf-JujiJh1FmsBkpNA,278
79
93
  opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/vertex_attribute.py,sha256=iHcmXyaEiftkiCEMIK3KcUO-Iq3SBjpSy6PEP3Z8e2s,234
94
+ opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/vertex_color_map.json,sha256=7Bm5rLp1sQVQhPutHQM1Ez5aa9TBLXcn9XTb5K-q7JI,459
95
+ opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/vertex_color_map.py,sha256=9Mr3LKLreanSXUjCEAJb1g9JdzZM5tKLJHObQOzEicY,273
80
96
  opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/vertex_scalar_range.json,sha256=TVZcvyhdhR-59m-tLuKsem3KNAV_gmh9w_YQTS_RIWk,328
81
97
  opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/vertex_scalar_range.py,sha256=5Vmf-HctIcH18C3hapDRpA6lpu0MjoomDxLDFC4gGPc,260
82
98
  opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/visibility.json,sha256=MSlbqbHsPOiUZXzSfVrZXtYIMbnBQR4PhRKtrkZHtv8,263
@@ -143,7 +159,7 @@ opengeodeweb_viewer/rpc/schemas/import_project.json,sha256=c6v1iXiGQYfHQXA9qWEe6
143
159
  opengeodeweb_viewer/rpc/schemas/import_project.py,sha256=bjK9KdlkpC8kQFN6Ni8i9OIp9z8hE-mhPT0czTxyedo,215
144
160
  opengeodeweb_viewer/rpc/schemas/kill.json,sha256=RRvuOM7424eFBwdd_0gG51zHpUMKnMmLHzIhw6PoUcs,110
145
161
  opengeodeweb_viewer/rpc/schemas/kill.py,sha256=DbQyF57NJ4BsOo7UbKzKwm5rERkphIAh28QVt2DJcA8,206
146
- opengeodeweb_viewer/rpc/viewer/viewer_protocols.py,sha256=ry0ui0eX_sFLU-aRwyD5rnBCn96yk4X-nl9Pg6fcjok,12187
162
+ opengeodeweb_viewer/rpc/viewer/viewer_protocols.py,sha256=LooKx__gN-0C5jRNv8cKWpb2LIqgxdmVthhF6qb6NHo,11905
147
163
  opengeodeweb_viewer/rpc/viewer/schemas/__init__.py,sha256=ej0Q9XCiNjhF1segnn-YlhQV1HzWayoeBzo7OOZ2kvY,343
148
164
  opengeodeweb_viewer/rpc/viewer/schemas/axes.json,sha256=-HC7kogMCpqKr1YS53fxzhEn3CKkKFd6EsVDv4BCthw,183
149
165
  opengeodeweb_viewer/rpc/viewer/schemas/axes.py,sha256=A3UCe6nBvIox41mlXokjPgskxD2_p6AZIoVk47xUf7s,218
@@ -169,9 +185,9 @@ opengeodeweb_viewer/rpc/viewer/schemas/update_camera.json,sha256=OtovtEwLvR4L63y
169
185
  opengeodeweb_viewer/rpc/viewer/schemas/update_camera.py,sha256=noEZ3V2AysEn5NFXBFLwKE0I4sb0KB5fnP9KaJL1hms,521
170
186
  opengeodeweb_viewer/rpc/viewer/schemas/update_data.json,sha256=h1T_aNWZFaJ-LTXyqjTK4MLbFJgt9vH23CHY1Gr55f4,195
171
187
  opengeodeweb_viewer/rpc/viewer/schemas/update_data.py,sha256=E-S4ZP_6nYhlFitKp2ynvztDcmeL5zqoAZD96WyvIhw,215
172
- opengeodeweb_viewer-1.14.0rc1.dist-info/licenses/LICENSE,sha256=LoTB-aqQvzTGxoTRXNnhNV0LKiqdk2bQv6MB34l8zkI,1079
173
- opengeodeweb_viewer-1.14.0rc1.dist-info/METADATA,sha256=GWzZAugRf7d10SWpEIisaB1P2xItNDPIqU0SKjsRhdI,1503
174
- opengeodeweb_viewer-1.14.0rc1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
175
- opengeodeweb_viewer-1.14.0rc1.dist-info/entry_points.txt,sha256=j4uMjTs3z5mwZYxNRBtnmuQV5mDH9XUFHfVTDMEciG0,83
176
- opengeodeweb_viewer-1.14.0rc1.dist-info/top_level.txt,sha256=wTvrUNOJeR3p9tJ68l0AzSUSWPwA2mCeCZHYBafdoP8,20
177
- opengeodeweb_viewer-1.14.0rc1.dist-info/RECORD,,
188
+ opengeodeweb_viewer-1.15.0.dist-info/licenses/LICENSE,sha256=LoTB-aqQvzTGxoTRXNnhNV0LKiqdk2bQv6MB34l8zkI,1079
189
+ opengeodeweb_viewer-1.15.0.dist-info/METADATA,sha256=JgsXO5w0xy4Ki0BXUNdqk5aDyscTbGTcpkf7W8a6EMU,1503
190
+ opengeodeweb_viewer-1.15.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
191
+ opengeodeweb_viewer-1.15.0.dist-info/entry_points.txt,sha256=j4uMjTs3z5mwZYxNRBtnmuQV5mDH9XUFHfVTDMEciG0,83
192
+ opengeodeweb_viewer-1.15.0.dist-info/top_level.txt,sha256=wTvrUNOJeR3p9tJ68l0AzSUSWPwA2mCeCZHYBafdoP8,20
193
+ opengeodeweb_viewer-1.15.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.9.0)
2
+ Generator: setuptools (80.10.2)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5