@geode/opengeodeweb-front 10.3.1 → 10.3.2-rc.2
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/DragAndDrop.vue +16 -27
- package/app/components/FileUploader.vue +34 -17
- package/app/components/GlassCard.vue +50 -0
- package/app/components/HybridRenderingView.vue +1 -2
- package/app/components/RemoteRenderingView.vue +1 -1
- package/app/components/Screenshot.vue +47 -36
- package/app/components/Stepper.vue +44 -11
- package/app/components/Viewer/ContextMenuItem.vue +16 -5
- package/app/components/Viewer/EdgedCurve/SpecificEdgesOptions.vue +1 -11
- package/app/components/Viewer/Generic/Mesh/CellsOptions.vue +0 -4
- package/app/components/Viewer/Generic/Mesh/EdgesOptions.vue +60 -9
- package/app/components/Viewer/Generic/Mesh/PointsOptions.vue +32 -9
- package/app/components/Viewer/Generic/Mesh/PolygonsOptions.vue +68 -0
- package/app/components/Viewer/Generic/Mesh/PolyhedraOptions.vue +71 -0
- package/app/components/Viewer/Options/AttributeColorBar.vue +2 -0
- package/app/components/Viewer/Options/AttributeSelector.vue +112 -0
- package/app/components/Viewer/Options/ColoringTypeSelector.vue +31 -29
- package/app/components/Viewer/PointSet/SpecificPointsOptions.vue +1 -11
- package/app/components/Viewer/PolygonalSurface/SpecificPolygonsOptions.vue +0 -4
- package/app/components/Viewer/Solid/SpecificPolyhedraOptions.vue +0 -4
- package/app/components/Viewer/Tree/ObjectTree.vue +1 -0
- package/app/components/ZScaling.vue +47 -37
- package/internal/stores/data_style/mesh/cells/cell.js +20 -34
- package/internal/stores/data_style/mesh/cells/vertex.js +20 -34
- package/internal/stores/data_style/mesh/edges/edge.js +84 -86
- package/internal/stores/data_style/mesh/edges/vertex.js +20 -34
- package/internal/stores/data_style/mesh/points/vertex.js +20 -34
- package/internal/stores/data_style/mesh/polygons/polygon.js +23 -38
- package/internal/stores/data_style/mesh/polygons/vertex.js +20 -34
- package/internal/stores/data_style/mesh/polyhedra/polyhedron.js +19 -32
- package/internal/stores/data_style/mesh/polyhedra/vertex.js +20 -34
- package/package.json +3 -3
- package/tests/integration/microservices/viewer/requirements.txt +1 -1
- package/app/components/OptionCard.vue +0 -55
- package/app/components/Viewer/Options/CellAttributeSelector.vue +0 -87
- package/app/components/Viewer/Options/EdgeAttributeSelector.vue +0 -84
- package/app/components/Viewer/Options/PolygonAttributeSelector.vue +0 -85
- package/app/components/Viewer/Options/PolyhedronAttributeSelector.vue +0 -91
- package/app/components/Viewer/Options/VertexAttributeSelector.vue +0 -84
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
loading,
|
|
6
|
-
showExtensions,
|
|
7
|
-
idleText,
|
|
8
|
-
dropText,
|
|
9
|
-
loadingText,
|
|
10
|
-
} = defineProps({
|
|
2
|
+
import GlassCard from "@ogw_front/components/GlassCard"
|
|
3
|
+
|
|
4
|
+
const props = defineProps({
|
|
11
5
|
multiple: { type: Boolean, default: false },
|
|
12
6
|
accept: { type: String, default: "" },
|
|
13
7
|
loading: { type: Boolean, default: false },
|
|
@@ -41,29 +35,26 @@
|
|
|
41
35
|
|
|
42
36
|
<template>
|
|
43
37
|
<v-hover v-slot="{ isHovering, props: hoverProps }">
|
|
44
|
-
<
|
|
38
|
+
<GlassCard
|
|
45
39
|
v-bind="hoverProps"
|
|
46
|
-
class="text-center cursor-pointer"
|
|
40
|
+
class="text-center cursor-pointer overflow-hidden border-opacity-10 border-white"
|
|
47
41
|
:class="{
|
|
48
42
|
'elevation-4': isHovering || isDragging,
|
|
49
43
|
'elevation-0': !(isHovering || isDragging),
|
|
50
44
|
}"
|
|
51
45
|
:style="{
|
|
52
46
|
position: 'relative',
|
|
53
|
-
|
|
54
|
-
transition: 'all 0.3s ease',
|
|
47
|
+
transition: 'all 0.3s cubic-bezier(0.4, 0, 0.2, 1)',
|
|
55
48
|
background:
|
|
56
49
|
isHovering || isDragging
|
|
57
|
-
? 'rgba(
|
|
58
|
-
: 'rgba(
|
|
59
|
-
border: `2px dashed ${
|
|
60
|
-
isHovering || isDragging ? 'rgb(var(--v-theme-primary))' : '#e0e0e0'
|
|
61
|
-
}`,
|
|
50
|
+
? 'rgba(255, 255, 255, 0.08) !important'
|
|
51
|
+
: 'rgba(255, 255, 255, 0.03) !important',
|
|
62
52
|
transform: isHovering || isDragging ? 'translateY(-2px)' : 'none',
|
|
63
53
|
pointerEvents: loading ? 'none' : 'auto',
|
|
64
54
|
opacity: loading ? 0.6 : 1,
|
|
65
55
|
}"
|
|
66
|
-
|
|
56
|
+
variant="panel"
|
|
57
|
+
padding="pa-0"
|
|
67
58
|
@click="triggerFileDialog"
|
|
68
59
|
@dragover.prevent="isDragging = true"
|
|
69
60
|
@dragleave.prevent="isDragging = false"
|
|
@@ -72,8 +63,9 @@
|
|
|
72
63
|
<v-card-text class="pa-8">
|
|
73
64
|
<v-sheet
|
|
74
65
|
class="mx-auto mb-6 d-flex align-center justify-center"
|
|
75
|
-
:color="
|
|
76
|
-
|
|
66
|
+
:color="
|
|
67
|
+
isHovering || isDragging ? 'white' : 'rgba(255, 255, 255, 0.1)'
|
|
68
|
+
"
|
|
77
69
|
rounded="circle"
|
|
78
70
|
width="80"
|
|
79
71
|
height="80"
|
|
@@ -82,16 +74,13 @@
|
|
|
82
74
|
<v-icon
|
|
83
75
|
:icon="loading ? 'mdi-loading' : 'mdi-cloud-upload'"
|
|
84
76
|
size="40"
|
|
85
|
-
:color="isHovering || isDragging ? '
|
|
77
|
+
:color="isHovering || isDragging ? 'primary' : 'white'"
|
|
86
78
|
:class="{ rotating: loading }"
|
|
87
79
|
/>
|
|
88
80
|
</v-sheet>
|
|
89
81
|
|
|
90
82
|
<v-card-title
|
|
91
|
-
class="text-h6 font-weight-bold justify-center pa-0 mb-1"
|
|
92
|
-
:class="
|
|
93
|
-
isHovering || isDragging ? 'text-primary' : 'text-grey-darken-2'
|
|
94
|
-
"
|
|
83
|
+
class="text-h6 font-weight-bold justify-center pa-0 mb-1 text-white"
|
|
95
84
|
style="transition: color 0.3s ease"
|
|
96
85
|
>
|
|
97
86
|
{{ loading ? loadingText : isDragging ? dropText : idleText }}
|
|
@@ -110,7 +99,7 @@
|
|
|
110
99
|
:accept="accept"
|
|
111
100
|
@change="handleFileSelect"
|
|
112
101
|
/>
|
|
113
|
-
</
|
|
102
|
+
</GlassCard>
|
|
114
103
|
</v-hover>
|
|
115
104
|
</template>
|
|
116
105
|
|
|
@@ -81,43 +81,60 @@
|
|
|
81
81
|
@files-selected="processSelectedFiles"
|
|
82
82
|
/>
|
|
83
83
|
|
|
84
|
-
<v-card-text v-if="internal_files.length" class="mt-
|
|
85
|
-
<v-sheet class="d-flex align-center mb-
|
|
86
|
-
<v-icon icon="mdi-file-check" class="mr-
|
|
87
|
-
<span class="text-subtitle-
|
|
88
|
-
|
|
84
|
+
<v-card-text v-if="internal_files.length" class="mt-6">
|
|
85
|
+
<v-sheet class="d-flex align-center mb-4" color="transparent">
|
|
86
|
+
<v-icon icon="mdi-file-check" class="mr-3" color="primary" size="24" />
|
|
87
|
+
<span class="text-subtitle-1 font-weight-bold text-white">
|
|
88
|
+
Selected Files
|
|
89
|
+
</span>
|
|
90
|
+
<v-chip
|
|
91
|
+
size="small"
|
|
92
|
+
class="ml-3 bg-white-opacity-10"
|
|
93
|
+
color="white"
|
|
94
|
+
variant="flat"
|
|
95
|
+
>
|
|
89
96
|
{{ internal_files.length }}
|
|
90
97
|
</v-chip>
|
|
91
98
|
</v-sheet>
|
|
92
99
|
|
|
93
|
-
<v-sheet class="d-flex flex-wrap
|
|
100
|
+
<v-sheet class="d-flex flex-wrap ga-2" color="transparent">
|
|
94
101
|
<v-chip
|
|
95
102
|
v-for="(file, index) in internal_files"
|
|
96
103
|
:key="index"
|
|
97
104
|
closable
|
|
98
|
-
size="
|
|
99
|
-
color="
|
|
100
|
-
variant="
|
|
101
|
-
class="font-weight-medium"
|
|
105
|
+
size="default"
|
|
106
|
+
color="white"
|
|
107
|
+
variant="outlined"
|
|
108
|
+
class="font-weight-medium glass-ui border-opacity-10 px-4"
|
|
109
|
+
style="background: rgba(255, 255, 255, 0.05) !important"
|
|
102
110
|
@click:close="removeFile(index)"
|
|
103
111
|
>
|
|
104
|
-
<v-icon start size="
|
|
105
|
-
{{ file.name }}
|
|
112
|
+
<v-icon start size="18" color="primary">mdi-file-outline</v-icon>
|
|
113
|
+
<span class="text-white">{{ file.name }}</span>
|
|
114
|
+
<template #close>
|
|
115
|
+
<v-icon size="16" class="ml-2 opacity-60 hover-opacity-100"
|
|
116
|
+
>mdi-close-circle</v-icon
|
|
117
|
+
>
|
|
118
|
+
</template>
|
|
106
119
|
</v-chip>
|
|
107
120
|
</v-sheet>
|
|
108
121
|
</v-card-text>
|
|
109
122
|
|
|
110
|
-
<v-card-actions
|
|
123
|
+
<v-card-actions
|
|
124
|
+
v-if="!auto_upload && internal_files.length"
|
|
125
|
+
class="mt-6 pa-0"
|
|
126
|
+
>
|
|
111
127
|
<v-btn
|
|
112
128
|
color="primary"
|
|
113
|
-
variant="
|
|
129
|
+
variant="flat"
|
|
114
130
|
size="large"
|
|
115
|
-
rounded="
|
|
131
|
+
rounded="xl"
|
|
116
132
|
:loading="loading"
|
|
117
|
-
class="text-none px-
|
|
133
|
+
class="text-none px-6 font-weight-bold custom-upload-btn"
|
|
134
|
+
block
|
|
118
135
|
@click="upload_files"
|
|
119
136
|
>
|
|
120
|
-
<v-icon start size="
|
|
137
|
+
<v-icon start size="22">mdi-cloud-upload</v-icon>
|
|
121
138
|
Upload {{ internal_files.length }} file<span
|
|
122
139
|
v-if="internal_files.length > 1"
|
|
123
140
|
>s</span
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
defineProps({
|
|
3
|
+
variant: {
|
|
4
|
+
type: String,
|
|
5
|
+
default: "panel",
|
|
6
|
+
validator: (v) => ["panel", "ui"].includes(v),
|
|
7
|
+
},
|
|
8
|
+
rounded: { type: String, default: "xl" },
|
|
9
|
+
padding: { type: String, default: "pa-6" },
|
|
10
|
+
theme: { type: String, default: null },
|
|
11
|
+
})
|
|
12
|
+
|
|
13
|
+
const attrs = useAttrs()
|
|
14
|
+
const isInteractive = computed(() => !!attrs.onClick)
|
|
15
|
+
</script>
|
|
16
|
+
|
|
17
|
+
<template>
|
|
18
|
+
<v-card
|
|
19
|
+
v-bind="$attrs"
|
|
20
|
+
@mousedown.stop
|
|
21
|
+
@click.stop
|
|
22
|
+
@dblclick.stop
|
|
23
|
+
@wheel.stop
|
|
24
|
+
@contextmenu.stop
|
|
25
|
+
flat
|
|
26
|
+
:ripple="isInteractive"
|
|
27
|
+
:theme="theme || (variant === 'panel' ? 'dark' : undefined)"
|
|
28
|
+
:class="[
|
|
29
|
+
variant === 'panel' ? 'glass-panel' : 'glass-ui',
|
|
30
|
+
'border-thin',
|
|
31
|
+
`rounded-${rounded}`,
|
|
32
|
+
padding,
|
|
33
|
+
{ 'cursor-default': !isInteractive },
|
|
34
|
+
]"
|
|
35
|
+
>
|
|
36
|
+
<template v-for="(_, name) in $slots" #[name]="slotProps">
|
|
37
|
+
<slot :name="name" v-bind="slotProps || {}" />
|
|
38
|
+
</template>
|
|
39
|
+
</v-card>
|
|
40
|
+
</template>
|
|
41
|
+
|
|
42
|
+
<style scoped>
|
|
43
|
+
.border-thin {
|
|
44
|
+
border-style: solid !important;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.cursor-default {
|
|
48
|
+
cursor: default !important;
|
|
49
|
+
}
|
|
50
|
+
</style>
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
<script setup>
|
|
2
2
|
import VeaseViewToolbar from "@ogw_front/components/VeaseViewToolbar"
|
|
3
|
-
|
|
4
3
|
import { useHybridViewerStore } from "@ogw_front/stores/hybrid_viewer"
|
|
5
4
|
import { useViewerStore } from "@ogw_front/stores/viewer"
|
|
6
5
|
|
|
@@ -52,7 +51,7 @@
|
|
|
52
51
|
|
|
53
52
|
<template>
|
|
54
53
|
<ClientOnly>
|
|
55
|
-
<div class="fill-height" style="position: relative">
|
|
54
|
+
<div class="fill-height" style="position: relative; height: 100%">
|
|
56
55
|
<VeaseViewToolbar />
|
|
57
56
|
<slot name="ui"></slot>
|
|
58
57
|
<v-col
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
<script setup>
|
|
2
2
|
import fileDownload from "js-file-download"
|
|
3
|
+
import GlassCard from "@ogw_front/components/GlassCard"
|
|
3
4
|
import viewer_schemas from "@geode/opengeodeweb-viewer/opengeodeweb_viewer_schemas.json"
|
|
4
5
|
|
|
5
6
|
import { useViewerStore } from "@ogw_front/stores/viewer"
|
|
@@ -46,49 +47,59 @@
|
|
|
46
47
|
})
|
|
47
48
|
</script>
|
|
48
49
|
<template>
|
|
49
|
-
<
|
|
50
|
+
<GlassCard
|
|
50
51
|
v-if="show_dialog"
|
|
52
|
+
@click.stop
|
|
51
53
|
title="Take a screenshot"
|
|
52
54
|
:width="width"
|
|
53
|
-
|
|
55
|
+
:ripple="false"
|
|
56
|
+
variant="panel"
|
|
57
|
+
padding="pa-0"
|
|
58
|
+
class="position-absolute elevation-24"
|
|
54
59
|
style="z-index: 2; top: 90px; right: 55px"
|
|
55
60
|
>
|
|
56
|
-
<v-
|
|
57
|
-
<v-
|
|
58
|
-
<v-
|
|
59
|
-
<v-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
<v-
|
|
63
|
-
v-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
61
|
+
<v-card-text class="pa-5">
|
|
62
|
+
<v-container>
|
|
63
|
+
<v-row>
|
|
64
|
+
<v-col cols="8" class="py-0">
|
|
65
|
+
<v-text-field v-model="filename" label="File name"></v-text-field>
|
|
66
|
+
</v-col>
|
|
67
|
+
<v-col cols="4" class="py-0">
|
|
68
|
+
<v-select
|
|
69
|
+
v-model="output_extension"
|
|
70
|
+
:items="output_extensions"
|
|
71
|
+
label="Extension"
|
|
72
|
+
required
|
|
73
|
+
/>
|
|
74
|
+
</v-col>
|
|
75
|
+
</v-row>
|
|
70
76
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
77
|
+
<v-row>
|
|
78
|
+
<v-col cols="12" class="py-0">
|
|
79
|
+
<v-switch
|
|
80
|
+
v-model="include_background"
|
|
81
|
+
:disabled="output_extension !== 'png'"
|
|
82
|
+
label="Include background"
|
|
83
|
+
inset
|
|
84
|
+
></v-switch>
|
|
85
|
+
</v-col>
|
|
86
|
+
</v-row>
|
|
87
|
+
</v-container>
|
|
88
|
+
</v-card-text>
|
|
82
89
|
|
|
83
90
|
<template #actions>
|
|
84
|
-
<v-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
91
|
+
<v-card-actions class="justify-center pb-4">
|
|
92
|
+
<v-btn variant="text" color="primary" @click="emit('close')"
|
|
93
|
+
>Close</v-btn
|
|
94
|
+
>
|
|
95
|
+
<v-btn
|
|
96
|
+
variant="outlined"
|
|
97
|
+
:disabled="!filename || !output_extension"
|
|
98
|
+
color="primary"
|
|
99
|
+
@click="takeScreenshot()"
|
|
100
|
+
>Screenshot</v-btn
|
|
101
|
+
>
|
|
102
|
+
</v-card-actions>
|
|
92
103
|
</template>
|
|
93
|
-
</
|
|
104
|
+
</GlassCard>
|
|
94
105
|
</template>
|
|
@@ -8,16 +8,19 @@
|
|
|
8
8
|
|
|
9
9
|
<template>
|
|
10
10
|
<v-card-item class="flex-shrink-0 pa-0">
|
|
11
|
-
<
|
|
12
|
-
class="
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
11
|
+
<div class="px-8 pt-8 pb-4">
|
|
12
|
+
<div class="d-flex align-center mb-2">
|
|
13
|
+
<v-icon
|
|
14
|
+
icon="mdi-file-upload-outline"
|
|
15
|
+
class="mr-3 title-text"
|
|
16
|
+
size="32"
|
|
17
|
+
/>
|
|
18
|
+
<h2 class="title-text">Import Data</h2>
|
|
19
|
+
</div>
|
|
20
|
+
<p class="text-white text-body-1">
|
|
21
|
+
Select and configure your files for a seamless import.
|
|
22
|
+
</p>
|
|
23
|
+
</div>
|
|
21
24
|
</v-card-item>
|
|
22
25
|
|
|
23
26
|
<v-stepper-vertical
|
|
@@ -25,7 +28,7 @@
|
|
|
25
28
|
@update:model-value="current_step_index = $event - 1"
|
|
26
29
|
flat
|
|
27
30
|
non-linear
|
|
28
|
-
class="pa-0 ma-0 bg-
|
|
31
|
+
class="pa-0 ma-0 bg-transparent rounded-xl overflow-hidden custom-stepper"
|
|
29
32
|
>
|
|
30
33
|
<Step
|
|
31
34
|
v-for="(step, index) in steps"
|
|
@@ -35,3 +38,33 @@
|
|
|
35
38
|
/>
|
|
36
39
|
</v-stepper-vertical>
|
|
37
40
|
</template>
|
|
41
|
+
|
|
42
|
+
<style scoped>
|
|
43
|
+
.custom-stepper :deep(.v-stepper-vertical-item) {
|
|
44
|
+
background: transparent !important;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.custom-stepper :deep(.v-stepper-vertical-item__content) {
|
|
48
|
+
background: rgba(255, 255, 255, 0.03) !important;
|
|
49
|
+
border-radius: 12px;
|
|
50
|
+
margin: 8px 16px 16px 40px !important;
|
|
51
|
+
padding: 16px !important;
|
|
52
|
+
border: 1px solid rgba(255, 255, 255, 0.05);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.custom-stepper :deep(.v-avatar) {
|
|
56
|
+
border: 1px solid rgba(255, 255, 255, 0.2);
|
|
57
|
+
background: rgba(255, 255, 255, 0.1) !important;
|
|
58
|
+
color: white !important;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.custom-stepper :deep(.v-stepper-vertical-item--active .v-avatar) {
|
|
62
|
+
background: #3c9983 !important;
|
|
63
|
+
border-color: #3c9983;
|
|
64
|
+
color: #0a0f0e !important;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.custom-stepper :deep(.v-stepper-vertical-item__connector) {
|
|
68
|
+
border-color: rgba(255, 255, 255, 0.1) !important;
|
|
69
|
+
}
|
|
70
|
+
</style>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
-
import
|
|
3
|
-
import { useMenuStore } from "@ogw_front/stores/menu"
|
|
2
|
+
import GlassCard from "@ogw_front/components/GlassCard"
|
|
4
3
|
import { useTheme } from "vuetify"
|
|
4
|
+
import { useMenuStore } from "@ogw_front/stores/menu"
|
|
5
5
|
|
|
6
6
|
const CARD_WIDTH = 320
|
|
7
7
|
const CARD_HEIGHT = 500
|
|
@@ -99,9 +99,20 @@
|
|
|
99
99
|
color="transparent"
|
|
100
100
|
@click.stop
|
|
101
101
|
>
|
|
102
|
-
<
|
|
103
|
-
|
|
104
|
-
|
|
102
|
+
<GlassCard
|
|
103
|
+
@click.stop
|
|
104
|
+
:title="tooltip"
|
|
105
|
+
width="320"
|
|
106
|
+
:max-height="maxCardHeight"
|
|
107
|
+
:ripple="false"
|
|
108
|
+
variant="panel"
|
|
109
|
+
padding="pa-0"
|
|
110
|
+
class="elevation-24"
|
|
111
|
+
>
|
|
112
|
+
<v-card-text class="pa-5">
|
|
113
|
+
<slot name="options" />
|
|
114
|
+
</v-card-text>
|
|
115
|
+
</GlassCard>
|
|
105
116
|
</v-sheet>
|
|
106
117
|
</v-sheet>
|
|
107
118
|
</template>
|
|
@@ -48,7 +48,6 @@
|
|
|
48
48
|
get: () => dataStyleStore.meshEdgesVertexAttributeName(id.value),
|
|
49
49
|
set: async (newValue) => {
|
|
50
50
|
await dataStyleStore.setMeshEdgesVertexAttributeName(id.value, newValue)
|
|
51
|
-
await dataStyleStore.updateMeshEdgesVertexAttribute(id.value)
|
|
52
51
|
hybridViewerStore.remoteRender()
|
|
53
52
|
},
|
|
54
53
|
})
|
|
@@ -60,7 +59,6 @@
|
|
|
60
59
|
newValue[0],
|
|
61
60
|
newValue[1],
|
|
62
61
|
)
|
|
63
|
-
await dataStyleStore.updateMeshEdgesVertexAttribute(id.value)
|
|
64
62
|
hybridViewerStore.remoteRender()
|
|
65
63
|
},
|
|
66
64
|
})
|
|
@@ -115,15 +113,7 @@
|
|
|
115
113
|
<v-icon size="30" icon="mdi-ruler" v-tooltip:left="'Width'" />
|
|
116
114
|
</v-col>
|
|
117
115
|
<v-col justify="center">
|
|
118
|
-
<v-slider
|
|
119
|
-
v-model="size"
|
|
120
|
-
hide-details
|
|
121
|
-
min="0"
|
|
122
|
-
max="20"
|
|
123
|
-
step="2"
|
|
124
|
-
thumb-color="black"
|
|
125
|
-
ticks
|
|
126
|
-
/>
|
|
116
|
+
<v-slider v-model="size" hide-details min="0" max="20" step="2" />
|
|
127
117
|
</v-col>
|
|
128
118
|
</v-row>
|
|
129
119
|
<v-row>
|
|
@@ -49,7 +49,6 @@
|
|
|
49
49
|
get: () => dataStyleStore.meshCellsVertexAttributeName(id.value),
|
|
50
50
|
set: async (newValue) => {
|
|
51
51
|
await dataStyleStore.setMeshCellsVertexAttributeName(id.value, newValue)
|
|
52
|
-
await dataStyleStore.updateMeshCellsVertexAttribute(id.value)
|
|
53
52
|
hybridViewerStore.remoteRender()
|
|
54
53
|
},
|
|
55
54
|
})
|
|
@@ -61,7 +60,6 @@
|
|
|
61
60
|
newValue[0],
|
|
62
61
|
newValue[1],
|
|
63
62
|
)
|
|
64
|
-
await dataStyleStore.updateMeshCellsVertexAttribute(id.value)
|
|
65
63
|
hybridViewerStore.remoteRender()
|
|
66
64
|
},
|
|
67
65
|
})
|
|
@@ -79,7 +77,6 @@
|
|
|
79
77
|
get: () => dataStyleStore.meshCellsCellAttributeName(id.value),
|
|
80
78
|
set: async (newValue) => {
|
|
81
79
|
await dataStyleStore.setMeshCellsCellAttributeName(id.value, newValue)
|
|
82
|
-
await dataStyleStore.updateMeshCellsCellAttribute(id.value)
|
|
83
80
|
hybridViewerStore.remoteRender()
|
|
84
81
|
},
|
|
85
82
|
})
|
|
@@ -91,7 +88,6 @@
|
|
|
91
88
|
newValue[0],
|
|
92
89
|
newValue[1],
|
|
93
90
|
)
|
|
94
|
-
await dataStyleStore.updateMeshCellsCellAttribute(id.value)
|
|
95
91
|
hybridViewerStore.remoteRender()
|
|
96
92
|
},
|
|
97
93
|
})
|
|
@@ -44,6 +44,59 @@
|
|
|
44
44
|
hybridViewerStore.remoteRender()
|
|
45
45
|
},
|
|
46
46
|
})
|
|
47
|
+
const vertex_attribute_name = computed({
|
|
48
|
+
get: () => dataStyleStore.meshEdgesVertexAttributeName(id.value),
|
|
49
|
+
set: async (newValue) => {
|
|
50
|
+
await dataStyleStore.setMeshEdgesVertexAttributeName(id.value, newValue)
|
|
51
|
+
hybridViewerStore.remoteRender()
|
|
52
|
+
},
|
|
53
|
+
})
|
|
54
|
+
const vertex_attribute_range = computed({
|
|
55
|
+
get: () => dataStyleStore.meshEdgesVertexAttributeRange(id.value),
|
|
56
|
+
set: async (newValue) => {
|
|
57
|
+
await dataStyleStore.setMeshEdgesVertexAttributeRange(
|
|
58
|
+
id.value,
|
|
59
|
+
newValue[0],
|
|
60
|
+
newValue[1],
|
|
61
|
+
)
|
|
62
|
+
hybridViewerStore.remoteRender()
|
|
63
|
+
},
|
|
64
|
+
})
|
|
65
|
+
const vertex_attribute_color_map = computed({
|
|
66
|
+
get: () => dataStyleStore.meshEdgesVertexAttributeColorMap(id.value),
|
|
67
|
+
set: async (newValue) => {
|
|
68
|
+
await dataStyleStore.setMeshEdgesVertexAttributeColorMap(
|
|
69
|
+
id.value,
|
|
70
|
+
newValue,
|
|
71
|
+
)
|
|
72
|
+
hybridViewerStore.remoteRender()
|
|
73
|
+
},
|
|
74
|
+
})
|
|
75
|
+
const edge_attribute_name = computed({
|
|
76
|
+
get: () => dataStyleStore.meshEdgesEdgeAttributeName(id.value),
|
|
77
|
+
set: async (newValue) => {
|
|
78
|
+
await dataStyleStore.setMeshEdgesEdgeAttributeName(id.value, newValue)
|
|
79
|
+
hybridViewerStore.remoteRender()
|
|
80
|
+
},
|
|
81
|
+
})
|
|
82
|
+
const edge_attribute_range = computed({
|
|
83
|
+
get: () => dataStyleStore.meshEdgesEdgeAttributeRange(id.value),
|
|
84
|
+
set: async (newValue) => {
|
|
85
|
+
await dataStyleStore.setMeshEdgesEdgeAttributeRange(
|
|
86
|
+
id.value,
|
|
87
|
+
newValue[0],
|
|
88
|
+
newValue[1],
|
|
89
|
+
)
|
|
90
|
+
hybridViewerStore.remoteRender()
|
|
91
|
+
},
|
|
92
|
+
})
|
|
93
|
+
const edge_attribute_color_map = computed({
|
|
94
|
+
get: () => dataStyleStore.meshEdgesEdgeAttributeColorMap(id.value),
|
|
95
|
+
set: async (newValue) => {
|
|
96
|
+
await dataStyleStore.setMeshEdgesEdgeAttributeColorMap(id.value, newValue)
|
|
97
|
+
hybridViewerStore.remoteRender()
|
|
98
|
+
},
|
|
99
|
+
})
|
|
47
100
|
</script>
|
|
48
101
|
|
|
49
102
|
<template>
|
|
@@ -61,15 +114,7 @@
|
|
|
61
114
|
<v-icon size="30" icon="mdi-ruler" v-tooltip:left="'Width'" />
|
|
62
115
|
</v-col>
|
|
63
116
|
<v-col justify="center">
|
|
64
|
-
<v-slider
|
|
65
|
-
v-model="size"
|
|
66
|
-
hide-details
|
|
67
|
-
min="0"
|
|
68
|
-
max="20"
|
|
69
|
-
step="2"
|
|
70
|
-
thumb-color="black"
|
|
71
|
-
ticks
|
|
72
|
-
/>
|
|
117
|
+
<v-slider v-model="size" hide-details min="0" max="20" step="2" />
|
|
73
118
|
</v-col>
|
|
74
119
|
</v-row>
|
|
75
120
|
<v-row>
|
|
@@ -78,6 +123,12 @@
|
|
|
78
123
|
:id="id"
|
|
79
124
|
v-model:coloring_style_key="coloring_style_key"
|
|
80
125
|
v-model:color="color"
|
|
126
|
+
v-model:vertex_attribute_name="vertex_attribute_name"
|
|
127
|
+
v-model:vertex_attribute_range="vertex_attribute_range"
|
|
128
|
+
v-model:vertex_attribute_color_map="vertex_attribute_color_map"
|
|
129
|
+
v-model:edge_attribute_name="edge_attribute_name"
|
|
130
|
+
v-model:edge_attribute_range="edge_attribute_range"
|
|
131
|
+
v-model:edge_attribute_color_map="edge_attribute_color_map"
|
|
81
132
|
/>
|
|
82
133
|
</v-col>
|
|
83
134
|
</v-row>
|
|
@@ -44,6 +44,34 @@
|
|
|
44
44
|
hybridViewerStore.remoteRender()
|
|
45
45
|
},
|
|
46
46
|
})
|
|
47
|
+
const vertex_attribute_name = computed({
|
|
48
|
+
get: () => dataStyleStore.meshPointsVertexAttributeName(id.value),
|
|
49
|
+
set: async (newValue) => {
|
|
50
|
+
await dataStyleStore.setMeshPointsVertexAttributeName(id.value, newValue)
|
|
51
|
+
hybridViewerStore.remoteRender()
|
|
52
|
+
},
|
|
53
|
+
})
|
|
54
|
+
const vertex_attribute_range = computed({
|
|
55
|
+
get: () => dataStyleStore.meshPointsVertexAttributeRange(id.value),
|
|
56
|
+
set: async (newValue) => {
|
|
57
|
+
await dataStyleStore.setMeshPointsVertexAttributeRange(
|
|
58
|
+
id.value,
|
|
59
|
+
newValue[0],
|
|
60
|
+
newValue[1],
|
|
61
|
+
)
|
|
62
|
+
hybridViewerStore.remoteRender()
|
|
63
|
+
},
|
|
64
|
+
})
|
|
65
|
+
const vertex_attribute_color_map = computed({
|
|
66
|
+
get: () => dataStyleStore.meshPointsVertexAttributeColorMap(id.value),
|
|
67
|
+
set: async (newValue) => {
|
|
68
|
+
await dataStyleStore.setMeshPointsVertexAttributeColorMap(
|
|
69
|
+
id.value,
|
|
70
|
+
newValue,
|
|
71
|
+
)
|
|
72
|
+
hybridViewerStore.remoteRender()
|
|
73
|
+
},
|
|
74
|
+
})
|
|
47
75
|
</script>
|
|
48
76
|
|
|
49
77
|
<template>
|
|
@@ -61,15 +89,7 @@
|
|
|
61
89
|
<v-icon size="30" icon="mdi-ruler" v-tooltip:left="'Size'" />
|
|
62
90
|
</v-col>
|
|
63
91
|
<v-col justify="center">
|
|
64
|
-
<v-slider
|
|
65
|
-
v-model="size"
|
|
66
|
-
hide-details
|
|
67
|
-
min="0"
|
|
68
|
-
max="20"
|
|
69
|
-
step="2"
|
|
70
|
-
thumb-color="black"
|
|
71
|
-
ticks
|
|
72
|
-
/>
|
|
92
|
+
<v-slider v-model="size" hide-details min="0" max="20" step="2" />
|
|
73
93
|
</v-col>
|
|
74
94
|
</v-row>
|
|
75
95
|
<v-row>
|
|
@@ -78,6 +98,9 @@
|
|
|
78
98
|
:id="id"
|
|
79
99
|
v-model:coloring_style_key="coloring_style_key"
|
|
80
100
|
v-model:color="color"
|
|
101
|
+
v-model:vertex_attribute_name="vertex_attribute_name"
|
|
102
|
+
v-model:vertex_attribute_range="vertex_attribute_range"
|
|
103
|
+
v-model:vertex_attribute_color_map="vertex_attribute_color_map"
|
|
81
104
|
/>
|
|
82
105
|
</v-col>
|
|
83
106
|
</v-row>
|