# TransparencyInterpolator neu starten



## mar99 (7. Mrz 2004)

Ich habe eine komplette Szene erstellt, hierbei habe ich für einen ColorCube einen TransparencyInterpolator verwendet der einmal durchläuft. Nun sollte dieser Interpolator jedoch zur Laufzeit (sozusagen nach Usereingabe) neu gestartet werden, also das ich den Würfel wieder sehe --> ich muss irgendwie das behavior verändern können. Bis jetzt bin ich jedoch nur auf die Lösung gekommen eine neue BranchGroup anzulegen, das schaut mir jedoch performancemäßig nicht gerade optimal aus, da ich hunderte solcher Objekte habe und die relativ oft neu angelegt werden müßten.

Gibt es irgend eine Möglichkeit einen neuen TransparencyInterpolator anzulegen oder den vorhandenen neu zu starten? Bis jetzt ist es mir nur gelungen die transparency des Würfels zu setzen (jedoch ohne Interpolator   )

Danke für jeden Tipp,
mar99


----------



## Oxygenic (7. Mrz 2004)

mar99 hat gesagt.:
			
		

> Gibt es irgend eine Möglichkeit einen neuen TransparencyInterpolator anzulegen oder den vorhandenen neu zu starten?



Wo ist eigentlich das Problem? new TransparencyInterpolator() oder das Alpha-Objekt neu erzeugen / neu starten und fertig.

cu 

Oxy 

http://forum.javacore.de - das Java-Forum! 
http://www.3dchat.org - Welcome To The unreal World!


----------



## mar99 (7. Mrz 2004)

Das Problem ist das Neustarten des TransparencyInterpolators.

mar99

PS: Sorry für den Betreff, hab ich erst jetzt gesehen das ich da etwas vergeigt habe  ???:L


----------



## Oxygenic (7. Mrz 2004)

Ja und was spricht gegen ein neu hinzugefügtes Alpha-Objekt?

cu 

Oxy 

http://forum.javacore.de - das Java-Forum! 
http://www.3dchat.org - Welcome To The unreal World!


----------



## mar99 (7. Mrz 2004)

Dagegen sprach eigentlich nur, das ich nicht wußte das es so geht   (ich hab diese Methode wohl ganz einfach übersehen) --> danke und *freu*

Ich hoffe zumindest das ich das nun so halbwegs richtig gemacht habe. Zumindest dauert es nun so lange bis die Würfel unsichtbar sind wie ich es beim neuen Alpha Objekt eingestellt habe. Jedoch ergeben sich andere Probleme, und zwar beginnt der Interpolator nicht mit der der Zeit zu der das Alpha Objekt angelegt wurde, sondern alle Interpolatoren beginnen immer zur gleichen Zeit (da ich zu beginn alle zur gleichen Zeit angelegt habe?).
Die Situation ist also folgende. Ich habe 10 Würfel, und mein Testtreiber ruft nun jede Sekunde die manipulate Methode auf in der im wesentlichen folgendes drinnen  ist (nur der Teil, der hierfür relevant ist)


```
manipulate() {
  Alpha a = new Alpha(-1, 4000);
  TransparencyInterpolator traInt = (TransparencyInterpolator) t.getChild(1); /* t ist die TransformGroup die einen Würfel und den dazugehörigen TransparencyInterpolator enthält*/
  traInt.setAlpha(a);
}
```

Das führt nun dazu das *alle* meine Würfel immer zur gleichen Zeit komplett sichtbar sind, und nicht - wie ich aufgrund der sekündlichen Aufrufe der manipulate Methode vermute - der erste komplett, der zweite zu 0,75, der dritte zu 0.5 usw.

Das herumspielen mit a.setStartTime() usw. bisher auch noch zu keinem entsprechenden Resultat geführt.

Wenn ich nun 
	
	
	
	





```
Alpha a = new Alpha(-1, 4000);
```
auf 
	
	
	
	





```
Alpha a = new Alpha(1, 4000);
```
ändere werden die Würfel gar nicht mehr angezeigt.

mar99


----------

