From: Miguel <mi...@jm...> - 2004-10-21 05:07:54
|
Dmitry wrote: > 1. I'd like to add some menuItems to the JmolPopup menu > > but I didn't find any public methods to do so (only package methods) > > definitely I can modify jmol code or use reflection mechanism but I'd > prefer not to do so The JmolPopup is not part of the JmolViewer ... it is considered external= user interface that the application must provide. Take a look at the JmolApplet.java code to see a relatively simple exampl= e. > 2. is there some reasonable explanation why > class JmolViewer is final? > > in general I found that many classes and methods in Jmol suit > have unnecessary restricted access Hmmm ... fair question. JmolViewer is final and many classes/methods have restricted access because, frankly, I don't think anyone should be building things based upon them. I still consider that code very volatile and subject to major restructuring. At one level, all (most of?) the functionality should be available throug= h the scripting language. I consider the JmolViewer a component. If people need additional functionality, then we should modify the API to provide access to what they need. If you have special needs/requirements/wishes then I'll be glad to discus= s it. > 3. if I understand right in order to add new reader I have to modify > ModelResolver class > > is there any way to add new reader without modifying ModelResolver > class? No, not within the current SmarterModelAdapter framework. You must modify the ModelResolver to extend it. > so Modelresolver can pick up new format from > a) introspection > b) external preferences file > c) java preferences > d) java system preferences > e) explicit registration > ... The functionality of the ModelResolver could rather easily be extended using one of the mechanism that you suggest ... but currently there is no= mechanism. The SmarterModelAdapter is intended to support public file formats in a very flexible way, so that the Jmol application, the JmolApplet, and applications embedding the JmolViewer can easily read lots of file formats. HOWEVER, there is a completely other option that you may want to consider= . The entire SmarterModelAdapter is simply an implementation of the ModelAdapter API. If you don't want to work within the SmarterModelAdapte= r framework then you can simply subclass the ModelAdapter and write all you= r own stuff. If you only want to support a proprietary file format, or if you don't even have a file but want to load from your own data structures, then you= should consider implementing your own ModelAdapter. > 4. is there way to support transparency in the Jmol? Not yet, but I am working on it. > I found that BufferedImage from Swing3D class > was created with TYPE_INT_RGB modifier why not TYPE_INT_ARGB? For performance reasons. > I tried to change it to TYPE_INT_ARGB and didn't notice > any performance penalty (I have Powerbook G4/1.25GHz/1GB/MAC > OS X 10.3.5/Java 1.4.2 Update 2) On a modern machine like yours with a powerful graphics subsystem you wil= l not notice a performance difference. On older machines I was able to measure a performance difference. However, there is a much more fundamental problem. The org.jmol.g3d graphics engine is what needs to deal with transparency, not the Java class library. In order to get 3d functionality we must render the entire scene off-screen. This image gets sent to the screen in a single drawImage call= . So Java 2D transparency won't help at all. (unless you want to display th= e molecule over an image background). I am working on 5 levels of transparency along with antialiasing. > 5. what is the status of generating molecular surfaces? It is on the list of things to do. I need to officially release version 10 first. Some of the work for vanderWaals and solvent-accessible surfaces is done as part of the Dots code. > if for example I will calculate triangles by myself may I use some mesh= > rendering in Jmol? There currently is no support for mesh rendering. Be advised that the Jmol g3d engine is, well, different ... in that it does not use triangles to render the shapes. I *probably* will use triangles to render surfaces, but it will require quite a bit of work on the graphics engine. For example, the engine today can render individual triangles, but not meshes. And there is no support for any type of phong/gourand shading. Tough questions from a *newbie* :-) Miguel * The curse is broken=21 Go Red Sox=21 |