Hi Rob,
I think the method you've described is about as good as
possible - its difficult in any case. I'm encouraged to
hear that you've already had some success. You may be
able to borrow some code from the render() method of
visad/java2d/VisADCanvasJ2d.java.
If you willing to contribute your code back to VisAD,
that would be great. Please let us know if you have any
other questions or problems.
Cheers,
Bill
On Thu, 8 Jul 2004, Rob Hackett wrote:
> Hi
>
> I have a requirement to produce hardcopy charts from a visad
> application.
> Due to the complexity of the data, the charts will likely be on A1 paper at
> a resolution way beyond what is possible using a simple raster based screen
> dump of a visad display. The only solution is to plot the components of the
> display via a vector based printing system such as postscript or CGM.
>
> First of all, has anybody else done this already? I'd hate to reinvent
> the
> weel.
>
> If not, I have worked out a simple prototype of a system of doing this
> which appears to work. It goes as follows:
>
> Prepare your data as normal and visualise using a DisplayImplJ3D.
> When the chart is ready to plot, create a DisplayImplJ2D off-screen.
> Use getMapVector() method of DisplayImplJ3D to get all the ScalarMaps
> used
> in the on-screen display
> Clone each of these ScalarMaps and add them to the off-screen display
> Use getRenderers() method of DisplayImplJ3D to get the DataRenderers
> from
> the on-screen display
> From each of the DataRenderers, use getLink().getData() to get the data
> rendered on-screen
> Create a DataReferenceImpl for each of these data items, and add to the
> off-screen display
> Tweak the off-screen ScalarMaps and Controls so that they have suitable
> scales for an A1 image (or A4, etc)
> Get the DisplayRendererJ2D from the off-screen display using
> getDisplayRenderer()
> Get the root VisADGroup from the display renderer using getRoot()
> Recursively parse this group to access its VisADAppearance children
> From these, extract the VisADGeometryArray objects and plot them to a
> postscript file, PDF file, etc
> Send the postscript file, PDF file, etc to the A1 printer
>
> Does anybody have any comments on this way of printing? I have tested it
> with some success, but before I invest more time in implementing it I would
> be interested to know if anybody has any better ideas.
>
> Thanks,
>
> Rob
>
>
>
>
>