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:
- Fate update ogni volta che vi mettete a lavorare, non solo
del repository di MeshLab, ma anche di quello di VCG
- Fate edit delle cose che iniziate a cambiare,
- Prima di fare edit controllate che non l'abbia in edit
qualcun altro,
- Non lasciate in edit le cose per troppo tempo,
- Non committate mai cose che non compilano o che non fanno
funzionare le cose degli altri,
- Committate spesso (compatibilmente con quanto di cui sopra).
- Commentate SEMPRE
ogni
vostro commit (in inglese please)
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
- QT 4.0 sia installato
- il modulo cvs meshlab e quello di vcg siano allo stesso
livello e
che il modulo che contiene la vcg lib sia in una
dir chiamata sf. (ad
es. dovreste avere qualcosa tipo \doc\sf\vcg\space\point3.h e
\doc\meshlab\src\meshlab\meshlab.pro )
La libreria VCG, pagina ufficiale vcg.sf.net, e'
scaricabile in cvs
anonimo
:ext:anonymous@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
I vari task che vi sono assegnati sono registrati come
task dei
rispettivi sottoprogetti
che fanno parte di MeshLab
Latronico, Venturi
- LOOP
Implementare la tecnica di subdivision surface di Loop.
- DECIMATOR
Implementare con
algoritmo di cluster.
- REMOVER
Implementare la rimozione i triangoli che hanno almeno un lato piu'
lungo di una soglia
- APPLY
TRASFORM Applicare le trasformazioni
Scala, Rotazione, Traslazione
- COLOR NON
MANIFOLD Colorare i vertici che non sono 2-manifold
Mochi, Vacca, Portelli
- Release:
Iniziate a prendere confidenza con il meccanismo di release di SF e
fate la prima rel dei binari e dei src di MeshLab. Aggiungete una dir
"docs" dove mettete i readme che accompagnano la release. Suggerisco di
scegliere subito un naming preciso per le release (e per i file che
compongono la release) copiate da altri progetti (ad es metro di vcg) e
scrivete le vostre scelte da qualche parte. Procuratevi anche un
ambiente linux e compilate anche anche per qualche distrib. Fate un
solo package (chiamato MeshLab) e tre file al suo interno (binari win
linux e src).
- Logging e toolbar,
Adattate la classe LogStream.h alle nostre necessita', inizialmente
fate solo che mostra il dump delle varie scritte (ad es. usate la
classe callback nella lettura ply) e modificate la classe di
interfaccia dei filtri in modo da fornire un modo per fare output.
Aggiungete anche una toolbar di rendering option stile quella di
Easy3dView (per ottenere i vari modi basta cambiare i parametri
della chiamata alla glw.draw() nella Render) ritagliate pure le icone
da meshlab/images/easyIcons.png (o fatene di migliori se ne avete
voglia)
Vannini, Gangemi, Pirro
- CURVATURE
Implementare il calcolo delle curvature principali gaussiane e media
per una mesh. Inizialmente fate una dir meshlab/src/test/curvature e fate
esperimenti li' dentro prendendo spunto come stile dagli esempi che
trovate sotto sf/apps/sample. Inizialmente partite aggiungendo ad un
vostro tipo vertice un membro di tipo curvature con tutto quello che vi
serve. Poi se tutto funge come si deve lo si aggiunge come componente.
Buzzelli, Mazzanti
- Obj
file format input Aggiungere il supporto del formato obj, come
documentazione del formato 3d partite da:
http://www.csit.fsu.edu/~burkardt/data/obj/obj.html
http://www.dcs.ed.ac.uk/home/mxr/gfx/3d/OBJ.spec
Raccogliete anche un po di modelli 3d obj liberi che esemplifichino i
vari tipi di attributi che possono comparire nei modelli.