VRaniML™ is a VRML 2.0 C++ class library for building 3D graphics applications. Most of the VRML 2.0 specification is supported including DEF/USE, PROTOs, ROUTEs and the VRML execution model.
Advanced Features :
- Progressive Mesh support allowing for progressive transmission of geometric nodes over the internet (with a suitable file server) and continuous level of detail creation and geomorphing
- Boolean operations on geometric objects including union, intersection, difference, splitting plane
- Persistent cache (including multiple directory searching) so files that are already present locally need not be fetched over the internet
- Frame rate specification to allow for continuous (non-jerky) animation on a broad range of platforms
- Renderer independence, supporting both OpenGL and D3D
- Traverser technology (that is, the separation of traversals from the scene graph) allows for rapid extensions of library
- Rapid geometric queries as a result of solid modeling underpinnings (i.e. What vertices border this face, What edges touch this vertex)
Basic Features :
- a rich set of underlying geometric and 3D graphics classes collection classes (arrays, lists, queues, stacks, maps, ...)
- geometric classes (vector2, vector3, matrix, plane, ray, ...)
- utility classes (file, image, sound, ...)
- time classes
- runtime typing support
- all geometric objects are based on the Progressive Mesh data structure allowing for progressive transmission of VRML 2.0 files over the internet as well as continuous LOD Creation (support coming...)
- code that looks like MFC (but isn't) making for easy learning curve for MFC programmers
- every class has copy constructors, equals operators (operator=) and a Clone function making copying of an entire scene graph a one line operation
- scene graphs are serializable allowing for very compact binary storage
- supports VRML 2.0 execution model including TimeSensor, Interpolators and all other Sensors
- multimedia support for VRML 2.0 audio and sound nodes, movie textures, etc...
- for all classes, each data member is protected and every interesting member function is virtual, making extension of the class library a snap.
Comments