FirstThis is already done for the getAppearance() method in Shape3D. It is overloaded. The second implementation with a boolean parameter creates a new Appearance instance, if it is true and if it isn't already initialized fore it returns the current instance.
I see this now and will definitely use it when I next update my projects current Xith jars.
Are there plans to deprecating the non overwritten methods? Or perhaps changing them (getAperrance() to act like getAperrance(true) rather than getAperrance(false) I would imagine that the majority of the use of use of getApperance()/getAperrance(false) is inside of the rendering code.
SecondI could do that for the Appearance internals, too.
Sounds like a great addition to an AppearanceHelper class rather than Appearance itself. AppearanceHelper.supplyMaterial( appearance ) is descriptive and reduces bloat of the underlying class.
I think the methods should go in Appearance itself and I think they should follow the existing method of overloading with a boolean.
ThirdNote : I've since long added several methods like setColor() which creates XXXXXXXXAttributes needed.. Please check them out.
These are help full methods, but they are limited in scope. For example there are no methods to get at the Material. However I would not suggest adding such methods. I think doing so would just further inter connect Appearance and its field classes (such as Material)