Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
28c50f2
Initialize PR
SpliiT Jan 27, 2026
256725b
new changes with min max
SpliiT Jan 28, 2026
17ad156
Centralize actions
SpliiT Jan 28, 2026
99983b7
edit colormap logic and save state of attribut
SpliiT Jan 29, 2026
b3f2127
rm useless imports
SpliiT Jan 29, 2026
65f0384
Merge branch 'next' into feat/color-bar
SpliiT Jan 29, 2026
490a35f
edit components
SpliiT Jan 29, 2026
fdb806f
Merge branch 'feat/color-bar' of https://github.com/Geode-solutions/O…
SpliiT Jan 29, 2026
4fb4d63
Apply prepare changes
SpliiT Jan 29, 2026
8f5df62
fix logic and design
SpliiT Feb 2, 2026
5872876
reapply all styles after import project
SpliiT Feb 2, 2026
301c891
remove div
SpliiT Feb 2, 2026
cdeea09
fix comments
SpliiT Feb 2, 2026
331efa8
optimize attribute selectors and colormap logic
SpliiT Feb 2, 2026
16d5cec
Merge branch 'next' into feat/color-bar
SpliiT Feb 2, 2026
5118fad
Apply prepare changes
SpliiT Feb 2, 2026
96d92e6
less css more vuetify : adjustements style
SpliiT Feb 2, 2026
331ad8a
Merge branch 'feat/color-bar' of https://github.com/Geode-solutions/O…
SpliiT Feb 2, 2026
c626465
fix error
SpliiT Feb 2, 2026
6502705
try to solve tets
SpliiT Feb 3, 2026
e21b1bf
Apply prepare changes
SpliiT Feb 3, 2026
6056023
fix comments
SpliiT Feb 3, 2026
d79ed29
Apply prepare changes
SpliiT Feb 3, 2026
4f361a7
reverse tests
SpliiT Feb 3, 2026
7995cfe
Merge branch 'feat/color-bar' of https://github.com/Geode-solutions/O…
SpliiT Feb 3, 2026
44a189e
Apply prepare changes
SpliiT Feb 3, 2026
ffa14bc
refactor: standardize mesh attribute handling with granular API funct…
SpliiT Feb 3, 2026
ace832a
Apply prepare changes
SpliiT Feb 3, 2026
1eea027
last changes
SpliiT Feb 4, 2026
04bd249
Merge branch 'next' into feat/color-bar
SpliiT Feb 4, 2026
940209f
Apply prepare changes
SpliiT Feb 4, 2026
cf4c1fb
edit useless functions
SpliiT Feb 4, 2026
4f8c8f6
edit and readd throw error
SpliiT Feb 4, 2026
4a5d222
Apply prepare changes
SpliiT Feb 4, 2026
483be6b
fix comments
SpliiT Feb 4, 2026
93001f3
Merge branch 'feat/color-bar' of https://github.com/Geode-solutions/O…
SpliiT Feb 4, 2026
d3f925a
Apply prepare changes
SpliiT Feb 4, 2026
1037dbb
rm throw
SpliiT Feb 4, 2026
1861a0b
Apply prepare changes
SpliiT Feb 4, 2026
61cefeb
tests integration
SpliiT Feb 4, 2026
07d24d6
Merge branch 'feat/color-bar' of https://github.com/Geode-solutions/O…
SpliiT Feb 4, 2026
6f40131
Apply prepare changes
SpliiT Feb 4, 2026
5dac623
remove useless models
SpliiT Feb 4, 2026
d846347
Merge branch 'feat/color-bar' of https://github.com/Geode-solutions/O…
SpliiT Feb 4, 2026
d3e605a
efactor attribute selectors architecture
SpliiT Feb 5, 2026
4063e7b
rm comments
SpliiT Feb 5, 2026
d2125f6
reset range
SpliiT Feb 5, 2026
e3922c4
refacto
SpliiT Feb 5, 2026
a95d9db
Apply prepare changes
SpliiT Feb 5, 2026
543f5d2
Last commit of the day
SpliiT Feb 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
87 changes: 78 additions & 9 deletions app/components/Viewer/EdgedCurve/SpecificEdgesOptions.vue
Original file line number Diff line number Diff line change
Expand Up @@ -44,22 +44,87 @@
hybridViewerStore.remoteRender()
},
})
const vertex_attribute = computed({
get: () => dataStyleStore.meshEdgesVertexAttribute(id.value),
const vertex_attribute_name = computed({
get: () => dataStyleStore.meshEdgesVertexAttributeName(id.value),
set: (newValue) => {
dataStyleStore.setMeshEdgesVertexAttribute(id.value, newValue)
dataStyleStore.setMeshEdgesVertexAttributeName(id.value, newValue)
hybridViewerStore.remoteRender()
},
})
const edge_attribute = computed({
get: () => dataStyleStore.meshEdgesEdgeAttribute(id.value),
const vertex_attribute_range = computed({
get: () => dataStyleStore.meshEdgesVertexAttributeRange(id.value),
set: (newValue) => {
dataStyleStore.setMeshEdgesEdgeAttribute(id.value, newValue)
dataStyleStore.setMeshEdgesVertexAttributeRange(
id.value,
newValue[0],
newValue[1],
)
const colorMap = dataStyleStore.meshEdgesVertexAttributeColorMap(id.value)
if (colorMap) {
dataStyleStore.setMeshEdgesVertexAttributeColorMap(
id.value,
colorMap,
newValue[0],
newValue[1],
)
}
hybridViewerStore.remoteRender()
},
})
const vertex_attribute_color_map = computed({
get: () => dataStyleStore.meshEdgesVertexAttributeColorMap(id.value),
set: (newValue) => {
const range = dataStyleStore.meshEdgesVertexAttributeRange(id.value)
dataStyleStore.setMeshEdgesVertexAttributeColorMap(
id.value,
newValue,
range[0],
range[1],
)
hybridViewerStore.remoteRender()
},
})
const edge_attribute_name = computed({
get: () => dataStyleStore.meshEdgesEdgeAttributeName(id.value),
set: (newValue) => {
dataStyleStore.setMeshEdgesEdgeAttributeName(id.value, newValue)
hybridViewerStore.remoteRender()
},
})
const edge_attribute_range = computed({
get: () => dataStyleStore.meshEdgesEdgeAttributeRange(id.value),
set: (newValue) => {
dataStyleStore.setMeshEdgesEdgeAttributeRange(
id.value,
newValue[0],
newValue[1],
)
const colorMap = dataStyleStore.meshEdgesEdgeAttributeColorMap(id.value)
if (colorMap) {
dataStyleStore.setMeshEdgesEdgeAttributeColorMap(
id.value,
colorMap,
newValue[0],
newValue[1],
)
}
hybridViewerStore.remoteRender()
},
})
const edge_attribute_color_map = computed({
get: () => dataStyleStore.meshEdgesEdgeAttributeColorMap(id.value),
set: (newValue) => {
const range = dataStyleStore.meshEdgesEdgeAttributeRange(id.value)
dataStyleStore.setMeshEdgesEdgeAttributeColorMap(
id.value,
newValue,
range[0],
range[1],
)
hybridViewerStore.remoteRender()
},
})
</script>

<template>
<ViewerContextMenuItem
:itemProps="props.itemProps"
Expand Down Expand Up @@ -92,8 +157,12 @@
:id="id"
v-model:coloring_style_key="coloring_style_key"
v-model:color="color"
v-model:vertex_attribute="vertex_attribute"
v-model:edge_attribute="edge_attribute"
v-model:vertex_attribute_name="vertex_attribute_name"
v-model:vertex_attribute_range="vertex_attribute_range"
v-model:vertex_attribute_color_map="vertex_attribute_color_map"
v-model:edge_attribute_name="edge_attribute_name"
v-model:edge_attribute_range="edge_attribute_range"
v-model:edge_attribute_color_map="edge_attribute_color_map"
/>
</v-col>
</v-row>
Expand Down
87 changes: 78 additions & 9 deletions app/components/Viewer/Generic/Mesh/CellsOptions.vue
Original file line number Diff line number Diff line change
Expand Up @@ -45,22 +45,87 @@
hybridViewerStore.remoteRender()
},
})
const vertex_attribute = computed({
get: () => dataStyleStore.meshCellsVertexAttribute(id.value),
const vertex_attribute_name = computed({
get: () => dataStyleStore.meshCellsVertexAttributeName(id.value),
set: (newValue) => {
dataStyleStore.setMeshCellsVertexAttribute(id.value, newValue)
dataStyleStore.setMeshCellsVertexAttributeName(id.value, newValue)
hybridViewerStore.remoteRender()
},
})
const cell_attribute = computed({
get: () => dataStyleStore.meshCellsCellAttribute(id.value),
const vertex_attribute_range = computed({
get: () => dataStyleStore.meshCellsVertexAttributeRange(id.value),
set: (newValue) => {
dataStyleStore.setMeshCellsCellAttribute(id.value, newValue)
dataStyleStore.setMeshCellsVertexAttributeRange(
id.value,
newValue[0],
newValue[1],
)
const colorMap = dataStyleStore.meshCellsVertexAttributeColorMap(id.value)
if (colorMap) {
dataStyleStore.setMeshCellsVertexAttributeColorMap(
id.value,
colorMap,
newValue[0],
newValue[1],
)
}
hybridViewerStore.remoteRender()
},
})
const vertex_attribute_color_map = computed({
get: () => dataStyleStore.meshCellsVertexAttributeColorMap(id.value),
set: (newValue) => {
const range = dataStyleStore.meshCellsVertexAttributeRange(id.value)
dataStyleStore.setMeshCellsVertexAttributeColorMap(
id.value,
newValue,
range[0],
range[1],
)
hybridViewerStore.remoteRender()
},
})
const cell_attribute_name = computed({
get: () => dataStyleStore.meshCellsCellAttributeName(id.value),
set: (newValue) => {
dataStyleStore.setMeshCellsCellAttributeName(id.value, newValue)
hybridViewerStore.remoteRender()
},
})
const cell_attribute_range = computed({
get: () => dataStyleStore.meshCellsCellAttributeRange(id.value),
set: (newValue) => {
dataStyleStore.setMeshCellsCellAttributeRange(
id.value,
newValue[0],
newValue[1],
)
const colorMap = dataStyleStore.meshCellsCellAttributeColorMap(id.value)
if (colorMap) {
dataStyleStore.setMeshCellsCellAttributeColorMap(
id.value,
colorMap,
newValue[0],
newValue[1],
)
}
hybridViewerStore.remoteRender()
},
})
const cell_attribute_color_map = computed({
get: () => dataStyleStore.meshCellsCellAttributeColorMap(id.value),
set: (newValue) => {
const range = dataStyleStore.meshCellsCellAttributeRange(id.value)
dataStyleStore.setMeshCellsCellAttributeColorMap(
id.value,
newValue,
range[0],
range[1],
)
hybridViewerStore.remoteRender()
},
})
</script>

<template>
<ViewerContextMenuItem
:itemProps="props.itemProps"
Expand All @@ -75,8 +140,12 @@
v-model:coloring_style_key="coloring_style_key"
v-model:color="color"
v-model:textures="textures"
v-model:vertex_attribute="vertex_attribute"
v-model:cell_attribute="cell_attribute"
v-model:vertex_attribute_name="vertex_attribute_name"
v-model:vertex_attribute_range="vertex_attribute_range"
v-model:vertex_attribute_color_map="vertex_attribute_color_map"
v-model:cell_attribute_name="cell_attribute_name"
v-model:cell_attribute_range="cell_attribute_range"
v-model:cell_attribute_color_map="cell_attribute_color_map"
/>
</template>
</template>
Expand Down
8 changes: 0 additions & 8 deletions app/components/Viewer/Generic/Mesh/EdgesOptions.vue
Original file line number Diff line number Diff line change
Expand Up @@ -44,15 +44,7 @@
hybridViewerStore.remoteRender()
},
})
const vertex_attribute = computed({
get: () => dataStyleStore.meshEdgesVertexAttribute(id.value),
set: (newValue) => {
dataStyleStore.setMeshEdgesVertexAttribute(id.value, newValue)
hybridViewerStore.remoteRender()
},
})
</script>

<template>
<ViewerContextMenuItem
:itemProps="props.itemProps"
Expand Down
2 changes: 0 additions & 2 deletions app/components/Viewer/Generic/Mesh/PointsOptions.vue
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@
},
})
</script>

<template>
<ViewerContextMenuItem
:itemProps="props.itemProps"
Expand Down Expand Up @@ -78,7 +77,6 @@
:id="id"
v-model:coloring_style_key="coloring_style_key"
v-model:color="color"
v-model:vertex_attribute="vertex_attribute"
/>
</v-col>
</v-row>
Expand Down
1 change: 0 additions & 1 deletion app/components/Viewer/Generic/Mesh/PolygonsOptions.vue
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,6 @@
},
})
</script>

<template>
<ViewerContextMenuItem
:itemProps="props.itemProps"
Expand Down
1 change: 0 additions & 1 deletion app/components/Viewer/Generic/Mesh/PolyhedraOptions.vue
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@
},
})
</script>

<template>
<ViewerContextMenuItem
:itemProps="props.itemProps"
Expand Down
80 changes: 80 additions & 0 deletions app/components/Viewer/Options/AttributeColorBar.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
<script setup>
import ColorMapPicker from "./ColorMapPicker.vue"

const props = defineProps({
autoMin: { type: Number, default: 0 },
autoMax: { type: Number, default: 1 },
})

const minimum = defineModel("minimum", { type: Number })
const maximum = defineModel("maximum", { type: Number })
const colorMap = defineModel("colorMap", { type: String })

const minValue = computed({
get: () => minimum.value ?? props.autoMin,
set: (val) => {
minimum.value = val
},
})

const maxValue = computed({
get: () => maximum.value ?? props.autoMax,
set: (val) => {
maximum.value = val
},
})

onMounted(() => {
if (minimum.value === undefined) minimum.value = props.autoMin
if (maximum.value === undefined) maximum.value = props.autoMax
})

function reset() {
minimum.value = props.autoMin
maximum.value = props.autoMax
}
</script>

<template>
<div class="attribute-colorbar mt-3">
<ColorMapPicker v-model="colorMap" :min="minValue" :max="maxValue" />

<v-row dense align="center" class="mt-2">
<v-col cols="5">
<v-text-field
v-model.number="minValue"
label="Min"
type="number"
density="compact"
hide-details
variant="outlined"
/>
</v-col>
<v-col cols="2" class="d-flex justify-center">
<v-btn
icon="mdi-arrow-left-right"
size="x-small"
variant="text"
@click="reset"
v-tooltip="'Reset range'"
/>
</v-col>
<v-col cols="5">
<v-text-field
v-model.number="maxValue"
label="Max"
type="number"
density="compact"
hide-details
variant="outlined"
/>
</v-col>
</v-row>
</div>
</template>

<style scoped>
.attribute-colorbar {
width: 100%;
}
</style>
Loading
Loading