Folks,

I've cross-posted this to both groups as people in both camps seem to
have a vested interest in the outcomes.

I've thrown together a rough cut of what I think the VRML implementation
side of the Java3D based VRMLLoader should look like. Alan has started
the directory structure in the X3D cvs area of the Xj3D codebase. The
documentation is all but non-existant at this point in time, I've
basically put together most of the interfaces and Javadoc'd those to
give people an idea of how it all fits together. There are plenty of UML
diagrams in the XMI file that is part of the CVS download.

Basic overview:

We've now split the code into 3 distinct areas - parsing,
geometry/rendering representation and event model. Scripting is a fourth
area that has not yet been looked into.

Parsing - the parser uses an event driven model very heavily modelled
from SAX. In fact, we've called it Simple API for VRML parsing (SAV).
This allows our parser to be much smaller and lighter as well as being a
hell of a lot more extensible for VRML 3.0 profiling support.

Geometry - All classes are based on a VRMLNode class. We do some funky
stuff with field name and integer mapping, but that's a little too
detailed for this discussion. From this interface there will be a heap
of interfaces that match somewhat the same structure of the SAI. The
main difference is that they use Java primitive types and have stripped
out most of the method calls. We use interfaces that can then be layered
over any rendering API, J3D just happening to be one of them (we're both
keen to have a go at a JGL version too)

Event - Part of our requirements is for flexibility. Thus if we want a
time zero loader, there's no point in bringing in a complete event
model. The event handler has been stripped from the implementation
classes and made a simple, standalone class. Theoretically this will
slow things down a bit, but with the combination of the field indexing
it should be much faster than the old system of using string compares.

I expect that during tomorrow I shall do the architecture document
write-up. There needs to be a large collection of state diagrams drawn
up to explain how the parsing callbacks work. For those that want to get
in early and have a dig around what we are doing, please grab the latest
from CVS and have a look through the src directory - in particular
org/web3d/vrml. I'd love to hear any comments about where we might be
missing things or a chunk of functionality that may not be being covered
with this first cut (Note that we don't have the loader or concrete
classes for the parser[factory] yet).

The CVS information, in case people missed the other message is:

CVSROOT=:pserver:[EMAIL PROTECTED]:/web3d.org/CVS

The password is "anonymous" and the module name is "x3d"

--
Justin Couch                                    Author, Java Hacker
http://www.vlc.com.au/~justin/               Java 3D FAQ Maintainer
http://www.j3d.org/              J3D.org The Java 3D Community Site
-------------------------------------------------------------------
"Humanism is dead. Animals think, feel; so do machines now.
Neither man nor woman is the measure of all things. Every organism
processes data according to its domain, its environment; you, with
all your brains, would be useless in a mouse's universe..."
                                              - Greg Bear, Slant
-------------------------------------------------------------------

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA3D-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to