Pages: [1]   Go Down
Print
Author Topic: Chissà come si fa?  (Read 1463 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Laplacian
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 160



« on: 20-08-2009, 21:51:25 »

Nel realizzare il progetto di java3d ho incontrato un problema che non sono riuscito a risolvere e mi chiedevo se qualcuno potesse aiutarmi.
Praticamente vorrei assegnare una certa Appearance ad un oggetto caricato tramite file .obj. Dato che l'oggetto restituito da ObjectFile è di tipo Scene, posso solamente ricavarne un BranchGroup completamente inutile perché non possiede il metodo setAppearance (ho scoperto che, addirittura, il branchgroup contiene un oggetto di tipo vector del package java.util, boh). Invece dovrei riuscire a creare un oggetto Primitive oppure Shape3D che hanno, invece, questo metodo.

PS: Se non riesco a risolvere mi sa che mi tocca leggere il file di testo e creare manualmente i vertici, e le geometrie.
Logged

A man's dreams are an index to his greatness.
Heroshi
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 124



« Reply #1 on: 21-08-2009, 08:21:23 »

Ciao
Dunque se ricordo bene devi convertire l'oggetto in questione in una shape3D e da qui assegnargli l'appearance.
Provalo e dimmi se ti funziona
Logged
Laplacian
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 160



« Reply #2 on: 21-08-2009, 10:02:44 »

Il mio intento sarebbe proprio questo. Purtroppo quando carico il file .obj, il metodo load() di ObjectFile mi restituisce un oggetto Scene. Da qui non saprei come continuare per creare una Shape3D: posso chiederti se sai come si fa? Magari mi dai una dritta
Logged

A man's dreams are an index to his greatness.
mascarinho87
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 103



« Reply #3 on: 21-08-2009, 10:35:33 »

Ciao Laplacian, vediamo un pò...

1) Carichiamo la scena importata e il Branch Group di riferimento, che avrà come figli gli oggetti (Shape 3D) della scena

Scene s = f.load("Geometrie/"+nome+".obj");
BranchGroup bgGeom=s.getSceneGroup();

2) Importiamo l'oggetto (supponiamo sia l'unico presente) contenuto nella scena importata

Shape3D oggetto = (Shape3D)bgGeom.getChild(0);   //Primo oggetto della scena

Et voila  ... hai l'oggetto, da cui con getGeometry e getAppearance puoi accedere a geometria e aspetto dell'oggetto.

Dovrebbe funzionare, fammi sapere  ok
 
Logged

Se anche tu ami i Within Temptation, iscriviti al forum del fanclub italiano:
http://within-temptation.forumitalian.com/

o visita il sito ufficiale:
http://www.within-temptation.com/
Laplacian
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 160



« Reply #4 on: 21-08-2009, 11:07:32 »

Ho scoperto che, addirittura, il branchgroup contiene un oggetto di tipo vector del package java.util, boh.
Grazie a tutti di aver risposto, soprattutto a mascarinho87, funziona alla perfezione! Come avevo già scritto nel primo topic avevo tentato questa strada ma quello che controllavo era il risultato del metodo getAllChildren() che, ovviamente, da come risultato un Vector . Ragazzi, non ci sto più con la testa!  testate
Logged

A man's dreams are an index to his greatness.
Pages: [1]   Go Up
Print
Jump to: