@geode/opengeodeweb-front 10.34.0-rc.1 → 10.34.0-rc.3
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.
- package/app/components/Viewer/EdgedCurve/SpecificEdgesOptions.vue +20 -0
- package/app/components/Viewer/Generic/Mesh/CellsOptions.vue +20 -0
- package/app/components/Viewer/Generic/Mesh/EdgesOptions.vue +20 -0
- package/app/components/Viewer/Generic/Mesh/PointsOptions.vue +10 -0
- package/app/components/Viewer/Generic/Mesh/PolygonsOptions.vue +20 -0
- package/app/components/Viewer/Generic/Mesh/PolyhedraOptions.vue +20 -0
- package/app/components/Viewer/Generic/Model/BlocksOptions.vue +44 -0
- package/app/components/Viewer/Generic/Model/CornersOptions.vue +22 -0
- package/app/components/Viewer/Generic/Model/LinesOptions.vue +36 -0
- package/app/components/Viewer/Generic/Model/SurfacesOptions.vue +48 -0
- package/app/components/Viewer/Options/AttributeSelector.vue +53 -0
- package/app/components/Viewer/Options/ColorPicker.vue +9 -1
- package/app/components/Viewer/Options/ColoringTypeSelector.vue +16 -0
- package/app/components/Viewer/PointSet/SpecificPointsOptions.vue +10 -0
- package/app/components/Viewer/Solid/SpecificPolyhedraOptions.vue +20 -0
- package/app/components/Viewer/Surface/PolygonsOptions.vue +20 -0
- package/app/utils/default_styles/constants.js +3 -0
- package/app/utils/default_styles/index.js +1 -0
- package/internal/stores/data_style/mesh/cells/cell.js +31 -1
- package/internal/stores/data_style/mesh/cells/vertex.js +27 -1
- package/internal/stores/data_style/mesh/edges/edge.js +27 -1
- package/internal/stores/data_style/mesh/edges/vertex.js +27 -1
- package/internal/stores/data_style/mesh/points/vertex.js +27 -1
- package/internal/stores/data_style/mesh/polygons/polygon.js +27 -1
- package/internal/stores/data_style/mesh/polygons/vertex.js +27 -1
- package/internal/stores/data_style/mesh/polyhedra/polyhedron.js +27 -1
- package/internal/stores/data_style/mesh/polyhedra/vertex.js +27 -1
- package/internal/stores/data_style/model/blocks/polyhedron.js +29 -1
- package/internal/stores/data_style/model/blocks/vertex.js +24 -1
- package/internal/stores/data_style/model/corners/vertex.js +24 -1
- package/internal/stores/data_style/model/lines/edge.js +24 -1
- package/internal/stores/data_style/model/lines/vertex.js +24 -1
- package/internal/stores/data_style/model/surfaces/polygon.js +29 -1
- package/internal/stores/data_style/model/surfaces/vertex.js +29 -1
- package/package.json +1 -1
- package/server/utils/cloud.js +1 -0
- package/tests/integration/stores/data_style/mesh/cells.nuxt.test.js +2 -0
- package/tests/integration/stores/data_style/mesh/edges.nuxt.test.js +3 -0
- package/tests/integration/stores/data_style/mesh/points.nuxt.test.js +2 -0
- package/tests/integration/stores/data_style/mesh/polygons.nuxt.test.js +3 -0
- package/tests/integration/stores/data_style/mesh/polyhedra.nuxt.test.js +3 -0
- package/tests/integration/stores/data_style/model/blocks.nuxt.test.js +3 -0
- package/tests/integration/stores/data_style/model/corners.nuxt.test.js +2 -0
- package/tests/integration/stores/data_style/model/lines.nuxt.test.js +3 -0
- package/tests/integration/stores/data_style/model/surfaces.nuxt.test.js +3 -0
|
@@ -91,6 +91,15 @@ const vertex_attribute_color_map = computed({
|
|
|
91
91
|
hybridViewerStore.remoteRender();
|
|
92
92
|
},
|
|
93
93
|
});
|
|
94
|
+
const vertex_attribute_no_data_color = computed({
|
|
95
|
+
get: () => dataStyleStore.meshEdgesVertexAttributeNoDataColor(id.value),
|
|
96
|
+
set: async (newValue) => {
|
|
97
|
+
await applyBatchStyle(id.value, (targetId) =>
|
|
98
|
+
dataStyleStore.setMeshEdgesVertexAttributeNoDataColor(targetId, newValue),
|
|
99
|
+
);
|
|
100
|
+
hybridViewerStore.remoteRender();
|
|
101
|
+
},
|
|
102
|
+
});
|
|
94
103
|
const edge_attribute_name = computed({
|
|
95
104
|
get: () => dataStyleStore.meshEdgesEdgeAttributeName(id.value),
|
|
96
105
|
set: async (newValue) => {
|
|
@@ -127,6 +136,15 @@ const edge_attribute_color_map = computed({
|
|
|
127
136
|
hybridViewerStore.remoteRender();
|
|
128
137
|
},
|
|
129
138
|
});
|
|
139
|
+
const edge_attribute_no_data_color = computed({
|
|
140
|
+
get: () => dataStyleStore.meshEdgesEdgeAttributeNoDataColor(id.value),
|
|
141
|
+
set: async (newValue) => {
|
|
142
|
+
await applyBatchStyle(id.value, (targetId) =>
|
|
143
|
+
dataStyleStore.setMeshEdgesEdgeAttributeNoDataColor(targetId, newValue),
|
|
144
|
+
);
|
|
145
|
+
hybridViewerStore.remoteRender();
|
|
146
|
+
},
|
|
147
|
+
});
|
|
130
148
|
</script>
|
|
131
149
|
|
|
132
150
|
<template>
|
|
@@ -149,10 +167,12 @@ const edge_attribute_color_map = computed({
|
|
|
149
167
|
v-model:vertex_attribute_item="vertex_attribute_item"
|
|
150
168
|
v-model:vertex_attribute_range="vertex_attribute_range"
|
|
151
169
|
v-model:vertex_attribute_color_map="vertex_attribute_color_map"
|
|
170
|
+
v-model:vertex_attribute_no_data_color="vertex_attribute_no_data_color"
|
|
152
171
|
v-model:edge_attribute_name="edge_attribute_name"
|
|
153
172
|
v-model:edge_attribute_item="edge_attribute_item"
|
|
154
173
|
v-model:edge_attribute_range="edge_attribute_range"
|
|
155
174
|
v-model:edge_attribute_color_map="edge_attribute_color_map"
|
|
175
|
+
v-model:edge_attribute_no_data_color="edge_attribute_no_data_color"
|
|
156
176
|
/>
|
|
157
177
|
</template>
|
|
158
178
|
</template>
|
|
@@ -92,6 +92,15 @@ const vertex_attribute_color_map = computed({
|
|
|
92
92
|
hybridViewerStore.remoteRender();
|
|
93
93
|
},
|
|
94
94
|
});
|
|
95
|
+
const vertex_attribute_no_data_color = computed({
|
|
96
|
+
get: () => dataStyleStore.meshCellsVertexAttributeNoDataColor(id.value),
|
|
97
|
+
set: async (newValue) => {
|
|
98
|
+
await applyBatchStyle(id.value, (targetId) =>
|
|
99
|
+
dataStyleStore.setMeshCellsVertexAttributeNoDataColor(targetId, newValue),
|
|
100
|
+
);
|
|
101
|
+
hybridViewerStore.remoteRender();
|
|
102
|
+
},
|
|
103
|
+
});
|
|
95
104
|
const cell_attribute_name = computed({
|
|
96
105
|
get: () => dataStyleStore.meshCellsCellAttributeName(id.value),
|
|
97
106
|
set: async (newValue) => {
|
|
@@ -128,6 +137,15 @@ const cell_attribute_color_map = computed({
|
|
|
128
137
|
hybridViewerStore.remoteRender();
|
|
129
138
|
},
|
|
130
139
|
});
|
|
140
|
+
const cell_attribute_no_data_color = computed({
|
|
141
|
+
get: () => dataStyleStore.meshCellsCellAttributeNoDataColor(id.value),
|
|
142
|
+
set: async (newValue) => {
|
|
143
|
+
await applyBatchStyle(id.value, (targetId) =>
|
|
144
|
+
dataStyleStore.setMeshCellsCellAttributeNoDataColor(targetId, newValue),
|
|
145
|
+
);
|
|
146
|
+
hybridViewerStore.remoteRender();
|
|
147
|
+
},
|
|
148
|
+
});
|
|
131
149
|
</script>
|
|
132
150
|
|
|
133
151
|
<template>
|
|
@@ -150,10 +168,12 @@ const cell_attribute_color_map = computed({
|
|
|
150
168
|
v-model:vertex_attribute_item="vertex_attribute_item"
|
|
151
169
|
v-model:vertex_attribute_range="vertex_attribute_range"
|
|
152
170
|
v-model:vertex_attribute_color_map="vertex_attribute_color_map"
|
|
171
|
+
v-model:vertex_attribute_no_data_color="vertex_attribute_no_data_color"
|
|
153
172
|
v-model:cell_attribute_name="cell_attribute_name"
|
|
154
173
|
v-model:cell_attribute_item="cell_attribute_item"
|
|
155
174
|
v-model:cell_attribute_range="cell_attribute_range"
|
|
156
175
|
v-model:cell_attribute_color_map="cell_attribute_color_map"
|
|
176
|
+
v-model:cell_attribute_no_data_color="cell_attribute_no_data_color"
|
|
157
177
|
/>
|
|
158
178
|
</template>
|
|
159
179
|
</template>
|
|
@@ -92,6 +92,15 @@ const vertex_attribute_color_map = computed({
|
|
|
92
92
|
hybridViewerStore.remoteRender();
|
|
93
93
|
},
|
|
94
94
|
});
|
|
95
|
+
const vertex_attribute_no_data_color = computed({
|
|
96
|
+
get: () => dataStyleStore.meshEdgesVertexAttributeNoDataColor(id.value),
|
|
97
|
+
set: async (newValue) => {
|
|
98
|
+
await applyBatchStyle(id.value, (targetId) =>
|
|
99
|
+
dataStyleStore.setMeshEdgesVertexAttributeNoDataColor(targetId, newValue),
|
|
100
|
+
);
|
|
101
|
+
hybridViewerStore.remoteRender();
|
|
102
|
+
},
|
|
103
|
+
});
|
|
95
104
|
const edge_attribute_name = computed({
|
|
96
105
|
get: () => dataStyleStore.meshEdgesEdgeAttributeName(id.value),
|
|
97
106
|
set: async (newValue) => {
|
|
@@ -128,6 +137,15 @@ const edge_attribute_color_map = computed({
|
|
|
128
137
|
hybridViewerStore.remoteRender();
|
|
129
138
|
},
|
|
130
139
|
});
|
|
140
|
+
const edge_attribute_no_data_color = computed({
|
|
141
|
+
get: () => dataStyleStore.meshEdgesEdgeAttributeNoDataColor(id.value),
|
|
142
|
+
set: async (newValue) => {
|
|
143
|
+
await applyBatchStyle(id.value, (targetId) =>
|
|
144
|
+
dataStyleStore.setMeshEdgesEdgeAttributeNoDataColor(targetId, newValue),
|
|
145
|
+
);
|
|
146
|
+
hybridViewerStore.remoteRender();
|
|
147
|
+
},
|
|
148
|
+
});
|
|
131
149
|
</script>
|
|
132
150
|
|
|
133
151
|
<template>
|
|
@@ -157,10 +175,12 @@ const edge_attribute_color_map = computed({
|
|
|
157
175
|
v-model:vertex_attribute_item="vertex_attribute_item"
|
|
158
176
|
v-model:vertex_attribute_range="vertex_attribute_range"
|
|
159
177
|
v-model:vertex_attribute_color_map="vertex_attribute_color_map"
|
|
178
|
+
v-model:vertex_attribute_no_data_color="vertex_attribute_no_data_color"
|
|
160
179
|
v-model:edge_attribute_name="edge_attribute_name"
|
|
161
180
|
v-model:edge_attribute_item="edge_attribute_item"
|
|
162
181
|
v-model:edge_attribute_range="edge_attribute_range"
|
|
163
182
|
v-model:edge_attribute_color_map="edge_attribute_color_map"
|
|
183
|
+
v-model:edge_attribute_no_data_color="edge_attribute_no_data_color"
|
|
164
184
|
/>
|
|
165
185
|
</template>
|
|
166
186
|
</template>
|
|
@@ -92,6 +92,15 @@ const vertex_attribute_color_map = computed({
|
|
|
92
92
|
hybridViewerStore.remoteRender();
|
|
93
93
|
},
|
|
94
94
|
});
|
|
95
|
+
const vertex_attribute_no_data_color = computed({
|
|
96
|
+
get: () => dataStyleStore.meshPointsVertexAttributeNoDataColor(id.value),
|
|
97
|
+
set: async (newValue) => {
|
|
98
|
+
await applyBatchStyle(id.value, (targetId) =>
|
|
99
|
+
dataStyleStore.setMeshPointsVertexAttributeNoDataColor(targetId, newValue),
|
|
100
|
+
);
|
|
101
|
+
hybridViewerStore.remoteRender();
|
|
102
|
+
},
|
|
103
|
+
});
|
|
95
104
|
</script>
|
|
96
105
|
|
|
97
106
|
<template>
|
|
@@ -121,6 +130,7 @@ const vertex_attribute_color_map = computed({
|
|
|
121
130
|
v-model:vertex_attribute_item="vertex_attribute_item"
|
|
122
131
|
v-model:vertex_attribute_range="vertex_attribute_range"
|
|
123
132
|
v-model:vertex_attribute_color_map="vertex_attribute_color_map"
|
|
133
|
+
v-model:vertex_attribute_no_data_color="vertex_attribute_no_data_color"
|
|
124
134
|
:capabilities="{ vertex: { available: false } }"
|
|
125
135
|
/>
|
|
126
136
|
</template>
|
|
@@ -93,6 +93,15 @@ const vertex_attribute_color_map = computed({
|
|
|
93
93
|
hybridViewerStore.remoteRender();
|
|
94
94
|
},
|
|
95
95
|
});
|
|
96
|
+
const vertex_attribute_no_data_color = computed({
|
|
97
|
+
get: () => dataStyleStore.meshPolygonsVertexAttributeNoDataColor(id.value),
|
|
98
|
+
set: async (newValue) => {
|
|
99
|
+
await applyBatchStyle(id.value, (targetId) =>
|
|
100
|
+
dataStyleStore.setMeshPolygonsVertexAttributeNoDataColor(targetId, newValue),
|
|
101
|
+
);
|
|
102
|
+
hybridViewerStore.remoteRender();
|
|
103
|
+
},
|
|
104
|
+
});
|
|
96
105
|
const polygon_attribute_name = computed({
|
|
97
106
|
get: () => dataStyleStore.meshPolygonsPolygonAttributeName(id.value),
|
|
98
107
|
set: async (newValue) => {
|
|
@@ -129,6 +138,15 @@ const polygon_attribute_color_map = computed({
|
|
|
129
138
|
hybridViewerStore.remoteRender();
|
|
130
139
|
},
|
|
131
140
|
});
|
|
141
|
+
const polygon_attribute_no_data_color = computed({
|
|
142
|
+
get: () => dataStyleStore.meshPolygonsPolygonAttributeNoDataColor(id.value),
|
|
143
|
+
set: async (newValue) => {
|
|
144
|
+
await applyBatchStyle(id.value, (targetId) =>
|
|
145
|
+
dataStyleStore.setMeshPolygonsPolygonAttributeNoDataColor(targetId, newValue),
|
|
146
|
+
);
|
|
147
|
+
hybridViewerStore.remoteRender();
|
|
148
|
+
},
|
|
149
|
+
});
|
|
132
150
|
</script>
|
|
133
151
|
|
|
134
152
|
<template>
|
|
@@ -154,10 +172,12 @@ const polygon_attribute_color_map = computed({
|
|
|
154
172
|
v-model:vertex_attribute_item="vertex_attribute_item"
|
|
155
173
|
v-model:vertex_attribute_range="vertex_attribute_range"
|
|
156
174
|
v-model:vertex_attribute_color_map="vertex_attribute_color_map"
|
|
175
|
+
v-model:vertex_attribute_no_data_color="vertex_attribute_no_data_color"
|
|
157
176
|
v-model:polygon_attribute_name="polygon_attribute_name"
|
|
158
177
|
v-model:polygon_attribute_item="polygon_attribute_item"
|
|
159
178
|
v-model:polygon_attribute_range="polygon_attribute_range"
|
|
160
179
|
v-model:polygon_attribute_color_map="polygon_attribute_color_map"
|
|
180
|
+
v-model:polygon_attribute_no_data_color="polygon_attribute_no_data_color"
|
|
161
181
|
:capabilities="capabilities"
|
|
162
182
|
/>
|
|
163
183
|
</template>
|
|
@@ -82,6 +82,15 @@ const vertex_attribute_color_map = computed({
|
|
|
82
82
|
hybridViewerStore.remoteRender();
|
|
83
83
|
},
|
|
84
84
|
});
|
|
85
|
+
const vertex_attribute_no_data_color = computed({
|
|
86
|
+
get: () => dataStyleStore.meshPolyhedraVertexAttributeNoDataColor(id.value),
|
|
87
|
+
set: async (newValue) => {
|
|
88
|
+
await applyBatchStyle(id.value, (targetId) =>
|
|
89
|
+
dataStyleStore.setMeshPolyhedraVertexAttributeNoDataColor(targetId, newValue),
|
|
90
|
+
);
|
|
91
|
+
hybridViewerStore.remoteRender();
|
|
92
|
+
},
|
|
93
|
+
});
|
|
85
94
|
const polyhedron_attribute_name = computed({
|
|
86
95
|
get: () => dataStyleStore.meshPolyhedraPolyhedronAttributeName(id.value),
|
|
87
96
|
set: async (newValue) => {
|
|
@@ -120,6 +129,15 @@ const polyhedron_attribute_color_map = computed({
|
|
|
120
129
|
hybridViewerStore.remoteRender();
|
|
121
130
|
},
|
|
122
131
|
});
|
|
132
|
+
const polyhedron_attribute_no_data_color = computed({
|
|
133
|
+
get: () => dataStyleStore.meshPolyhedraPolyhedronAttributeNoDataColor(id.value),
|
|
134
|
+
set: async (newValue) => {
|
|
135
|
+
await applyBatchStyle(id.value, (targetId) =>
|
|
136
|
+
dataStyleStore.setMeshPolyhedraPolyhedronAttributeNoDataColor(targetId, newValue),
|
|
137
|
+
);
|
|
138
|
+
hybridViewerStore.remoteRender();
|
|
139
|
+
},
|
|
140
|
+
});
|
|
123
141
|
</script>
|
|
124
142
|
|
|
125
143
|
<template>
|
|
@@ -144,10 +162,12 @@ const polyhedron_attribute_color_map = computed({
|
|
|
144
162
|
v-model:vertex_attribute_item="vertex_attribute_item"
|
|
145
163
|
v-model:vertex_attribute_range="vertex_attribute_range"
|
|
146
164
|
v-model:vertex_attribute_color_map="vertex_attribute_color_map"
|
|
165
|
+
v-model:vertex_attribute_no_data_color="vertex_attribute_no_data_color"
|
|
147
166
|
v-model:polyhedron_attribute_name="polyhedron_attribute_name"
|
|
148
167
|
v-model:polyhedron_attribute_item="polyhedron_attribute_item"
|
|
149
168
|
v-model:polyhedron_attribute_range="polyhedron_attribute_range"
|
|
150
169
|
v-model:polyhedron_attribute_color_map="polyhedron_attribute_color_map"
|
|
170
|
+
v-model:polyhedron_attribute_no_data_color="polyhedron_attribute_no_data_color"
|
|
151
171
|
:capabilities="{
|
|
152
172
|
vertex: { available: true, hasColorMap: true },
|
|
153
173
|
polyhedron: { available: true, hasColorMap: true },
|
|
@@ -103,6 +103,18 @@ const blocksVertexAttributeColorMap = computed({
|
|
|
103
103
|
},
|
|
104
104
|
});
|
|
105
105
|
|
|
106
|
+
const blocksVertexAttributeNoDataColor = computed({
|
|
107
|
+
get: () => dataStyleStore.modelBlocksVertexAttributeNoDataColor(modelId),
|
|
108
|
+
set: async (newValue) => {
|
|
109
|
+
await dataStyleStore.setModelBlocksVertexAttributeNoDataColor(
|
|
110
|
+
modelId,
|
|
111
|
+
targetBlockIds,
|
|
112
|
+
newValue,
|
|
113
|
+
);
|
|
114
|
+
hybridViewerStore.remoteRender();
|
|
115
|
+
},
|
|
116
|
+
});
|
|
117
|
+
|
|
106
118
|
const blocksPolyhedronAttributeName = computed({
|
|
107
119
|
get: () => dataStyleStore.modelBlocksPolyhedronAttributeName(modelId),
|
|
108
120
|
set: async (newValue) => {
|
|
@@ -144,6 +156,18 @@ const blocksPolyhedronAttributeColorMap = computed({
|
|
|
144
156
|
},
|
|
145
157
|
});
|
|
146
158
|
|
|
159
|
+
const blocksPolyhedronAttributeNoDataColor = computed({
|
|
160
|
+
get: () => dataStyleStore.modelBlocksPolyhedronAttributeNoDataColor(modelId),
|
|
161
|
+
set: async (newValue) => {
|
|
162
|
+
await dataStyleStore.setModelBlocksPolyhedronAttributeNoDataColor(
|
|
163
|
+
modelId,
|
|
164
|
+
targetBlockIds,
|
|
165
|
+
newValue,
|
|
166
|
+
);
|
|
167
|
+
hybridViewerStore.remoteRender();
|
|
168
|
+
},
|
|
169
|
+
});
|
|
170
|
+
|
|
147
171
|
// Individual Attributes
|
|
148
172
|
const vertexAttributeName = computed({
|
|
149
173
|
get: () => dataStyleStore.modelBlocksVertexAttributeName(modelId, blockId),
|
|
@@ -182,6 +206,14 @@ const vertexAttributeColorMap = computed({
|
|
|
182
206
|
},
|
|
183
207
|
});
|
|
184
208
|
|
|
209
|
+
const vertexAttributeNoDataColor = computed({
|
|
210
|
+
get: () => dataStyleStore.modelBlocksVertexAttributeNoDataColor(modelId, blockId),
|
|
211
|
+
set: async (newValue) => {
|
|
212
|
+
await dataStyleStore.setModelBlocksVertexAttributeNoDataColor(modelId, [blockId], newValue);
|
|
213
|
+
hybridViewerStore.remoteRender();
|
|
214
|
+
},
|
|
215
|
+
});
|
|
216
|
+
|
|
185
217
|
const polyhedronAttributeName = computed({
|
|
186
218
|
get: () => dataStyleStore.modelBlocksPolyhedronAttributeName(modelId, blockId),
|
|
187
219
|
set: async (newValue) => {
|
|
@@ -219,6 +251,14 @@ const polyhedronAttributeColorMap = computed({
|
|
|
219
251
|
},
|
|
220
252
|
});
|
|
221
253
|
|
|
254
|
+
const polyhedronAttributeNoDataColor = computed({
|
|
255
|
+
get: () => dataStyleStore.modelBlocksPolyhedronAttributeNoDataColor(modelId, blockId),
|
|
256
|
+
set: async (newValue) => {
|
|
257
|
+
await dataStyleStore.setModelBlocksPolyhedronAttributeNoDataColor(modelId, [blockId], newValue);
|
|
258
|
+
hybridViewerStore.remoteRender();
|
|
259
|
+
},
|
|
260
|
+
});
|
|
261
|
+
|
|
222
262
|
const capabilities = {
|
|
223
263
|
color: { available: true },
|
|
224
264
|
textures: { available: false },
|
|
@@ -245,10 +285,12 @@ const polyhedronSchema = back_schemas.opengeodeweb_back.model_component_polyhedr
|
|
|
245
285
|
v-model:vertex_attribute_item="blocksVertexAttributeItem"
|
|
246
286
|
v-model:vertex_attribute_range="blocksVertexAttributeRange"
|
|
247
287
|
v-model:vertex_attribute_color_map="blocksVertexAttributeColorMap"
|
|
288
|
+
v-model:vertex_attribute_no_data_color="blocksVertexAttributeNoDataColor"
|
|
248
289
|
v-model:polyhedron_attribute_name="blocksPolyhedronAttributeName"
|
|
249
290
|
v-model:polyhedron_attribute_item="blocksPolyhedronAttributeItem"
|
|
250
291
|
v-model:polyhedron_attribute_range="blocksPolyhedronAttributeRange"
|
|
251
292
|
v-model:polyhedron_attribute_color_map="blocksPolyhedronAttributeColorMap"
|
|
293
|
+
v-model:polyhedron_attribute_no_data_color="blocksPolyhedronAttributeNoDataColor"
|
|
252
294
|
:capabilities="capabilities"
|
|
253
295
|
:schemas="{ vertex: vertexSchema, polyhedron: polyhedronSchema }"
|
|
254
296
|
:allowRandom="true"
|
|
@@ -271,10 +313,12 @@ const polyhedronSchema = back_schemas.opengeodeweb_back.model_component_polyhedr
|
|
|
271
313
|
v-model:vertex_attribute_item="vertexAttributeItem"
|
|
272
314
|
v-model:vertex_attribute_range="vertexAttributeRange"
|
|
273
315
|
v-model:vertex_attribute_color_map="vertexAttributeColorMap"
|
|
316
|
+
v-model:vertex_attribute_no_data_color="vertexAttributeNoDataColor"
|
|
274
317
|
v-model:polyhedron_attribute_name="polyhedronAttributeName"
|
|
275
318
|
v-model:polyhedron_attribute_item="polyhedronAttributeItem"
|
|
276
319
|
v-model:polyhedron_attribute_range="polyhedronAttributeRange"
|
|
277
320
|
v-model:polyhedron_attribute_color_map="polyhedronAttributeColorMap"
|
|
321
|
+
v-model:polyhedron_attribute_no_data_color="polyhedronAttributeNoDataColor"
|
|
278
322
|
:capabilities="capabilities"
|
|
279
323
|
:schemas="{ vertex: vertexSchema, polyhedron: polyhedronSchema }"
|
|
280
324
|
:allowRandom="true"
|
|
@@ -103,6 +103,18 @@ const cornersVertexAttributeColorMap = computed({
|
|
|
103
103
|
},
|
|
104
104
|
});
|
|
105
105
|
|
|
106
|
+
const cornersVertexAttributeNoDataColor = computed({
|
|
107
|
+
get: () => dataStyleStore.modelCornersVertexAttributeNoDataColor(modelId),
|
|
108
|
+
set: async (newValue) => {
|
|
109
|
+
await dataStyleStore.setModelCornersVertexAttributeNoDataColor(
|
|
110
|
+
modelId,
|
|
111
|
+
targetCornerIds,
|
|
112
|
+
newValue,
|
|
113
|
+
);
|
|
114
|
+
hybridViewerStore.remoteRender();
|
|
115
|
+
},
|
|
116
|
+
});
|
|
117
|
+
|
|
106
118
|
// Individual Attributes
|
|
107
119
|
const vertexAttributeName = computed({
|
|
108
120
|
get: () => dataStyleStore.modelCornersVertexAttributeName(modelId, cornerId),
|
|
@@ -141,6 +153,14 @@ const vertexAttributeColorMap = computed({
|
|
|
141
153
|
},
|
|
142
154
|
});
|
|
143
155
|
|
|
156
|
+
const vertexAttributeNoDataColor = computed({
|
|
157
|
+
get: () => dataStyleStore.modelCornersVertexAttributeNoDataColor(modelId, cornerId),
|
|
158
|
+
set: async (newValue) => {
|
|
159
|
+
await dataStyleStore.setModelCornersVertexAttributeNoDataColor(modelId, [cornerId], newValue);
|
|
160
|
+
hybridViewerStore.remoteRender();
|
|
161
|
+
},
|
|
162
|
+
});
|
|
163
|
+
|
|
144
164
|
const capabilities = {
|
|
145
165
|
color: { available: true },
|
|
146
166
|
textures: { available: false },
|
|
@@ -166,6 +186,7 @@ const vertexSchema = back_schemas.opengeodeweb_back.model_component_vertex_attri
|
|
|
166
186
|
v-model:vertex_attribute_item="cornersVertexAttributeItem"
|
|
167
187
|
v-model:vertex_attribute_range="cornersVertexAttributeRange"
|
|
168
188
|
v-model:vertex_attribute_color_map="cornersVertexAttributeColorMap"
|
|
189
|
+
v-model:vertex_attribute_no_data_color="cornersVertexAttributeNoDataColor"
|
|
169
190
|
:capabilities="capabilities"
|
|
170
191
|
:schemas="{ vertex: vertexSchema }"
|
|
171
192
|
:allowRandom="true"
|
|
@@ -188,6 +209,7 @@ const vertexSchema = back_schemas.opengeodeweb_back.model_component_vertex_attri
|
|
|
188
209
|
v-model:vertex_attribute_item="vertexAttributeItem"
|
|
189
210
|
v-model:vertex_attribute_range="vertexAttributeRange"
|
|
190
211
|
v-model:vertex_attribute_color_map="vertexAttributeColorMap"
|
|
212
|
+
v-model:vertex_attribute_no_data_color="vertexAttributeNoDataColor"
|
|
191
213
|
:capabilities="capabilities"
|
|
192
214
|
:schemas="{ vertex: vertexSchema }"
|
|
193
215
|
:allowRandom="true"
|
|
@@ -103,6 +103,14 @@ const linesVertexAttributeColorMap = computed({
|
|
|
103
103
|
},
|
|
104
104
|
});
|
|
105
105
|
|
|
106
|
+
const linesVertexAttributeNoDataColor = computed({
|
|
107
|
+
get: () => dataStyleStore.modelLinesVertexAttributeNoDataColor(modelId),
|
|
108
|
+
set: async (newValue) => {
|
|
109
|
+
await dataStyleStore.setModelLinesVertexAttributeNoDataColor(modelId, targetLineIds, newValue);
|
|
110
|
+
hybridViewerStore.remoteRender();
|
|
111
|
+
},
|
|
112
|
+
});
|
|
113
|
+
|
|
106
114
|
const linesEdgeAttributeName = computed({
|
|
107
115
|
get: () => dataStyleStore.modelLinesEdgeAttributeName(modelId),
|
|
108
116
|
set: async (newValue) => {
|
|
@@ -140,6 +148,14 @@ const linesEdgeAttributeColorMap = computed({
|
|
|
140
148
|
},
|
|
141
149
|
});
|
|
142
150
|
|
|
151
|
+
const linesEdgeAttributeNoDataColor = computed({
|
|
152
|
+
get: () => dataStyleStore.modelLinesEdgeAttributeNoDataColor(modelId),
|
|
153
|
+
set: async (newValue) => {
|
|
154
|
+
await dataStyleStore.setModelLinesEdgeAttributeNoDataColor(modelId, targetLineIds, newValue);
|
|
155
|
+
hybridViewerStore.remoteRender();
|
|
156
|
+
},
|
|
157
|
+
});
|
|
158
|
+
|
|
143
159
|
// Individual Attributes
|
|
144
160
|
const vertexAttributeName = computed({
|
|
145
161
|
get: () => dataStyleStore.modelLinesVertexAttributeName(modelId, lineId),
|
|
@@ -178,6 +194,14 @@ const vertexAttributeColorMap = computed({
|
|
|
178
194
|
},
|
|
179
195
|
});
|
|
180
196
|
|
|
197
|
+
const vertexAttributeNoDataColor = computed({
|
|
198
|
+
get: () => dataStyleStore.modelLinesVertexAttributeNoDataColor(modelId, lineId),
|
|
199
|
+
set: async (newValue) => {
|
|
200
|
+
await dataStyleStore.setModelLinesVertexAttributeNoDataColor(modelId, [lineId], newValue);
|
|
201
|
+
hybridViewerStore.remoteRender();
|
|
202
|
+
},
|
|
203
|
+
});
|
|
204
|
+
|
|
181
205
|
const edgeAttributeName = computed({
|
|
182
206
|
get: () => dataStyleStore.modelLinesEdgeAttributeName(modelId, lineId),
|
|
183
207
|
set: async (newValue) => {
|
|
@@ -215,6 +239,14 @@ const edgeAttributeColorMap = computed({
|
|
|
215
239
|
},
|
|
216
240
|
});
|
|
217
241
|
|
|
242
|
+
const edgeAttributeNoDataColor = computed({
|
|
243
|
+
get: () => dataStyleStore.modelLinesEdgeAttributeNoDataColor(modelId, lineId),
|
|
244
|
+
set: async (newValue) => {
|
|
245
|
+
await dataStyleStore.setModelLinesEdgeAttributeNoDataColor(modelId, [lineId], newValue);
|
|
246
|
+
hybridViewerStore.remoteRender();
|
|
247
|
+
},
|
|
248
|
+
});
|
|
249
|
+
|
|
218
250
|
const capabilities = {
|
|
219
251
|
color: { available: true },
|
|
220
252
|
textures: { available: false },
|
|
@@ -241,10 +273,12 @@ const edgeSchema = back_schemas.opengeodeweb_back.model_component_edge_attribute
|
|
|
241
273
|
v-model:vertex_attribute_item="linesVertexAttributeItem"
|
|
242
274
|
v-model:vertex_attribute_range="linesVertexAttributeRange"
|
|
243
275
|
v-model:vertex_attribute_color_map="linesVertexAttributeColorMap"
|
|
276
|
+
v-model:vertex_attribute_no_data_color="linesVertexAttributeNoDataColor"
|
|
244
277
|
v-model:edge_attribute_name="linesEdgeAttributeName"
|
|
245
278
|
v-model:edge_attribute_item="linesEdgeAttributeItem"
|
|
246
279
|
v-model:edge_attribute_range="linesEdgeAttributeRange"
|
|
247
280
|
v-model:edge_attribute_color_map="linesEdgeAttributeColorMap"
|
|
281
|
+
v-model:edge_attribute_no_data_color="linesEdgeAttributeNoDataColor"
|
|
248
282
|
:capabilities="capabilities"
|
|
249
283
|
:schemas="{ vertex: vertexSchema, edge: edgeSchema }"
|
|
250
284
|
:allowRandom="true"
|
|
@@ -267,10 +301,12 @@ const edgeSchema = back_schemas.opengeodeweb_back.model_component_edge_attribute
|
|
|
267
301
|
v-model:vertex_attribute_item="vertexAttributeItem"
|
|
268
302
|
v-model:vertex_attribute_range="vertexAttributeRange"
|
|
269
303
|
v-model:vertex_attribute_color_map="vertexAttributeColorMap"
|
|
304
|
+
v-model:vertex_attribute_no_data_color="vertexAttributeNoDataColor"
|
|
270
305
|
v-model:edge_attribute_name="edgeAttributeName"
|
|
271
306
|
v-model:edge_attribute_item="edgeAttributeItem"
|
|
272
307
|
v-model:edge_attribute_range="edgeAttributeRange"
|
|
273
308
|
v-model:edge_attribute_color_map="edgeAttributeColorMap"
|
|
309
|
+
v-model:edge_attribute_no_data_color="edgeAttributeNoDataColor"
|
|
274
310
|
:capabilities="capabilities"
|
|
275
311
|
:schemas="{ vertex: vertexSchema, edge: edgeSchema }"
|
|
276
312
|
:allowRandom="true"
|
|
@@ -107,6 +107,18 @@ const surfacesVertexAttributeColorMap = computed({
|
|
|
107
107
|
},
|
|
108
108
|
});
|
|
109
109
|
|
|
110
|
+
const surfacesVertexAttributeNoDataColor = computed({
|
|
111
|
+
get: () => dataStyleStore.modelSurfacesVertexAttributeNoDataColor(modelId),
|
|
112
|
+
set: async (newValue) => {
|
|
113
|
+
await dataStyleStore.setModelSurfacesVertexAttributeNoDataColor(
|
|
114
|
+
modelId,
|
|
115
|
+
targetSurfaceIds,
|
|
116
|
+
newValue,
|
|
117
|
+
);
|
|
118
|
+
hybridViewerStore.remoteRender();
|
|
119
|
+
},
|
|
120
|
+
});
|
|
121
|
+
|
|
110
122
|
const surfacesPolygonAttributeName = computed({
|
|
111
123
|
get: () => dataStyleStore.modelSurfacesPolygonAttributeName(modelId),
|
|
112
124
|
set: async (newValue) => {
|
|
@@ -148,6 +160,18 @@ const surfacesPolygonAttributeColorMap = computed({
|
|
|
148
160
|
},
|
|
149
161
|
});
|
|
150
162
|
|
|
163
|
+
const surfacesPolygonAttributeNoDataColor = computed({
|
|
164
|
+
get: () => dataStyleStore.modelSurfacesPolygonAttributeNoDataColor(modelId),
|
|
165
|
+
set: async (newValue) => {
|
|
166
|
+
await dataStyleStore.setModelSurfacesPolygonAttributeNoDataColor(
|
|
167
|
+
modelId,
|
|
168
|
+
targetSurfaceIds,
|
|
169
|
+
newValue,
|
|
170
|
+
);
|
|
171
|
+
hybridViewerStore.remoteRender();
|
|
172
|
+
},
|
|
173
|
+
});
|
|
174
|
+
|
|
151
175
|
// Individual Attributes
|
|
152
176
|
const vertexAttributeName = computed({
|
|
153
177
|
get: () => dataStyleStore.modelSurfacesVertexAttributeName(modelId, surfaceId),
|
|
@@ -186,6 +210,14 @@ const vertexAttributeColorMap = computed({
|
|
|
186
210
|
},
|
|
187
211
|
});
|
|
188
212
|
|
|
213
|
+
const vertexAttributeNoDataColor = computed({
|
|
214
|
+
get: () => dataStyleStore.modelSurfacesVertexAttributeNoDataColor(modelId, surfaceId),
|
|
215
|
+
set: async (newValue) => {
|
|
216
|
+
await dataStyleStore.setModelSurfacesVertexAttributeNoDataColor(modelId, [surfaceId], newValue);
|
|
217
|
+
hybridViewerStore.remoteRender();
|
|
218
|
+
},
|
|
219
|
+
});
|
|
220
|
+
|
|
189
221
|
const polygonAttributeName = computed({
|
|
190
222
|
get: () => dataStyleStore.modelSurfacesPolygonAttributeName(modelId, surfaceId),
|
|
191
223
|
set: async (newValue) => {
|
|
@@ -223,6 +255,18 @@ const polygonAttributeColorMap = computed({
|
|
|
223
255
|
},
|
|
224
256
|
});
|
|
225
257
|
|
|
258
|
+
const polygonAttributeNoDataColor = computed({
|
|
259
|
+
get: () => dataStyleStore.modelSurfacesPolygonAttributeNoDataColor(modelId, surfaceId),
|
|
260
|
+
set: async (newValue) => {
|
|
261
|
+
await dataStyleStore.setModelSurfacesPolygonAttributeNoDataColor(
|
|
262
|
+
modelId,
|
|
263
|
+
[surfaceId],
|
|
264
|
+
newValue,
|
|
265
|
+
);
|
|
266
|
+
hybridViewerStore.remoteRender();
|
|
267
|
+
},
|
|
268
|
+
});
|
|
269
|
+
|
|
226
270
|
const capabilities = {
|
|
227
271
|
color: { available: true },
|
|
228
272
|
textures: { available: false },
|
|
@@ -249,10 +293,12 @@ const polygonSchema = back_schemas.opengeodeweb_back.model_component_polygon_att
|
|
|
249
293
|
v-model:vertex_attribute_item="surfacesVertexAttributeItem"
|
|
250
294
|
v-model:vertex_attribute_range="surfacesVertexAttributeRange"
|
|
251
295
|
v-model:vertex_attribute_color_map="surfacesVertexAttributeColorMap"
|
|
296
|
+
v-model:vertex_attribute_no_data_color="surfacesVertexAttributeNoDataColor"
|
|
252
297
|
v-model:polygon_attribute_name="surfacesPolygonAttributeName"
|
|
253
298
|
v-model:polygon_attribute_item="surfacesPolygonAttributeItem"
|
|
254
299
|
v-model:polygon_attribute_range="surfacesPolygonAttributeRange"
|
|
255
300
|
v-model:polygon_attribute_color_map="surfacesPolygonAttributeColorMap"
|
|
301
|
+
v-model:polygon_attribute_no_data_color="surfacesPolygonAttributeNoDataColor"
|
|
256
302
|
:capabilities="capabilities"
|
|
257
303
|
:schemas="{ vertex: vertexSchema, polygon: polygonSchema }"
|
|
258
304
|
:allowRandom="true"
|
|
@@ -275,10 +321,12 @@ const polygonSchema = back_schemas.opengeodeweb_back.model_component_polygon_att
|
|
|
275
321
|
v-model:vertex_attribute_item="vertexAttributeItem"
|
|
276
322
|
v-model:vertex_attribute_range="vertexAttributeRange"
|
|
277
323
|
v-model:vertex_attribute_color_map="vertexAttributeColorMap"
|
|
324
|
+
v-model:vertex_attribute_no_data_color="vertexAttributeNoDataColor"
|
|
278
325
|
v-model:polygon_attribute_name="polygonAttributeName"
|
|
279
326
|
v-model:polygon_attribute_item="polygonAttributeItem"
|
|
280
327
|
v-model:polygon_attribute_range="polygonAttributeRange"
|
|
281
328
|
v-model:polygon_attribute_color_map="polygonAttributeColorMap"
|
|
329
|
+
v-model:polygon_attribute_no_data_color="polygonAttributeNoDataColor"
|
|
282
330
|
:capabilities="capabilities"
|
|
283
331
|
:schemas="{ vertex: vertexSchema, polygon: polygonSchema }"
|
|
284
332
|
:allowRandom="true"
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
+
import { DEFAULT_NO_DATA_COLOR } from "@ogw_front/utils/default_styles/constants";
|
|
2
3
|
import ViewerOptionsAttributeColorBar from "@ogw_front/components/Viewer/Options/AttributeColorBar.vue";
|
|
4
|
+
import ViewerOptionsColorPicker from "@ogw_front/components/Viewer/Options/ColorPicker.vue";
|
|
3
5
|
import { getAttributeRange } from "@ogw_front/utils/attributes";
|
|
4
6
|
import { useBackStore } from "@ogw_front/stores/back";
|
|
5
7
|
|
|
@@ -9,6 +11,7 @@ const attributeName = defineModel("attributeName", { type: String });
|
|
|
9
11
|
const attributeItem = defineModel("attributeItem", { type: Number });
|
|
10
12
|
const attributeRange = defineModel("attributeRange", { type: Array });
|
|
11
13
|
const attributeColorMap = defineModel("attributeColorMap", { type: String });
|
|
14
|
+
const attributeNoDataColor = defineModel("attributeNoDataColor", { type: Object });
|
|
12
15
|
|
|
13
16
|
const { id, componentIds, schema } = defineProps({
|
|
14
17
|
id: { type: String, required: true },
|
|
@@ -21,6 +24,10 @@ const attributes = ref([]);
|
|
|
21
24
|
const currentAttribute = computed(() =>
|
|
22
25
|
attributes.value.find((attr) => attr.attribute_name === attributeName.value),
|
|
23
26
|
);
|
|
27
|
+
const cssNoDataColor = computed(() => {
|
|
28
|
+
const { red, green, blue, alpha } = attributeNoDataColor.value ?? DEFAULT_NO_DATA_COLOR;
|
|
29
|
+
return `rgba(${red}, ${green}, ${blue}, ${alpha})`;
|
|
30
|
+
});
|
|
24
31
|
const rangeMin = computed({
|
|
25
32
|
get: () => (attributeRange.value ? attributeRange.value[0] : undefined),
|
|
26
33
|
set: (val) => {
|
|
@@ -102,6 +109,9 @@ watch([attributeName, attributeItem, currentAttribute], () => {
|
|
|
102
109
|
if (attributeColorMap.value === undefined) {
|
|
103
110
|
attributeColorMap.value = "batlow";
|
|
104
111
|
}
|
|
112
|
+
if (attributeNoDataColor.value === undefined) {
|
|
113
|
+
attributeNoDataColor.value = DEFAULT_NO_DATA_COLOR;
|
|
114
|
+
}
|
|
105
115
|
if (!attributeRange.value || attributeRange.value[0] === undefined) {
|
|
106
116
|
resetRange();
|
|
107
117
|
}
|
|
@@ -131,6 +141,29 @@ watch([attributeName, attributeItem, currentAttribute], () => {
|
|
|
131
141
|
class="mt-3"
|
|
132
142
|
hide-details
|
|
133
143
|
/>
|
|
144
|
+
<div
|
|
145
|
+
v-if="currentAttribute && currentAttribute.no_data"
|
|
146
|
+
class="text-caption text-high-emphasis mt-1 d-flex align-center ga-1"
|
|
147
|
+
data-testid="noDataInfo"
|
|
148
|
+
>
|
|
149
|
+
<v-icon icon="mdi-information-outline" size="14" color="info" />
|
|
150
|
+
<span>Contains unmapped elements</span>
|
|
151
|
+
<v-menu :close-on-content-click="false">
|
|
152
|
+
<template #activator="{ props }">
|
|
153
|
+
<button
|
|
154
|
+
v-bind="props"
|
|
155
|
+
type="button"
|
|
156
|
+
class="color-picker-rect-btn ml-1"
|
|
157
|
+
:style="{ backgroundColor: cssNoDataColor }"
|
|
158
|
+
v-tooltip="'Change unmapped elements color'"
|
|
159
|
+
data-testid="noDataColorBtn"
|
|
160
|
+
/>
|
|
161
|
+
</template>
|
|
162
|
+
<v-card class="pa-2">
|
|
163
|
+
<ViewerOptionsColorPicker v-model="attributeNoDataColor" disabled-alpha />
|
|
164
|
+
</v-card>
|
|
165
|
+
</v-menu>
|
|
166
|
+
</div>
|
|
134
167
|
<ViewerOptionsAttributeColorBar
|
|
135
168
|
v-if="attributeName"
|
|
136
169
|
v-model:minimum="rangeMin"
|
|
@@ -139,3 +172,23 @@ watch([attributeName, attributeItem, currentAttribute], () => {
|
|
|
139
172
|
@reset="resetRange"
|
|
140
173
|
/>
|
|
141
174
|
</template>
|
|
175
|
+
|
|
176
|
+
<style scoped>
|
|
177
|
+
.color-picker-rect-btn {
|
|
178
|
+
width: 26px;
|
|
179
|
+
height: 15px;
|
|
180
|
+
border-radius: 3px;
|
|
181
|
+
border: 2px solid rgba(255, 255, 255, 0.912);
|
|
182
|
+
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
|
|
183
|
+
cursor: pointer;
|
|
184
|
+
outline: none;
|
|
185
|
+
transition:
|
|
186
|
+
border-color 0.15s ease,
|
|
187
|
+
transform 0.15s ease;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
.color-picker-rect-btn:hover {
|
|
191
|
+
border-color: rgba(255, 255, 255, 0.9);
|
|
192
|
+
transform: scale(1.1);
|
|
193
|
+
}
|
|
194
|
+
</style>
|