Ciao.
Ho creato un progetto con il pattern MVP.
La View è una classe che gestisce la rappresentazione opengl con uno scenegraph ,ha un metodo che viene richiamato per ridisegnare (OnPaint) e "disegna" la serie di oggetti che ha appunto nello scenegraph.
Per aggiungere o cancellare un oggetto dallo scenegraph utilizzo due funzioni pubbliche sulla view Add(GraphicsItem gI) e Remove(GraphicsItem gI).
Io in pratica agisco su questi graphicsitem che vengono ridisegnati ogni volta e non faccio altro che aggiungere / rimuovere oggetti 3d.
Ma se volessi gestire altre operazioni grafiche come la selezione rappresentata con un contorno di colore rosso , o aggiungere delle quote all' oggetto grafico , come è meglio procedere?
io penso in due modi :
1)aggiungere un metodo sulla view che fa l'operazione , e passargli sempre l'oggetto rappresentazione grafica.
2)creare una classe entità con uno stato , e la sua rappresentazione grafica e utilizzare ad es un decorator pattern per aggiungere tipi di rappresentazione(quote e selezioni)e nella classe view chiamare un Paint sulla rappresentazione grafica corrente.
A seconda dei decorator impostati il paint si comporterà diversamente.
il fatto di creare questa classe entity mi servirebbe anche per gestire la logica e le parti non grafiche dellì' elemento.
cosa mi consigliate?
come strutturare queste classi?
grazie.
grazie.