Skip to content

Commit

Permalink
docs(shapewidget): programmatically place shape widgets
Browse files Browse the repository at this point in the history
  • Loading branch information
finetjul authored and floryst committed Jul 30, 2024
1 parent 43a471c commit d88b328
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,14 @@
<option name="ellipseWidget" selected>ellipseWidget</option>
<option name="circleWidget">circleWidget</option>
</select>
</td>
</td>
</tr>
<tr>
<td>
<button class="reset">reset</button>
</td>
<td>
<button class="place">place</button>
</td>
</tr>
</table>
27 changes: 27 additions & 0 deletions Sources/Widgets/Widgets3D/ShapeWidget/example/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -346,6 +346,33 @@ document.querySelector('.widget').addEventListener('input', (ev) => {
}
});

document.querySelector('.place').addEventListener('click', () => {
if (activeWidget !== 'rectangleWidget') {
const widget = widgets[activeWidget];
const widgetIndex = activeWidget === 'ellipseWidget' ? 1 : 2;
const handle =
activeWidget === 'ellipseWidget'
? scene.ellipseHandle
: scene.circleHandle;
const coord1 = [0, 0, 0];
const coord2 = [100, 100, 100];
const slicePos = image.imageMapper.getSlice();
const axis = image.imageMapper.getSlicingMode() % 3;
coord1[axis] = slicePos;
coord2[axis] = slicePos;
handle.grabFocus();
handle.placePoint1(coord1);
handle.placePoint2(coord2);
// Place circle
handle.setCorners(coord1, coord2);
// Recompute text position
handle.invokeInteractionEvent();
handle.loseFocus();
updateWidgetVisibility(widget, coord1, axis, widgetIndex);
scene.renderWindow.render();
}
});

document.querySelector('.reset').addEventListener('click', () => {
resetWidgets();
scene.renderWindow.render();
Expand Down

0 comments on commit d88b328

Please sign in to comment.