|
From: Peter Murray-R. <pm...@ca...> - 2003-02-27 13:15:06
|
At 12:15 26/02/2003 +0000, Egon Willighagen wrote: >-------------------------------------------------------------------------- > RFC CDK #12 > > Name: common API for CDK renderers > Proposed: 2003-02-26 > > PROPOSAL > >A API to be implemented by all CDK renderers and possible others, e.g. >Jmol's 3D renderer. The API would define how the renderer can be instantiated >and how a molecule can be passed to the viewer that should be displayes by >the viewer. <snip/> I think this is very important. At present I use Jmol as my 3D renderer for JUMBO (after an unfortunate excursion into Java3D). There are some fundamental questions: - does the renderer support events? At present Jmol supports atom selection (does it support click?). I would like Jmol not only to render my chemical objects but to interact with the calling program or library. - what is the minimal data model that has to be passed? molecules/atoms/bonds? Does the renderer modify these in any way (if so it becomes an editor). I would suggest it should NOT at this stage. However it could be valuable to return a transformation matrix (e.g. so the user could transform the molecule and apply this to their data) - does the renderer have any chemical perception (e.g. join-the-dots, aromaticity?) I would argue not and that it should render exactly what is passed to it. - What control should the user have over the rendering? should it all be interactive through a GUI or passed as an argument). - should there be different configurations of the renderer? I would like a simple applet for embedding in HTML and a more complex application with pulldown menus etc. etc. - should the renderer deal with non-molecular objects (boxes, ellipses, etc.) as well as molecules? - if there are different renderers for the same data should they be able to access the same data structure. For example should 2 and 3 D representation of a single molecule be viewable simultaneously. What happens if the data in the model is changed? I suspect that it may be useful to exclude some of these at this stage :-) P. |