OK, so one afterthought was that if this can be done with isosurface, 
then it can be done with dots.
In fact, that was very easy. We now have a GENERIC "geodesic surface" 
calculator as well. The
file structure now looks like this:

+---jmol
|   |   Jmol.properties
|   |   ...
|   +---atomdata
|   |       AtomData.java
|   |       AtomDataServer.java  (interface)
|   |       AtomIndexIterator.java (interface)
|   |   ...
|   +---geodesic
|   |       EnvelopeCalculation.java
|   |       Geodesic.java
|   |   ...
|   +---jvxl
|   |   +---api
|   |   |       MeshDataServer.java (interface)
|   |   |       VertexDataServer.java (interface)
|   |   |      
|   |   +---calc
|   |   |       MarchingCubes.java
|   |   |       MarchingSquares.java
|   |   |      
|   |   +---data
|   |   |       JvxlData.java
|   |   |       MeshData.java
|   |   |       VolumeData.java
|   |   |      
|   |   +---readers
|   |   |       ApbsReader.java
|   |   |       AtomDataReader.java
|   |   |       CubeReader.java
|   |   |       IsoFxyReader.java
|   |   |       IsoMepReader.java
|   |   |       IsoMOReader.java
|   |   |       IsoPlaneReader.java
|   |   |       IsoShapeReader.java
|   |   |       IsoSolventReader.java
|   |   |       JvxlReader.java
|   |   |       Parameters.java
|   |   |       SurfaceGenerator.java
|   |   |       VolumeDataReader.java
|   |   |       VolumeFileReader.java
|   |   |       VoxelReader.java


Thus, the static class Geodesic3D is gone from org.jmol.g3d. It was *of 
use* to Normix3D, but it was not itself a graphical rendering object 
really. Since it's used by Normix, Dots, and Isosurface, it goes in its 
own subdirectory as org.jmol.geodesic.Geodesic, along with the 
calculation engine for surface dots, EnvelopeCalculation. This is pulled 
out of Viewer because it, too, is not really a "viewer" function but 
instead a generic calculation. Interestingly, it uses an AtomIterator, 
but that was a relatively inefficient one; I've written a new 
WithinAtomSetIterator in frame that does this without ever needing 
references to Atom by the calling method.

The plan is to make it so that with just these packages:

org.jmol.adapter
org.jmol.atomdata
org.jmol.geodesic
org.jmol.jvxl

you can build a full-fledged surface generator. This has the bonus of 
being able to feed any triangle-consuming application, so there could be 
a VMRL or POVRAY connection, for example, using this set of methods. No 
need for the viewer or g3d packages at all!

Bob






Miguel wrote:

>>The good news is that the entire surface creation functionality of Jmol
>>is now isolated from the Viewer class. That of course means that if ever
>>anyone wants to use this code in other contexts, it should be quite
>>straightforward.
>>    
>>
>
>Excellent.
>
>[snip]
>  
>
>>So, overall, it feels great that this is a well-defined separate entity
>>now -- a real "package" -- a "product" of the Jmol Project that is
>>basically independent of Jmol itself. I'm not aware of anything out
>>there quite like it.
>>    
>>
>
>Very good.
>
>
>Miguel
>
>
>-------------------------------------------------------------------------
>This SF.net email is sponsored by DB2 Express
>Download DB2 Express C - the FREE version of DB2 express and take
>control of your XML. No limits. Just data. Click to get it now.
>http://sourceforge.net/powerbar/db2/
>_______________________________________________
>Jmol-developers mailing list
>[email protected]
>https://lists.sourceforge.net/lists/listinfo/jmol-developers
>  
>


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Jmol-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jmol-developers

Reply via email to