September 2009


Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Sean Luke <[log in to unmask]>
Reply To:
MASON Multiagent Simulation Toolkit <[log in to unmask]>
Wed, 2 Sep 2009 16:21:27 +0200
text/plain (59 lines)
Okay, here's the deal.

Java3D isn't, shall we say, the easiest to use rendering system.  But  
it's what we need to make do with.  :-(  One of the problems with  
Java3D is that it has a lot of hidden, undocumented nonsense.   
Changing colors in spheres is one of them.  Things that Sun never told  

1. You can't create a *new* Appearance object once the scene is live  
-- you have to change the existing one.
2. BUT you still have to call setAppearance(...) with this existing  
3. AND you have to call setAppearance on the shape, not the  
SpherePortrayal3D.  Even though the SpherePortrayal3D has... as  
setAppearance method.


Okay, I've got something working, so if you need something immediately  
I can provide you with an example, and two revised files, which will  
change colors as you like.  But to do it well and properly, I'll need  
to make a few more tweaks.


On Sep 2, 2009, at 6:59 AM, Joerg Hoehne wrote:

> Dear developers,
> I'm trying to change the color of an SpherePortrayal3D object during  
> runtime. I've checked my
> code and I'm positive the color of the object will be changed but  
> not visualized accordingly.
> I've got the impression the color of a XXXPortrayal3D object can't  
> be changed after the first
> construction (or display) of the 3D scene by j3d. Before the first  
> construction/display I was able to
> change the color with the same code snipped found below.
> Here is the code snippet anyway ('this' references to a subclassed  
> SpherePortrayal3D object):
> this.appearance = SpherePortrayal3D.appearanceForColor(color);
> There has been a discussion some years ago about a similar topic  
> (changing the transparency
> during runtime) and I wonder if a solution has been found.
> I'm working on a Mac with OS X 10.6. The monitored effect might be  
> os depended because j3d
> might cache some information about the displayed objects and assumes  
> some properties won't
> change in the future.
> Help!
> Jörg