I bug nascono dal fatto che di “coordinate” ne ho un fottio:
- assolute rispetto all’intera dashboard
- relative rispetto allo schermo, quindi anche al tag svg grande quanto lo schermo
- relative all’interno del tag svg
E coi nomi di tutte queste variabili mi devo essere impappinato.
Ora ho appena fatto un commit in cui ho fatto un po di pulizia e omogeneità tra i nomi di queste diverse coord, lato client e lato server. Nell’oggetto “draw” tengo solo le chiavi di cui ho bisogno.
Prima avevo x , y , w , h , minX , minY , coordX , coordY , e altre, e stava a me ricordarmi il significato di ciascuna. Ora so che lato client parlo di coordinate relative, e lato server di coordinate assolute, quindi sul server avrò una sola chiave x, che sarà la coordinata assoluta, e lato client una sola x che sarà la coordinata relativa.
I metodi che si trovano nel mezzo, che si occupano di inviare e ricevere, hanno il compito di effettuare la conversione.
La situazione attuale:
- su drag e zoom calcolo bene le nuove coordinate (assolute della dashboard, e relative dei disegni)
- su salvataggio disegno, lato server salvo le giuste coordinate assolute, e l’aggiunta diretta del disegno sulla dashboard avviene alle giuste coordinate relative
- su download dei disegni, questi vengono inseriti sulla dashboard a delle coordinate relative sbagliate.
Devo cercare cosa c’è di diverso negli input del salvataggio quando arrivano dall’editor o dal server. Ipotizzo che sia che non ho calcolato anche le coordinate relative del tag <g> dell’svg. Ho convertito da assolute della dashboard a relative dello schermo, ma non ho aggiunto lo spostamento del tag <g> rispetto allo schermo.
Credo