Skip to content

Commit

Permalink
Merge pull request #362 from Kitware/2d-paint
Browse files Browse the repository at this point in the history
feat(PaintTool): Toggle 2D paintbrush
  • Loading branch information
floryst committed Aug 14, 2020
2 parents f11be94 + 7af35b2 commit b6145a4
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 14 deletions.
7 changes: 7 additions & 0 deletions src/components/tools/PaintTool/script.js
Expand Up @@ -2,6 +2,7 @@ import { mapState, mapActions } from 'vuex';

import vtkDataArray from 'vtk.js/Sources/Common/Core/DataArray';
import vtkPaintFilter from 'vtk.js/Sources/Filters/General/PaintFilter';
import { SlicingMode } from 'vtk.js/Sources/Rendering/Core/ImageMapper/Constants';

import vtkLabelMap from 'paraview-glance/src/vtk/LabelMap';
import PalettePicker from 'paraview-glance/src/components/widgets/PalettePicker';
Expand Down Expand Up @@ -70,6 +71,7 @@ export default {
editableLabelmapName: '',
brushSizeMax: 100,
radius: 5,
brush2D: false,
// for view purpose only
// [ { label, color, opacity }, ... ], sorted by label asc
colormapArray: [],
Expand Down Expand Up @@ -485,6 +487,11 @@ export default {
}, priority);

const s1 = viewWidget.onStartInteractionEvent(() => {
if (this.brush2D) {
this.filter.setSlicingMode(SlicingMode['XYZ'[view.getAxis()]]);
} else {
this.filter.setSlicingMode(SlicingMode.NONE);
}
this.filter.startStroke();
this.filter.addPoint(
this.paintProxy.getWidgetState().getTrueOrigin()
Expand Down
41 changes: 27 additions & 14 deletions src/components/tools/PaintTool/template.html
Expand Up @@ -96,29 +96,42 @@
wrap
align-center
>
<v-flex xs2>
<span class="body-2">Radius</span>
<v-flex xs10 class="mt-1">
<label class="v-label theme--light" for="paint-2D-brush-toggle">2D Brush</label>
</v-flex>
<v-flex xs8>
<v-slider
min="1"
:max="brushSizeMax"
step="1"
dirty
<v-flex xs2 class="mt-1">
<v-switch
v-model="brush2D"
id="paint-2D-brush-toggle"
class="mt-n1 pt-0"
hide-details
:value="radius"
@input="setRadius"
/>
</v-flex>
<v-flex xs2>
<v-text-field
type="number"
<v-flex xs12>
<v-slider
label="Radius"
min="1"
:max="brushSizeMax"
step="1"
dirty
hide-details
:value="radius"
@input="setRadius"
/>
>
<template v-slot:append>
<v-text-field
type="number"
min="1"
:max="brushSizeMax"
step="1"
hide-details
single-line
class="mt-n1 pt-0"
:value="radius"
@input="setRadius"
/>
</template>
</v-slider>
</v-flex>
<v-flex xs12>
<v-list :class="$style.fullWidth">
Expand Down

0 comments on commit b6145a4

Please sign in to comment.