Eccomi di ritorno.
Mi son preso una pausa tra vacanzina in italia e depressione per i mille bug riscontrati.
I bug sono tanti, ma le madonne sono ancora di più. Vinceremo noi
In pratica cosa ho deciso di fare:
- In cache ogni oggetto avrà x , y , w , h , come valori assoluti in base alle coordinate della dashboard, e pxx pxy pxw pxh che saranno tarati in funzione dei px dello schermo, ed un flag isVisible;
- su drag e zoom aggiornerò i 4 parametri px di tutta la cache, ed il flag isVisibile, ed anche l’array _imagesVisibleIds;
- creo due array con tutte le coordinate pxx e pxy di tutti i disegni visibili sulla dashboard:
- su aggiunta e rimozione di un disegno sarà sufficiente aggiungere / rimuovere la sua coordinata dagli array
- su drag e zoom dopo aver aggiornato tutta la cache, ricreo questi array con tutte le coordinate dei disegni isVisible === true
- quando devo aggiungere un nuovo disegno uso le coordinate minime di questi array come coordinate del tag <g>
- e su _appendDraw devo sistemare che vengano impilati correttamente in ordine di ID
Dovrebbe funzionate, ma ormai meglio non illudersi più