@@ -34,7 +34,8 @@ export default class MeasureToolLayer extends BaseTextLayer<TextData> {
3434 // eslint-disable-next-line @typescript-eslint/no-explicit-any
3535 event : ( name : string , data : any ) => void ,
3636 spectroInfo : SpectroInfo ,
37- measuring ?: boolean
37+ measuring ?: boolean ,
38+ yValue ?: number
3839 ) {
3940 super ( geoViewerRef , event , spectroInfo ) ;
4041
@@ -58,7 +59,7 @@ export default class MeasureToolLayer extends BaseTextLayer<TextData> {
5859 this . pointAnnotation = null ;
5960 this . lineAnnotation = null ;
6061 this . dragging = false ;
61- this . yValue = 0 ;
62+ this . yValue = yValue || 0 ;
6263 this . color = 'white' ;
6364 this . hovering = false ;
6465
@@ -71,7 +72,7 @@ export default class MeasureToolLayer extends BaseTextLayer<TextData> {
7172 this . moveHandler = ( e : GeoEvent ) => {
7273 if ( e && this . dragging ) {
7374 this . updateRuler ( e . mouse . geo . y ) ;
74- }
75+ }
7576 } ;
7677 this . hoverHandler = ( e : GeoEvent ) => {
7778 if ( e ) {
@@ -145,6 +146,7 @@ export default class MeasureToolLayer extends BaseTextLayer<TextData> {
145146 if ( newY < 0 ) {
146147 return ;
147148 }
149+ this . event ( "measure:dragged" , { yValue : newY } ) ;
148150 this . yValue = newY ;
149151 const spectroWidth = this . compressedView ? this . scaledWidth : this . spectroInfo . width ;
150152 this . lineAnnotation
@@ -186,10 +188,10 @@ export default class MeasureToolLayer extends BaseTextLayer<TextData> {
186188 }
187189
188190 clearRulerLayer ( ) {
189- this . pointAnnotation . data ( [ ] ) ;
190- this . lineAnnotation . data ( [ ] ) ;
191- this . textLayer . data ( [ ] ) . draw ( ) ;
192- this . frequencyRulerLayer . draw ( ) ;
191+ this . pointAnnotation ? .data ( [ ] ) ;
192+ this . lineAnnotation ? .data ( [ ] ) ;
193+ this . textLayer ? .data ( [ ] ) . draw ( ) ;
194+ this . frequencyRulerLayer ? .draw ( ) ;
193195 }
194196
195197 destroy ( ) {
@@ -200,6 +202,15 @@ export default class MeasureToolLayer extends BaseTextLayer<TextData> {
200202 }
201203 }
202204
205+ setScaledDimensions ( width : number , height : number ) {
206+ super . setScaledDimensions ( width , height ) ;
207+ this . clearRulerLayer ( ) ;
208+ if ( this . rulerOn ) {
209+ this . enableDrawing ( ) ;
210+ this . updateRuler ( this . yValue ) ;
211+ }
212+ }
213+
203214 redraw ( ) {
204215 if ( this . rulerOn ) {
205216 this . updateRuler ( this . yValue ) ;
0 commit comments