FreeWRL Changelog

What's new in FreeWRL 1.22.9

Aug 27, 2010
  • Examine mode - Viewpoint - does distance between 2 points in 3d to determine
  • rotation distance, as per the spec.
  • Occlusionculling had difficulties with DEF/USE nodes; fixed.
  • Moving BoundingBox calculations from scenegraph rendering step to node
  • updating step.
  • Polyrep.c; normal finding, might go off end of coordindex array. Fixed.
  • affects Extrusions, IndexedFaceSets, ElevationGrids, etc.
  • X3D Switch statement was not parsing correctly.

New in FreeWRL 1.22.4 (Jul 17, 2009)

  • MIDI/Rewire interface work.
  • Geospatial work.
  • Most VRML1 nodes.
  • OS X standalone interface work.
  • Other bugs fixed.

New in FreeWRL 1.22.3 (Jun 3, 2009)

  • More work on shaders, XML parsing, and C EAI calls, and many other bug fixes, etc.

New in FreeWRL 1.22.1 (Apr 10, 2009)

  • New PROTO handling code in “classic” compiler.
  • Improved Geospatial rendering code, FillProperties, EAI/SAI corrections.

New in FreeWRL 1.22 (Feb 12, 2009)

  • New EAI code
  • new OpenGL integration code
  • new Geospatial code

New in FreeWRL 1.21.2 (Nov 20, 2008)

  • Linux - verify html browser plugin mime types, added model/x3d.
  • PROTO expansion in Classic - malloc error when IS'd fields are large. Fixed realloc algorithm.
  • PROTO expansion in XML parsing; revamping handling. (in process)
  • OpenGL Shaders code should compile on OpenGL 1.5 and above now (was 2.0 and above)
  • XML encoded X3D - increased field attribute parsing speed.
  • PROTOS and VRML/X3D Classic - dramatic increase in PROTO expansion; visible in large protos.
  • Add code to verify Profiles and Components. Verifying components; unverified components are assumed "good". See code in CFuncs/capabilitiesHandler.c for current status of verified components.
  • Javascript, direct writing to scenegraph, boolean values were not correctly translated from javascript to freewrl internal values.
  • FaceSets with Color node, not taking material properties correctly (especially transparency)
  • FaceSets, with RGB Color node, keep track of associated material transparency, and work through color node changes.
  • removal of temporary files - code has been reworked, as some temporary files (specific: files retrieved by wget or curl) were not removed.
  • initial work on CubeMapTextures.
  • GeoPositionInterpolator - output value not translated to local spatial units. (fixed)
  • EAI/SAI - PROTO expansion getField calls now work as expected.
  • XML-formatted X3D - PROTO and EXTERNPROTO field expansion work.
  • Shaders - only compile if OpenGL 2.0 or above is installed. Will work on OpenGL versions with shader ARB system call names.
  • CFuncs/sounds.h - include unistd.h on Linux machines.
  • Macros to help "set" SF fields get used, when the equivalent "non set_" field is used. eg, "set_orientation" inputOnly field in GeoViewpoint, when we have an initializeOnly "orientation" field. Should rework all other nodes to use these macros. NOTE: MF fields are handled by the macro EVIN_AND_FIELD_SAME.

New in FreeWRL 1.20.7 (Sep 3, 2008)

  • Examine mode - Viewpoint - does distance between 2 points in 3d to determine rotation distance, as per the spec.
  • Occlusionculling had difficulties with DEF/USE nodes; fixed.
  • Moving BoundingBox calculations from scenegraph rendering step to node updating step.
  • Polyrep.c; normal finding, might go off end of coordindex array. Fixed. Affects Extrusions, IndexedFaceSets, ElevationGrids, etc.
  • X3D Switch statement was not parsing correctly.

New in FreeWRL 1.20.6 (Aug 7, 2008)

  • GeoLOD, GeoElevationGrid improved for SIGGRAPH.
  • Threading problem with accessing files fixed.

New in FreeWRL 1.20.5 (Aug 4, 2008)

  • GeoLOD initial implementation.
  • EXAMINE mode - tries to determine distance to geometry, not assume distance to (0,0,0)
  • Remove InlineLoadControl - old VRML Geospatial 1.1 node.
  • Filenames with spaces better handled now - some handling bugs fixed.
  • Textures use proxy loads now, rather than always relying on max texture size value.
  • Asserts in classic parser now print line/file to stdout and log files (on OSX) when
  • fatal internal errors happen.
  • x3dv files - memory pointer problem (pointer not zeroed) when parsing META, PROFILE, etc.
  • OcclusionCulling; if a Shape was down some Transforms, it might never get displayed, if its' geometry is changing. Reference John Carlsons' waves.x3d.
  • GeoSpatial nodes: GeoViewpoint, GeoLocation, GeoElevationGrid, GeoCoordinate, GeoOrigin, GeoPositionInterpolator, GeoLOD nodes should be pretty stable.
  • Classic VRML parser had difficulties with field replacements on PROTO invocations, if PROTO invocations were nested.
  • Threading and Javascript. Now, all initialization happens in same thread as FreeWRL event loops; it has been determined that there were problems with the Javascript interpreters garbage collection as it is not Javascript context-based, thus was not thread-safe for the scripting methods previously used in FreeWRL.
  • Fixed problem with collision and ccw/solid polygons whereby one would collide with the transparent surface, not the visible surface.

New in FreeWRL 1.20.4 (Jul 1, 2008)

  • problem parsing floats/doubles with a positive sign starting(or part of exponent), eg, "123e 10" now parses - before expected "123e10".
  • start on Geospatial nodes. GeoLocation, GeoViewpoint and GeoOrigin coded. Note - eventOuts not in code yet, until there are more Geo nodes to test routing with.
  • SFVec3d and MFVec3d code handling added to classic and xml parser.
  • Sensitive nodes can now be partially occluded by other (non-sensitive) geometry.
  • Linux: if iconified, skip all OpenGL rendering calls.
  • modified file-read function to handle files without an end of line character on last line - some older Microsoft-generated files would cause last line to be lost.
  • change order of actual DEF node pointer saving so that, within a DEFine, the name can be used. (eg, DEF xx Transform{children Script{field yy USE xx}}
  • Javascript - accessing an MFRotation from a specified SFNode gave an error - now fixed.
  • LOD changed to accept either VRML "level" or X3D "children" fields.
  • Texture files that are located, but are invalid textures, are now reported in a more user-friendly way.

New in FreeWRL 1.20.3 (Apr 24, 2008)

  • VisibilitySensors were not properly added to new internal scenegraph code, so were not working reliably.
  • Routing table additions now buffered, and performed at a specific place in event loop; helped a bug where an event generated routing table entries.
  • Javascript createVrmlFromString and createVrmlFromURL had problems with name-cross contamination between caller and created VRML/X3D code.
  • Linux/Motif - ConsoleMessages were not printing properly when running standalone. Had extra copies of data, causing increasing delays when printing lots of information. When running in HTML browser, line breaks were not correct.
  • use system fonts, if they are installed. (Linux). Check is done at build time and at run time. Look for "FONTSDIR" in the code. If not found, will try the INSTALLDIR, then BUILDDIR.
  • Javascripts - evenOuts (outputOnlys) were generating an event on startup; value was "zero". changed so values initialized, but not "touched", so will not generate initial events. Fields will still generate an initial event, so that field values will be reflected in X3D scene graph.
  • Elevation Grid colors were not working after an earlier texture change; should now work. (affected other polyrep structures, too)OSX plugin change to better handle Anchor to non-x3d pages when running within Safari.
  • OSX - when running non-embedded; will use default browser for html pages, rather than defaulting to Safari.
  • tests directory, tests/20.wrl changed to show material transparency affecting solid texture.
  • VRML Parser - morphing SF types into MF types (where an MF was expected, but an SF was given) was not correct for SF types with a size > 1 float, eg SFColors.
  • EAI SF/MFString set/get reworked.EAI setting one value of MF/SF nodes did not work.EAI setting MFStrings had code that could cause memory problems.EAI creating EventInMFVec3f did not work - error in java code Node.java.EAI child to parent link error caused potential loss of node functionality if a removeChild node was called on a sibling node.

New in FreeWRL 1.20.2 (Mar 12, 2008)

  • adjusted the OcclusionCulling parameters to better handle nodes with few pixels visible.
  • Linux Firefox/Opera/Icecape/Mozilla plugin - reworked to prevent a possible synchronization problem at plugin startup.
  • Makefile.PL automatically determines whether we are building on a 64 or 32 bit Linux system, and adjusts build/install paths to suit.
  • ReWire and MIDI nodes on OSX - code now works on OSX 10.5.
  • OSX SoundEngine now detects FreeWRL abnormal shutdowns, and will send a message to the console, and terminate execution.
  • Javascript "initialize()" - if parsing was required (eg, createVrmlFromString) a thread lock would happen. Initialize() call moved out of parse thread to the callers thread.
  • SphereSensor, PlaneSensor, TouchSensor, CylinderSensor; on Linux, these nodes would continuously send "_changed" events when the nodes were active; now only sends events when values change (and, node is active)
  • ConsoleMessage had a potential memory overrun on large messages; messages truncated if too large.
  • Many, many Javascript changes, especially around SFNode and MFNode implementations.
  • cleanup OSX build; remove redundant installed code from dmg.
  • comment out movie-snapshot code, pending rethink.
  • OSX running within Safari; speaking error messages sometimes hung safari; use "freewrlSystem" call now, instead of "system" - seems to work well. Messages also copied to the console.
  • Nodes with a "bindTime" outputOnly were not sending events correctly; fixed.
  • VRML/Classic - using SF* datatypes where MF* types were expected could lead to invalid data being used - fixed.
  • OSX - use QuickTime/Quartz for image loading, rather than libraries supplied in FeeeWRL dmg package.
  • Linux: XLib errors limited to 20; more than that FreeWRL exits. (ideally, no XLib errors would occur; this is just to help in case of failures elsewhere)

New in FreeWRL 1.20.1 (Jan 31, 2008)

  • Midi nodes - pan values were reversed. Fixed.
  • polyrep collision with high NavigationInfo speed not working 100%; some changes made, but code still needs debugging.
  • "Sensitive" nature of sensitive nodes would flow up the scenegraph too far, now code verifies that sensitive nodes are indeed registered; branches above sensitive nodes ignored.
  • Collision equations for collision with Polyreps improved by having a quick check to reduce testing on all triangles of distant shapes.
  • Frustum culling was not working on OSX computers - differences in OpenGL headers between Linux and OSX; a #ifdef AQUA added to differentiate.
  • EAI/SAI changes for VRML parser - keep DEFines around between calls of cParse.
  • possible threading issue fixed whereby a script can be called in Routing before parsing has initialized it.