8000 feat(RenderWindowInteractor): rendererChangeEvent · Kitware/vtk-js@42605f6 · GitHub
[go: up one dir, main page]

Skip to content

Commit 42605f6

Browse files
committed
feat(RenderWindowInteractor): rendererChangeEvent
The RendererChangeEvent is fired whenever the current renderer changes.
1 parent f095768 commit 42605f6

File tree

2 files changed

+32
-1
lines changed

2 files changed

+32
-1
lines changed

Sources/Rendering/Core/RenderWindowInteractor/index.d.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ declare enum handledEvents {
4141
'Interaction',
4242
'EndInteraction',
4343
'AnimationFrameRateUpdate',
44+
'RendererChange',
4445
}
4546

4647
/**
@@ -412,6 +413,12 @@ export interface vtkRenderWindowInteractor extends vtkObject {
412413
*/
413414
invokeEndInteractionEvent(callData: IRenderWindowInteractorEvent): void;
414415

416+
/**
417+
*
418+
* @param {IRenderWindowInteractorEvent} callData
419+
*/
420+
invokeRendererChangeEvent(callData: IRenderWindowInteractorEvent): void;
421+
415422
/**
416423
*
417424
*/
@@ -794,6 +801,16 @@ export interface vtkRenderWindowInteractor extends vtkObject {
794801
priority?: number
795802
): Readonly<vtkSubscription>;
796803

804+
/**
805+
*
806+
* @param {InteractorEventCallback} cb The callback to be called.
807+
* @param {Number} [priority] The priority of the event.
808+
*/
809+
onRendererChangeEvent(
810+
cb: InteractorEventCallback,
811+
priority?: number
812+
): Readonly<vtkSubscription>;
813+
797814
/**
798815
*
799816
* @param {Function} cb The callback to be called.
@@ -971,6 +988,12 @@ export interface vtkRenderWindowInteractor extends vtkObject {
971988
*/
972989
rotateEvent(args: any): any;
973990

991+
/**
992+
*
993+
* @param args
994+
*/
995+
rendererChangeEvent(): any;
996+
974997
/**
975998
* Add an HTMLElement as the new container for the interactor.
976999
* All events will be bound to this new container.

Sources/Rendering/Core/RenderWindowInteractor/index.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ const handledEvents = [
6868
'Interaction',
6969
'EndInteraction',
7070
'AnimationFrameRateUpdate',
71+
'RendererChange',
7172
];
7273

7374
function preventDefault(event) {
@@ -163,7 +164,11 @@ function vtkRenderWindowInteractor(publicAPI, model) {
163164

164165
function updateCurrentRenderer(x, y) {
165166
if (!model._forcedRenderer) {
167+
const oldRenderer = model.currentRenderer;
166168
model.currentRenderer = publicAPI.findPokedRenderer(x, y);
169+
if (oldRenderer !== model.currentRenderer) {
170+
publicAPI.rendererChangeEvent();
171+
}
167172
}
168173
}
169174

@@ -1188,7 +1193,10 @@ function vtkRenderWindowInteractor(publicAPI, model) {
11881193

11891194
publicAPI.setCurrentRenderer = (r) => {
11901195
model._forcedRenderer = !!r;
1191-
model.currentRenderer = r;
1196+
if (r !== model.currentRenderer) {
1197+
model.currentRenderer = r;
1198+
publicAPI.rendererChangeEvent();
1199+
}
11921200
};
11931201

11941202
publicAPI.setContainer = (container) => {

0 commit comments

Comments
 (0)
0