NOTA! Questo sito utilizza i cookie e tecnologie simili.

Se non si modificano le impostazioni del browser, l'utente accetta. Per saperne di piu'

Approvo

Guida Java 3D - 52: GeometryArray e le sue sottoclassi

Guida Java 3D, corso di base 

 

In GeometryArray ad ogni vertice (che può essere anche uno solo, definendo quindi un punto) è associata una locazione in un array.

Nell'array verranno quindi definite le coordinate dei vari vertici componenti la geometria.

La geometria così definita verrà poi associata, mediante Reference, ad uno o più Shape3D dello Scene Graph.

 

 

Il costruttore principale di GeometryArray è GeometryArray(int vertexCount, int vertexFormat), dove:

  • vertexCount indica il numero di vertici presenti nell'array;

  • vertexFormat è una maschera, cioè un campo dove ogni bit è un flag,

dunque è possibile mettere anche più argomenti separati da un '|' (or bit a bit); i flag indicano quali informazioni sono presenti per ciascun vertice; campi possibili sono, ad esempio, COORDINATES, NORMALS, COLOR 3 e COLOR 4.

Java 3D Gerarchia classi Geometry

 

 

E' qui che molte nozioni di geometria possono tornare utili...

Per definire le coordinate dei vertici di alcuni poligoni, infatti, è possibile fare affidamento, per esempio, su uno o più cicli for per generare, in base ad una formula precedentemente definita, i parametri: è così possibile creare solidi regolari con poche righe di codice anzichè andando a definire le coordinate vertice per vertice (soluzione buona, tra l'altro, solo per un determinato problema, non scalabile).

I vertici, con le rispettive coordinate, vengono aggiunti ad un GeometryArray con:

  • setCoordinate(int index, double[] coordinate);

  • setCoordinate(int index, float[] coordinate);

  • setCoordinate(int index, Point3d coordinate);

  • setCoordinate(int index, Point3f coordinate);   .

 

Le firme sono molto simili: double e float si differenziano per la precisione raggiunta, mentre la scelta tra valori numerici ed oggetti Point va fatta considerando che tipo di operazioni è necessario svolgere partendo dai valori delle coordinate (una semplice memorizzazione può essere effettuata usando solo float e double, mentre Point mette a disposizione metodi per calcolare facilmente, ad esempio, la distanza tra due punti, ecc..).

Vi sono poi metodi per gestire i colori dei vertici (byte[], color3*, color4*, ...), le normali (con vettori o float[]) e le coordinate delle textures: verranno presi in esame prossimamente.

 

 

 

SOTTOCLASSI DI GEOMETRY ARRAY

GeometryArray mette a disposizione delle sottoclassi utili per gestire geometrie particolari (singoli punti, linee, poligoni), come:

 

  • PointArray;

  • LineArray;

  • TriangleArray;

  • QuadArray.

Vi è poi IndexedGeometryArray, che permette di specificare come debbano essere collegati i vertici indicizzati, permettendone il riuso, per formare le geometrie desiderate.

Un'altra figlia interessante di GeometryArray è GeometryStripArray, che consente di riutilizzare i vertici secondo schemi ben definiti (una geometria creata con una sottoclasse diretta di GeometryArray non consente, infatti, il riuso dei vertici).

Le figlie di GeometryStripArray sono tre e verranno prese tutte in esame nei prossimi capitoli.

Java 3D Oggetti Geometry Array

 

Pagina di Francesco Milanese (redbaron85) su Facebook   Pagina di Francesco Milanese (redbaron85) su Google Plus   Profilo di Francesco Milanese (redbaron85) su LinkedIn   Pagina di Francesco Milanese (redbaron85) su Twitter   Canale Youtube di Francesco Milanese (redbaron85ct)

Vai all'inizio della pagina