I have done a large commit to CVS which includes, along with lots of
stuff which no doubt is buggy and will break things :-) a significant
rewrite of SpherePortrayal3D, ShapePortrayal3D, CylinderPortrayal3D,
and ConePortrayal3D, and some additions to SimplePortrayal3D, and the
introduction of a new class, PrimitivePortrayal3D. The new class
hierarchy looks like this:
Shape... (though it's of course not a Java3D Primitive)
More to come. SimplePortrayal3D has had new AppearanceFor... methods
added and some more flag-setter methods. PrimitivePortrayal3D is
abstract, with a bunch of general methods for its subclasses,
including the primary getModel(...) method. The subclasses are all
relatively simplified. PrimitivePortrayal3D has some documentation
that might be useful to you too.
Check out the new balls3d demo, which subclasses SpherePortrayal3D and
overrides the getModel(...) method in the "new" way so to speak to set
the attributes and change the size of the spheres.
I'd like to extend this approach to a few more problematic 3D
portrayals, notably the various edge portrayals and CubePortrayal3D,
and have asked Gabriel to look into it.