@geode/opengeodeweb-front 10.2.1 → 10.3.0

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 (83) hide show
  1. package/.github/workflows/manual_release.yml +11 -0
  2. package/app/components/Step.vue +2 -2
  3. package/app/components/Viewer/EdgedCurve/SpecificEdgesOptions.vue +63 -19
  4. package/app/components/Viewer/Generic/Mesh/CellsOptions.vue +65 -18
  5. package/app/components/Viewer/Generic/Mesh/EdgesOptions.vue +8 -15
  6. package/app/components/Viewer/Generic/Mesh/PointsOptions.vue +8 -9
  7. package/app/components/Viewer/Generic/Mesh/PolygonsOptions.vue +8 -8
  8. package/app/components/Viewer/Generic/Mesh/PolyhedraOptions.vue +6 -6
  9. package/app/components/Viewer/Generic/Model/EdgesOptions.vue +2 -2
  10. package/app/components/Viewer/Generic/Model/PointsOptions.vue +4 -4
  11. package/app/components/Viewer/Options/AttributeColorBar.vue +58 -0
  12. package/app/components/Viewer/Options/CellAttributeSelector.vue +51 -19
  13. package/app/components/Viewer/Options/ColorMapList.vue +216 -0
  14. package/app/components/Viewer/Options/ColorMapPicker.vue +168 -0
  15. package/app/components/Viewer/Options/ColoringTypeSelector.vue +46 -24
  16. package/app/components/Viewer/Options/EdgeAttributeSelector.vue +53 -41
  17. package/app/components/Viewer/Options/PolygonAttributeSelector.vue +52 -19
  18. package/app/components/Viewer/Options/PolyhedronAttributeSelector.vue +57 -20
  19. package/app/components/Viewer/Options/VertexAttributeSelector.vue +47 -15
  20. package/app/components/Viewer/PointSet/SpecificPointsOptions.vue +38 -14
  21. package/app/components/Viewer/PolygonalSurface/SpecificPolygonsOptions.vue +74 -18
  22. package/app/components/Viewer/Solid/SpecificPolyhedraOptions.vue +75 -17
  23. package/app/components/Viewer/TreeComponent.vue +26 -76
  24. package/app/stores/data_style.js +3 -3
  25. package/app/utils/colormap.js +5 -0
  26. package/app/utils/default_styles.js +36 -9
  27. package/internal/stores/data_style/mesh/cells/cell.js +153 -0
  28. package/internal/stores/data_style/mesh/cells/color.js +40 -0
  29. package/internal/stores/data_style/mesh/cells/common.js +23 -0
  30. package/internal/stores/data_style/mesh/cells/index.js +84 -0
  31. package/internal/stores/data_style/mesh/cells/textures.js +36 -0
  32. package/internal/stores/data_style/mesh/cells/vertex.js +153 -0
  33. package/internal/stores/data_style/mesh/cells/visibility.js +40 -0
  34. package/internal/stores/data_style/mesh/edges/color.js +40 -0
  35. package/internal/stores/data_style/mesh/edges/common.js +23 -0
  36. package/internal/stores/data_style/mesh/edges/edge.js +141 -0
  37. package/internal/stores/data_style/mesh/edges/index.js +88 -0
  38. package/internal/stores/data_style/mesh/edges/vertex.js +153 -0
  39. package/internal/stores/data_style/mesh/edges/visibility.js +40 -0
  40. package/internal/stores/data_style/mesh/edges/width.js +40 -0
  41. package/internal/stores/{mesh → data_style/mesh}/index.js +25 -23
  42. package/internal/stores/data_style/mesh/points/color.js +40 -0
  43. package/internal/stores/data_style/mesh/points/common.js +23 -0
  44. package/internal/stores/data_style/mesh/points/index.js +89 -0
  45. package/internal/stores/data_style/mesh/points/size.js +40 -0
  46. package/internal/stores/data_style/mesh/points/vertex.js +153 -0
  47. package/internal/stores/data_style/mesh/points/visibility.js +40 -0
  48. package/internal/stores/data_style/mesh/polygons/color.js +40 -0
  49. package/internal/stores/data_style/mesh/polygons/common.js +23 -0
  50. package/internal/stores/data_style/mesh/polygons/index.js +89 -0
  51. package/internal/stores/data_style/mesh/polygons/polygon.js +145 -0
  52. package/internal/stores/data_style/mesh/polygons/textures.js +40 -0
  53. package/internal/stores/data_style/mesh/polygons/vertex.js +153 -0
  54. package/internal/stores/data_style/mesh/polygons/visibility.js +40 -0
  55. package/internal/stores/data_style/mesh/polyhedra/color.js +40 -0
  56. package/internal/stores/data_style/mesh/polyhedra/common.js +23 -0
  57. package/internal/stores/data_style/mesh/polyhedra/index.js +83 -0
  58. package/internal/stores/data_style/mesh/polyhedra/polyhedron.js +139 -0
  59. package/internal/stores/data_style/mesh/polyhedra/vertex.js +153 -0
  60. package/internal/stores/data_style/mesh/polyhedra/visibility.js +41 -0
  61. package/internal/stores/{model → data_style/model}/blocks.js +1 -1
  62. package/internal/stores/{model → data_style/model}/corners.js +1 -1
  63. package/internal/stores/{model → data_style/model}/edges.js +1 -1
  64. package/internal/stores/{model → data_style/model}/index.js +3 -3
  65. package/internal/stores/{model → data_style/model}/lines.js +1 -1
  66. package/internal/stores/{model → data_style/model}/points.js +1 -1
  67. package/internal/stores/{model → data_style/model}/surfaces.js +1 -1
  68. package/internal/stores/{data_style_state.js → data_style/state.js} +6 -3
  69. package/package.json +1 -1
  70. package/tests/integration/microservices/back/requirements.txt +1 -1
  71. package/tests/integration/microservices/viewer/requirements.txt +1 -1
  72. package/tests/integration/stores/data_style/mesh/cells.nuxt.test.js +18 -18
  73. package/tests/integration/stores/data_style/mesh/edges.nuxt.test.js +22 -16
  74. package/tests/integration/stores/data_style/mesh/index.nuxt.test.js +1 -1
  75. package/tests/integration/stores/data_style/mesh/points.nuxt.test.js +14 -12
  76. package/tests/integration/stores/data_style/mesh/polygons.nuxt.test.js +16 -19
  77. package/tests/integration/stores/data_style/mesh/polyhedra.nuxt.test.js +16 -19
  78. package/tests/vitest.config.js +3 -0
  79. package/internal/stores/mesh/cells.js +0 -175
  80. package/internal/stores/mesh/edges.js +0 -171
  81. package/internal/stores/mesh/points.js +0 -142
  82. package/internal/stores/mesh/polygons.js +0 -181
  83. package/internal/stores/mesh/polyhedra.js +0 -151
@@ -0,0 +1,11 @@
1
+ name: Manual release
2
+
3
+ on:
4
+ workflow_dispatch:
5
+
6
+ jobs:
7
+ release:
8
+ uses: Geode-solutions/actions/.github/workflows/trigger-release.yml@master
9
+ with:
10
+ branch: next
11
+ secrets: inherit
@@ -56,7 +56,7 @@
56
56
  color="transparent"
57
57
  class="d-flex flex-column justify-center ps-2"
58
58
  >
59
- <v-text
59
+ <p
60
60
  tag="h3"
61
61
  class="text-subtitle-1 font-weight-bold mb-0 transition-swing"
62
62
  :class="
@@ -66,7 +66,7 @@
66
66
  "
67
67
  >
68
68
  {{ steps[step_index].step_title }}
69
- </v-text>
69
+ </p>
70
70
 
71
71
  <v-sheet
72
72
  v-if="sortedChips.length && current_step_index >= step_index"
@@ -18,48 +18,88 @@
18
18
 
19
19
  const visibility = computed({
20
20
  get: () => dataStyleStore.meshEdgesVisibility(id.value),
21
- set: (newValue) => {
22
- dataStyleStore.setMeshEdgesVisibility(id.value, newValue)
21
+ set: async (newValue) => {
22
+ await dataStyleStore.setMeshEdgesVisibility(id.value, newValue)
23
23
  hybridViewerStore.remoteRender()
24
24
  },
25
25
  })
26
26
  const size = computed({
27
27
  get: () => dataStyleStore.meshEdgesWidth(id.value),
28
- set: (newValue) => {
29
- dataStyleStore.setMeshEdgesWidth(id.value, newValue)
28
+ set: async (newValue) => {
29
+ await dataStyleStore.setMeshEdgesWidth(id.value, newValue)
30
30
  hybridViewerStore.remoteRender()
31
31
  },
32
32
  })
33
33
  const coloring_style_key = computed({
34
34
  get: () => dataStyleStore.meshEdgesActiveColoring(id.value),
35
- set: (newValue) => {
36
- dataStyleStore.setMeshEdgesActiveColoring(id.value, newValue)
35
+ set: async (newValue) => {
36
+ await dataStyleStore.setMeshEdgesActiveColoring(id.value, newValue)
37
37
  hybridViewerStore.remoteRender()
38
38
  },
39
39
  })
40
40
  const color = computed({
41
41
  get: () => dataStyleStore.meshEdgesColor(id.value),
42
- set: (newValue) => {
43
- dataStyleStore.setMeshEdgesColor(id.value, newValue)
42
+ set: async (newValue) => {
43
+ await dataStyleStore.setMeshEdgesColor(id.value, newValue)
44
44
  hybridViewerStore.remoteRender()
45
45
  },
46
46
  })
47
- const vertex_attribute = computed({
48
- get: () => dataStyleStore.meshEdgesVertexAttribute(id.value),
49
- set: (newValue) => {
50
- dataStyleStore.setMeshEdgesVertexAttribute(id.value, newValue)
47
+ const vertex_attribute_name = computed({
48
+ get: () => dataStyleStore.meshEdgesVertexAttributeName(id.value),
49
+ set: async (newValue) => {
50
+ await dataStyleStore.setMeshEdgesVertexAttributeName(id.value, newValue)
51
+ await dataStyleStore.updateMeshEdgesVertexAttribute(id.value)
51
52
  hybridViewerStore.remoteRender()
52
53
  },
53
54
  })
54
- const edge_attribute = computed({
55
- get: () => dataStyleStore.meshEdgesEdgeAttribute(id.value),
56
- set: (newValue) => {
57
- dataStyleStore.setMeshEdgesEdgeAttribute(id.value, newValue)
55
+ const vertex_attribute_range = computed({
56
+ get: () => dataStyleStore.meshEdgesVertexAttributeRange(id.value),
57
+ set: async (newValue) => {
58
+ await dataStyleStore.setMeshEdgesVertexAttributeRange(
59
+ id.value,
60
+ newValue[0],
61
+ newValue[1],
62
+ )
63
+ await dataStyleStore.updateMeshEdgesVertexAttribute(id.value)
64
+ hybridViewerStore.remoteRender()
65
+ },
66
+ })
67
+ const vertex_attribute_color_map = computed({
68
+ get: () => dataStyleStore.meshEdgesVertexAttributeColorMap(id.value),
69
+ set: async (newValue) => {
70
+ await dataStyleStore.setMeshEdgesVertexAttributeColorMap(
71
+ id.value,
72
+ newValue,
73
+ )
74
+ hybridViewerStore.remoteRender()
75
+ },
76
+ })
77
+ const edge_attribute_name = computed({
78
+ get: () => dataStyleStore.meshEdgesEdgeAttributeName(id.value),
79
+ set: async (newValue) => {
80
+ await dataStyleStore.setMeshEdgesEdgeAttributeName(id.value, newValue)
81
+ hybridViewerStore.remoteRender()
82
+ },
83
+ })
84
+ const edge_attribute_range = computed({
85
+ get: () => dataStyleStore.meshEdgesEdgeAttributeRange(id.value),
86
+ set: async (newValue) => {
87
+ await dataStyleStore.setMeshEdgesEdgeAttributeRange(
88
+ id.value,
89
+ newValue[0],
90
+ newValue[1],
91
+ )
92
+ hybridViewerStore.remoteRender()
93
+ },
94
+ })
95
+ const edge_attribute_color_map = computed({
96
+ get: () => dataStyleStore.meshEdgesEdgeAttributeColorMap(id.value),
97
+ set: async (newValue) => {
98
+ await dataStyleStore.setMeshEdgesEdgeAttributeColorMap(id.value, newValue)
58
99
  hybridViewerStore.remoteRender()
59
100
  },
60
101
  })
61
102
  </script>
62
-
63
103
  <template>
64
104
  <ViewerContextMenuItem
65
105
  :itemProps="props.itemProps"
@@ -92,8 +132,12 @@
92
132
  :id="id"
93
133
  v-model:coloring_style_key="coloring_style_key"
94
134
  v-model:color="color"
95
- v-model:vertex_attribute="vertex_attribute"
96
- v-model:edge_attribute="edge_attribute"
135
+ v-model:vertex_attribute_name="vertex_attribute_name"
136
+ v-model:vertex_attribute_range="vertex_attribute_range"
137
+ v-model:vertex_attribute_color_map="vertex_attribute_color_map"
138
+ v-model:edge_attribute_name="edge_attribute_name"
139
+ v-model:edge_attribute_range="edge_attribute_range"
140
+ v-model:edge_attribute_color_map="edge_attribute_color_map"
97
141
  />
98
142
  </v-col>
99
143
  </v-row>
@@ -19,43 +19,86 @@
19
19
 
20
20
  const visibility = computed({
21
21
  get: () => dataStyleStore.meshCellsVisibility(id.value),
22
- set: (newValue) => {
23
- dataStyleStore.setMeshCellsVisibility(id.value, newValue)
22
+ set: async (newValue) => {
23
+ await dataStyleStore.setMeshCellsVisibility(id.value, newValue)
24
24
  hybridViewerStore.remoteRender()
25
25
  },
26
26
  })
27
27
  const coloring_style_key = computed({
28
28
  get: () => dataStyleStore.meshCellsActiveColoring(id.value),
29
- set: (newValue) => {
30
- dataStyleStore.setMeshCellsActiveColoring(id.value, newValue)
29
+ set: async (newValue) => {
30
+ await dataStyleStore.setMeshCellsActiveColoring(id.value, newValue)
31
31
  hybridViewerStore.remoteRender()
32
32
  },
33
33
  })
34
34
  const color = computed({
35
35
  get: () => dataStyleStore.meshCellsColor(id.value),
36
- set: (newValue) => {
37
- dataStyleStore.setMeshCellsColor(id.value, newValue)
36
+ set: async (newValue) => {
37
+ await dataStyleStore.setMeshCellsColor(id.value, newValue)
38
38
  hybridViewerStore.remoteRender()
39
39
  },
40
40
  })
41
41
  const textures = computed({
42
42
  get: () => dataStyleStore.meshCellsTextures(id.value),
43
- set: (newValue) => {
44
- dataStyleStore.setMeshCellsTextures(id.value, newValue)
43
+ set: async (newValue) => {
44
+ await dataStyleStore.setMeshCellsTextures(id.value, newValue)
45
45
  hybridViewerStore.remoteRender()
46
46
  },
47
47
  })
48
- const vertex_attribute = computed({
49
- get: () => dataStyleStore.meshCellsVertexAttribute(id.value),
50
- set: (newValue) => {
51
- dataStyleStore.setMeshCellsVertexAttribute(id.value, newValue)
48
+ const vertex_attribute_name = computed({
49
+ get: () => dataStyleStore.meshCellsVertexAttributeName(id.value),
50
+ set: async (newValue) => {
51
+ await dataStyleStore.setMeshCellsVertexAttributeName(id.value, newValue)
52
+ await dataStyleStore.updateMeshCellsVertexAttribute(id.value)
52
53
  hybridViewerStore.remoteRender()
53
54
  },
54
55
  })
55
- const cell_attribute = computed({
56
- get: () => dataStyleStore.meshCellsCellAttribute(id.value),
57
- set: (newValue) => {
58
- dataStyleStore.setMeshCellsCellAttribute(id.value, newValue)
56
+ const vertex_attribute_range = computed({
57
+ get: () => dataStyleStore.meshCellsVertexAttributeRange(id.value),
58
+ set: async (newValue) => {
59
+ await dataStyleStore.setMeshCellsVertexAttributeRange(
60
+ id.value,
61
+ newValue[0],
62
+ newValue[1],
63
+ )
64
+ await dataStyleStore.updateMeshCellsVertexAttribute(id.value)
65
+ hybridViewerStore.remoteRender()
66
+ },
67
+ })
68
+ const vertex_attribute_color_map = computed({
69
+ get: () => dataStyleStore.meshCellsVertexAttributeColorMap(id.value),
70
+ set: async (newValue) => {
71
+ await dataStyleStore.setMeshCellsVertexAttributeColorMap(
72
+ id.value,
73
+ newValue,
74
+ )
75
+ hybridViewerStore.remoteRender()
76
+ },
77
+ })
78
+ const cell_attribute_name = computed({
79
+ get: () => dataStyleStore.meshCellsCellAttributeName(id.value),
80
+ set: async (newValue) => {
81
+ await dataStyleStore.setMeshCellsCellAttributeName(id.value, newValue)
82
+ await dataStyleStore.updateMeshCellsCellAttribute(id.value)
83
+ hybridViewerStore.remoteRender()
84
+ },
85
+ })
86
+ const cell_attribute_range = computed({
87
+ get: () => dataStyleStore.meshCellsCellAttributeRange(id.value),
88
+ set: async (newValue) => {
89
+ await dataStyleStore.setMeshCellsCellAttributeRange(
90
+ id.value,
91
+ newValue[0],
92
+ newValue[1],
93
+ )
94
+ await dataStyleStore.updateMeshCellsCellAttribute(id.value)
95
+ hybridViewerStore.remoteRender()
96
+ },
97
+ })
98
+ const cell_attribute_color_map = computed({
99
+ get: () => dataStyleStore.meshCellsCellAttributeColorMap(id.value),
100
+ set: async (newValue) => {
101
+ await dataStyleStore.setMeshCellsCellAttributeColorMap(id.value, newValue)
59
102
  hybridViewerStore.remoteRender()
60
103
  },
61
104
  })
@@ -75,8 +118,12 @@
75
118
  v-model:coloring_style_key="coloring_style_key"
76
119
  v-model:color="color"
77
120
  v-model:textures="textures"
78
- v-model:vertex_attribute="vertex_attribute"
79
- v-model:cell_attribute="cell_attribute"
121
+ v-model:vertex_attribute_name="vertex_attribute_name"
122
+ v-model:vertex_attribute_range="vertex_attribute_range"
123
+ v-model:vertex_attribute_color_map="vertex_attribute_color_map"
124
+ v-model:cell_attribute_name="cell_attribute_name"
125
+ v-model:cell_attribute_range="cell_attribute_range"
126
+ v-model:cell_attribute_color_map="cell_attribute_color_map"
80
127
  />
81
128
  </template>
82
129
  </template>
@@ -18,36 +18,29 @@
18
18
 
19
19
  const visibility = computed({
20
20
  get: () => dataStyleStore.meshEdgesVisibility(id.value),
21
- set: (newValue) => {
22
- dataStyleStore.setMeshEdgesVisibility(id.value, newValue)
21
+ set: async (newValue) => {
22
+ await dataStyleStore.setMeshEdgesVisibility(id.value, newValue)
23
23
  hybridViewerStore.remoteRender()
24
24
  },
25
25
  })
26
26
  const size = computed({
27
27
  get: () => dataStyleStore.meshEdgesWidth(id.value),
28
- set: (newValue) => {
29
- dataStyleStore.setMeshEdgesWidth(id.value, newValue)
28
+ set: async (newValue) => {
29
+ await dataStyleStore.setMeshEdgesWidth(id.value, newValue)
30
30
  hybridViewerStore.remoteRender()
31
31
  },
32
32
  })
33
33
  const coloring_style_key = computed({
34
34
  get: () => dataStyleStore.meshEdgesActiveColoring(id.value),
35
- set: (newValue) => {
36
- dataStyleStore.setMeshEdgesActiveColoring(id.value, newValue)
35
+ set: async (newValue) => {
36
+ await dataStyleStore.setMeshEdgesActiveColoring(id.value, newValue)
37
37
  hybridViewerStore.remoteRender()
38
38
  },
39
39
  })
40
40
  const color = computed({
41
41
  get: () => dataStyleStore.meshEdgesColor(id.value),
42
- set: (newValue) => {
43
- dataStyleStore.setMeshEdgesColor(id.value, newValue)
44
- hybridViewerStore.remoteRender()
45
- },
46
- })
47
- const vertex_attribute = computed({
48
- get: () => dataStyleStore.meshEdgesVertexAttribute(id.value),
49
- set: (newValue) => {
50
- dataStyleStore.setMeshEdgesVertexAttribute(id.value, newValue)
42
+ set: async (newValue) => {
43
+ await dataStyleStore.setMeshEdgesColor(id.value, newValue)
51
44
  hybridViewerStore.remoteRender()
52
45
  },
53
46
  })
@@ -18,29 +18,29 @@
18
18
 
19
19
  const visibility = computed({
20
20
  get: () => dataStyleStore.meshPointsVisibility(id.value),
21
- set: (newValue) => {
22
- dataStyleStore.setMeshPointsVisibility(id.value, newValue)
21
+ set: async (newValue) => {
22
+ await dataStyleStore.setMeshPointsVisibility(id.value, newValue)
23
23
  hybridViewerStore.remoteRender()
24
24
  },
25
25
  })
26
26
  const size = computed({
27
27
  get: () => dataStyleStore.meshPointsSize(id.value),
28
- set: (newValue) => {
29
- dataStyleStore.setMeshPointsSize(id.value, newValue)
28
+ set: async (newValue) => {
29
+ await dataStyleStore.setMeshPointsSize(id.value, newValue)
30
30
  hybridViewerStore.remoteRender()
31
31
  },
32
32
  })
33
33
  const coloring_style_key = computed({
34
34
  get: () => dataStyleStore.meshPointsActiveColoring(id.value),
35
- set: (newValue) => {
36
- dataStyleStore.setMeshPointsActiveColoring(id.value, newValue)
35
+ set: async (newValue) => {
36
+ await dataStyleStore.setMeshPointsActiveColoring(id.value, newValue)
37
37
  hybridViewerStore.remoteRender()
38
38
  },
39
39
  })
40
40
  const color = computed({
41
41
  get: () => dataStyleStore.meshPointsColor(id.value),
42
- set: (newValue) => {
43
- dataStyleStore.setMeshPointsColor(id.value, newValue)
42
+ set: async (newValue) => {
43
+ await dataStyleStore.setMeshPointsColor(id.value, newValue)
44
44
  hybridViewerStore.remoteRender()
45
45
  },
46
46
  })
@@ -78,7 +78,6 @@
78
78
  :id="id"
79
79
  v-model:coloring_style_key="coloring_style_key"
80
80
  v-model:color="color"
81
- v-model:vertex_attribute="vertex_attribute"
82
81
  />
83
82
  </v-col>
84
83
  </v-row>
@@ -20,29 +20,29 @@
20
20
 
21
21
  const visibility = computed({
22
22
  get: () => dataStyleStore.meshPolygonsVisibility(id.value),
23
- set: (newValue) => {
24
- dataStyleStore.setMeshPolygonsVisibility(id.value, newValue)
23
+ set: async (newValue) => {
24
+ await dataStyleStore.setMeshPolygonsVisibility(id.value, newValue)
25
25
  hybridViewerStore.remoteRender()
26
26
  },
27
27
  })
28
28
  const coloring_style_key = computed({
29
29
  get: () => dataStyleStore.meshPolygonsActiveColoring(id.value),
30
- set: (newValue) => {
31
- dataStyleStore.setMeshPolygonsActiveColoring(id.value, newValue)
30
+ set: async (newValue) => {
31
+ await dataStyleStore.setMeshPolygonsActiveColoring(id.value, newValue)
32
32
  hybridViewerStore.remoteRender()
33
33
  },
34
34
  })
35
35
  const color = computed({
36
36
  get: () => dataStyleStore.meshPolygonsColor(id.value),
37
- set: (newValue) => {
38
- dataStyleStore.setMeshPolygonsColor(id.value, newValue)
37
+ set: async (newValue) => {
38
+ await dataStyleStore.setMeshPolygonsColor(id.value, newValue)
39
39
  hybridViewerStore.remoteRender()
40
40
  },
41
41
  })
42
42
  const textures = computed({
43
43
  get: () => dataStyleStore.meshPolygonsTextures(id.value),
44
- set: (newValue) => {
45
- dataStyleStore.setMeshPolygonsTextures(id.value, newValue)
44
+ set: async (newValue) => {
45
+ await dataStyleStore.setMeshPolygonsTextures(id.value, newValue)
46
46
  hybridViewerStore.remoteRender()
47
47
  },
48
48
  })
@@ -19,22 +19,22 @@
19
19
 
20
20
  const visibility = computed({
21
21
  get: () => dataStyleStore.meshPolyhedraVisibility(id.value),
22
- set: (newValue) => {
23
- dataStyleStore.setMeshPolyhedraVisibility(id.value, newValue)
22
+ set: async (newValue) => {
23
+ await dataStyleStore.setMeshPolyhedraVisibility(id.value, newValue)
24
24
  hybridViewerStore.remoteRender()
25
25
  },
26
26
  })
27
27
  const coloring_style_key = computed({
28
28
  get: () => dataStyleStore.meshPolyhedraActiveColoring(id.value),
29
- set: (newValue) => {
30
- dataStyleStore.setMeshPolyhedraActiveColoring(id.value, newValue)
29
+ set: async (newValue) => {
30
+ await dataStyleStore.setMeshPolyhedraActiveColoring(id.value, newValue)
31
31
  hybridViewerStore.remoteRender()
32
32
  },
33
33
  })
34
34
  const color = computed({
35
35
  get: () => dataStyleStore.meshPolyhedraColor(id.value),
36
- set: (newValue) => {
37
- dataStyleStore.setMeshPolyhedraColor(id.value, newValue)
36
+ set: async (newValue) => {
37
+ await dataStyleStore.setMeshPolyhedraColor(id.value, newValue)
38
38
  hybridViewerStore.remoteRender()
39
39
  },
40
40
  })
@@ -17,8 +17,8 @@
17
17
 
18
18
  const visibility = computed({
19
19
  get: () => dataStyleStore.modelEdgesVisibility(id.value),
20
- set: (newValue) => {
21
- dataStyleStore.setModelEdgesVisibility(id.value, newValue)
20
+ set: async (newValue) => {
21
+ await dataStyleStore.setModelEdgesVisibility(id.value, newValue)
22
22
  hybridViewerStore.remoteRender()
23
23
  },
24
24
  })
@@ -17,15 +17,15 @@
17
17
 
18
18
  const visibility = computed({
19
19
  get: () => dataStyleStore.modelPointsVisibility(id.value),
20
- set: (newValue) => {
21
- dataStyleStore.setModelPointsVisibility(id.value, newValue)
20
+ set: async (newValue) => {
21
+ await dataStyleStore.setModelPointsVisibility(id.value, newValue)
22
22
  hybridViewerStore.remoteRender()
23
23
  },
24
24
  })
25
25
  const size = computed({
26
26
  get: () => dataStyleStore.modelPointsSize(id.value),
27
- set: (newValue) => {
28
- dataStyleStore.setModelPointsSize(id.value, newValue)
27
+ set: async (newValue) => {
28
+ await dataStyleStore.setModelPointsSize(id.value, newValue)
29
29
  hybridViewerStore.remoteRender()
30
30
  },
31
31
  })
@@ -0,0 +1,58 @@
1
+ <script setup>
2
+ import ColorMapPicker from "./ColorMapPicker.vue"
3
+
4
+ const emit = defineEmits(["reset"])
5
+
6
+ const minimum = defineModel("minimum", { type: Number })
7
+ const maximum = defineModel("maximum", { type: Number })
8
+ const colorMap = defineModel("colorMap", { type: String })
9
+
10
+ function reset() {
11
+ emit("reset")
12
+ }
13
+ </script>
14
+
15
+ <template>
16
+ <div class="attribute-colorbar mt-3">
17
+ <ColorMapPicker v-model="colorMap" :min="minimum" :max="maximum" />
18
+ <v-row dense align="center" class="mt-2">
19
+ <v-col cols="5">
20
+ <v-text-field
21
+ :model-value="minimum"
22
+ @update:model-value="(value) => (minimum = Number(value))"
23
+ label="Min"
24
+ type="number"
25
+ density="compact"
26
+ hide-details
27
+ variant="outlined"
28
+ />
29
+ </v-col>
30
+ <v-col cols="2" class="d-flex justify-center">
31
+ <v-btn
32
+ icon="mdi-arrow-left-right"
33
+ size="x-small"
34
+ variant="text"
35
+ @click="reset"
36
+ v-tooltip="'Reset range'"
37
+ />
38
+ </v-col>
39
+ <v-col cols="5">
40
+ <v-text-field
41
+ :model-value="maximum"
42
+ @update:model-value="(value) => (maximum = Number(value))"
43
+ label="Max"
44
+ type="number"
45
+ density="compact"
46
+ hide-details
47
+ variant="outlined"
48
+ />
49
+ </v-col>
50
+ </v-row>
51
+ </div>
52
+ </template>
53
+
54
+ <style scoped>
55
+ .attribute-colorbar {
56
+ width: 100%;
57
+ }
58
+ </style>
@@ -1,26 +1,36 @@
1
1
  <script setup>
2
2
  import back_schemas from "@geode/opengeodeweb-back/opengeodeweb_back_schemas.json"
3
3
  import { useGeodeStore } from "@ogw_front/stores/geode"
4
+ import ViewerOptionsAttributeColorBar from "@ogw_front/components/Viewer/Options/AttributeColorBar"
5
+
6
+ const geodeStore = useGeodeStore()
7
+
8
+ const cell_attribute_name = defineModel("cell_attribute_name", {
9
+ type: String,
10
+ })
11
+ const cell_attribute_range = defineModel("cell_attribute_range", {
12
+ type: Array,
13
+ })
14
+ const cell_attribute_color_map = defineModel("cell_attribute_color_map", {
15
+ type: String,
16
+ })
17
+ const cell_attributes = ref([])
4
18
 
5
19
  const props = defineProps({
6
20
  id: { type: String, required: true },
7
21
  })
8
22
 
9
- const model = defineModel()
10
- const cell_attribute_name = ref("")
11
- const cell_attribute_names = ref([])
12
- const cell_attribute = reactive({ name: cell_attribute_name.value })
13
- const geodeStore = useGeodeStore()
14
-
15
- onMounted(() => {
16
- if (model.value != null) {
17
- cell_attribute_name.value = model.value.name
18
- }
23
+ const rangeMin = computed({
24
+ get: () => cell_attribute_range.value[0],
25
+ set: (val) => {
26
+ cell_attribute_range.value = [val, cell_attribute_range.value[1]]
27
+ },
19
28
  })
20
-
21
- watch(cell_attribute_name, (value) => {
22
- cell_attribute.name = value
23
- model.value = cell_attribute
29
+ const rangeMax = computed({
30
+ get: () => cell_attribute_range.value[1],
31
+ set: (val) => {
32
+ cell_attribute_range.value = [cell_attribute_range.value[0], val]
33
+ },
24
34
  })
25
35
 
26
36
  onMounted(() => {
@@ -30,23 +40,45 @@
30
40
  function getCellAttributes() {
31
41
  geodeStore.request(
32
42
  back_schemas.opengeodeweb_back.cell_attribute_names,
33
- {
34
- id: props.id,
35
- },
43
+ { id: props.id },
36
44
  {
37
45
  response_function: (response) => {
38
- cell_attribute_names.value = response.cell_attribute_names
46
+ cell_attributes.value = response.attributes
39
47
  },
40
48
  },
41
49
  )
42
50
  }
51
+
52
+ const currentAttribute = computed(() => {
53
+ return cell_attributes.value.find(
54
+ (attr) => attr.attribute_name === cell_attribute_name.value,
55
+ )
56
+ })
57
+
58
+ function resetRange() {
59
+ if (currentAttribute.value) {
60
+ cell_attribute_range.value = [
61
+ currentAttribute.value.min_value,
62
+ currentAttribute.value.max_value,
63
+ ]
64
+ }
65
+ }
43
66
  </script>
44
67
 
45
68
  <template>
46
69
  <v-select
47
70
  v-model="cell_attribute_name"
48
- :items="cell_attribute_names"
71
+ :items="cell_attributes.map((attribute) => attribute.attribute_name)"
72
+ item-title="attribute_name"
73
+ item-value="attribute_name"
49
74
  label="Select an attribute"
50
75
  density="compact"
51
76
  />
77
+ <ViewerOptionsAttributeColorBar
78
+ v-if="cell_attribute_name"
79
+ v-model:minimum="rangeMin"
80
+ v-model:maximum="rangeMax"
81
+ v-model:colorMap="cell_attribute_color_map"
82
+ @reset="resetRange"
83
+ />
52
84
  </template>