I would like to extend Sage to allow for recursive composition of graphics arrays. (I.e. to enable having graphics arrays as individual elements in a larger graphics array; as far as I can tell, Sage's graphics_array does not support such higher-order graphics arrays.)
For this, the function that generates the graphics array must take a 1d or 2d array of graphics objects as one of its arguments, and return a graphics object. In order to do this, it would be helpful for me to understand Sage's "data model" for graphics. In particular, I need to determine if Sage's graphics objects are cleanly separate from possible display channels. To see why, consider, for example, Mathematica Graphics objects, which are at the center of its graphics model. As far as I can tell from Mathematica's documentation, to the user, such a Graphics object can be interpreted (as a first approximation at least) as nothing more than an abstract textual representation of a graphic, independent of any display channel. This textual representation can be interpreted by various drivers to produced various types of output (e.g. a screen display or PostScript). The key point is that there appears to be a clean separation between Mathematica's Graphics objects, and the channels used for displaying them. (I repeat that all of this is nothing more than a guess on my part, since Mathematica is a black box.) This separation of the abstract Graphics objects from any concrete display channel greatly simplifies the problem of creating composite Graphics objects from other Graphics objects, since there's no need to reconcile any possible differences that may exist in channel information for the individual components. Is there a similar separation between the specification of Sage graphics objects and display channels? To put it differently, how much information about display channels is encoded in these objects? Is there a write-up (or just some descriptive UML) on Sage's graphics model that discusses these topics? Any other reading material or advice that may be helpful for implementing the recursive composition functionality I described above would be much appreciated. TIA! ~kj -- To post to this group, send an email to sage-devel@googlegroups.com To unsubscribe from this group, send an email to sage-devel+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URL: http://www.sagemath.org