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

Capitolo 52: GeometryArray e le sue sottoclassi.

 

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

 

 
Vai all'inizio della pagina