@@ -377,6 +377,24 @@ export default (state: MainLayoutState, action: Action) => {
377377 [ x , y ]
378378 )
379379 }
380+ case "DRAW_LINE" : {
381+ const { regionId } = state . mode
382+ const [ region , regionIndex ] = getRegion ( regionId )
383+ if ( ! region ) return setIn ( state , [ "mode" ] , null )
384+ return setIn (
385+ state ,
386+ [
387+ ...pathToActiveImage ,
388+ "regions" ,
389+ regionIndex ,
390+ ] ,
391+ {
392+ ...region ,
393+ x2 :x ,
394+ y2 :y ,
395+ }
396+ )
397+ }
380398 case "DRAW_EXPANDING_LINE" : {
381399 const { regionId } = state . mode
382400 const [ expandingLine , regionIndex ] = getRegion ( regionId )
@@ -449,6 +467,16 @@ export default (state: MainLayoutState, action: Action) => {
449467 { ...polygon , points : polygon . points . concat ( [ [ x , y ] ] ) }
450468 )
451469 }
470+ case "DRAW_LINE" : {
471+ const [ line , regionIndex ] = getRegion ( state . mode . regionId )
472+ if ( ! line ) break
473+ setIn (
474+ state ,
475+ [ ...pathToActiveImage , "regions" , regionIndex ] ,
476+ { ...line , x2 :x , y2 :y }
477+ )
478+ return setIn ( state , [ "mode" ] , null )
479+ }
452480 case "DRAW_EXPANDING_LINE" : {
453481 const [ expandingLine , regionIndex ] = getRegion ( state . mode . regionId )
454482 if ( ! expandingLine ) break
@@ -588,6 +616,27 @@ export default (state: MainLayoutState, action: Action) => {
588616 } )
589617 break
590618 }
619+ case "create-line" : {
620+ if ( state . mode && state . mode . mode === "DRAW_LINE" ) break
621+ state = saveToHistory ( state , "Create Line" )
622+ newRegion = {
623+ type : "line" ,
624+ x1 : x ,
625+ y1 : y ,
626+ x2 : x ,
627+ y2 : y ,
628+ highlighted : true ,
629+ editingLabels : false ,
630+ color : defaultRegionColor ,
631+ cls : defaultRegionCls ,
632+ id : getRandomId ( ) ,
633+ }
634+ state = setIn ( state , [ "mode" ] , {
635+ mode : "DRAW_LINE" ,
636+ regionId : newRegion . id ,
637+ } )
638+ break
639+ }
591640 case "create-keypoints" : {
592641 state = saveToHistory ( state , "Create Keypoints" )
593642 const [
0 commit comments