@@ -10,7 +10,7 @@ import { DEFAULT_ARROW, DEFAULT_MARKER, LINK_DATA, LINK_ID } from './constants';
1010import { AbstractDatasource } from './datasources/AbstractDataSource' ;
1111import { ClientSideDatasource } from './datasources/ClientSideDatasource' ;
1212import { ServerSideDatasource } from './datasources/ServerSideDatasource' ;
13- import { NodeChangedEvent , VirtualTourEvents } from './events' ;
13+ import { EnterArrowEvent , LeaveArrowEvent , NodeChangedEvent , VirtualTourEvents } from './events' ;
1414import {
1515 GpsPosition ,
1616 VirtualTourLink ,
@@ -306,6 +306,13 @@ export class VirtualTourPlugin extends AbstractConfigurablePlugin<
306306 }
307307 }
308308
309+ /**
310+ * Returns the current node
311+ */
312+ getCurrentNode ( ) : VirtualTourNode {
313+ return this . state . currentNode ;
314+ }
315+
309316 /**
310317 * Sets the nodes (client mode only)
311318 * @throws {@link PSVError } if not in client mode
@@ -648,6 +655,8 @@ export class VirtualTourPlugin extends AbstractConfigurablePlugin<
648655
649656 this . viewer . needsUpdate ( ) ;
650657 this . viewer . setCursor ( 'pointer' ) ;
658+
659+ this . dispatchEvent ( new EnterArrowEvent ( link , this . state . currentNode ) )
651660 }
652661
653662 private __onHoverObject ( viewerPoint : Point ) {
@@ -673,6 +682,8 @@ export class VirtualTourPlugin extends AbstractConfigurablePlugin<
673682
674683 this . viewer . needsUpdate ( ) ;
675684 this . viewer . setCursor ( null ) ;
685+
686+ this . dispatchEvent ( new LeaveArrowEvent ( link , this . state . currentNode ) )
676687 }
677688
678689 /**
0 commit comments