MeshLab: Development page

This page is devoted to some internal development notes. Given the linguistic coherency among developers they will be only in italian. Sorry.

CVS        

Al solito mi raccomando di seguire tutte le solite pratiche del bravo programmatore:

Per una intro generale a cvs e a come accedere ai servizi cvs di sourceforge leggetevi la lunga introduzione a cvs su:

http://sourceforge.net/cvs/?group_id=149444

 

Web

Le paginette web di sourceforge sono tenute anche loro in cvs.
Quindi se fate modifiche fatele sul vostro file system, committatele e poi a mano fate update tramite ftp.
(in alternativa qualcuno che ha voglia potrebbe settare un task cron sulla shell di sf che aggiorni la copia in public_html direttamente via cvs update una volta al giorno). Il comando da dare su shell.sf.net una volta dentro la dir meshlab/htdocs e'

cvs -d :pserver:anonymous@cvs1:/cvsroot/meshlab update

Mailing List

C'e' una mailing list su sourceforge cui siete pregati di iscrivervi tutti:

http://lists.sourceforge.net/lists/listinfo/meshlab-devel

La lista la useremo per tutte le comunicazioni semi-urgenti (e.g. quelle che uno si aspetta vengano recepite entro un giorno) che riguardano soprattutto lo sviluppo di MeshLab. Ad esempio per essere sicuri che tutti sappiano cosa succede nel caso di cambi significativi di interfacce comuni...

Note di Compilazione

Si assume che 

  1. QT 4.1 sia installato
  2. il modulo cvs meshlab e quello di vcg siano allo stesso livello e che il modulo che contiene la vcg lib (modulo cvs che si chiama vcg) sia in una dir chiamata non vcg ma sf. (ad es. dovreste avere qualcosa tipo \doc\sf\vcg\space\point3.h e \doc\meshlab\src\meshlab\meshlab.pro )
  3. ci sia OpenGL, ovviamente da qualche parte nei path standard del vostro compilatore dovreste avere include e lib per OpenGL. Di solito non dovreste far nulla e il compilatore dovrebbe trovare tutto quel che riguarda opengl (e.g. "< gl/gl.h>" e "< gl/glu.h>") senza chiedere nulla.
  4. GLUT NON serve per meshlab, ma puo' servire per compilare gli esempi di lib3ds (che in effetti non servono)
  5. allo stesso livello di sf e meshlab ci sia una dir code con dentro una sotto dir lib con dentro i contenuti delle seguenti librerie open source:
    1. glew. Dentro ci scompattate il contenuto dei sorgenti dell'ultima distribuzione di glew (ci deve essere glew.c tra i file, meshlab per evitare orridi problemi di unicode/debug/dll si ricompila direttamente glew invece di linkarsi la lib)
    2. lib3ds-1.2.0 il contenuto dell'ultima distribuzione ufficiale (a seconda dell'ambiente di sviluppo dovete anche ricompilarvela)
    3. lib3ds-1.3.0 una copia del cvs di lib3ds acceduto in cvs anonimous da sourceforge.
    4. bzip2-1.0.3 il contenuto della distribuzione ufficiale di bzip2. Sotto win la lib deve essere compilate staticamente, altrimenti vi dovete copiare la dll assieme all'eseguibile del meshlab.

La libreria VCG, pagina ufficiale vcg.sf.net, e' scaricabile in cvs anonimo

 :pserver:anonymous@vcg.cvs.sourceforge.net:/cvsroot/vcg

Gli esempi di base della libreria li trovate sotto sf/apps/sample. Lasciate perdere la roba sotto test. 

Guida di stile.

Task

lista incompleta e inaffidabile di possibili sottotask che mi vengono in mente tanto per fissare le idee e fare qualche esempio... Un-Allocated tasks
  1. Filtri input per altri formati (wrl)
  2. parametrizzazione automatica
  3. Unit testing
Allocated tasks
  1. Meccanismo creazione automatica del dialogo richiesta di parametri di un filtro, in base ai parametri stessi (pirosu)
  2. simplification con tex coord (pirosu)
  3. Sezioni di mesh (come polyline o come piccole mesh con uno spessore. (andrenucci / editclip)
  4. Editing stile painting (brush painting sugli attributi dei vertici della mesh) ( gfrei / editpaint )
  5. Measuring Tape (colombini / edittape),
  6. trackball smooth: (colombini / integrated)
    1. zoom interpolato della camera su doppio click
    2. copy and paste delle trackball/viste
    3. spinning della trackball
  7. Rendering usando punti automatico durante interazione quando framerate basso (colombini / integrated)
  8. Selezioni stile bacchetta magica, o selezione solo delle facce visibili (cerisoli)
  9. Selection per vertex/face,componenti? (cerisoli)
  10. compressed wedge normals (volpe santonocito)
  11. crease cutting and welding (volpe santonocito)
  12. T-Vertex and inconsistency managing (volpe santonocito)
  13. Heuristic for folded and flipped triangles (volpe santonocito)
  14. remove duplicated faces (volpe santonocito filtergeom )
  15. Shader OpenGL multi passata in un formato piu' diffuso (RenderMonkey?) (giardina, fusco, galilei / rendershader)
  16. save snapshot come gif animata (leone)
  17. multi texture switchable (leone / rendertexture )
  18. Texture Viewer Dialog (con possibilita' di vedere come la mesh si stende sulla texture e zoom e pan) (leone/decorshowtexture)
SourceForge.net Logo