@@ -4,10 +4,12 @@ import {
44 watch
55} from 'vue' ;
66import {
7+ algorithmsList ,
78 annotations ,
89 boundingBoxes ,
910 canvasSize ,
1011 fixations ,
12+ selectedAlgorithm ,
1113 selectedFixation
1214} from '../data' ;
1315import {
@@ -40,29 +42,20 @@ export const linesRenderer = ( linesCanvas: Ref<HTMLCanvasElement | null> ) => {
4042 // Render
4143 if ( linesDisplay . value === 'all' ) {
4244 annotations . value . forEach ( l => {
43- // TODO: Filter algorithm
44- drawLine ( l ) ;
45+ filterAlgorithms ( l , drawLine ) ;
4546 } ) ;
4647 } else if ( linesDisplay . value === 'previous' ) {
4748 if ( selectedFixation . value >= 0 )
4849 annotations . value . forEach ( l => {
49- // TODO: Filter algorithm
50- if ( l . fixationId === selectedFixation . value )
51- drawLine ( l ) ;
52- else if ( l . fixationId === selectedFixation . value - 1 )
53- drawLine ( l ) ;
50+ filterAlgorithms ( l , previousDrawer ) ;
5451 } ) ;
5552 } else if ( linesDisplay . value === 'surrounding' ) {
5653 if ( selectedFixation . value >= 0 )
5754 annotations . value . forEach ( l => {
58- // TODO: Filter algorithm
59- if ( l . fixationId > selectedFixation . value - numberOfLinesToRenderInSurroundingMode . value
60- || l . fixationId < selectedFixation . value + numberOfLinesToRenderInSurroundingMode . value )
61- drawLine ( l ) ;
55+ filterAlgorithms ( l , surroundingDrawer ) ;
6256 } ) ;
63-
64- // TODO: Do we want more settings here?
6557 } else if ( linesDisplay . value === 'allalgos' ) {
58+ // TODO: Do we want more settings here?
6659 if ( selectedFixation . value >= 0 )
6760 annotations . value . forEach ( l => {
6861 if ( l . fixationId === selectedFixation . value )
@@ -71,6 +64,36 @@ export const linesRenderer = ( linesCanvas: Ref<HTMLCanvasElement | null> ) => {
7164 }
7265 } ;
7366
67+ // TODO: Filter algorithm (also do not display if invalid fixation)
68+ const filterAlgorithms = ( l : EditorAnnotation , drawFunc : ( l : EditorAnnotation ) => void ) => {
69+ const assignType = fixations . value [ l . fixationId ] ! . assigned ;
70+
71+ if ( assignType === 'invalid' ) return ;
72+
73+ if ( assignType === 'assigned' ) drawFunc ( l ) ;
74+
75+ if ( ! l . algorithm ) {
76+ if ( selectedAlgorithm . value > - 1 ) return ;
77+ else drawFunc ( l ) ;
78+ } else {
79+ if ( l . algorithm === algorithmsList . value [ selectedAlgorithm . value ] ! )
80+ drawFunc ( l ) ;
81+ }
82+ } ;
83+
84+ const previousDrawer = ( l : EditorAnnotation ) => {
85+ if ( l . fixationId === selectedFixation . value )
86+ drawLine ( l ) ;
87+ else if ( l . fixationId === selectedFixation . value - 1 )
88+ drawLine ( l ) ;
89+ } ;
90+
91+ const surroundingDrawer = ( l : EditorAnnotation ) => {
92+ if ( l . fixationId > selectedFixation . value - numberOfLinesToRenderInSurroundingMode . value
93+ || l . fixationId < selectedFixation . value + numberOfLinesToRenderInSurroundingMode . value )
94+ drawLine ( l ) ;
95+ } ;
96+
7497 const drawLine = ( line : EditorAnnotation ) => {
7598 const fix = fixations . value [ line . fixationId ] ! ;
7699 const box = boundingBoxes . value [ line . boxId ] ! ;
0 commit comments