2012-05-05 Braden McDaniel  <braden@endoframe.com>

	Updates for 0.18.9 release.

	* README
	* NEWS
	* configure.ac
	* doc/Doxyfile
	* src/libopenvrml/openvrml.rc
	* src/libopenvrml/openvrml.vcproj
	* src/libopenvrml-gl/openvrml-gl.rc
	* src/Makefile.am
	(LIBOPENVRML_LIBRARY_VERSION): Update to 10:1:1.
	(LIBOPENVRML_GL_LIBRARY_VERSION): Update to 8:1:0.

2012-05-01 Braden McDaniel  <braden@endoframe.com>

	Suppress various warnings from the Microsoft compiler
	version 16.00.40219.01.

	* src/libopenvrml/openvrml/basetypes.h
	* src/libopenvrml/openvrml/scene.cpp
	* src/libopenvrml/openvrml/local/component.cpp
	* src/libopenvrml/openvrml/local/component.h
	* src/libopenvrml/openvrml/local/error.cpp
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp

2012-05-01 Braden McDaniel  <braden@endoframe.com>

	* src/local/libopenvrml-dl/openvrml/local/dl.cpp
	(foreachfile(const std::vector<boost::filesystem::path> &, int
	(*)(const std::string &, void *), void *)): Boost.Filesystem 3
	doesn't have path::external_file_string; use generic_string
	instead.

2012-05-01 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml-gl/openvrml-gl.vcxproj: Generate openvrml-gl.lib
	into arch-specific subdirectory.

2012-05-01 Braden McDaniel  <braden@endoframe.com>

	Project file clean-up.  Remove references to site-specific library
	directories; these should be set in user (site-specific)
	properties.  Reorganize preprocessor symbol definitions to
	leverage commonality between Debug and Release configurations and
	remove unneeded definitions.

	* examples/pretty-print.vcxproj
	* examples/sdl-viewer.vcxproj
	* src/libopenvrml/openvrml.vcxproj
	* src/libopenvrml-gl/openvrml-gl.vcxproj
	* src/local/libopenvrml-dl/openvrml-dl.vcxproj
	* src/node/vrml97/vrml97.vcxproj
	* src/node/x3d-cad-geometry/x3d-cad-geometry.vcxproj
	* src/node/x3d-core/x3d-core.vcxproj
	* src/node/x3d-dis/x3d-dis.vcxproj
	* src/node/x3d-environmental-effects/x3d-environmental-effects.vcxproj
	* src/node/x3d-event-utilities/x3d-event-utilities.vcxproj
	* src/node/x3d-geometry2d/x3d-geometry2d.vcxproj
	* src/node/x3d-geospatial/x3d-geospatial.vcxproj
	* src/node/x3d-grouping/x3d-grouping.vcxproj
	* src/node/x3d-h-anim/x3d-h-anim.vcxproj
	* src/node/x3d-interpolation/x3d-interpolation.vcxproj
	* src/node/x3d-key-device-sensor/x3d-key-device-sensor.vcxproj
	* src/node/x3d-networking/x3d-networking.vcxproj
	* src/node/x3d-nurbs/x3d-nurbs.vcxproj
	* src/node/x3d-rendering/x3d-rendering.vcxproj
	* src/node/x3d-shape/x3d-shape.vcxproj
	* src/node/x3d-texturing/x3d-texturing.vcxproj
	* src/script/javascript.vcxproj
	* tests/parse-vrml97.vcxproj
	* tests/parse-x3dvrml.vcxproj

2012-04-29 Braden McDaniel  <braden@endoframe.com>

	* src/script/javascript.cpp
	(script::script(openvrml::script_node &, const
	boost::shared_ptr<openvrml::resource_istream> &)): Make
	initialization of thread_id_ conditional on NDEBUG.

2012-04-29 Braden McDaniel  <braden@endoframe.com>

	* src/script/javascript.cpp: As of XULRunner 12.0, JSRuntime
	should now be used by a single thread.  For now, at least, employ
	a JSRuntime for each Script node.

2012-04-29 Braden McDaniel  <braden@endoframe.com>

	* src/script/javascript.cpp: Fix copy/paste error.

2012-04-29 Braden McDaniel  <braden@endoframe.com>

	* src/script/javascript.cpp: Fix
	OPENVRML_JS_CONSTRUCTOBJECT_WITHOUT_PROTO conditional to be
	#ifdef.

2012-04-28 Braden McDaniel  <braden@endoframe.com>

	XULRunner 12.0 removes the JSObject* prototype argument from
	JS_ConstructObject.

	* configure.ac
	* src/script/javascript.cpp

2012-04-27 Braden McDaniel  <braden@endoframe.com>

	* doc/Makefile.am (JAVADOC_RESOURCES_FILES): javadoc does not
	necessarily emit "inherit.gif"; be more generic.

2012-04-26 Braden McDaniel  <braden@endoframe.com>

	Define BOOST_FILESYSTEM_VERSION=3 for compatibility with Boost
	1.44 and later (and consistency with Makefile.am).

	* src/libopenvrml/openvrml.vcxproj
	* src/local/libopenvrml-dl/openvrml-dl.vcxproj

2012-04-26 Braden McDaniel  <braden@endoframe.com>

	* src/local/libopenvrml-dl/openvrml/local/dl.cpp
	(openvrml::local::dl::foreachfile(const
	std::vector<boost::filesystem::path> &, int (*)(const std::string
	&, void *), void *): Applying the stream output operator to a
	boost::filesystem::path now yields a string within quotes; use
	boost::filesystem::path::generic_string instead.

2012-04-23 Braden McDaniel  <braden@endoframe.com>

	Quell warnings from gcc 4.7.

	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	* src/openvrml-player/curlbrowserhost.cpp
	* src/script/javascript.cpp

2012-04-23 Tom Callaway <tcallawa@redhat.com>

	* src/openvrml-xembed/browserfactory.cpp: gcc 4.7 insists that
	intrusive_ptr_add_ref/release declarations occur before inclusion
	of <boost/intrusive_ptr.hpp>.

2012-04-23 Braden McDaniel  <braden@endoframe.com>

	* src/script/javascript.cpp: More fallout from SpiderMonkey moves
	away from using jsvals as ids.  Just mitigate this for now.

2012-04-23 Tom Callaway <tcallawa@redhat.com>

	libpng 1.5 removes direct access to struct members; use accessor
	functions instead.

	* src/node/vrml97/image_stream_listener.cpp
	* src/node/vrml97/image_stream_listener.h

2012-04-23 Braden McDaniel  <braden@endoframe.com>

	NP[P]_GetMIMEDescription returns const char * in recent variations
	of NPAPI.

	* configure.ac
	* src/mozilla-plugin/openvrml.cpp

2011-08-20 Braden McDaniel  <braden@endoframe.com>

	Define BOOST_FILESYSTEM_VERSION=3 for compatibility with Boost
	1.44 and later.

	* README: Note Boost 1.44 minimum version.
	* src/Makefile.am
	(libopenvrml_libopenvrml_la_CPPFLAGS): Define
	BOOST_FILESYSTEM_VERSION=3.
	(local_libopenvrml_dl_la_CPPFLAGS): Define
	BOOST_FILESYSTEM_VERSION=3.
	(script_java_la_CPPFLAGS): Define BOOST_FILESYSTEM_VERSION=3.

2011-08-17 Braden McDaniel  <braden@endoframe.com>

	Use the Boost.Filesystem version 3 API.

	* src/Makefile.am
	(libopenvrml_libopenvrml_la_CPPFLAGS): Removed
	-DBOOST_FILESYSTEM_VERSION=2.
	(local_libopenvrml_dl_la_CPPFLAGS): Removed
	-DBOOST_FILESYSTEM_VERSION=2.
	(script_java_la_CPPFLAGS): Removed -DBOOST_FILESYSTEM_VERSION=2.
	* src/libopenvrml/openvrml/local/component.cpp
	(openvrml::local::component_registry::component_registry()): Use
	boost::filesystem::path::string.
	* src/local/libopenvrml-dl/openvrml/local/dl.cpp
	(openvrml::local::dl::prepend_to_searchpath(const
	boost::filesystem::path &)): Use boost::filesystem::path::string.

2011-07-24 Braden McDaniel  <braden@endoframe.com>

	Use Boost.ScopeExit instead of ScopeGuard.

	* README: Note Boost 1.38 requirement.
	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/local/conf.cpp
	* src/libopenvrml/openvrml/local/error.cpp
	* src/libopenvrml/openvrml/local/externproto.cpp
	* src/libopenvrml/openvrml/local/node_metatype_registry_impl.cpp
	* src/libopenvrml/openvrml/local/uri.cpp
	* src/libopenvrml/openvrml/local/xml_reader.cpp
	* src/libopenvrml/openvrml/script.cpp
	* src/local/libopenvrml-dl/openvrml/local/dl.cpp
	* src/mozilla-plugin/openvrml.cpp
	* src/node/vrml97/grouping_node_base.h
	* src/node/vrml97/image_stream_listener.cpp
	* src/node/vrml97/text.cpp
	* src/openvrml-player/curlbrowserhost.cpp
	* src/openvrml-player/filechooserdialog.cpp
	* src/openvrml-player/player.cpp
	* src/openvrml-xembed/browser.cpp
	* src/openvrml-xembed/browserfactory.cpp
	* src/openvrml-xembed/main.cpp
	* src/script/java.cpp
	* src/script/javascript.cpp
	* tests/browser.cpp

2011-04-21 Braden McDaniel  <braden@endoframe.com>

	Updates for 0.18.8 release.

	* README
	* NEWS
	* configure.ac
	* doc/Doxyfile
	* src/libopenvrml/openvrml.rc
	* src/libopenvrml/openvrml.vcproj
	* src/libopenvrml-gl/openvrml-gl.rc
	* src/Makefile.am
	(LIBOPENVRML_LIBRARY_VERSION): Update to 10:0:1.  Previous change
	was incorrect.

2011-04-20 Braden McDaniel  <braden@endoframe.com>

	* tests/Makefile.am (AM_CPPFLAGS): Define
	BOOST_FILESYSTEM_VERSION=2 to compile with Boost 1.46.

2011-04-17 Braden McDaniel  <braden@endoframe.com>

	Updates for 0.18.7 release.

	* README
	* NEWS
	* configure.ac
	* doc/Doxyfile
	* src/libopenvrml/openvrml.rc
	* src/libopenvrml/openvrml.vcproj
	* src/libopenvrml-gl/openvrml-gl.rc
	* src/Makefile.am
	(LIBOPENVRML_LIBRARY_VERSION): Update to 9:5:1.

2011-04-16 Braden McDaniel  <braden@endoframe.com>

	Update to Doxygen 1.4.7.

	* doc/Doxyfile
	* doc/Makefile.am
	* doc/doxygen-header

2011-04-12 Braden McDaniel  <braden@endoframe.com>

	Define BOOST_FILESYSTEM_VERSION=2 to compile with Boost 1.46.

	* src/libopenvrml/openvrml.vcxproj
	* src/local/libopenvrml-dl/openvrml-dl.vcxproj

2011-04-07 Braden McDaniel  <braden@endoframe.com>

	Newer SpiderMonkey (XULRunner 2.0) changes the type of property
	mutator functions to JSStrictPropertyOp, which adds a boolean
	argument.

	* configure.ac
	* src/script/javascript.cpp

2011-02-11 Braden McDaniel  <braden@endoframe.com>

	Define BOOST_FILESYSTEM_VERSION=2 to build with Boost 1.46.

	* src/Makefile.am
	(libopenvrml_libopenvrml_la_CPPFLAGS): Add
	-DBOOST_FILESYSTEM_VERSION=2.
	(local_libopenvrml_dl_la_CPPFLAGS): Add
	-DBOOST_FILESYSTEM_VERSION=2.
	(script_java_la_CPPFLAGS): Add -DBOOST_FILESYSTEM_VERSION=2.

2011-02-05 Braden McDaniel  <braden@endoframe.com>

	* src/local/libopenvrml-control/openvrml_control/browser.cpp
	(openvrml_control::browser::initial_stream_reader::operator()
	const): Catch any exceptions thrown from
	openvrml::browser::set_world.

2011-02-03 Braden McDaniel  <braden@endoframe.com>

	* src/script/javascript.vcxproj: Define
	OPENVRML_JSVAL_TO_DOUBLE_RETURNS_POINTER.

2011-02-01 Braden McDaniel  <braden@endoframe.com>

	* src/mozilla-plugin/openvrml.cpp: Removed obsolete NPP_Initialize
	and NPP_Shutdown entrypoints.

2011-02-01 Braden McDaniel  <braden@endoframe.com>

	Newer SpiderMonkey (XULRunner 2.0) changes the JSNative function
	signature and the means of accessing argv, the "this" JSObject,
	and the returned jsval.

	* configure.ac
	* src/script/javascript.cpp

2011-01-24 Braden McDaniel  <braden@endoframe.com>

	Newer SpiderMonkey (XULRunner 2.0) removes the fifth
	JSFunctionSpec member.  Because this was always zero in OpenVRML's
	usage, we can safely omit the definition of that member.

	* src/script/javascript.cpp

2011-01-23 Braden McDaniel  <braden@endoframe.com>

	Don't hard-code Gtk/GNOME _DISABLE_DEPRECATED preprocessor
	symbols, as this negatively affects forward compatibility.

	* src/Makefile.am

2011-01-23 Braden McDaniel  <braden@endoframe.com>

	Use JS_EncodeString instead of the obsolete JS_GetStringBytes.

	* configure.ac
	* src/script/javascript.cpp

2011-01-23 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Fix test to check whether JSVAL_TO_DOUBLE returns
	a pointer.

2011-01-22 Braden McDaniel  <braden@endoframe.com>

	SpiderMonkey included in the forthcoming XULRunner 2.0 changes the
	return value of JSVAL_TO_DOUBLE to a double (instead of a
	pointer).

	* configure.ac
	* src/script/javascript.cpp

2010-11-01 Braden McDaniel  <braden@endoframe.com>

	Boost.Filesystem headers include inline functions that call
	Boost.System functions.  Programs/libraries that use
	Boost.Filesystem need to link with libboost_system as well as
	libboost_filesystem.  The Mac OS X linker seems to be the only one
	that actually cares about this detail.

	* src/Makefile.am
	(libopenvrml_libopenvrml_la_LIBADD): Link with libboost_system.
	(local_libopenvrml_dl_la_LIBADD): Link with libboost_system.

2010-09-19 Braden McDaniel  <braden@endoframe.com>

	SpiderMonkey included in the forthcoming XULRunner 1.9.3 removes
	JS_AddRoot and JS_RemoveRoot and replaces them with type-specific
	functions.  Test for this and adjust our usage accordingly.

	* configure.ac
	* src/script/javascript.cpp

2010-09-18 Braden McDaniel  <braden@endoframe.com>

	* src/Makefile.am (EXTRA_DIST): Fixed directory for openvrml-gl.rc
	and openvrml-gl.vcxproj.

2010-09-18 Braden McDaniel  <braden@endoframe.com>

	SpiderMonkey included in the forthcoming XULRunner 1.9.3 includes
	changes to the JSPropertyOp function signature: a parameter that
	was a jsval in previous versions is now a jsid.  Test for this and
	adjust our usage accordingly.

	* configure.ac
	* src/script/javascript.cpp

2010-09-15 Braden McDaniel  <braden@endoframe.com>

	* src/script/javascript.cpp: JS_NewDouble is deprecated; use
	JS_NewNumberValue instead.

2010-09-15 Braden McDaniel  <braden@endoframe.com>

	* src/script/javascript.cpp: JS_NewDoubleValue is deprecated; use
	JS_NewNumberValue instead.

2010-09-14 Braden McDaniel  <braden@endoframe.com>

	* data/component/shape.xml: Added missing descriptions of
	LineProperties and FillProperties.

2010-09-13 Braden McDaniel  <braden@endoframe.com>

	Add (partially) parsed nodes to the scene in the event of an
	exception during parsing; ensure that the browser::initialized
	event gets send and scene::scene_loaded gets called in the event
	of an exception during parsing.

	* src/libopenvrml/openvrml/local/parse_vrml.h
	(openvrml::local::vrml97_parse_actions::~vrml97_parse_actions()):
	Add (partially) parsed nodes to the scene if the parse_scope stack
	is not empty (that is, parsing was terminated prior to the end of
	correctly formed input).
	* src/libopenvrml/openvrml/scene.cpp
	(openvrml::scene::load(resource_istream &)): Ensure that
	scene_loaded gets called in the event of an exception during
	parsing.
	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::browser::set_world(resource_istream &)): Ensure that
	the browser::initialized event gets sent in the event of an
	exception during parsing.
	* src/libopenvrml/openvrml/browser.h

2010-08-20 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/event.h
	(openvrml::event_emitter::listeners<FieldValue>() const): Must use
	dynamic_cast due to virtual inheritance.

2010-08-19 Braden McDaniel  <braden@endoframe.com>

	Added an accessor to get the set of listeners listening to an
	event emitter.

	* src/libopenvrml/openvrml/event.cpp: Added doc-comments for
	listener accessors.
	* src/libopenvrml/openvrml/event.h
	(openvrml::event_emitter::listeners<FieldValue>() const): Added
	member function template to get (a copy of) the set of listeners.
	(openvrml::field_value_emitter<FieldValue>::listeners() const):
	Added member function template to get the set of listeners.

2010-08-15 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Removed reference to ide-projects/Makefile.

2010-08-14 Braden McDaniel  <braden@endoframe.com>

	Added Visual C++ 2010 project files.  These files are now
	interspersed in the source directories.

	* Makefile.am
	(EXTRA_DIST): Add OpenVRML.sln.
	* OpenVRML.sln: Added file.
	* examples/sdl_viewer.cpp
	(resource_fetcher::do_get_resource(const
	std::string&)::file_resource_istream::do_type() const): Fully
	qualify boost::next.
	* examples/Makefile.am
	(EXTRA_DIST): Add Visual Studio 2010 project files.
	* examples/sdl-viewer.vcxproj: Added file.
	* examples/pretty-print.vcxproj: Added file.
	* ide-projects/Makefile.am: Removed file.
	* ide-projects/Windows/VisualC9_0/OpenVRML/OpenVRML.sln: Removed
	file.
	* ide-projects/Windows/VisualC9_0/OpenVRML/javascript/javascript.vcproj:
	Removed file.
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.rc:
	Moved to src/libopenvrml/openvrml.rc.
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj:
	Removed file.
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml-config.h:
	Moved to src/libopenvrml/openvrml-config-win32.h.
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-dl/openvrml-dl.vcproj:
	Removed file.
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.vcproj:
	Removed file.
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.rc:
	Moved to src/libopenvrml-gl/openvrml-gl.rc.
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl-config.h:
	Moved to src/libopenvrml-gl/openvrml-gl-config-win32.h.
	* ide-projects/Windows/VisualC9_0/OpenVRML/parse-vrml97/parse-vrml97.vcproj: Removed file.
	* ide-projects/Windows/VisualC9_0/OpenVRML/parse-x3dvrml/parse-x3dvrml.vcproj: Removed file.
	* ide-projects/Windows/VisualC9_0/OpenVRML/pretty-print/pretty-print.vcproj:
	Removed file.
	* ide-projects/Windows/VisualC9_0/OpenVRML/sdl-viewer/sdl-viewer.vcproj:
	Removed file.
	* ide-projects/Windows/VisualC9_0/OpenVRML/vrml97/vrml97.vcproj:
	Removed file.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-cad-geometry/x3d-cad-geometry.vcproj: Removed file.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-core/x3d-core.vcproj:
	Removed file.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-dis/x3d-dis.vcproj: Removed file.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-environmental-effects/x3d-environmental-effects.vcproj:
	Removed file.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-event-utilities/x3d-event-utilities.vcproj:
	Removed file.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-geometry2d/x3d-geometry2d.vcproj: Removed file.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-geospatial/x3d-geospatial.vcproj:
	Removed file.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-grouping/x3d-grouping.vcproj:
	Removed file.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-h-anim/x3d-h-anim.vcproj:
	Removed file.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-interpolation/x3d-interpolation.vcproj:
	Removed file.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-key-device-sensor/x3d-key-device-sensor.vcproj:
	Removed file.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-networking/x3d-networking.vcproj:
	Removed file.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-nurbs/x3d-nurbs.vcproj:
	Removed file.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-rendering/x3d-rendering.vcproj: Removed file.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-shape/x3d-shape.vcproj:
	Removed file.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-texturing/x3d-texturing.vcproj:
	Removed file.
	* src/Makefile.am
	(EXTRA_DIST): Add Visual C++ project files, resource scripts, and
	Windows-specific config headers.
	* src/libopenvrml/openvrml/basetypes.cpp
	(det3(const openvrml::mat4f &, size_t, size_t, size_t, size_t,
	size_t, size_t)): Use size_t instead of int to suppress a warning
	from the Microsoft compiler.
	* src/libopenvrml/openvrml/local/error.cpp
	(openvrml::local::throw_runtime_error_from_win32_system_error(LONG)):
	Cast to DWORD to suppress a warning from the Microsoft compiler.
	* src/libopenvrml/openvrml/local/parse_vrml.cpp
	(error_handler::operator()(const ScannerT &, const ErrorT &)
	const): static_cast to size_t to suppress warnings from the
	Microsoft compiler.
	* src/libopenvrml/openvrml/local/proto.cpp
	(resolve_node_path(const node_path_t &, const
	std::vector<boost::intrusive_ptr<openvrml::node> > &)): Fully
	qualify boost::next.
	(field_value_cloner::clone_node(const
	boost::intrusive_ptr<openvrml::node> &)): Fully qualify
	boost::bind.
	* src/libopenvrml/openvrml/local/uri.cpp
	(openvrml::local::uri::swap(uri &)): Use difference_type instead
	of size_type to suppress a warning from the Microsoft compiler.
	* src/libopenvrml/openvrml/script.cpp
	(openvrml::script_node::script_node(script_node_metatype &, const
	boost::shared_ptr<openvrml::scope> &, const node_interface_set &,
	const initial_value_map &)): Initialize "succeeded" to suppress
	warning.
	* src/libopenvrml/openvrml/node_impl_util.h
	(openvrml::node_impl_util::exposedfield<FieldValue>::exposedfield(openvrml::node&,
	const typename FieldValue::value_type &)): cl 16.0 still has the
	"typename" bustage.
	* src/libopenvrml/openvrml/node.h
	(openvrml::find_interface(const node_interface_set &, const
	std::string &)): Fully qualify boost::bind.
	* src/libopenvrml/openvrml.rc: Moved from
	ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.rc.
	* src/libopenvrml/openvrml-config-win32.h: Moved from
	ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml-config.h.
	* src/libopenvrml/openvrml.vcxproj: Added file.
	* src/libopenvrml/openvrml-common.h: Include
	<openvrml-config-win32.h> on Windows.
	* src/libopenvrml-gl/openvrml-gl.rc: Moved from
	ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.rc.
	* src/libopenvrml-gl/openvrml-gl-config-win32.h: Moved from
	ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml-gl-config.h.
	* src/libopenvrml-gl/openvrml-gl.vcxproj: Added file.
	* src/libopenvrml-gl/openvrml-gl-common.h: Include
	<openvrml-gl-config-win32.h> on Windows.
	* src/local/libopenvrml-dl/openvrml-dl.vcxproj: Added file.
	* src/node/vrml97/grouping_node_base.h
	(openvrml_node_vrml97::grouping_node_base<Derived>::add_children_listener::do_process_event(const
	openvrml::mfnode &, double)): The Microsoft compiler requires
	openvrml::node to be fully qualified here.
	* src/node/vrml97/vrml97.vcxproj: Added file.
	* src/node/x3d-cad-geometry/x3d-cad-geometry.vcxproj: Added file.
	* src/node/x3d-core/x3d-core.vcxproj: Added file.
	* src/node/x3d-dis/x3d-dis.vcxproj: Added file.
	* src/node/x3d-environmental-effects/x3d-environmental-effects.vcxproj:
	Added file.
	* src/node/x3d-event-utilities/x3d-event-utilities.vcxproj: Added
	file.
	* src/node/x3d-geometry2d/x3d-geometry2d.vcxproj: Added file.
	* src/node/x3d-geospatial/x3d-geospatial.vcxproj: Added file.
	* src/node/x3d-grouping/x3d-grouping.vcxproj: Added file.
	* src/node/x3d-h-anim/x3d-h-anim.vcxproj: Added file.
	* src/node/x3d-interpolation/x3d-interpolation.vcxproj: Added
	file.
	* src/node/x3d-key-device-sensor/x3d-key-device-sensor.vcxproj:
	Added file.
	* src/node/x3d-networking/x3d-networking.vcxproj: Added file.
	* src/node/x3d-nurbs/x3d-nurbs.vcxproj: Added file.
	* src/node/x3d-rendering/x3d-rendering.vcxproj: Added file.
	* src/node/x3d-shape/x3d-shape.vcxproj: Added file.
	* src/node/x3d-texturing/x3d-texturing.vcxproj: Added file.
	* src/script/javascript.vcxproj: Added file.
	* tests/parse-vrml97.vcxproj: Added file.
	* tests/parse-x3dvrml.vcxproj: Added file.
	* tests/Makefile.am
	(EXTRA_DIST): Add Visual Studio 2010 project files.

2010-08-13 Braden McDaniel  <braden@endoframe.com>

	Doc-comment improvements: mark private data member documentation
	"@internal".

	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/field_value.cpp
	* src/libopenvrml/openvrml/frustum.cpp
	* src/libopenvrml/openvrml/node_impl_util.cpp
	* src/libopenvrml/openvrml/script.cpp
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp

2010-08-12 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.h: Doesn't need to include
	<boost/thread.hpp>.

2010-08-12 Braden McDaniel  <braden@endoframe.com>

	Updates for Doxygen 1.7.1.

	* doc/Doxyfile
	* doc/Makefile.am
	* doc/doxygen-header
	* doc/manual/tab_l-openvrml.png: Removed.
	* doc/manual/tab_b-openvrml.png: Removed.
	* doc/manual/tab_r-openvrml.png: Removed.

2010-07-12 Braden McDaniel  <braden@endoframe.com>

	* src/node/vrml/text.cpp
	(openvrml_node_vrml97::text_metatype::text_metatype(openvrml::browser&):
	Only call FcInit for non-Windows platforms.

2010-07-10 Braden McDaniel  <braden@endoframe.com>

	* src/node/vrml97/text.cpp: Fixed to compile without
	OPENVRML_ENABLE_RENDER_TEXT_NODE.

2010-07-09 Braden McDaniel  <braden@endoframe.com>

	Removed OPENVRML_API from event listener/emitter class templates.

	These trigger "inconsistent dll linkage" warnings from the
	Microsoft compiler.  For gcc's purposes, forcing symbol visibility
	for templates should be unnecessary.

	* src/libopenvrml/openvrml/event.h
	(field_value_listener): Removed OPENVRML_API.
	(field_value_emitter): Removed OPENVRML_API.

2010-07-09 Braden McDaniel  <braden@endoframe.com>

	* src/node/vrml97/image_texture.cpp
	(image_texture_node::do_render_texture(openvrml::viewer &)): Lock
	the image_mutex_ before rendering the texture.

2010-06-02 Braden McDaniel  <braden@endoframe.com>

	Updates for 0.18.6 release.

	* README
	* NEWS
	* configure.ac
	* doc/Doxyfile
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.rc
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.rc
	* src/Makefile.am
	(LIBOPENVRML_LIBRARY_VERSION): Update to 9:4:0.

2010-05-28 Braden McDaniel  <braden@endoframe.com>

	Use jpeg_decompress_struct.out_color_components to determine the
	scan line buffer size.  This addresses a memory corruption issue
	when reading grayscale JPEGs.

	* src/node/vrml97/image_stream_listener.cpp
	(openvrml_node_vrml97::image_stream_listener::jpeg_reader::do_read(const
	std::vector<unsigned char> &)): Use
	jpeg_decompress_struct.out_color_components to determine the scan
	line buffer size.  This member isn't set until after the call to
	jpeg_start_decompress; so move the buffer allocation to the
	start_decompress section.

2010-05-27 Braden McDaniel  <braden@endoframe.com>

	FcFini cannot be called safely from library code.  Calling it is
	not a strict requirement; though it does clean up valgrind
	results.  To this end, call it from sdl-viewer instead.

	* examples/Makefile.am
	(sdl_viewer_CXXFLAGS): Add FONTCONFIG_CFLAGS.
	(sdl_viewer_LDFLAGS): Add FONTCONFIG_LIBS.
	* examples/sdl_viewer.cpp
	(main(int, char *[])): Call FcFini on shutdown if built with
	OPENVRML_ENABLE_RENDER_TEXT_NODE.
	* src/node/vrml97/text.cpp
	(openvrml_node_vrml97::text_metatype::text_metatype(openvrml::browser&)):
	It's safe to call FcInit redundantly.
	(openvrml_node_vrml97::text_metatype::~text_metatype()): Don't
	call FcFini from library code.

2010-05-27 Braden McDaniel  <braden@endoframe.com>

	Call FcInit/FcFini to clean up resources used by Fontconfig.

	* src/node/vrml97/text.cpp
	(text_node::text_geometry::text_geometry(const
	boost::ptr_vector<line_geometry> &, const std::string &, const
	std::string &, bool, float, float, float)): Initialize x_min_,
	x_max_, y_min_, and y_max_ to 0.
	(openvrml_node_vrml97::text_metatype::text_metatype(openvrml::browser&)):
	Call FcInit if this is the first time we're using the Fontconfig
	library.
	(openvrml_node_vrml97::text_metatype::~text_metatype()): Call
	FcFini if this is the last use of the Fontconfig library.

2010-05-21 Braden McDaniel  <braden@endoframe.com>

	We're expanding the pixels that libpng reads to full RGBA
	quartets; so when reading pixels, the new_row and old_row buffers
	must be sized accordingly.  This fixes a memory corruption issue.

	* src/node/vrml97/image_stream_listener.cpp
	(openvrml_png_info_callback(png_structp, png_infop)): Use
	png_ptr->rowbytes to size the old_row buffer.
	(openvrml_png_row_callback(png_structp, png_bytep, png_uint_32,
	int)): Use png_ptr->rowbytes to get the size of the buffer that
	libpng is using.

2010-05-02 Braden McDaniel  <braden@endoframe.com>

	fcfreetype.h is C++-safe in fontconfig >= 2.3.0.  It should be
	safe to require at least that version.

	* configure.ac: Require fontconfig >= 2.3.0.
	* src/node/vrml97/text.cpp: Don't need to wrap fcfreetype.h in
	'extern "C"' anymore.

2010-05-02 Braden McDaniel  <braden@endoframe.com>

	Added exception specifications for text_node::glyph_geometry and
	text_node::line_geometry member functions.

	* src/node/vrml97/text.cpp
	(text_node::glyph_geometry::coord() const): Added
	OPENVRML_NOTHROW.
	(text_node::glyph_geometry::coord_index() const): Added
	OPENVRML_NOTHROW.
	(text_node::glyph_geometry::advance_width() const): Added
	OPENVRML_NOTHROW.
	(text_node::glyph_geometry::advance_height() const): Added
	OPENVRML_NOTHROW.
	(text_node::line_geometry::line_geometry(bool, bool, bool, const
	openvrml::vec2f &)): Added OPENVRML_NOTHROW.
	(text_node::line_geometry::coord() const): Added OPENVRML_NOTHROW.
	(text_node::line_geometry::coord_index() const): Added
	OPENVRML_NOTHROW.
	(text_node::line_geometry::x_min() const): Added OPENVRML_NOTHROW.
	(text_node::line_geometry::x_max() const): Added OPENVRML_NOTHROW.
	(text_node::line_geometry::y_min() const): Added OPENVRML_NOTHROW.
	(text_node::line_geometry::y_max() const): Added OPENVRML_NOTHROW.
	(text_node::line_geometry::polygons() const): Added
	OPENVRML_NOTHROW.
	(text_node::line_geometry::add(const glyph_geometry &)): Throws
	std::bad_alloc.
	(text_node::line_geometry::scale(float)): Added OPENVRML_NOTHROW.

2010-05-02 Braden McDaniel  <braden@endoframe.com>

	Delegate the logic to get the pen start position to a helper
	function; pass the start position to the line_geometry
	constructor.

	* src/node/vrml97/text.cpp
	(text_node::line_geometry::line_geometry(bool, bool, bool, const
	openvrml::vec2f &)): Get the pen start position from the calling
	context.
	(get_pen_start_for_line(std::size_t, float, float, bool, bool,
	bool)): Factored logic to determine the starting position for the
	"pen" on a line from text_node::update_geometry.
	(text_node::update_geometry()): Call get_pen_start_for_line to get
	the pen start position for a line; pass this to the line_geometry
	constructor.

2010-05-02 Braden McDaniel  <braden@endoframe.com>

	Refactor some of the Text node rendering logic.  Move logic
	previously in text_node::update_geometry to members of the
	text_node::text_geometry class.

	* src/node/vrml97/text.cpp
	(text_node::text_geometry_): Changed to a boost::scoped_ptr since
	text_geometry is no longer default-constructible.
	(text_node::text_geometry::text_geometry(const
	boost::ptr_vector<line_geometry> &, const std::string &, const
	std::string &, bool, float, float, float)): Moved the logic to
	compose the text geometry from the line geometry to here from
	text_node::update_geometry.
	(text_node::text_geometry::coord() const): Added accessor to get
	the coordinates.
	(text_node::text_geometry::coord_index() const): Added accessor to
	get the coordinate indices.
	(text_node::text_geometry::normal() const): Added accessor to get
	the normals.
	(text_node::text_geometry::tex_coord() const): Added accessor to
	get the texture coordinates.
	(text_node::text_geometry::add(const line_geometry &, const
	std::string &, bool)): Add a line of text to the text geometry.
	(text_node::text_geometry::scale(float)): Scale the text geometry
	according to the maximum allowed extent.
	(text_node::text_geometry::minor_align(const std::string &, bool,
	float, float, std::size_t)): Apply the minor alignment to the text
	geometry.
	(text_node::text_geometry::generate_normals(std::size_t)):
	Generate normals for the text geometry.
	(text_node::text_geometry::generate_tex_coords(float)): Generate
	texture coordinates for the text geometry.
	(text_node::do_render_geometry(openvrml::viewer &,
	openvrml::rendering_context)): Make sure text_geometry_ is not
	null.
	(text_node::update_geometry()): Delegate creation of the text
	geometry to the text_geometry constructor.  Assemble all the
	lines, then create the text_geometry.

2010-05-01 Braden McDaniel  <braden@endoframe.com>

	Refactor some of the Text node rendering logic.  Also, apply
	FT_Done_Glyph (so we shouldn't be leaking those anymore).

	* src/node/vrml97/text.cpp
	(text_node::line_geometry): Added class.
	(text_node::glyph_geometry::glyph_geometry(FT_Face, FT_UInt,
	float)): Construct glyph_geometry from a FT_Face, the glyph_index,
	and the desired size.  This constructor now does quite a bit of
	heavy lifting: it loads the FT_Glyph, generates polygons from it,
	and ultimately unloads it.  The latter bit (unloading) is the only
	real functional change here, as we were neglecting to do that
	previously (and thus leaking).  Previously, this logic lived in
	text_node::update_geometry.
	(text_node::glyph_geometry::coord() const): Added accessor to get
	the coordinates.
	(text_node::glyph_geometry::coord_index() const): Added accessor
	to get the coordinate indices.
	(text_node::glyph_geometry::advance_width() const): Added accessor
	to get the advance_width.
	(text_node::glyph_geometry::advance_height() const): Added
	accessor to get the advance_height.
	(text_node::line_geometry::line_geometry(bool, bool, bool)):
	Construct the line_geometry.
	(text_node::line_geometry::coord() const): Accessor to get the
	coordinates.
	(text_node::line_geometry::coord() const): Accessor to get the
	coordinate indices.
	(text_node::line_geometry::x_min() const): Accessor to get the
	minimum x extent.
	(text_node::line_geometry::x_max() const): Accessor to get the
	maximum x extent.
	(text_node::line_geometry::y_min() const): Accessor to get the
	minimum y extent.
	(text_node::line_geometry::y_max() const): Accessor to get the
	maximum y extent.
	(text_node::line_geometry::polygons() const): Accessor to get the
	number of polygons.
	(text_node::line_geometry::add(const glyph_geometry &)): Add
	geometry for a glyph to the line.  Previously, this logic lived in
	text_node::update_geometry.
	(text_node::line_geometry::scale(float)): Scale the line geometry
	to a length.
	(text_node::~text_node()): Assert that this->face is 0.
	(text_node::do_shutdown(double)): Set this->face to 0 after it is
	unloaded.
	(text_node::update_geometry()): Moved logic to load the FT_Glyph
	and generate polygons to the glyph_geometry constructor.  Moved
	logic to add glyph geometry to a line to line_geometry::add.

2010-04-28 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::browser::load_url(const std::vector<std::string> &,
	const std::vector<std::string> &)): Maintain a lock on the
	load_root_scene_thread_mutex_ instead of letting one go and
	reacquiring.

2010-04-28 Braden McDaniel  <braden@endoframe.com>

	* src/Makefile.am (node_x3d_cad_geometry_la_SOURCES): Added
	missing register_node_metatypes.cpp.

2010-04-28 Braden McDaniel  <braden@endoframe.com>

	* src/node/vrml97/image_stream_listener.cpp
	(openvrml_png_info_callback(png_structp, png_infop)): Added
	missing "using" declaration.

2010-04-13 Braden McDaniel  <braden@endoframe.com>

	* src/node/vrml97/image_stream_listener.cpp
	(openvrml_png_info_callback(png_structp, png_infop)): Acquire a
	unique_lock on the image_mutex_.

2010-03-21 Braden McDaniel  <braden@endoframe.com>

	* README: Note libltdl requirement.

2010-03-21 Braden McDaniel  <braden@endoframe.com>

	* README: Note that OpenVRML must be installed to the same prefix
	as D-Bus in order for automatic activation of openvrml-xembed to
	work.

2010-03-21 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Fixed missing comma in --enable-jpeg-textures
	processing.

2010-03-21 Braden McDaniel  <braden@endoframe.com>

	Update AX_CHECK_GL and AX_CHECK_GLU to the 2010-03-21 release.

	* m4/ax_check_gl.m4
	* m4/ax_check_glu.m4
	* openvrml-gl.pc.in: Add GL_LIBS to Libs.private.
	* src/Makefile.am (libopenvrml_gl_libopenvrml_gl_la_LIBADD): Apply
	both GLU_LIBS and GL_LIBS.

2010-02-15 Braden McDaniel  <braden@endoframe.com>

	Updates for 0.18.5 release.

	* README
	* NEWS
	* configure.ac
	* doc/Doxyfile
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.rc
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.rc

2010-02-15 Braden McDaniel  <braden@endoframe.com>

	Update AX_CHECK_GL and AX_CHECK_GLU to the 2010-01-25 release.

	This addresses a problem with correctly detecting and using the
	Apple OpenGL framework.

	* m4/acx_pthread.m4: Removed; replaced by ax_pthread.m4.
	* m4/ax_check_gl.m4
	* m4/ax_check_glu.m4
	* m4/ax_pthread.m4: Added.

2010-02-13 Braden McDaniel  <braden@endoframe.com>

	Updates for 0.18.4 release.

	* README
	* NEWS
	* configure.ac
	* doc/Doxyfile
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.rc
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.rc
	* src/Makefile.am: Updated libopenvrml library version to 9:3:0.

2010-02-13 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Fixed check to see if JAVA_HOME is set.

2010-02-13 Braden McDaniel  <braden@endoframe.com>

	* tests/browser.cpp: Modernize Boost.Thread usage: include
	<boost/thread.hpp> and use boost::condition_variable.

2010-02-13 Braden McDaniel  <braden@endoframe.com>

	* ide-projects/Windows/VisualC9_0/OpenVRML/vrml97/vrml97.vcproj:
	Update FreeType library name for 2.3.12.

2010-02-13 Braden McDaniel  <braden@endoframe.com>

	* tests/Makefile.am (browser_LDADD): Link with libboost_system.

2010-02-13 Braden McDaniel  <braden@endoframe.com>

	Fixes for Windows.

	* src/libopenvrml/openvrml/local/conf.cpp
	(const std::string query_registry_value(HKEY, const
	std::string&)): Bring
	openvrml::local::throw_runtime_error_from_win32_system_error into
	scope.
	(const std::string get_registry_setting(const std::string &)):
	Bring openvrml::local::throw_runtime_error_from_win32_system_error
	into scope.
	* src/libopenvrml/openvrml/local/error.cpp: Include
	<boost/multi_index/detail/scope_guard.hpp>.
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj:
	Add src/libopenvrml/openvrml/local/error.{cpp,h} to the project.

2010-02-08 Braden McDaniel  <braden@endoframe.com>

	Remove dead code.

	* src/openvrml-xembed/browser.cpp
	(openvrml_xembed_browser_new_stream(OpenvrmlXembedBrowser *,
	guint64, const char *, const char *, GError **)): Removed.
	(openvrml_xembed_browser_destroy_stream(OpenvrmlXembedBrowser *,
	guint64, GError **)): Removed.
	(openvrml_xembed_browser_write(OpenvrmlXembedBrowser *, guint64,
	const GArray *, GError **)): Removed.

2010-02-07 Braden McDaniel  <braden@endoframe.com>

	Modernize Boost.Thread usage: include <boost/thread.hpp> and use
	boost::condition_variable.

	* src/Makefile.am
	(local_libopenvrml_control_la_LDFLAGS): Link with libboost_thread.
	* src/libopenvrml/openvrml/browser.cpp: Boost.Thread headers are
	pulled in by scene.h.
	* src/libopenvrml/openvrml/field_value.h: Include
	<boost/thread.hpp>.
	* src/libopenvrml/openvrml/local/externproto.h: Include
	<boost/thread.hpp>.
	* src/libopenvrml/openvrml/node.h: Boost.Thread headers are pulled
	in by field_value.h.
	* src/libopenvrml/openvrml/scene.h: Boost.Thread headers are
	pulled in by node.h.
	* src/local/libopenvrml-control/openvrml_control/browser.cpp:
	Include <boost/thread.hpp>; use boost::condition_variable.
	* src/openvrml-xembed/main.cpp: Include <boost/thread.hpp>.

2010-02-06 Braden McDaniel  <braden@endoframe.com>

	Remove Java-related function definitions.  The signatures of these
	functions differ from XULRunner 1.9.1 to 1.9.2.  We're not using
	them; so in the interest of working with both XULRunner versions,
	just delete them for now.

	* src/mozilla-plugin/openvrml.cpp
	(NPP_GetJavaClass()): Removed.
	(NPN_GetJavaEnv()): Removed.
	(NPN_GetJavaPeer(NPP)): Removed.

2010-02-06 Braden McDaniel  <braden@endoframe.com>

	* src/mozilla-plugin/openvrml.cpp: Use NPBool instead of PRBool.

2010-02-06 Braden McDaniel  <braden@endoframe.com>

	* src/mozilla-plugin/openvrml.cpp: Use C99 sized types instead of
	XULRunner-/NSPR-specific ones.

2010-02-06 Braden McDaniel  <braden@endoframe.com>

	Use a dedicated (private) D-Bus connection to call
	org.openvrml.BrowserHost.GetUrl.  Multiple threads can call this
	function; and a connection should not be shared by multiple
	threads.

	* src/openvrml-xembed/browser.cpp
	(browser_host_proxy): Store a reference to the
	OpenvrmlXembedBrowser.
	(browser_host_proxy::do_get_url(const std::string &)): Use a
	private D-Bus connection to call org.openvrml.BrowserHost.GetUrl.
	(OpenvrmlXembedBrowserPrivate_): Store the
	org.openvrml.BrowserHost name.
	(browser_property_id): Add enumerant for the control host name
	property.
	(openvrml_xembed_browser_class_init(OpenvrmlXembedBrowserClass *)):
	Add control-host-name property.
	(openvrml_xembed_browser_constructor(GType, guint,
	GObjectConstructParam *)): Construct the browser_host_proxy with a
	reference to the OpenvrmlXembedBrowser.
	(openvrml_xembed_browser_finalize(GObject *)): g_free the
	control_host_name.
	(openvrml_xembed_browser_set_property(GObject *, guint, const
	GValue *, GParamSpec *)): Set the control-host-name property.
	(openvrml_xembed_browser_get_property(GObject *, guint, GValue *,
	GParamSpec *)): Get the control-host-name property.
	(openvrml_xembed_browser_new(DBusGProxy *, gboolean,
	GMainContext *, const gchar *, GdkNativeWindow)): Create the
	OpenvrmlXembedBrowser using the org.openvrml.BrowserHost name.
	* src/openvrml-xembed/browser.h
	(openvrml_xembed_browser_new(DBusGProxy *, gboolean,
	GMainContext *, const gchar *, GdkNativeWindow)): Pass the
	org.openvrml.BrowserHost name.
	* src/openvrml-xembed/browserfactory.cpp
	(openvrml_xembed_browser_factory_create_control(
	OpenvrmlXembedBrowserFactory *, const char *, const char *,
	guint64, gboolean, DBusGMethodInvocation *)): Create the
	OpenvrmlXembedBrowser using the org.openvrml.BrowserHost name.

2010-02-05 Braden McDaniel  <braden@endoframe.com>

	* src/openvrml-xembed/browserfactory.cpp
	(openvrml_xembed_browser_factory_create_control(
	OpenvrmlXembedBrowserFactory *, const char *, const char *,
	guint64, gboolean, DBusGMethodInvocation *)): Don't add a
	reference when constructing the intrusive_ptr to put in the
	controls_map.

2010-02-05 Braden McDaniel  <braden@endoframe.com>

	* src/openvrml-xembed/main.cpp
	(dbus_thread_loop::operator()() const): Terminating a variable
	argument list with plain 0 is not 64-bit-safe.
	Use static_cast<void *>(0) instead.

2010-02-05 Braden McDaniel  <braden@endoframe.com>

	* src/local/libopenvrml-control/openvrml_control/browser.cpp
	(openvrml_control::browser::resource_fetcher::do_get_resource(const
	std::string &)): Ensure that plugin_streambuf::set_get_url_result
	gets called if browser_host::get_url throws.

2010-02-03 Braden McDaniel  <braden@endoframe.com>

	* doc/Doxyfile: Suppress generation of the bug, todo, and test
	list pages.

2010-02-01 Braden McDaniel  <braden@endoframe.com>

	Add previous/up/next navigation to documentation pages.

	* doc/doxygen-header
	* doc/conformance.doc
	* doc/gpl.doc
	* doc/index.doc
	* doc/intro.doc
	* doc/lgpl.doc
	* doc/libopenvrml.doc
	* doc/parsing.doc

2010-01-23 Braden McDaniel  <braden@endoframe.com>

	Doxygen formatting improvements for tables.

	* doc/doxygen-header
	* doc/index.doc

2010-01-23 Braden McDaniel  <braden@endoframe.com>

	* doc/doxygen-header: Just center the h3 text on the main
	page (that is, the version text).

2010-01-23 Braden McDaniel  <braden@endoframe.com>

	Move documentation concerning rotation normalization from
	openvrml::sfrotation to openvrml::rotation.

	* src/libopenvrml/openvrml/basetypes.cpp
	* src/libopenvrml/openvrml/field_value.cpp

2010-01-23 Braden McDaniel  <braden@endoframe.com>

	Doxygen formatting improvements.

	* doc/doxygen-header
	* doc/index.doc

2010-01-23 Braden McDaniel  <braden@endoframe.com>

	Doc-comment fixes and improvements.

	* src/libopenvrml/openvrml/event.cpp
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/script.cpp
	* src/libopenvrml/openvrml/node_impl_util.h
	* src/libopenvrml/openvrml/scope.cpp
	* src/libopenvrml/openvrml/field_value.cpp
	* src/libopenvrml/openvrml/browser.cpp

2010-01-23 Braden McDaniel  <braden@endoframe.com>

	Escape control characters for doxygen.

	* doc/gpl.doc
	* doc/conformance.doc

2009-11-28 Braden McDaniel  <braden@endoframe.com>

	* src/Makefile.am: Only install openvrml-player.ui if we were
	configured to build openvrml-player.

2009-11-27 Braden McDaniel  <braden@endoframe.com>

	* src/script/java.cpp (load_libjvm::load_libjvm()): Improved error
	messages when loading libjvm fails.

2009-11-26 Braden McDaniel  <braden@endoframe.com>

	* doc/Doxyfile: Upgraded for Doxygen 1.6.1.

2009-11-02 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Updated copyright notice.

2009-11-02 Braden McDaniel  <braden@endoframe.com>

	* Makefile.am: Simplify addition of openvrml-gl.pc to
	pkgconfig_DATA.

2009-11-01 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Require pkg-config >= 0.18.0.

2009-10-31 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Since all of the optional features now appear in
	dynamically loaded modules, we no longer need the machinery to
	propagate the resulting dependencies to the pkg-config metadata.

2009-10-31 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Fixed checks for unset shell variables.

2009-10-31 Braden McDaniel  <braden@endoframe.com>

	* openvrml.pc.in: Added URL.

2009-10-30 Braden McDaniel  <braden@endoframe.com>

	* openvrml.pc.in: Added libxml-2.0 to Requires.private.

2009-10-30 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Use pkg-config to check for libpng.  This allows
	us to be a little smarter about linking and avoid linking directly
	with zlib on platforms that don't need it.

2009-10-30 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Use AS_IF consistently.

2009-10-27 Braden McDaniel  <braden@endoframe.com>

	* src/openvrml-player/curlbrowserhost.cpp
	(openvrml_player_curl_browser_host_get_url(
	OpenvrmlPlayerCurlBrowserHost *, const char *, GError **)): Set
	GError on failure.

2009-10-25 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Improve quality of checks to see whether variables
	have been set.

2009-10-25 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: More GRE_PATH cleanup.

2009-10-24 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Clean up legacy cruft in handling of GRE_PATH.

2009-10-19 Braden McDaniel  <braden@endoframe.com>

	* src/node/vrml97/collision.cpp
	(collision_node::do_modified() const): Call do_modified to avoid
	recursion.

2009-10-19 Braden McDaniel  <braden@endoframe.com>

	Fixes for building against Boost 1.40.0.

	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/local/uri.cpp
	* src/libopenvrml/openvrml/local/externproto.cpp
	* src/libopenvrml/openvrml/scene.cpp
	* src/local/libopenvrml-control/openvrml_control/browser.h
	* src/node/vrml97/inline.cpp
	* src/node/x3d-nurbs/nurbs_trimmed_surface.cpp
	* src/openvrml-xembed/main.cpp

2009-10-18 Braden McDaniel  <braden@endoframe.com>

	* src/openvrml-xembed/main.cpp
	(openvrml_xembed_name_owner_changed(DBusGProxy *, const gchar *,
	const gchar *, const gchar *, gpointer)): Only print out debugging
	message if we actually erased any references.

2009-10-18 Braden McDaniel  <braden@endoframe.com>

	Make throw_runtime_error_from_win32_system_error available to
	other translation units.

	* src/Makefile.am (libopenvrml_libopenvrml_la_SOURCES): Added
	libopenvrml/openvrml/local/error.{cpp,h}.
	* src/libopenvrml/openvrml/local/conf.cpp
	* src/libopenvrml/openvrml/local/error.cpp
	* src/libopenvrml/openvrml/local/error.h

2009-10-05 Braden McDaniel  <braden@endoframe.com>

	* Makefile.am (VISUALC9_0_FILES): Added openvrml-dl.vcproj to the
	distribution.

2009-08-13 Braden McDaniel  <braden@endoframe.com>

	Updates for 0.18.3 release.

	* README
	* NEWS
	* configure.ac
	* doc/Doxyfile
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.rc
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.rc
	* src/Makefile.am: Updated libopenvrml library version to 9:2:0.

2009-08-10 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/local/float.h: Removed obsolete include
	of <boost/concept_check.hpp>.

2009-08-07 Braden McDaniel  <braden@endoframe.com>

	Fixes for building on Windows.

	* src/local/libopenvrml-dl/openvrml/local/dl.cpp
	(openvrml::local::dl::foreachfile(const
	std::vector<boost::filesystem::path> &, int (*)(const
	std::string&, void *), void *)): Removed obsolete typedef.
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj:
	Added libopenvrml-dl source directory to include path.

2009-08-07 Braden McDaniel  <braden@endoframe.com>

	Modified openvrml::local::dl interface to use
	boost::filesystem::path and std::string.

	* src/Makefile.am
	(local_libopenvrml_dl_la_LIBADD): Added libboost_filesystem
	dependency.
	* src/libopenvrml/openvrml/local/conf.cpp
	(openvrml::local::conf::datadir()): Return a
	boost::filesystem::path.
	(openvrml::local::conf::node_path()): Return a std::vector of
	boost::filesystem::path to represent the node module search path.
	(openvrml::local::conf::script_path()): Return a std::vector of
	boost::filesystem::path to represent the script module search
	path.
	* src/libopenvrml/openvrml/local/conf.h
	(openvrml::local::conf::datadir()): Return a
	boost::filesystem::path.
	(openvrml::local::conf::node_path()): Return a std::vector of
	boost::filesystem::path to represent the node module search path.
	(openvrml::local::conf::script_path()): Return a std::vector of
	boost::filesystem::path to represent the script module search
	path.
	* src/libopenvrml/openvrml/local/node_metatype_registry_impl.cpp
	(openvrml_open_node_module(const std::string &, void *)): Changed
	signature to use std::string.
	(openvrml::local::node_metatype_registry_impl::node_metatype_registry_impl(openvrml::browser&)):
	Use a std::vector of boost::filesystem::path to represent the node
	module search path.
	* src/libopenvrml/openvrml/local/node_metatype_registry_impl.h
	(node_metatype_registry_impl): Use std::string in the signature of
	openvrml_open_node_module; changed type of sym to std::string.
	* src/local/libopenvrml-dl/openvrml/local/dl.cpp
	(openvrml::local::dl::foreachfile(const
	std::vector<boost::filesystem::path> &, int (*)(const
	std::string&, void *), void *)): Use boost::filesystem::path and
	std::string.
	(openvrml::local::dl::prepend_to_searchpath(const
	boost::filesystem::path &)): Use boost::filesystem::path.
	(openvrml::local::dl::open(const std::string &)): Use std::string.
	(openvrml::local::dl::sym(handle, const std::string &)): Use
	std::string.
	* src/local/libopenvrml-dl/openvrml/local/dl.h
	(openvrml::local::dl::foreachfile(const
	std::vector<boost::filesystem::path> &, int (*)(const
	std::string&, void *), void *)): Use boost::filesystem::path and
	std::string.
	(openvrml::local::dl::prepend_to_searchpath(const
	boost::filesystem::path &)): Use boost::filesystem::path.
	(openvrml::local::dl::open(const std::string &)): Use std::string.
	(openvrml::local::dl::sym(handle, const std::string &)): Use
	std::string.

2009-08-03 Braden McDaniel  <braden@endoframe.com>

	Converted Java scripting backend to use libopenvrml-dl to load
	libjvm rather than using libltdl directly.

	* src/Makefile.am
	(script_java_la_CPPFLAGS): Add the libopenvrml-dl source directory
	to the include path.
	(script_java_la_LIBADD): Added libopenvrml-dl.
	* src/local/libopenvrml-dl/openvrml/local/dl.cpp: Added function
	openvrml::local::dl::prepend_to_searchpath.
	* src/local/libopenvrml-dl/openvrml/local/dl.h: Added function
	openvrml::local::dl::prepend_to_searchpath.
	* src/script/java.cpp
	(create_searchpath_from_java_home(const std::string &)): Removed;
	replaced with prepend_java_home_libdirs_to_searchpath.
	(prepend_java_home_libdirs_to_searchpath(const std::string &)):
	Given a location for the Java Runtime Environment, prepend the
	possible locations of libjvm to the runtime library search path.
	(load_libjvm::load_libjvm()): Use libopenvrml-dl functions instead
	of libltdl ones.
	(load_libjvm::~load_libjvm()): Use libopenvrml-dl functions instead
	of libltdl ones.

2009-08-02 Braden McDaniel  <braden@endoframe.com>

	Removed obsolete -I flags when building libopenvrml.

	* src/Makefile.am
	(libopenvrml_libopenvrml_la_CPPFLAGS): Removed obsolete -I flags.
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj

2009-08-02 Braden McDaniel  <braden@endoframe.com>

	Moved libltdl/LoadLibrary wrapper to its own static library.

	* ide-projects/Windows/VisualC9_0/OpenVRML/OpenVRML.sln
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj:
	Use openvrml-dl static library.
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-dl/openvrml-dl.vcproj:
	Added.

2009-08-02 Braden McDaniel  <braden@endoframe.com>

	Moved libltdl/LoadLibrary wrapper to its own convenience library.

	* src/Makefile.am
	(noinst_LTLIBRARIES): Added local/libopenvrml-dl.la.
	(libopenvrml_libopenvrml_la_CPPFLAGS): Add libopenvrml-dl source
	directory to the include path.
	(libopenvrml_libopenvrml_la_SOURCES): Removed
	libopenvrml/openvrml/local/dl.{cpp,h}.
	(libopenvrml_libopenvrml_la_LIBADD): Added libopenvrml-dl.la;
	removed -lltdl.
	(local_libopenvrml_dl_la_SOURCES): Added.
	(local_libopenvrml_dl_la_CPPFLAGS): Add libopenvrml build source
	directories to the include path.
	(local_libopenvrml_dl_la_LIBADD): Link with libltdl.
	* src/libopenvrml/openvrml/local/dl.cpp: Removed.
	* src/libopenvrml/openvrml/local/dl.h: Removed.
	* src/local/libopenvrml-dl/openvrml/local/dl.cpp: Added.
	* src/local/libopenvrml-dl/openvrml/local/dl.h: Added.

2009-08-01 Braden McDaniel  <braden@endoframe.com>

	Moved src/libopenvrml-control to src/local/libopenvrml-control.

	* src/Makefile.am
	* src/local/libopenvrml-control

2009-08-01 Braden McDaniel  <braden@endoframe.com>

	* src/script/java.cpp: Removed obsolete path separator definition.

2009-07-30 Braden McDaniel  <braden@endoframe.com>

	Fixes for building on windows.  Revert change that removed
	OPENVRML_JAVASCRIPT_API, OPENVRML_JAVASCRIPT_LOCAL,
	OPENVRML_JAVA_API, OPENVRML_JAVA_LOCAL, OPENVRML_GL_API, and
	OPENVRML_GL_LOCAL preprocessor definitions.  Include Boost headers
	that appear to be necessary on Windows.

	* configure.ac: Revert change that removed
	OPENVRML_JAVASCRIPT_API, OPENVRML_JAVASCRIPT_LOCAL,
	OPENVRML_JAVA_API, and OPENVRML_JAVA_LOCAL preprocessor
	definitions.
	* ide-projects/Windows/VisualC9_0/OpenVRML/javascript/javascript.vcproj:
	Define preprocessor symbols OPENVRML_JAVASCRIPT_API and
	OPENVRML_JAVASCRIPT_LOCAL.
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj:
	Removed references to obsolete files
	src/libopenvrml/openvrml/read_write_mutex.{cpp,h}.
	* src/libopenvrml/openvrml/event.h: Do not apply OPENVRML_API to
	node_field_value_listener; the Microsoft compiler does not like
	__declspec(dllimport) applied to class templates.
	* src/libopenvrml/openvrml/field_value.h: Include
	<boost/thread/locks.hpp>.
	* src/libopenvrml/openvrml/node.h: Include
	<boost/thread/mutex.hpp>.
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp: Apply
	OPENVRML_GL_LOCAL.
	* src/libopenvrml-gl/openvrml/gl/viewer.h: Apply OPENVRML_GL_API.
	* src/script/java.cpp: Apply OPENVRML_JAVA_API and
	OPENVRML_JAVA_LOCAL.
	* src/script/javascript.cpp: Apply OPENVRML_JAVASCRIPT_API and
	OPENVRML_JAVASCRIPT_LOCAL.

2009-07-13 Braden McDaniel  <braden@endoframe.com>

	Apply OPENVRML_API to *_get_type functions for GTK+ widgets.
	GtkBuilder needs to see these symbols when reading UI XML.

	* src/openvrml-player/filechooserdialog.h
	* src/openvrml-player/curlbrowserhost.h

2009-07-12 Braden McDaniel  <braden@endoframe.com>

	Remove obsolete configuration code supporting linking with
	libjvm.  (We don't do that anymore.)

	* examples/Makefile.am: Removed obsolete use of JNI_LIBS.
	* m4/jdk.m4: Removed unused OV_CHECK_JNI macro.

2009-07-12 Braden McDaniel  <braden@endoframe.com>

	* tests/Makefile.am: Removed obsolete use of OPENVRML_RPATH.

2009-07-12 Braden McDaniel  <braden@endoframe.com>

	* examples/Makefile.am: Removed obsolete use of OPENVRML_RPATH.

2009-07-07 Braden McDaniel  <braden@endoframe.com>

	Updates for 0.18.2 release.

	* README
	* NEWS
	* configure.ac
	* doc/Doxyfile
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.rc
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.rc

2009-07-07 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Added ppc, ppc64 awareness to search path for
	libjvm.

2009-07-05 Braden McDaniel  <braden@endoframe.com>

	Updates for 0.18.1 release.

	* README
	* NEWS
	* configure.ac
	* doc/Doxyfile
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.rc
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.rc
	* src/Makefile.am
	(LIBOPENVRML_LIBRARY_VERSION): Updated to 9:1:0.

2009-07-04 Braden McDaniel  <braden@endoframe.com>

	Applied OPENVRML_API to event listener/emitter class templates.

	* src/libopenvrml/openvrml/event.h
	(field_value_listener): Applied OPENVRML_API.
	(node_field_value_listener): Applied OPENVRML_API.
	(field_value_emitter): Applied OPENVRML_API.

2009-07-04 Braden McDaniel  <braden@endoframe.com>

	Updates for 0.18.0 release.

	* README
	* NEWS
	* configure.ac
	* doc/Doxyfile
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.rc
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.rc
	* src/Makefile.am
	(LIBOPENVRML_LIBRARY_VERSION): Updated to 9:0:0.
	(LIBOPENVRML_GL_LIBRARY_VERSION): Updated to 8:0:0.

2009-07-04 Braden McDaniel  <braden@endoframe.com>

	* doc/doxygen-footer: Added Piwik script.

2009-07-04 Braden McDaniel  <braden@endoframe.com>

	* doc/doxygen-footer: Direct documentation bug reports to trac.

2009-07-04 Braden McDaniel  <braden@endoframe.com>

	* doc/doxygen-footer: Use updated SourceForge logo.

2009-07-03 Braden McDaniel  <braden@endoframe.com>

	* Makefile.am: No longer use gtk-doc.

2009-07-03 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Make BOOST_LIB_SUFFIX default to "-mt" if it is
	undefined.
	* README: Change wording documenting BOOST_LIB_SUFFIX to indicate
	that setting this variable may not be required.

2009-07-03 Braden McDaniel  <braden@endoframe.com>

	* README: Use "sourceforge.net" in URIs instead of "sf.net".

2009-07-02 Braden McDaniel  <braden@endoframe.com>

	* README: Document the OPENVRML_FT_CONST and OPENVRML_JNI_CONST
	preprocessor symbols; document the environment variables used by
	libopenvrml and openvrml-player.

2009-07-02 Braden McDaniel  <braden@endoframe.com>

	* README: Note libxml as a required dependency on non-Windows
	platforms.

2009-07-02 Braden McDaniel  <braden@endoframe.com>

	Use OPENVRML_API and OPENVRML_LOCAL everywhere instead of defining
	module-specific macros.

	* configure.ac
	* ide-projects/Windows/VisualC9_0/OpenVRML/javascript/javascript.vcproj
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	* src/libopenvrml-gl/openvrml/gl/viewer.h
	* src/script/java.cpp
	* src/script/javascript.cpp

2009-07-02 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Removed obsolete AC_DEFINE of
	OPENVRML_ENABLE_SCRIPT_NODE_JAVASCRIPT.

2009-07-02 Braden McDaniel  <braden@endoframe.com>

	* README: Point to trac resources rather than the old SourceForge
	ones.

2009-07-02 Braden McDaniel  <braden@endoframe.com>

	* doc/intro.doc: Note componentization features in the introduction.

2009-06-29 Braden McDaniel  <braden@endoframe.com>

	* README: Updated dependency list.

2009-06-26 Braden McDaniel  <braden@endoframe.com>

	* README: Back off the system memory recommendation a bit.

2009-06-26 Braden McDaniel  <braden@endoframe.com>

	* README: Updated the directory layout; note that at least Boost
	1.37 is required.

2009-06-25 Braden McDaniel  <braden@endoframe.com>

	* doc/parsing.doc: Updated to reflect use of the
	boost::spirit::classic namespace.

2009-06-23 Braden McDaniel  <braden@endoframe.com>

	Set OPENVRML_NODE_PATH and OPENVRML_SCRIPT_PATH when running the
	test programs.

	* tests/Makefile.am
	(TESTS_ENVIRONMENT): Set OPENVRML_NODE_PATH and
	OPENVRML_SCRIPT_PATH.
	(check-local): Reuse TESTS_ENVIRONMENT.

2009-06-22 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Check to see whether the pertinent precious
	variables have been set by the user before failing due to a
	missing dependency.

2009-06-22 Braden McDaniel  <braden@endoframe.com>

	Use Spirit Classic in the boost::spirit::classic namespace.

	* tests/parse_x3dvrml.cpp
	* tests/parse_vrml97.cpp
	* examples/pretty_print.cpp

2009-06-22 Braden McDaniel  <braden@endoframe.com>

	* tests/browser.cpp: Current Boost no longer provides
	<boost/thread.hpp>.

2009-06-22 Braden McDaniel  <braden@endoframe.com>

	Use Spirit Classic in the boost::spirit::classic namespace.

	* src/libopenvrml/openvrml/basetypes.cpp
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/vrml97_grammar.h
	* src/libopenvrml/openvrml/x3d_vrml_grammar.h
	* src/libopenvrml/openvrml/local/parse_vrml.cpp
	* src/libopenvrml/openvrml/local/uri.cpp
	* src/libopenvrml/openvrml/local/uri.h

2009-06-22 Braden McDaniel  <braden@endoframe.com>

	Use GIO instead of GnomeVFS in openvrml-player.

	* configure.ac: Check for GIO.
	* src/Makefile.am
	(openvrml_player_openvrml_player_CXXFLAGS): Pass GIO_CFLAGS.
	(openvrml_player_openvrml_player_LDFLAGS): Pass GIO_LIBS.
	* src/openvrml-player/curlbrowserhost.cpp
	(openvrml_player_curl_browser_host_curl_write(void *, size_t,
	size_t, void *)): Use GIO to get the MIME media type.
	* src/openvrml-player/player.cpp
	(main(int, char *[])): Don't need to initialize GnomeVFS anymore.

2009-06-22 Braden McDaniel  <braden@endoframe.com>

	Use boost::shared_mutex instead of openvrml::read_write_mutex.

	* src/Makefile.am
	(openvrml_include_HEADERS): Removed read_write_mutex.h.
	(libopenvrml_libopenvrml_la_SOURCES): Removed read_write_mutex.cpp.
	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/browser.h
	* src/libopenvrml/openvrml/event.cpp
	* src/libopenvrml/openvrml/event.h
	* src/libopenvrml/openvrml/field_value.cpp
	* src/libopenvrml/openvrml/field_value.h
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node.h
	* src/libopenvrml/openvrml/read_write_mutex.cpp: Removed.
	* src/libopenvrml/openvrml/read_write_mutex.h: Removed.
	* src/libopenvrml/openvrml/scene.cpp
	* src/libopenvrml/openvrml/scene.h
	* src/libopenvrml/openvrml/local/node_metatype_registry_impl.cpp
	* src/libopenvrml/openvrml/local/node_metatype_registry_impl.h
	* src/libopenvrml-control/openvrml_control/browser.cpp
	* src/libopenvrml-control/openvrml_control/browser.h
	* src/node/vrml97/image_stream_listener.cpp
	* src/node/vrml97/image_stream_listener.h
	* src/node/vrml97/image_texture.cpp

2009-06-21 Braden McDaniel  <braden@endoframe.com>

	The Web browser still wants the plug-in to have the NPN_* entry
	points.

	* src/mozilla-plugin/openvrml.cpp
	(NPN_Version(int *, int *, int *, int *)): Replaced.
	(NPN_GetURLNotify(NPP, const char *, const char *, void *)):
	Replaced.
	(NPN_GetURL(NPP, const char *, const char *)): Replaced.
	(NPN_PostURLNotify(NPP, const char *, const char *, uint32, const
	char *, NPBool, void *)): Replaced.
	(NPN_PostURL(NPP, const char *, const char *, uint32, const
	char *, NPBool)): Replaced.
	(NPN_RequestRead(NPStream *, NPByteRange *)): Replaced.
	(NPN_NewStream(NPP, NPMIMEType, const char *, NPStream **)):
	Replaced.
	(NPN_Write(NPP, NPStream *, int32, void *)): Replaced.
	(NPN_DestroyStream(NPP, NPStream *, NPError)): Replaced.
	(NPN_Status(NPP, const char *)): Replaced.
	(NPN_UserAgent(NPP)): Replaced.
	(NPN_MemAlloc(uint32)): Replaced.
	(NPN_MemFree(void *)): Replaced.
	(NPN_MemFlush(uint32)): Replaced.
	(NPN_ReloadPlugins(NPBool)): Replaced.
	(NPN_GetJavaEnv()): Replaced.
	(NPN_GetJavaPeer(NPP)): Replaced.
	(NPN_GetValue(NPP, NPNVariable, void *)): Replaced.
	(NPN_SetValue(NPP, NPPVariable, void *)): Replaced.
	(NPN_InvalidateRect(NPP, NPRect *)): Replaced.
	(NPN_InvalidateRegion(NPP, NPRegion)): Replaced.
	(NPN_ForceRedraw(NPP)): Replaced.
	(NPN_ReleaseVariantValue(NPVariant *)): Replaced.
	(NPN_GetStringIdentifier(const NPUTF8 *)): Replaced.
	(NPN_GetStringIdentifiers(const NPUTF8 **, int32_t,
	NPIdentifier *)): Replaced.
	(NPN_GetIdentifier(int32_t)): Replaced.
	(NPN_IdentifierIsString(NPIdentifier *)): Replaced.
	(NPN_UTF8FromIdentifier(NPIdentifier)): Replaced.
	(NPN_IntFromIdentifier(NPIdentifier)): Replaced.
	(NPN_CreateObject(NPP, NPClass *)): Replaced.
	(NPN_RetainObject(NPObject *)): Replaced.
	(NPN_ReleaseObject(NPObject *)): Replaced.
	(NPN_Invoke(NPP, NPObject *, NPIdentifier, const NPVariant *,
	uint32_t, NPVariant *)): Replaced.
	(NPN_InvokeDefault(NPP, NPObject *, const NPVariant *, uint32_t,
	NPVariant *)): Replaced.
	(NPN_Evaluate(NPP, NPObject *, NPString *, NPVariant *)): Replaced.
	(NPN_GetProperty(NPP, NPObject *, NPIdentifier, NPVariant *)):
	Replaced.
	(NPN_SetProperty(NPP, NPObject *, NPIdentifier, const
	NPVariant *)): Replaced.
	(NPN_RemoveProperty(NPP, NPObject *, NPIdentifier)): Replaced.
	(NPN_HasProperty(NPP, NPObject *, NPIdentifier)): Replaced.
	(NPN_HasMethod(NPP, NPObject *, NPIdentifier)): Replaced.
	(NPN_SetException(NPObject *, const NPUTF8 *)): Replaced.

2009-06-18 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Fixed JNI const test.

2009-06-18 Braden McDaniel  <braden@endoframe.com>

	Build the Mozilla plug-in with XULRunner 1.9.1.  Removed the NPN_*
	function implementations in favor of directly using the function
	pointers provided by the browser.

	* configure.ac: Require mozilla-plugin.pc version 1.9.1.
	* src/mozilla-plugin/openvrml.cpp
	(openvrml_np_browser_host_get_url(OpenvrmlNpBrowserHost *, const
	char *, GError **)): Call mozillaFuncs.geturl directly.
	(NP_Initialize(NPNetscapeFuncs *, NPPluginFuncs *)): Call
	mozillaFuncs.getvalue directly.
	(NPP_GetValue(NPP, NPPVariable, void *)): Call
	mozillaFuncs.retainobject directly.
	(NPN_Version(int *, int *, int *, int *)): Removed.
	(NPN_GetURLNotify(NPP, const char *, const char *, void *)):
	Removed.
	(NPN_GetURL(NPP, const char *, const char *)): Removed.
	(NPN_PostURLNotify(NPP, const char *, const char *, uint32, const
	char *, NPBool, void *)): Removed.
	(NPN_PostURL(NPP, const char *, const char *, uint32, const
	char *, NPBool)): Removed.
	(NPN_RequestRead(NPStream *, NPByteRange *)): Removed.
	(NPN_NewStream(NPP, NPMIMEType, const char *, NPStream **)):
	Removed.
	(NPN_Write(NPP, NPStream *, int32, void *)): Removed.
	(NPN_DestroyStream(NPP, NPStream *, NPError)): Removed.
	(NPN_Status(NPP, const char *)): Removed.
	(NPN_UserAgent(NPP)): Removed.
	(NPN_MemAlloc(uint32)): Removed.
	(NPN_MemFree(void *)): Removed.
	(NPN_MemFlush(uint32)): Removed.
	(NPN_ReloadPlugins(NPBool)): Removed.
	(NPN_GetJavaEnv()): Removed.
	(NPN_GetJavaPeer(NPP)): Removed.
	(NPN_GetValue(NPP, NPNVariable, void *)): Removed.
	(NPN_SetValue(NPP, NPPVariable, void *)): Removed.
	(NPN_InvalidateRect(NPP, NPRect *)): Removed.
	(NPN_InvalidateRegion(NPP, NPRegion)): Removed.
	(NPN_ForceRedraw(NPP)): Removed.
	(NPN_ReleaseVariantValue(NPVariant *)): Removed.
	(NPN_GetStringIdentifier(const NPUTF8 *)): Removed.
	(NPN_GetStringIdentifiers(const NPUTF8 **, int32_t,
	NPIdentifier *)): Removed.
	(NPN_GetIdentifier(int32_t)): Removed.
	(NPN_IdentifierIsString(NPIdentifier *)): Removed.
	(NPN_UTF8FromIdentifier(NPIdentifier)): Removed.
	(NPN_IntFromIdentifier(NPIdentifier)): Removed.
	(NPN_CreateObject(NPP, NPClass *)): Removed.
	(NPN_RetainObject(NPObject *)): Removed.
	(NPN_ReleaseObject(NPObject *)): Removed.
	(NPN_Invoke(NPP, NPObject *, NPIdentifier, const NPVariant *,
	uint32_t, NPVariant *)): Removed.
	(NPN_InvokeDefault(NPP, NPObject *, const NPVariant *, uint32_t,
	NPVariant *)): Removed.
	(NPN_Evaluate(NPP, NPObject *, NPString *, NPVariant *)): Removed.
	(NPN_GetProperty(NPP, NPObject *, NPIdentifier, NPVariant *)):
	Removed.
	(NPN_SetProperty(NPP, NPObject *, NPIdentifier, const
	NPVariant *)): Removed.
	(NPN_RemoveProperty(NPP, NPObject *, NPIdentifier)): Removed.
	(NPN_HasProperty(NPP, NPObject *, NPIdentifier)): Removed.
	(NPN_HasMethod(NPP, NPObject *, NPIdentifier)): Removed.
	(NPN_SetException(NPObject *, const NPUTF8 *)): Removed.

2009-06-18 Braden McDaniel  <braden@endoframe.com>

	Conditionally apply "const" when using the JNI functions
	SetFloatArrayRegion and SetDoubleArrayRegion.

	* configure.ac: Check to see whether JNI function signatures use
	"const".
	* src/script/java.cpp: Use OPENVRML_JNI_CONST to conditionally
	apply "const" when using SetFloatArrayRegion and
	SetDoubleArrayRegion.

2009-06-17 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Fixed error message to note missing GtkGLExt
	rather than just GTK+.

2009-06-17 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Added check for ltdl.h.

2009-06-07 Braden McDaniel  <braden@endoframe.com>

	* src/mozilla-plugin/openvrml.cpp
	(NPP_GetMIMEDescription()): Use model/x3d-vrml instead of
	model/x3d+vrml.

2009-05-28 Braden McDaniel  <braden@endoframe.com>

	Don't propagate an exception if OpenVRML's registry key has not
	been set.

	* src/libopenvrml/openvrml/local/conf.cpp
	(no_registry_key): Exception to indicate that a registry key was
	not found.
	(get_registry_setting(const std::string &): Throw no_registry_key
	if OpenVRML's key is not found.
	(openvrml::local::conf::node_path()): Swallow no_registry_key.
	(openvrml::local::conf::script_path()): Swallow no_registry_key.

2009-05-28 Braden McDaniel  <braden@endoframe.com>

	Link with the /MD variant of FreeType.

	* ide-projects/Windows/VisualC9_0/OpenVRML/vrml97/vrml97.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj

2009-05-27 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml-control/openvrml_control/browser.cpp
	(openvrml_control::browser::new_stream(uint64_t, const
	std::string&, const std::string &)): Assert that type and uri are
	nonempty.

2009-05-27 Braden McDaniel  <braden@endoframe.com>

	Fixes to the conf refactoring to build with gcc on Linux.

	* src/Makefile.am
	(libopenvrml_libopenvrml_la_SOURCES): Added entries for
	conf.{cpp,h}.
	* src/libopenvrml/openvrml/local/conf.cpp: Don't include
	<exception>.
	* src/libopenvrml/openvrml/local/conf.h: Include <stdexcept>;
	added exception specifications.

2009-05-27 Braden McDaniel  <braden@endoframe.com>

	On Windows, use the registry to get the default data directory,
	script module path, and node module path.

	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj:
	Added conf.{cpp,h}.
	* src/libopenvrml/openvrml/local/component.cpp
	(openvrml::local::component_registry::component_registry()):
	Delegate to openvrml::local::conf::datadir to get the data
	directory.
	* src/libopenvrml/openvrml/local/conf.cpp: Added file.
	* src/libopenvrml/openvrml/local/conf.h: Added file.
	* src/libopenvrml/openvrml/local/node_metatype_registry_impl.cpp
	(openvrml::local::node_metatype_registry_impl::node_metatype_registry_impl(openvrml::browser&)):
	Delegate to openvrml::local::conf::node_path to get the node
	module path.
	* src/libopenvrml/openvrml/script.cpp
	(openvrml::script_factory_registry::impl::impl()): Delegate to
	openvrml::local::conf::script_path to get the script module path.

2009-05-25 Braden McDaniel  <braden@endoframe.com>

	* src/node/vrml97/lod.cpp
	(lod_node::do_render_child(openvrml::viewer &, const
	openvrml::rendering_context)): The Microsoft compiler doesn't like
	"using openvrml::node" here for some reason.

2009-05-13 Braden McDaniel  <braden@endoframe.com>

	* src/openvrml-player/curlbrowserhost.cpp
	(openvrml_player_curl_browser_host_curl_source_callback(gpointer)):
	Make sure NewStream gets called before calling DestroyStream in
	cases where no data was written to the stream.

2009-05-13 Braden McDaniel  <braden@endoframe.com>

	* src/node/vrml97/image_texture.cpp
	(image_texture_node::update_texture()): Make sure the stream is
	valid before reading it.

2009-05-09 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/local/parse_vrml.h
	(openvrml::local::vrml97_parse_actions::on_externproto_t::operator()(const
	std::string &, const node_interface_set &, const
	std::vector<std::string> &) const): Catch (and swallow) any
	invalid_url exceptions thrown when encountering bad URIs for
	EXTERNPROTO implementations.

2009-05-08 Braden McDaniel  <braden@endoframe.com>

	* src/openvrml-xembed/browser.cpp
	(openvrml_xembed_browser_get_id(OpenvrmlXembedBrowser *)): Make
	sure the plug's window pointer is nonnull.

2009-05-06 Braden McDaniel  <braden@endoframe.com>

	Fixed race condition when realizing the OpenvrmlXembedBrowserPlug.

	* src/openvrml-xembed/browser.cpp
	(OpenvrmlXembedBrowserPrivate_): Changed browser_plug_set_cond to
	browser_plug_realized_cond to reflect that the condition variable
	will be signaled after the plug has been realized.
	(openvrml_xembed_browser_get_id(OpenvrmlXembedBrowser *)):
	Surround call to gtk_plug_get_id with
	gdk_threads_enter/gdk_threads_leave.
	(openvrml_xembed_browser_ready_dispatch(GSource *, GSourceFunc,
	gpointer)): Realize the browser_plug before signaling the
	condition variable.

2009-05-04 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/node.cpp
	(openvrml::node_traverser::traverse(const
	std::vector<boost::intrusive_ptr<node> > &)): Break out of the
	loop if the traversal has been halted.

2009-05-04 Braden McDaniel  <braden@endoframe.com>

	Initialize the viewer in openvrml::gl::viewer::checkSensitive.

	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	(openvrml::gl::viewer::initialize()): Return if the viewer has
	already been initialized.
	(openvrml::gl::viewer::redraw()): Moved "already-initialized"
	check to the initialize function.
	(openvrml::gl::viewer::checkSensitive(int, int, event_type)): Call
	viewer::initialize.

2009-05-03 Braden McDaniel  <braden@endoframe.com>

	Improved lod_node::do_modified only to check the currently
	applicable child node(s).

	* src/node/vrml97/lod.cpp
	(lod_node::do_modified() const): Just check current_children_.
	(lod_node::do_render_child(openvrml::viewer &,
	openvrml::rendering_context)): Update current_children_ with the
	currently appropriate "level".

2009-05-01 Braden McDaniel  <braden@endoframe.com>

	* src/node/vrml97/background.cpp
	(openvrml_node_vrml97::background_metatype::do_render(openvrml::viewer&)
	const): Remove the texture objects from the viewer if the
	background has been modified.
	* src/node/vrml97/background.cpp
	(openvrml_node_vrml97::background_node): Changed front, back,
	left, right, top, and bottom members to front_, back_, left_,
	right_, top_, and bottom_.  This avoids shadowing the
	openvrml::background_node member functions and is consistent with
	existing conventions in OpenVRML.

2009-05-01 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	(openvrml::gl::viewer::do_insert_background(const
	background_node&)): Store/retrieve the display list.

2009-04-30 Braden McDaniel  <braden@endoframe.com>

	Added abstract node type openvrml::background_node.

	* src/libopenvrml/openvrml/local/externproto.cpp
	(openvrml::local::externproto_node::to_background()): Added
	implementation of openvrml::node::to_background.
	* src/libopenvrml/openvrml/local/externproto.h
	(openvrml::local::externproto): Override
	openvrml::node::to_background.
	* src/libopenvrml/openvrml/local/proto.cpp
	(openvrml::local::proto): Override openvrml::node::to_background.
	* src/libopenvrml/openvrml/node.cpp
	(openvrml::node::to_background()): Added downcast function;
	default implementation returns 0.
	(openvrml::background_node::background_node(const node_type &,
	const boost::shared_ptr<openvrml::scope> &)): Construct a
	background_node.
	(openvrml::background_node::~background_node()): Destroy a
	background_node.
	(openvrml::background_node::to_background()): Return this.
	(openvrml::background_node::ground_angle() const): Delegate to
	do_ground_angle.
	(openvrml::background_node::ground_color() const): Delegate to
	do_ground_color.
	(openvrml::background_node::sky_angle() const): Delegate to
	do_sky_angle.
	(openvrml::background_node::sky_color() const): Delegate to
	do_sky_color.
	(openvrml::background_node::front() const): Delegate to do_front.
	(openvrml::background_node::back() const): Delegate to do_back.
	(openvrml::background_node::left() const): Delegate to do_left.
	(openvrml::background_node::right() const): Delegate to do_right.
	(openvrml::background_node::top() const): Delegate to do_top.
	(openvrml::background_node::bottom() const): Delegate to
	do_bottom.
	* src/libopenvrml/openvrml/node.h
	(openvrml::node): Added polymorphic "cast" function used by
	node_cast.
	(openvrml::node_cast<background_node *>(node *)): Specialize for
	background_node.
	(openvrml::background_node): Added background_node abstract node
	type.
	* src/libopenvrml/openvrml/viewer.cpp
	(openvrml::viewer::insert_background(const background_node &)):
	Just take a background_node.
	* src/libopenvrml/openvrml/viewer.h
	(openvrml::viewer): Changed insert_background and
	do_insert_background just to take a background_node.
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	(openvrml::gl::viewer::do_insert_background(const
	background_node&)): Get data from the background_node.
	* src/libopenvrml-gl/openvrml/gl/viewer.h
	(openvrml::gl::viewer): Changed do_insert_background to take a
	background_node.
	* src/node/vrml97/background.cpp
	(openvrml_node_vrml97::background_metatype::background_metatype(openvrml::browser&)):
	Initialize the node_metatype and node_type for the default
	background node.
	(null_texture_node): Removed.
	(openvrml_node_vrml97::background_metatype::do_render(openvrml::viewer&)
	const): Use a background_node instance for the default background.
	(openvrml_node_vrml97::background_node::background_node(const
	openvrml::node_type &, const
	boost::shared_ptr<openvrml::scope>&)): Don't bother to set up the
	texture nodes for the default background.
	(openvrml_node_vrml97::background_node::do_ground_angle() const):
	Implement openvrml::background_node.
	(openvrml_node_vrml97::background_node::do_ground_color() const):
	Implement openvrml::background_node.
	(openvrml_node_vrml97::background_node::do_sky_angle() const):
	Implement openvrml::background_node.
	(openvrml_node_vrml97::background_node::do_sky_color() const):
	Implement openvrml::background_node.
	(openvrml_node_vrml97::background_node::do_front() const):
	Implement openvrml::background_node.
	(openvrml_node_vrml97::background_node::do_back() const):
	Implement openvrml::background_node.
	(openvrml_node_vrml97::background_node::do_left() const):
	Implement openvrml::background_node.
	(openvrml_node_vrml97::background_node::do_right() const):
	Implement openvrml::background_node.
	(openvrml_node_vrml97::background_node::do_top() const): Implement
	openvrml::background_node.
	(openvrml_node_vrml97::background_node::do_bottom() const):
	Implement openvrml::background_node.
	* src/node/vrml97/background.h
	(openvrml_node_vrml97::background_metatype): Provide a
	null_node_metatype and a null_node_type for the default
	background.
	(openvrml_node_vrml97::background_node): Inherit
	openvrml::background_node; override openvrml::node::do_modified.
	* src/node/x3d-environmental-effects/texture_background.cpp
	(texture_background_node): Inherit openvrml::background_node.
	(texture_background_node::texture_background_node(const
	node_type&, const boost::shared_ptr<openvrml::scope> &)):
	Initialize the base openvrml::background_node.
	(texture_background_node::do_modified() const): Check the modified
	states of the texture nodes.
	(texture_background_node::do_ground_angle() const): Implement
	openvrml::background_node.
	(texture_background_node::do_ground_color() const): Implement
	openvrml::background_node.
	(texture_background_node::do_sky_angle() const): Implement
	openvrml::background_node.
	(texture_background_node::do_sky_color() const): Implement
	openvrml::background_node.
	(texture_background_node::do_front() const): Implement
	openvrml::background_node.
	(texture_background_node::do_back() const): Implement
	openvrml::background_node.
	(texture_background_node::do_left() const): Implement
	openvrml::background_node.
	(texture_background_node::do_right() const): Implement
	openvrml::background_node.
	(texture_background_node::do_top() const): Implement
	openvrml::background_node.
	(texture_background_node::do_bottom() const): Implement
	openvrml::background_node.

2009-04-29 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	(openvrml::gl::viewer::do_insert_background(const
	std::vector<float> &, const std::vector<color> &, const
	std::vector<float> &, const std::vector<color> &, texture_node &,
	texture_node &, texture_node &, texture_node &, texture_node &,
	texture_node &)): Removed erroneously committed debugging output.

2009-04-27 Braden McDaniel  <braden@endoframe.com>

	Override do_modified for background_node; set the initial value of
	the url field for the subordinate image_texture_nodes.

	* src/libopenvrml/openvrml/viewer.cpp: Changed insert_background
	to take nonconst texture_nodes.
	* src/libopenvrml/openvrml/viewer.h: Changed insert_background to
	take nonconst texture_nodes.
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp: Changed
	insert_background to take nonconst texture_nodes; always call
	render_texture on the texture_nodes in order to trigger
	downloading the image.
	* src/libopenvrml-gl/openvrml/gl/viewer.h: Changed
	insert_background to take nonconst texture_nodes.
	* src/node/vrml97/background.cpp
	(openvrml_node_vrml97::background_metatype::do_render(openvrml::viewer&)
	const): Made static null_texture_nodes nonconst.
	(openvrml_node_vrml97::background_node::do_initialize(double)):
	Set the initial value for the "url" fields of the subordinate
	image_texture_nodes.
	(openvrml_node_vrml97::background_node::do_modified() const):
	Check the modified flags of the subordinate image_texture_nodes.
	* src/node/vrml97/background.h
	(openvrml_node_vrml97::background_node): Override do_modified.

2009-04-27 Braden McDaniel  <braden@endoframe.com>

	* src/node/vrml97/image_texture.cpp
	(image_texture_node::do_render_texture(openvrml::viewer & v)):
	openvrml::viewer::insert_texture no longer returns a value.

2009-04-27 Braden McDaniel  <braden@endoframe.com>

	* AUTHORS: Removed reference to GIF copyright; OpenVRML hasn't
	supported GIF for some years.

2009-04-21 Braden McDaniel  <braden@endoframe.com>

	Apply the nonvirtual interface idiom to openvrml::node::modified.

	* src/libopenvrml/openvrml/node.cpp
	(openvrml::node::modified(bool)): Added exception specification
	noting that boost::thread_resource_error can be thrown; call
	do_modified.
	(openvrml::node::do_modified() const): Added function; this base
	class implementation always returns false.
	* src/libopenvrml/openvrml/node.h
	(openvrml::node): Made modified function nonvirtual; added private
	virtual function do_modified.
	* src/node/vrml97/abstract_indexed_set.h
	(openvrml_node_vrml97::abstract_indexed_set<Derived>): Override
	do_modified instead of modified.
	* src/node/vrml97/appearance.cpp
	(appearance): Override do_modified instead of modified.
	* src/node/vrml97/cad_layer.cpp
	(cad_layer): Override do_modified instead of modified.
	* src/node/vrml97/collision.cpp
	(collision): Override do_modified instead of modified.
	* src/node/vrml97/elevation_grid.cpp
	(elevation_grid): Override do_modified instead of modified.
	* src/node/vrml97/grouping_node_base.h
	(openvrml_node_vrml97::grouping_node_base<Derived>): Override
	do_modified instead of modified.
	* src/node/vrml97/indexed_face_set.cpp
	(indexed_face_set): Override do_modified instead of modified.
	* src/node/vrml97/lod.cpp
	(lod): Override do_modified instead of modified.
	* src/node/vrml97/point_set.cpp
	(point_set): Override do_modified instead of modified.
	* src/node/vrml97/shape.cpp
	(shape): Override do_modified instead of modified.
	* src/node/vrml97/switch.cpp
	(switch): Override do_modified instead of modified.
	* src/node/vrml97/text.cpp
	(text): Override do_modified instead of modified.
	* src/node/x3d-cad-geometry/cad_face.cpp
	(cad_face): Override do_modified instead of modified.
	* src/node/x3d-cad-geometry/indexed_quad_set.cpp
	(indexed_quad_set): Override do_modified instead of modified.
	* src/node/x3d-geometry2d/arc2d.cpp
	(arc2d): Removed unnecessary override of modified.
	* src/node/x3d-geometry2d/arc_close2d.cpp
	(arc_close2d): Removed unnecessary override of modified.
	* src/node/x3d-geometry2d/circle2d.cpp
	(circle2d): Removed unnecessary override of modified.
	* src/node/x3d-geometry2d/disk2d.cpp
	(disk2d): Removed unnecessary override of modified.
	* src/node/x3d-geometry2d/polypoint2d.cpp
	(polypoint2d): Removed unnecessary override of modified.
	* src/node/x3d-geometry2d/rectangle2d.cpp
	(rectangle2d): Removed unnecessary override of modified.
	* src/node/x3d-geometry2d/triangle_set2d.cpp
	(triangle_set2d): Removed unnecessary override of modified.
	* src/node/x3d-geospatial/geo_elevation_grid.cpp
	(geo_elevation_grid): Override do_modified instead of modified.
	* src/node/x3d-grouping/static_group.cpp
	(static_group): Override do_modified instead of modified.
	* src/node/x3d-nurbs/nurbs_curve.cpp
	(nurbs_curve): Override do_modified instead of modified.
	* src/node/x3d-nurbs/nurbs_patch_surface.cpp
	(nurbs_patch_surface): Override do_modified instead of modified.
	* src/node/x3d-nurbs/nurbs_swept_surface.cpp
	(nurbs_swept_surface): Override do_modified instead of modified.
	* src/node/x3d-nurbs/nurbs_swung_surface.cpp
	(nurbs_swung_surface): Override do_modified instead of modified.
	* src/node/x3d-nurbs/nurbs_trimmed_surface.cpp
	(nurbs_trimmed_surface): Override do_modified instead of modified.
	* src/node/x3d-rendering/indexed_triangle_fan_set.cpp
	(indexed_triangle_fan_set): Override do_modified instead of
	modified.
	* src/node/x3d-rendering/indexed_triangle_set.cpp
	(indexed_triangle_set): Override do_modified instead of modified.
	* src/node/x3d-rendering/triangle_fan_set.cpp
	(indexed_triangle_fan_set): Override do_modified instead of
	modified.
	* src/node/x3d-rendering/triangle_set.cpp
	(triangle_set): Override do_modified instead of modified.
	* src/node/x3d-rendering/triangle_strip_set.cpp
	(triangle_strip_set): Override do_modified instead of modified.

2009-04-17 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/local/component.cpp
	(openvrml::local::component::xml_reader::start_element(openvrml::local::xml_reader&)):
	Quell uninitialized variable warning.

2009-04-17 Braden McDaniel  <braden@endoframe.com>

	* src/script/java.cpp: Include <iostream> for std::cerr.

2009-04-17 Braden McDaniel  <braden@endoframe.com>

	* src/mozilla-plugin/openvrml.cpp
	(NPP_StreamAsFile(NPP, NPStream *, const char *)): Quell unused
	variable warning.

2009-04-17 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/local/xml_reader.cpp: Whitespace
	changes.

2009-04-17 Braden McDaniel  <braden@endoframe.com>

	* README: Updated to reflect that Script node Java support is now
	enabled by default.

2009-04-16 Braden McDaniel  <braden@endoframe.com>

	Allow OpenVRML to be configured to use only nonthrowing exception
	specifications.

	* README: Added documentation for
	"--enable-exception-specs=nothrow".
	* configure.ac: Added "nothrow" argument to the
	--enable-exception-specs option.
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml-config.h:
	Define OPENVRML_ENABLE_NOTHROW_EXCEPTION_SPECS and
	OPENVRML_ENABLE_THROWING_EXCEPTION_SPECS to 0; the Microsoft
	compiler ignores exception specifications, so there's nothing to
	do here.
	* src/libopenvrml/openvrml-common.h: Distinguish between throwing
	and "nothrow" exception specifications with the preprocessor
	symbols OPENVRML_ENABLE_THROWING_EXCEPTION_SPECS and
	OPENVRML_ENABLE_NOTHROW_EXCEPTION_SPECS.
	* src/libopenvrml/openvrml-config.h.in: Define
	OPENVRML_ENABLE_THROWING_EXCEPTION_SPECS and
	OPENVRML_ENABLE_NOTHROW_EXCEPTION_SPECS.

2009-04-06 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/exposedfield.h
	(openvrml::exposedfield<FieldValue>): Resolve ambiguity regarding
	"value".

2009-04-06 Braden McDaniel  <braden@endoframe.com>

	* src/node/vrml97/background.cpp
	(update_texture(openvrml_node_vrml97::background_node &,
	openvrml::read_write_mutex &, const openvrml::mfstring &,
	openvrml::image &)): Removed (cruft).

2009-04-05 Braden McDaniel  <braden@endoframe.com>

	Clean up allocated GL resources on window resize so that the
	viewer can be reinitialized.  Some platforms and bindings (notably
	SDL on Windows) destroy the GL context on resize.

	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	(openvrml::gl::viewer::viewer()): Initialize the tesselator to 0;
	allocate the tesselator in openvrml::gl::viewer::initialize
	instead.
	(openvrml::gl::viewer::~viewer()): Call shutdown.
	(openvrml::gl::viewer::initialize()): Allocate the GLU tesselator
	here.
	(openvrml::gl::viewer::delete_list): Function object to call
	glDeleteLists.
	(openvrml::gl::viewer::delete_texture): Function object to call
	glDeleteTextures.
	(openvrml::gl::viewer::shutdown()): Clean up display lists,
	textures objects, and the GLU tesselator.
	(openvrml::gl::viewer::resize(size_t, size_t)): Call shutdown.
	* src/libopenvrml-gl/openvrml/gl/viewer.h
	(openvrml::gl::viewer): Declare structs delete_list and
	delete_texture; added shutdown member function.

2009-04-05 Braden McDaniel  <braden@endoframe.com>

	* src/node/vrml97/abstract_indexed_set.h
	(openvrml_node_vrml97::abstract_indexed_set_node<Derived>::do_color()
	const): Override openvrml::geometry_node::do_color instead of
	openvrml::geometry_node::color (which is now nonvirtual).

2009-04-04 Braden McDaniel  <braden@endoframe.com>

	Apply the nonvirtual interface pattern to openvrml::gl::viewer's
	pure virtual functions.

	* examples/sdl_viewer.cpp (sdl_viewer): Override do_post_redraw,
	do_set_cursor, do_swap_buffers, and do_set_timer.
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	(openvrml::gl::viewer::post_redraw()): Delegate to do_post_redraw.
	(openvrml::gl::viewer::do_post_redraw()): Moved the logic that was
	in post_redraw to here.
	(openvrml::gl::viewer::set_cursor(cursor_style)): Delegate to
	do_set_cursor.
	(openvrml::gl::viewer::do_set_cursor(cursor_style)): Moved the
	logic that was in set_cursor to here.
	(openvrml::gl::viewer::swap_buffers()): Delegate to
	do_swap_buffers.
	(openvrml::gl::viewer::do_swap_buffers()): Moved the logic that
	was in swap_buffers to here.
	(openvrml::gl::viewer::set_timer(double)): Delegate to
	do_set_timer.
	(openvrml::gl::viewer::do_set_timer(double)): Moved the logic that
	was in set_timer to here.
	* src/libopenvrml-gl/openvrml/gl/viewer.h
	(openvrml::gl::viewer): Made post_redraw, set_cursor,
	swap_buffers, and set_timer nonvirtual (and protected); added
	private virtual functions do_post_redraw, do_set_cursor,
	do_swap_buffers, and do_set_timer.
	* src/openvrml-xembed/browser.cpp
	(GtkGLViewer): Override do_post_redraw, do_set_cursor,
	do_swap_buffers, and do_set_timer.

2009-04-03 Braden McDaniel  <braden@endoframe.com>

	Get rid of the last vestiges of openvrml::viewer::object_t.

	* src/libopenvrml/openvrml/viewer.cpp
	(openvrml::viewer::begin_object(const char *, bool)): Return void.
	(openvrml::viewer::insert_background(const std::vector<float> &,
	const std::vector<color> &, const std::vector<float> &, const
	std::vector<color> &, const texture_node &, const texture_node &,
	const texture_node &, const texture_node &, const texture_node &,
	const texture_node &)): Return void.
	(openvrml::viewer::insert_dir_light(float, float, const color &,
	const vec3f &)): Return void.
	(openvrml::viewer::insert_point_light(float, const vec3f &, const
	color &, float, const vec3f &, float)): Return void.
	(openvrml::viewer::insert_spot_light(float, const vec3f &, float,
	const color &, float, const vec3f &, float, const vec3f &,
	float)): Return void.
	* src/libopenvrml/openvrml/viewer.h
	(openvrml::viewer): Removed object_t member typedef.
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	(openvrml::gl::viewer::do_begin_object(const char *, bool)):
	Return void.
	(openvrml::gl::viewer::do_insert_background(const
	std::vector<float> &, const std::vector<color> &, const
	std::vector<float> &, const std::vector<color> &, const
	texture_node &, const texture_node &, const texture_node &, const
	texture_node &, const texture_node &, const texture_node &)):
	Return void.
	(openvrml::gl::viewer::do_insert_dir_light(float, float, const
	color &, const vec3f &)): Return void.
	(openvrml::gl::viewer::do_insert_point_light(float, const vec3f &,
	const color &, float, const vec3f &, float)): Return void.
	(openvrml::gl::viewer::do_insert_spot_light(float, const vec3f &,
	float, const color &, float, const vec3f &, float, const vec3f &,
	float)): Return void.
	* src/libopenvrml-gl/openvrml/gl/viewer.h

2009-04-03 Braden McDaniel  <braden@endoframe.com>

	Localize the management of display list and texture object
	references inside the renderer.

	* src/libopenvrml/openvrml/browser.cpp: Include viewer.h.
	* src/libopenvrml/openvrml/node.cpp
	(openvrml::geometry_node::geometry_node(const node_type &, const
	boost::shared_ptr<openvrml::scope> &)): Removed geometry_reference
	member.
	(openvrml::geometry_node::render_geometry(viewer &,
	rendering_context)): Return void; we don't need to manage the
	geometry_reference anymore.
	(openvrml::geometry_node::do_render_geometry(viewer &,
	rendering_context)): Return void.
	(openvrml::texture_node::texture_node(const node_type &, const
	boost::shared_ptr<openvrml::scope> &)): Removed texture_reference
	member.
	(openvrml::texture_node::render_texture(viewer &)): Return void;
	we don't need to manage the texture_reference anymore.
	(openvrml::texture_node::do_render_texture(viewer &)): Return
	void.
	* src/libopenvrml/openvrml/node.h
	(openvrml::geometry_node): Removed geometry_reference and
	geometry_reference_mutex_ members.
	(openvrml::texture_node): Removed texture_reference and
	texture_reference_mutex_ members.
	* src/libopenvrml/openvrml/viewer.cpp
	(openvrml::viewer::insert_background(const std::vector<float> &,
	const std::vector<color> &, const std::vector<float> &, const
	std::vector<color> &, const texture_node &, const texture_node &,
	const texture_node &, const texture_node &, const texture_node &,
	const texture_node &)): Pass openvrml::texture_node for the
	textures instead of openvrml::image.
	(openvrml::viewer::insert_box(const geometry_node &, const
	vec3f&)): Pass the geometry_node as the first parameter.
	(openvrml::viewer::insert_cone(const geometry_node &, float,
	float, bool, bool)): Pass the geometry_node as the first
	parameter.
	(openvrml::viewer::insert_cylinder(const geometry_node &, float,
	float, bool, bool, bool)): Pass the geometry_node as the first
	parameter.
	(openvrml::viewer::insert_elevation_grid(const geometry_node &,
	unsigned int, const std::vector<float> &, int32, int32, const
	std::vector<vec3f> &, const std::vector<vec2f> &)): Pass the
	geometry_node as the first parameter.
	(openvrml::viewer::insert_extrusion(const geometry_node &,
	unsigned int, const std::vector<vec3f> &, const
	std::vector<vec2f>&, const std::vector<rotation> &, const
	std::vector<vec2f> &)): Pass the geometry_node as the first
	parameter.
	(openvrml::viewer::insert_line_set(const geometry_node &, const
	std::vector<vec3f> &, const std::vector<int32> &, bool, const
	std::vector<color> &, const std::vector<int32> &)): Pass the
	geometry_node as the first parameter.
	(openvrml::viewer::insert_point_set(const geometry_node &, const
	std::vector<vec3f> &, const std::vector<color> &)): Pass the
	geometry_node as the first parameter.
	(openvrml::viewer::insert_shell(const geometry_node &, unsigned
	int, const std::vector<vec3f> &, const std::vector<int32> &, const
	std::vector<color> &, const std::vector<int32> &, const
	std::vector<vec3f> &, const std::vector<int32> &, const
	std::vector<vec2f> &, const std::vector<int32> &)): Pass the
	geometry_node as the first parameter.
	(openvrml::viewer::insert_sphere(const geometry_node &, float)):
	Pass the geometry_node as the first parameter.
	(openvrml::viewer::insert_reference(object_t)): Removed.
	(openvrml::viewer::remove_object(const node &)): Take a node
	reference instead of an object_t.
	(openvrml::viewer::insert_texture(const texture_node &, bool)):
	Take a texture_node instead of an image; return void.
	(openvrml::viewer::insert_texture_reference(texture_object_t,
	size_t)): Removed.
	(openvrml::viewer::remove_texture_object(const texture_node &)):
	Take a texture_node instead of a texture_object_t.
	* src/libopenvrml/openvrml/viewer.h
	(openvrml::viewer): Removed texture_object_t typedef; pass
	texture_nodes to insert_background instead of images; pass
	geometry_node & as the first parameter of insert_box, insert_cone,
	insert_cylinder, insert_elevation_grid, insert_extrusion,
	insert_line_set, insert_point_set, insert_shell, and
	insert_sphere; pass texture_node & to insert_texture instead of an
	image; removed insert_reference and insert_texture_reference.
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	(openvrml::gl::viewer::do_insert_background(const
	std::vector<float> &, const std::vector<color> &, const
	std::vector<float> &, const std::vector<color> &, const
	texture_node &, const texture_node &, const texture_node &, const
	texture_node &, const texture_node &, const texture_node &)): Get
	the textures from the texture_nodes instead of the images.
	(openvrml::gl::viewer::do_insert_box(const geometry_node &, const
	vec3f &)): Store/retrieve the display list in list_map_.
	(openvrml::gl::viewer::do_insert_cone(const geometry_node &,
	float, float, bool, bool)): Store/retrieve the display list in
	list_map_.
	(openvrml::gl::viewer::do_insert_cylinder(const geometry_node &,
	float, float, bool, bool, bool)): Store/retrieve the display list
	in list_map_.
	(openvrml::gl::viewer::do_insert_elevation_grid(const
	geometry_node &, unsigned int, const std::vector<float> &, int32,
	int32, const std::vector<vec3f> &, const std::vector<vec2f> &)):
	Store/retrieve the display list in list_map_.
	(openvrml::gl::viewer::do_insert_extrusion(const geometry_node &,
	unsigned int, const std::vector<vec3f> &, const
	std::vector<vec2f>&, const std::vector<rotation> &, const
	std::vector<vec2f> &)): Store/retrieve the display list in
	list_map_.
	(openvrml::gl::viewer::do_insert_line_set(const geometry_node &,
	const std::vector<vec3f> &, const std::vector<int32> &, bool,
	const std::vector<color> &, const std::vector<int32> &)):
	Store/retrieve the display list in list_map_.
	(openvrml::gl::viewer::do_insert_point_set(const geometry_node &,
	const std::vector<vec3f> &, const std::vector<color> &)):
	Store/retrieve the display list in list_map_.
	(openvrml::gl::viewer::do_insert_shell(const geometry_node &,
	unsigned int, const std::vector<vec3f> &, const
	std::vector<int32>&, const std::vector<color> &, const
	std::vector<int32> &, const std::vector<vec3f> &, const
	std::vector<int32> &, const std::vector<vec2f> &, const
	std::vector<int32> &)): Store/retrieve the display list in
	list_map_.
	(openvrml::gl::viewer::do_insert_sphere(const geometry_node &,
	float)): Store/retrieve the display list in list_map_.
	(openvrml::gl::viewer::do_insert_reference(object_t)): Removed.
	(openvrml::gl::viewer::do_remove_object(const node &)): Retrieve
	the display list to delete from list_map_.
	(openvrml::gl::viewer::do_insert_texture(const texture_node &,
	bool)): Store/retrieve the texture object reference in
	texture_map_.
	(openvrml::gl::viewer::do_insert_texture_reference(texture_object_t,
	size_t)): Removed.
	(openvrml::gl::viewer::do_remove_texture_object(const
	texture_node&)): Retrieve the texture object to delete from
	texture_map_.
	* src/libopenvrml-gl/openvrml/gl/viewer.h
	(openvrml::gl::viewer): Added members list_map_ and texture_map_.
	* src/node/vrml97/anchor.cpp: Reorderd includes for consistency.
	* src/node/vrml97/appearance.cpp: Include <openvrml/viewer.h>.
	* src/node/vrml97/background.cpp
	(openvrml_node_vrml97::background_metatype::background_metatype(openvrml::browser&)):
	Initialize null_texture_node_metatype_ and null_texture_node_type_
	members.
	(null_texture_node): A "null" texture_node implementation to
	provide the default background.
	(openvrml_node_vrml97::background_metatype::do_render(openvrml::viewer&)
	const): Use null_texture_node for the default background textures.
	(openvrml_node_vrml97::background_node::texture_url_exposedfield::texture_url_exposedfield(background_node&,
	bool background_node::*)): Removed.
	(openvrml_node_vrml97::background_node::texture_url_exposedfield::texture_url_exposedfield(const
	texture_url_exposedfield &)): Removed.
	(openvrml_node_vrml97::background_node::texture_url_exposedfield::~texture_url_exposedfield()):
	Removed.
	(openvrml_node_vrml97::background_node::texture_url_exposedfield::do_clone()
	const): Removed.
	(openvrml_node_vrml97::background_node::texture_url_exposedfield::event_side_effect(const
	openvrml::mfstring &, double)): Removed.
	(openvrml_node_vrml97::background_node::background_node(const
	openvrml::node_type &, const
	boost::shareed_ptr<openvrml::scope>&)): Don't need to pass the
	update flag pointer to the url fields; removed initialization of
	the update flags; construct ImageTexture nodes to provide the
	textures.
	(openvrml_node_vrml97::background_node::update_textures()):
	Removed.
	(null_scope_ptr): Something to hand off to the null_texture_node
	base class constructors.
	(null_texture_node::null_texture_node(const
	openvrml::null_node_type &)): Added null_texture_node constructor.
	(null_texture_node::~null_texture_node()): Added null_texture_node
	destructor.
	(null_texture_node::do_field(const std::string &, const
	openvrml::field_value &)): Do-nothing (but crash) implementation.
	(null_texture_node::do_field(const std::string &) const)):
	Do-nothing (but crash) implementation.
	(null_texture_node::do_process_event(const std::string &, const
	openvrml::field_value &, double)): Do-nothing (but crash)
	implementation.
	(null_texture_node::do_eventout(const std::string &) const)):
	Do-nothing (but crash) implementation.
	(null_texture_node::do_event_listener(const std::string &)):
	Do-nothing (but crash) implementation.
	(null_texture_node::do_event_emitter(const std::string &)):
	Do-nothing (but crash) implementation.
	(null_texture_node::do_image() const): Return an empty
	openvrml::image.
	(null_texture_node::do_repeat_s() const): Return false.
	(null_texture_node::do_repeat_t() const): Return false.
	* src/node/vrml97/background.h
	(openvrml_node_vrml97::background_metatype): Added members
	null_texture_node_metatype_ and null_texture_node_type_.
	(openvrml_node_vrml97::background_node): Removed
	texture_url_exposedfield; changed back_url_, bottom_url_,
	front_url_, left_url_, right_url, and top_url_ to
	exposedfield<openvrml::mfstring>; changed front, back, left,
	right, top, and bottom to
	boost::intrusive_ptr<openvrml::texture_node>; removed texture
	mutex and update flag members; removed update_textures member
	function.
	* src/node/vrml97/billboard.cpp
	(billboard_node): Removed xformObject member.
	(billboard_node::billboard_node(const openvrml::node_type &, const
	boost::shared_ptr<openvrml::scope> &)): Removed initialization of
	xformObject.
	(billboard_node::do_render_child(openvrml::viewer &,
	openvrml::rendering_context)): Removed code to manage xformObject.
	* src/node/vrml97/box.cpp
	(box_node::do_render_geometry(openvrml::viewer &,
	openvrml::rendering_context)): Return void.
	* src/node/vrml97/cone.cpp
	(cone_node::do_render_geometry(openvrml::viewer &,
	openvrml::rendering_context)): Return void.
	* src/node/vrml97/cylinder.cpp
	(cylinder_node::do_render_geometry(openvrml::viewer &,
	openvrml::rendering_context)): Return void.
	* src/node/vrml97/directional_light.cpp: Include
	<openvrml/viewer.h>.
	* src/node/vrml97/elevation_grid.cpp
	(elevation_grid_node::do_render_geometry(openvrml::viewer &,
	openvrml::rendering_context)): Return void.
	* src/node/vrml97/extrusion.cpp
	(extrusion_node::do_render_geometry(openvrml::viewer &,
	openvrml::rendering_context)): Return void.
	* src/node/vrml97/fog.cpp: Include <openvrml/viewer.h>.
	* src/node/vrml97/grouping_node_base.h
	(openvrml_node_vrml97::grouping_node_base<Derived>): Removed
	viewerObject member.
	(openvrml_node_vrml97::grouping_node_base<Derived>::grouping_node_base(const
	openvrml::node_type &, const
	boost::shared_ptr<openvrml::scope>&)): Removed initialization of
	viewerObject.
	(openvrml_node_vrml97::grouping_node_base<Derived>::render_nocull(openvrml::viewer&,
	openvrml::rendering_context)): Removed code to manage
	viewerObject.
	* src/node/vrml97/image_texture.cpp
	(image_texture_node::do_render_texture(openvrml::viewer &)):
	Return void.
	* src/node/vrml97/indexed_face_set.cpp
	(indexed_face_set::do_render_geometry(openvrml::viewer &,
	openvrml::rendering_context)): Return void.
	* src/node/vrml97/indexed_line_set.cpp
	(indexed_line_set::do_render_geometry(openvrml::viewer &,
	openvrml::rendering_context)): Return void.
	* src/node/vrml97/movie_texture.cpp
	(movie_texture_node::do_render_texture(openvrml::viewer &)):
	Return void.
	* src/node/vrml97/pixel_texture.cpp
	(pixel_texture_node::do_render_texture(openvrml::viewer &)):
	Return void.
	* src/node/vrml97/point_light.cpp: Include <openvrml/viewer.h>.
	* src/node/vrml97/point_set.cpp
	(point_set::do_render_geometry(openvrml::viewer &,
	openvrml::rendering_context)): Return void.
	* src/node/vrml97/proximity_sensor.cpp: Include
	<openvrml/viewer.h>.
	* src/node/vrml97/sphere.cpp
	(sphere::do_render_geometry(openvrml::viewer &,
	openvrml::rendering_context)): Return void.
	* src/node/vrml97/spot_light.cpp: Include <openvrml/viewer.h>.
	* src/node/vrml97/shape.cpp
	(shape_node): Removed viewerObject member.
	(shape_node::shape_node(const openvrml::node_type &, const
	boost::shared_ptr<openvrml::scope> &)): Removed initialization of
	viewerObject.
	(shape_node::do_render_child(openvrml::viewer &,
	openvrml::rendering_context)): Removed code to manage
	viewerObject.
	* src/node/vrml97/text.cpp
	(text::do_render_geometry(openvrml::viewer &,
	openvrml::rendering_context)): Return void.
	* src/node/vrml97/texture_transform.cpp: Include
	<openvrml/viewer.h>.
	* src/node/vrml97/transform.cpp
	(transform_node): Removed xformObject member.
	(transform_node::transform_node(const openvrml::node_type &, const
	boost::shared_ptr<openvrml::scope> &)): Removed initialization of
	xformObject.
	(transform_node::do_render_child(openvrml::viewer &,
	openvrml::rendering_context)): Removed code to manage xformObject.
	* src/node/vrml97/visibility_sensor.cpp: Include
	<openvrml/viewer.h>.
	* src/node/x3d-cad-geometry/indexed_quad_set.cpp
	(indexed_quad_set::do_render_geometry(openvrml::viewer &,
	openvrml::rendering_context)): Return void.
	* src/node/x3d-geospatial/geo_elevation_grid.cpp
	(geo_elevation_grid_node::do_render_geometry(openvrml::viewer &,
	rendering_context)): Return void.
	* src/node/x3d-grouping/static_group.cpp
	(static_group_node): Removed viewerObject member.
	(static_group_node::render_nocull(openvrml::viewer &,
	rendering_context)): Removed code to manage viewerObject.
	(static_group_node::static_group_node(const node_type &, const
	boost::shared_ptr<openvrml::scope> &)): Removed viewerObject
	initialization.
	* src/node/x3d-nurbs/nurbs_curve.cpp
	(nurbs_curve_node::do_render_geometry(openvrml::viewer &,
	rendering_context)): Return void.
	* src/node/x3d-nurbs/nurbs_patch_surface.cpp
	(nurbs_patch_surface_node::do_render_geometry(openvrml::viewer &,
	rendering_context)): Return void.
	* src/node/x3d-nurbs/nurbs_trimmed_surface.cpp
	(nurbs_trimmed_surface_node::do_render_geometry(openvrml::viewer&,
	rendering_context)): Return void.
	* src/node/x3d-nurbs/nurbs_swept_surface.cpp
	(nurbs_swept_surface_node::do_render_geometry(openvrml::viewer &,
	rendering_context)): Return void.
	* src/node/x3d-nurbs/nurbs_swung_surface.cpp
	(nurbs_swung_surface_node::do_render_geometry(openvrml::viewer &,
	rendering_context)): Return void.
	* src/node/x3d-rendering/indexed_triangle_fan_set.cpp
	(indexed_triangle_fan_set_node::do_render_geometry(openvrml::viewer&,
	rendering_context)): Return void.
	* src/node/x3d-rendering/indexed_triangle_set.cpp
	(indexed_triangle_set_node::do_render_geometry(openvrml::viewer&,
	rendering_context)): Return void.
	* src/node/x3d-rendering/indexed_triangle_strip_set.cpp
	(indexed_triangle_strip_set_node::do_render_geometry(openvrml::viewer&,
	rendering_context)): Return void.
	* src/node/x3d-rendering/triangle_fan_set.cpp
	(triangle_fan_set_node::do_render_geometry(openvrml::viewer&,
	rendering_context)): Return void.
	* src/node/x3d-rendering/triangle_set.cpp
	(triangle_set_node::do_render_geometry(openvrml::viewer&,
	rendering_context)): Return void.
	* src/node/x3d-rendering/triangle_strip_set.cpp
	(triangle_strip_set_node::do_render_geometry(openvrml::viewer&,
	rendering_context)): Return void.
	* src/node/x3d-geometry2d/arc2d.cpp
	(arc2d_node::do_render_geometry(openvrml::viewer&,
	rendering_context)): Return void.
	* src/node/x3d-geometry2d/arc_close2d.cpp
	(arc_close2d_node::do_render_geometry(openvrml::viewer&,
	rendering_context)): Return void.
	* src/node/x3d-geometry2d/circle2d.cpp
	(circle2d_node::do_render_geometry(openvrml::viewer&,
	rendering_context)): Return void.
	* src/node/x3d-geometry2d/disk2d.cpp
	(disk2d_node::do_render_geometry(openvrml::viewer&,
	rendering_context)): Return void.
	* src/node/x3d-geometry2d/polyline2d.cpp
	(polyline2d_node::do_render_geometry(openvrml::viewer&,
	rendering_context)): Return void.
	* src/node/x3d-geometry2d/polypoint2d.cpp
	(polypoint2d_node::do_render_geometry(openvrml::viewer&,
	rendering_context)): Return void.
	* src/node/x3d-geometry2d/rectangle2d.cpp
	(rectangle2d_node::do_render_geometry(openvrml::viewer&,
	rendering_context)): Return void.
	* src/node/x3d-geometry2d/triangle_set2d.cpp
	(triangle_set2d_node::do_render_geometry(openvrml::viewer&,
	rendering_context)): Return void.

2009-04-01 Braden McDaniel  <braden@endoframe.com>

	Define OPENVRML_GL_HAVE_GL_GLU_H and OPENVRML_GL_HAVE_WINDOWS_H
	for the Visual Studio build.

	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl-config.h

2009-03-31 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/local/dl.cpp
	(openvrml::local::dl::error()): Fixes for the Windows
	implementation.

2009-03-31 Braden McDaniel  <braden@endoframe.com>

	Added a dlerror work-alike; use it to emit some diagnostic
	information if loading a module fails.

	* src/libopenvrml/openvrml/local/dl.cpp
	(openvrml::local::dl::error()): Added function.
	* src/libopenvrml/openvrml/local/dl.h: Added declaration of
	openvrml::local::dl::error().
	* src/libopenvrml/openvrml/local/node_metatype_registry_impl.cpp
	(openvrml_open_node_module(const char *, void *)): Print the
	result of openvrml::local::dl::error if module loading fails.

2009-03-30 Braden McDaniel  <braden@endoframe.com>

	* src/node/vrml97/scalar_interpolator.cpp: Removed errant
	shape_node definition.

2009-03-30 Braden McDaniel  <braden@endoframe.com>

	Removed some stray semicolons.

	* src/libopenvrml/openvrml/node.h
	* src/libopenvrml/openvrml/vrml97_grammar.h
	* src/openvrml-xembed/browser.cpp
	* src/openvrml-xembed/browserfactory.cpp

2009-03-30 Braden McDaniel  <braden@endoframe.com>

	Expose the types openvrml::null_node_metatype and
	openvrml::null_node_type.

	* src/libopenvrml/openvrml/browser.cpp: Removed
	openvrml::null_node_metatype and openvrml::null_node_type.
	* src/libopenvrml/openvrml/browser.h: No longer need to declare
	openvrml::null_node_metatype and openvrml::null_node_type.
	* src/libopenvrml/openvrml/node.cpp: Moved definitions of member
	functions of openvrml::null_node_metatype and
	openvrml::null_node_type here.
	* src/libopenvrml/openvrml/node.h: Moved definitions of
	openvrml::null_node_metatype and openvrml::null_node_type here.

2009-03-29 Braden McDaniel  <braden@endoframe.com>

	Use the nonvirtual interface pattern consistently with the
	abstract node types.

	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node.h
	* src/node/vrml97/material.cpp
	* src/node/vrml97/movie_texture.cpp
	* src/node/vrml97/navigation_info.cpp
	* src/node/vrml97/color.cpp
	* src/node/vrml97/coordinate.cpp
	* src/node/vrml97/viewpoint.h
	* src/node/vrml97/image_texture.cpp
	* src/node/vrml97/navigation_info.h
	* src/node/vrml97/appearance.cpp
	* src/node/vrml97/pixel_texture.cpp
	* src/node/vrml97/texture_coordinate.cpp
	* src/node/vrml97/transform.cpp
	* src/node/vrml97/font_style.cpp
	* src/node/vrml97/normal.cpp
	* src/node/vrml97/viewpoint.cpp
	* src/node/vrml97/abstract_texture.h
	* src/node/x3d-rendering/color_rgba.cpp

2009-03-29 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml-control/openvrml_control/browser.cpp
	(openvrml_control::browser::uninitialized_plugin_streambuf_map::map_entry_matches_streambuf):
	Applied OPENVRML_LOCAL.

2009-03-28 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml-gl/openvrml/gl/viewer.cpp: No longer need to
	undefine "interface".

2009-03-28 Braden McDaniel  <braden@endoframe.com>

	Include OpenGL headers in openvrml/gl/viewer.h to avoid having to
	forward-declare OpenGL types.

	* configure.ac: AC_SUBST OPENVRML_GL_HAVE_WINDOWS_H,
	OPENVRML_GL_HAVE_GL_GLU_H, and OPENVRML_GL_HAVE_OPENGL_GLU_H.
	* src/libopenvrml-gl/openvrml-gl-config.h.in: Define
	OPENVRML_GL_HAVE_WINDOWS_H, OPENVRML_GL_HAVE_GL_GLU_H, and
	OPENVRML_GL_HAVE_OPENGL_GLU_H.
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp: Removed inclusion of
	OpenGL headers.
	* src/libopenvrml-gl/openvrml/gl/viewer.h: Include OpenGL headers.

2009-03-25 Braden McDaniel  <braden@endoframe.com>

	* models/snoman.wrl: Whitespace cleanup.

2009-03-25 Braden McDaniel  <braden@endoframe.com>

	Emit .pdb files for node component DLLs.  Also, changed output
	location so that Debug and Release builds no longer share the same
	directories.

	* ide-projects/Windows/VisualC9_0/OpenVRML/sdl-viewer/sdl-viewer.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/pretty-print/pretty-print.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-interpolation/x3d-interpolation.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-networking/x3d-networking.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-geospatial/x3d-geospatial.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-core/x3d-core.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-nurbs/x3d-nurbs.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-texturing/x3d-texturing.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-event-utilities/x3d-event-utilities.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-grouping/x3d-grouping.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-key-device-sensor/x3d-key-device-sensor.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-environmental-effects/x3d-environmental-effects.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-shape/x3d-shape.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/vrml97/vrml97.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-h-anim/x3d-h-anim.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/javascript/javascript.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/parse-x3dvrml/parse-x3dvrml.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/parse-vrml97/parse-vrml97.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-rendering/x3d-rendering.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-dis/x3d-dis.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-cad-geometry/x3d-cad-geometry.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-geometry2d/x3d-geometry2d.vcproj

2009-03-25 Braden McDaniel  <braden@endoframe.com>

	Avoid overusing the "proto_node_metatype" identifier.  The
	Microsoft compiler doesn't like it and it's just not pretty.

	* src/libopenvrml/openvrml/local/externproto.h
	(openvrml::local::externproto_node_metatype::set_proto_node_metatype(const
	boost::weak_ptr<proto_node_metatype> &)): Avoid overusing
	"proto_node_metatype" identifier.
	* src/libopenvrml/openvrml/local/externproto.h
	(openvrml::local::externproto_node_metatype::set_proto_node_metatype(const
	boost::weak_ptr<proto_node_metatype> &)): Avoid overusing
	"proto_node_metatype" identifier.

2009-03-24 Braden McDaniel  <braden@endoframe.com>

	Moved Mozilla plug-in build into the big nonrecursive makefile.

	* configure.ac: No longer emit src/mozilla-plugin/Makefile.
	* src/Makefile.am: Build the Mozilla plug-in.
	* src/mozilla-plugin/Makefile.am: Removed.

2009-03-24 Braden McDaniel  <braden@endoframe.com>

	Moved Mozilla plug-in source to src/mozilla-plugin.

	* Makefile (SUBDIRS): Removed mozilla-plugin.
	* configure.ac: Emit src/mozilla-plugin/Makefile.
	* mozilla-plugin/Makefile.am: Removed.
	* mozilla-plugin/src/Makefile.am: Removed.
	* mozilla-plugin/src/openvrml.cpp: Removed.
	* src/Makefile.am (SUBDIRS): Added mozilla-plugin.
	* src/mozilla-plugin/Makefile.am: Moved from
	mozilla-plugin/src/Makefile.am.
	* src/mozilla-plugin/openvrml.cpp: Moved from
	mozilla-plugin/src/openvrml.cpp.

2009-03-24 Braden McDaniel  <braden@endoframe.com>

	Moved configuration for the Mozilla plug-in into the top-level
	configure.ac.

	* configure.ac: Added checks for Mozilla plug-in dependencies.
	* mozilla-plugin/Makefile.am (ACLOCAL_AMFLAGS): Removed.
	* mozilla-plugin/configure.ac: Removed.
	* mozilla-plugin/src/Makefile.am
	(AM_CPPFLAGS): Define MOZ_X11.
	(browser-host-server-glue.h): Adjusted path for browser-host.xml.
	(browser-factory-client-glue.h): Adjusted path for
	browser-factory.xml.
	(browser-client-glue.h): Adjusted path for browser.xml.
	* mozilla-plugin/src/openvrml.cpp: Include <config.h>.

2009-03-23 Braden McDaniel  <braden@endoframe.com>

	Make use of pkg-config's Requires.private and Libs.private.

	* openvrml.pc.in
	* openvrml-gl.pc.in

2009-03-20 Braden McDaniel  <braden@endoframe.com>

	Don't need OPENVRML_PKG_REQUIRES anymore.

	* configure.ac: Removed AC_SUBST for OPENVRML_PKG_REQUIRES.
	* openvrml.pc.in: Removed Requires; we don't depend on any other
	pkg-config-aware libraries.

2009-03-20 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Now that font rendering is isolated to a dlopen'd
	module, we don't need to add fontconfig and freetype2 to
	OPENVRML_PKG_REQUIRES.

2009-03-20 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Now that the SpiderMonkey dependency is isolated
	to a dlopen'd module, we don't need to add mozilla-js to
	OPENVRML_PKG_REQUIRES.

2009-03-20 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Add JAVA_HOME as a precious variable.

2009-03-20 Braden McDaniel  <braden@endoframe.com>

	* openvrml.pc.in: Link with libboost_filesystem and libltdl.

2009-03-20 Braden McDaniel  <braden@endoframe.com>

	* openvrml.pc.in: libopenvrml no longer links with libjpeg and
	libpng.

2009-03-19 Braden McDaniel  <braden@endoframe.com>

	Moved bounded_buffer to the implementation of
	openvrml_control::browser.

	* src/Makefile.am
	(libopenvrml_control_libopenvrml_control_la_SOURCES): Removed
	reference to
	libopenvrml-control/openvrml_control/bounded_buffer.h.
	* src/libopenvrml-control/openvrml_control/bounded_buffer.h:
	Removed.
	* src/libopenvrml-control/openvrml_control/browser.cpp: Moved
	bounded_buffer from
	src/libopenvrml-control/openvrml_control/bounded_buffer.h to an
	unnamed namespace here.

2009-03-19 Braden McDaniel  <braden@endoframe.com>

	Moved plugin_streambuf, uninitialized_plugin_streambuf_map, and
	plugin_streambuf_map to be private member classes of
	openvrml_control::browser.

	* src/Makefile.am
	(libopenvrml_control_libopenvrml_control_la_SOURCES): Removed
	libopenvrml-control/openvrml_control/plugin_streambuf.{cpp,h}.
	* src/libopenvrml-control/openvrml_control/browser.cpp: Added
	definition of openvrml_control::browser::plugin_streambuf as well
	as member definitions for it and
	openvrml_control::browser::uninitialized_plugin_streambuf_map and
	openvrml_control::browser::plugin_streambuf_map.
	* src/libopenvrml-control/openvrml_control/browser.h
	(openvrml_control::browser): Added declaration plugin_streambuf;
	added definitions of uninitialized_plugin_streambuf_map and
	plugin_streambuf_map.
	* src/libopenvrml-control/openvrml_control/plugin_streambuf.cpp:
	Removed.
	* src/libopenvrml-control/openvrml_control/plugin_streambuf.h:
	Removed.

2009-03-19 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml-control/openvrml_control/browser.cpp
	(openvrml_control::browser_host::get_url(const std::string &)):
	Added missing return statement.

2009-03-19 Braden McDaniel  <braden@endoframe.com>

	Moved bounded_buffer and plugin_streambuf to libopenvrml-control.

	* src/Makefile.am
	(noinst_HEADERS): Removed openvrml-xembed/bounded_buffer.h and
	openvrml-xembed/plugin_streambuf.h.
	(libopenvrml_control_libopenvrml_control_la_SOURCES): Added
	libopenvrml-control/openvrml_control/plugin_streambuf.{cpp,h} and
	libopenvrml-control/openvrml_control/bounded_buffer.h.
	(libopenvrml_control_libopenvrml_control_la_CPPFLAGS): Don't need
	$(top_srcdir)/src/openvrml-xembed in the include path anymore.
	(openvrml_xembed_openvrml_xembed_CPPFLAGS): Don't need
	$(top_srcdir)/src/openvrml-xembed in the include path anymore.
	(openvrml_xembed_openvrml_xembed_SOURCES): Removed
	openvrml-xembed/plugin_streambuf.cpp.
	* src/libopenvrml-control/openvrml_control/bounded_buffer.h: Moved
	from src/openvrml-xembed/bounded_buffer.h.
	* src/libopenvrml-control/openvrml_control/browser.cpp
	(openvrml_control::browser::resource_fetcher::resource_fetcher(
	browser_host &, uninitialized_plugin_streambuf_map &,
	plugin_streambuf_map &)): uninitialized_plugin_streambuf_map and
	plugin_streambuf_map are now in the openvrml_control namespace.
	(openvrml_control::browser::resource_fetcher::do_get_resource(const
	std::string &)): plugin_streambuf is now in the openvrml_control
	namespace.
	(initial_stream_reader::initial_stream_reader(const
	boost::shared_ptr<openvrml_control::plugin_streambuf> &,
	openvrml::browser &)): plugin_streambuf is now in the
	openvrml_control namespace.
	(initial_stream_reader::operator()() const): plugin_streambuf is
	now in the openvrml_control namespace.
	(openvrml_control::browser::browser(browser_host &, bool)):
	plugin_streambuf is now in the openvrml_control namespace.
	(openvrml_control::browser::new_stream(uint64_t, const std::string
	&, const std::string &)): Removed obsolete reference to
	openvrml_xembed namespace.
	(openvrml_control::browser::destroy_stream(uint64_t)): Removed
	obsolete reference to openvrml_xembed namespace.
	(openvrml_control::browser::write(uint64_t, const unsigned char *,
	size_t)): Removed obsolete reference to openvrml_xembed namespace.
	* src/libopenvrml-control/openvrml_control/browser.h:
	uninitialized_plugin_streambuf_map and plugin_streambuf_map are
	now in the openvrml_control namespace.
	* src/libopenvrml-control/openvrml_control/plugin_streambuf.cpp:
	Moved from src/openvrml-xembed/plugin_streambuf.cpp.
	* src/libopenvrml-control/openvrml_control/plugin_streambuf.h:
	Moved from src/openvrml-xembed/plugin_streambuf.h.
	* src/openvrml-xembed/bounded_buffer.h: Moved to
	src/libopenvrml-control/openvrml_control/bounded_buffer.h.
	* src/openvrml-xembed/plugin_streambuf.cpp: Moved to
	src/libopenvrml-control/openvrml_control/plugin_streambuf.cpp.
	* src/openvrml-xembed/plugin_streambuf.h: Moved to
	src/libopenvrml-control/openvrml_control/plugin_streambuf.h.

2009-03-19 Braden McDaniel  <braden@endoframe.com>

	Removed crufty uses of openvrml_xembed namespace.

	* src/openvrml-xembed/browser.cpp
	(openvrml_xembed_browser_new_stream(OpenvrmlXembedStreamClient *,
	guint64, const char *, const char *, GError **)): Removed crufty
	use of openvrml_xembed namespace.
	(openvrml_xembed_browser_destroy_stream(OpenvrmlXembedStreamClient *,
	guint64, GError **)): Removed crufty use of openvrml_xembed
	namespace.
	(openvrml_xembed_browser_write(OpenvrmlXembedStreamClient *,
	guint64, const GArray *, GError **)): Removed crufty use of
	openvrml_xembed namespace.

2009-03-19 Braden McDaniel  <braden@endoframe.com>

	Created a convenience library libopenvrml-control to hold the
	platform-independent parts of the OpenVRML control (which is
	currently called openvrml-xembed).

	* src/Makefile.am
	(noinst_LTLIBRARIES): Added convenience library
	libopenvrml-control.
	(libopenvrml_control_libopenvrml_control_la_SOURCES):
	libopenvrml-control sources.
	(libopenvrml_control_libopenvrml_control_la_CPPFLAGS):
	libopenvrml-control CPPFLAGS.
	(libopenvrml_control_libopenvrml_control_la_LIBADD): Depends on
	libopenvrml.
	(openvrml_xembed_openvrml_xembed_CPPFLAGS): Added
	libopenvrml-control to include path.
	(openvrml_xembed_openvrml_xembed_LDADD): Depends on
	libopenvrml-control.
	* src/libopenvrml-control/openvrml_control/browser.cpp: Added
	file. openvrml_control::browser encapsulates a browser "control".
	* src/libopenvrml-control/openvrml_control/browser.h: Added
	file. openvrml_control::browser encapsulates a browser "control".
	* src/openvrml-xembed/browser.cpp
	(resource_fetcher): Moved to
	src/libopenvrml-control/openvrml_control/browser.cpp.
	(browser_host_proxy): Added; implements
	openvrml_control::browser_host.
	(OpenvrmlXembedBrowserPrivate_): Added browser_control_host_proxy
	and browser_control; removed resource_fetcher, browser,
	browser_initialized_mutex, uninitialized_streambuf_map,
	streambuf_map, initial_stream_reader_thread, got_initial_stream,
	and browser_initialized.  The removed members have been moved
	to (or have equivalents in) openvrml_control::browser.
	(initial_stream_reader): Moved to
	src/libopenvrml-control/openvrml_control/browser.cpp.
	(openvrml_xembed_browser_constructor(GType, guint,
	GObjectConstructParam *)): Initialize the browser_control and
	browser_control_host_proxy members; removed initialization of
	removed members.
	(openvrml_xembed_browser_finalize(GObject *)): Removed cleanup of
	removed members; delete browser_control and
	browser_control_host_proxy.
	(openvrml_xembed_browser_new_stream(OpenvrmlXembedStreamClient *,
	guint64, const char *, const char *, GError **)): Delegate to
	openvrml_control::browser::new_stream.
	(openvrml_xembed_browser_destroy_stream(OpenvrmlXembedStreamClient *,
	guint64, GError **)): Delegate to
	openvrml_control::browser::destroy_stream.
	(openvrml_xembed_browser_write(OpenvrmlXembedStreamClient *,
	guint64, const GArray *, GError **)): Delegate to
	openvrml_control::browser::write.
	(load_url): Moved to
	src/libopenvrml-control/openvrml_control/browser.cpp.
	(openvrml_xembed_browser_load_url(OpenvrmlXembedBrowser *, const
	gchar **, const gchar **, GError **)): Delegate to
	openvrml_control::browser::load_uri.
	(openvrml_xembed_browser_get_world_url(OpenvrmlXembedBrowser *,
	GError **)): Delegate to openvrml_control::browser::world_url.
	(openvrml_xembed_browser_initialized(OpenvrmlXembedBrowser *)):
	Delegate to openvrml_control::browser::initialized.
	(browser_listener::do_browser_changed(const
	openvrml::browser_event &)): Don't set browser_initialized; this
	is now taken care of inside openvrml_control::browser.
	(GtkGLViewer::GtkGLViewer(OpenvrmlXembedBrowserPlug &)): Call
	openvrml_control::browser::viewer.
	* src/openvrml-xembed/plugin_streambuf.h
	(openvrml_xembed::plugin_streambuf): Grant friendship to
	openvrml_control::browser.

2009-03-18 Braden McDaniel  <braden@endoframe.com>

	Newer jni.h is more const-correct; play along.

	* src/script/java.cpp
	(set_array_region_t<jfloat>::value): Added "const" for consistency
	with newer jni.h.
	(set_array_region_t<jdouble>::value): Added "const" for consistency
	with newer jni.h.

2009-03-18 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/local/parse_vrml.h: Fixes to build with
	gcc 4.0 (on Mac OS X 10.5).  This compiler appears to have some
	bugs with access rules and inner classes; interjecting some
	forwarding functions works around the problem.

2009-03-17 Braden McDaniel  <braden@endoframe.com>

	* src/Makefile.am
	(openvrml_xembed_openvrml_xembed_CPPFLAGS): Removed crufty
	-I$(mozincludedir).

2009-03-17 Braden McDaniel  <braden@endoframe.com>

	Rely on an installed GtkGLExt.

	* Makefile.am
	(SUBDIRS): Removed libs.
	* configure.ac: Check for GtkGLExt; emit GTKGL_{CFLAGS,LIBS}
	instead of GTK_{CFLAGS,LIBS}; removed lib/gtkglext from
	AC_CONFIG_SUBDIRS.
	* lib/gtkglext: Removed.
	* src/Makefile.am
	(openvrml_xembed_openvrml_xembed_CXXFLAGS): Replaced GTK_CFLAGS
	and GL_CFLAGS with GTKGL_CFLAGS.
	(openvrml_xembed_openvrml_xembed_LDFLAGS): Replaced GTK_LIBS and
	GL_LIBS with GTKGL_LIBS.
	(openvrml_xembed_openvrml_xembed_LDADD): Removed references to
	GtkGLExt libraries in OpenVRML's build tree; we link with the
	system ones instead via GTKGL_LIBS.

2009-03-17 Braden McDaniel  <braden@endoframe.com>

	Updates for 0.17.12 release.

	* NEWS
	* README
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.rc
	* src/Makefile.am
	(LIBOPENVRML_GL_LIBRARY_VERSION): Updated to 7:4:0.

2009-03-16 Braden McDaniel  <braden@endoframe.com>

	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj:
	Updated to use FreeType 2.3.9.

2009-03-16 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	(openvrml::gl::viewer::do_set_frustum(float, float, float)):
	Explicitly convert to float to quell a warning from the Microsoft
	compiler.

2009-03-16 Braden McDaniel  <braden@endoframe.com>

	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.vcproj:
	Define HAVE_GL_GLU_H.

2009-03-15 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml-gl/openvrml/gl/viewer.cpp: Use the conventional
	gl.h/glu.h header paths as a first choice.  Make it up to users
	who don't want these to make them unavailable to the build
	environment.  Most of the time, that will be done by configuring
	--without-x.

2009-03-04 Braden McDaniel  <braden@endoframe.com>

	Moved the parser instances out of browser.cpp along with a lot of
	other code that implied.

	* src/libopenvrml/openvrml/local/component.cpp: Added file.
	* src/libopenvrml/openvrml/local/component.h: Added file.
	component and profile class definitions.
	* src/libopenvrml/openvrml/local/externproto.cpp: Added file.
	* src/libopenvrml/openvrml/local/externproto.h: Added file.
	Definitions of externproto_node, externproto_node_type, and
	externproto_node_metatype.
	* src/libopenvrml/openvrml/local/parse_vrml.cpp: Added file.
	* src/libopenvrml/openvrml/local/parse_vrml.h: Added file.
	Declaration of parse_vrml function and definitions of the parse
	actions classes.
	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/browser.h
	* src/libopenvrml/openvrml/scene.cpp
	* src/libopenvrml/openvrml/node.h
	* src/Makefile.am
	(libopenvrml_libopenvrml_la_SOURCES): Added files
	libopenvrml/openvrml/local/parse_vrml.{cpp,h},
	libopenvrml/openvrml/local/component.{cpp,h},
	libopenvrml/openvrml/local/externproto.{cpp,h}.

2009-03-02 Braden McDaniel  <braden@endoframe.com>

	Updates for 0.17.11 release.

	* NEWS
	* README
	* configure.ac
	* doc/Doxyfile
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.rc
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.rc
	* mozilla-plugin/configure.ac
	* src/Makefile.am
	(LIBOPENVRML_LIBRARY_VERSION): Updated to 8:8:0.

2009-03-01 Braden McDaniel  <braden@endoframe.com>

	Changed "model/x3d+vrml" to "model/x3d-vrml" in accordance with
	the pending media type registration.

	* README
	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/scene.cpp
	* src/openvrml-player/filechooserdialog.cpp

2009-03-01 Braden McDaniel  <braden@endoframe.com>

	* src/Makefile.am: Generate
	openvrml-xembed/browser-host-client-glue.h.

2009-03-01 Braden McDaniel  <braden@endoframe.com>

	Moved D-Bus interaction out of the main (GTK+) thread and into its
	own background thread.  This avoids a deadlock when a resource
	fetch comes from the rendering thread and waits on feedback that
	will happen via D-Bus.

	openvrml-xembed's "browser" now exists in two parts:
	OpenvrmlXembedBrowser is primarily responsible for interaction
	with the host (via D-Bus) and OpenvrmlXembedBrowserPlug is a GTK+
	widget that is responsible for rendering and interaction with
	GTK+.

	* src/openvrml-xembed/browser.cpp
	(browser_listener): Contain a reference to the
	OpenvrmlXembedBrowser (instead of the GtkGLViewer).
	(OpenvrmlXembedBrowserPrivate_): Removed drawing_area and viewer
	members; those have moved to OpenvrmlXembedBrowserPlugPrivate_.
	Added listener, browser_plug, browser_plug_mutex,
	browser_plug_set_cond, browser_initialized_mutex, and
	browser_initialized.
	(openvrml_xembed_browser_class_init(OpenvrmlXembedBrowserClass *)):
	Set constructor and finalize function pointers; use
	g_param_spec_object to define the control-host-proxy property.
	(openvrml_xembed_browser_constructor(GType, guint,
	GObjectConstructParam *)): Since OpenvrmlXembedBrowser isn't a
	widget anymore, moved the initialization code that was in _realize
	here.
	(openvrml_xembed_browser_finalize(GObject *)): Destroy the stuff
	that was created in _constructor.
	(openvrml_xembed_browser_set_property(GObject *, guint, const
	GValue *, GParamSpec *)): Use g_value_get_object to get the value
	for control-host-property
	(openvrml_xembed_browser_get_property(GObject *, guint, GValue *,
	GParamSpec *)): Use g_value_set_object to set the value for
	control-host-proxy property.
	(openvrml_xembed_browser_new(DBusGProxy *, gboolean,
	GMainContext *, GdkNativeWindow)): Create an OpenvrmlXembedBrowser
	and send an event to the GTK+ thread to create an
	OpenvrmlXembedBrowserPlug.
	(openvrml_xembed_browser_new_for_display(DBusGProxy *,
	GdkDisplay *, GdkNativeWindow, gboolean)): Removed.
	(load_url): Moved out of GtkGLViewer; lock the
	OpenvrmlXembedBrowser's browser_initialized_mutex.
	(openvrml_xembed_browser_load_url(OpenvrmlXembedBrowser *, const
	gchar **, const gchar **, GError **)): Handle exceptions by
	setting the GError.
	(openvrml_xembed_browser_get_id(OpenvrmlXembedBrowser *)): We
	don't have the plug's ID until the OpenvrmlXembedBrowserPlug has
	been created; wait for browser_plug_set_cond.
	(openvrml_xembed_browser_initialized(OpenvrmlXembedBrowser *)):
	Indicate whether the underlying openvrml::browser has emitted an
	"initialized" event.
	(GtkGLViewer): Removed friendship declarations for
	openvrml_xembed_browser_load_url,
	openvrml_xembed_browser_get_world_url,
	openvrml_xembed_browser_timeout_callback, and
	openvrml_xembed_browser_motion_notify_event.  Changed friendship
	declaration for openvrml_xembed_browser_expose_event to
	openvrml_xembed_browser_plug_expose_event.  Grant friendship to
	openvrml_xembed_browser_plug_realize and browser_initialized.
	Removed browser_listener_, browser_initialized_, and
	browser_initialized_mutex_ members; these were moved to
	OpenvrmlXembedBrowser.
	(OpenvrmlXembedBrowserPlugPrivate_): Private data for
	OpenvrmlXembedBrowserPlug.
	(openvrml_xembed_browser_plug_init(OpenvrmlXembedBrowserPlug *)):
	Initialize the OpenvrmlXembedBrowserPlug instance.
	(openvrml_xembed_browser_plug_class_init(OpenvrmlXembedBrowserPlugClass *)):
	Initialized the OpenvrmlXembedBrowserPlug class object.
	(openvrml_xembed_browser_plug_set_property(GObject *, gint, const
	GValue *, GParamSpec *)): OpenvrmlXembedBrowserPlug property
	mutator.
	(openvrml_xembed_browser_plug_get_property(GObject *, gint,
	GValue *, GParamSpec *)): OpenvrmlXembedBrowserPlug property
	accessor.
	(openvrml_xembed_browser_plug_new(OpenvrmlXembedBrowser *,
	GdkNativeWindow)): Create an OpenvrmlXembedBrowserPlug.
	(browser_initialized(OpenvrmlXembedBrowser *,
	OpenvrmlXembedBrowserPlug *)): Callback called once the underlying
	openvrml::browser emits an "initialized" event.
	(openvrml_xembed_browser_plug_realize(GtkWidget *)): Instantiate
	the GtkGLViewer, set up the GtkDrawingArea, and attach the various
	signal handlers.
	(openvrml_xembed_browser_plug_unrealize(GtkWidget *)): Destroy the
	GtkGLViewer and the GtkDrawingArea.
	(openvrml_xembed_drawing_area_expose_event(GtkWidget *,
	GdkEventExpose *, OpenvrmlXembedBrowserPlug *)): Moved from
	openvrml_xembed_browser_expose_event.
	(openvrml_xembed_drawing_area_configure_event(GtkWidget *,
	GdkEventConfigure *, OpenvrmlXembedBrowserPlug *)): Moved from
	openvrml_xembed_browser_configure_event.
	(openvrml_xembed_drawing_area_key_press_event(GtkWidget *,
	GdkEventKey *, OpenvrmlXembedBrowserPlug *)): Moved from
	openvrml_xembed_browser_key_press_event.
	(openvrml_xembed_drawing_area_button_press_event(GtkWidget *,
	GdkEventButton *, OpenvrmlXembedBrowserPlug *)): Moved from
	openvrml_xembed_browser_button_press_event.
	(openvrml_xembed_drawing_area_button_release_event(GtkWidget *,
	GdkEventButton *, OpenvrmlXembedBrowserPlug *)): Moved from
	openvrml_xembed_browser_button_release_event.
	(openvrml_xembed_drawing_area_motion_notify_event(GtkWidget *,
	GdkEventMotion *, OpenvrmlXembedBrowserPlug *)): Moved from
	openvrml_xembed_browser_motion_notify_event.
	(openvrml_xembed_browser_plug_timeout_callback(gpointer)): Moved
	from openvrml_xembed_browser_timeout_callback.
	(browser_listener::browser_listener(OpenvrmlXembedBrowser &)):
	Hold a reference to the OpenvrmlXembedBrowser instead of the
	GtkGLViewer.
	(browser_listener::do_browser_changed(const
	openvrml::browser_event &)): For "initialized", just emit the
	signal and set browser_initialized on the OpenvrmlXembedBrowser.
	Anything we need to do in the OpenvrmlXembedBrowserPlug can be
	handled with a GObject signal handler.
	(GtkGLViewer::GtkGLViewer(OpenvrmlXembedBrowserPlug &)): Take a
	reference to the OpenvrmlXembedBrowserPlug instead of the
	OpenvrmlXembedBrowser.  We no longer handle the listener here.
	(GtkGLViewer::~GtkGLViewer()): We no longer handle the listener
	here.
	(OpenvrmlXembedBrowserReadySource): The event source used to
	trigger creation of the OpenvrmlXembedBrowserPlug in the GTK+ main
	thread.
	(openvrml_xembed_browser_ready_source_new(OpenvrmlXembedBrowser *,
	guint64)): Create an OpenvrmlXembedBrowserReadySource.
	(openvrml_xembed_browser_ready_prepare(GSource *, gint *)): Set
	timeout to 0 and return true;
	(openvrml_xembed_browser_ready_check(GSource *)): Return true.
	(openvrml_xembed_browser_ready_dispatch(GSource *, GSourceFunc,
	gpointer)): Create, realize, and show the
	OpenvrmlXembedBrowserPlug.
	(openvrml_xembed_browser_ready_finalize(GSource *)): Do nothing.
	* src/openvrml-xembed/browser.h
	(OpenvrmlXembedBrowser_): Inherit GObject instead of GtkPlug.
	(OpenvrmlXembedBrowserClass_): Inherit GObjectClass instead of
	GtkPlugClass.
	(openvrml_xembed_browser_new(DBusGProxy *, gboolean,
	GMainContext *, GdkNativeWindow)): Take the GMainContext
	associated with the GTK+ main thread as an argument.
	(openvrml_xembed_browser_constructor(GType, guint,
	GObjectConstructParam *)): plugin_streambuf needs to grant
	friendship to this.
	(OpenvrmlXembedBrowserPlug): A GTK+ widget to handle rendering.
	(OpenvrmlXembedBrowserPlugClass): Class object for
	OpenvrmlXembedBrowserPlug.
	(openvrml_xembed_browser_plug_new(OpenvrmlXembedBrowser *,
	GtkNativeWindow)): Create a new OpenvrmlXembedBrowserPlug.
	(openvrml_xembed_browser_plug_get_type(void)): Get the GType for
	OpenvrmlXembedBrowserPlug.
	* src/openvrml-xembed/browserfactory.cpp
	(OpenvrmlXembedBrowserFactoryPrivate_): Removed driver_proxy
	member; added connection and main_thread_context members.
	(openvrml_xembed_browser_factory_constructor(GType, guint,
	GObjectConstructParam *)): Register the D-Bus object
	"/org/openvrml/BrowserFactory" and request the
	"org.openvrml.BrowserControl" name.
	(openvrml_xembed_browser_factory_class_init(OpenvrmlXembedBrowserFactory *)):
	Set the property accessor and mutator functions; add the
	"connection" and "main-thread-context" properties.
	(openvrml_xembed_browser_factory_set_property(GObject *, guint,
	const GValue *, GParamSpec *)): Property mutator.
	(openvrml_xembed_browser_factory_get_property(GObject *, guint,
	GValue *, GParamSpec *)): Property accessor.
	(openvrml_xembed_browser_factory_create_control(OpenvrmlXembedBrowserFactory *,
	const char *, const char *, guint64, gboolean,
	DBusGMethodInvocation *)): Don't realize/show the widget here;
	that's now taken care of by
	openvrml_xembed_browser_ready_dispatch.
	(openvrml_xembed_browser_factory_remove_hosts_for_owner(OpenvrmlXembedBrowserFactory *,
	const char *)): Remove references to hosts for the named owner.
	(openvrml_xembed_browser_factory_has_hosts(OpenvrmlXembedBrowserFactory *)):
	Indicate whether any hosts are associated with the factory.
	(openvrml_xembed_browser_factory_name_owner_changed(DBusGProxy *,
	const gchar *, const gchar *, const gchar *, gpointer)): Moved to
	main.cpp.
	* src/openvrml-xembed/browserfactory.h
	(OpenvrmlXembedBrowserFactoryClass_): Removed connection member.
	Establishing the bus connection is no longer the responsibility of
	OpenvrmlXembedBrowserFactory.
	(openvrml_xembed_browser_factory_remove_hosts_for_owner(OpenvrmlXembedBrowserFactory *,
	const gchar *)): Added public function.
	(openvrml_xembed_browser_factory_has_hosts(OpenvrmlXembedBrowserFactory *)):
	Added public function.
	* src/openvrml-xembed/main.cpp
	(bus_get(GMainContext *, DBusBusType, GError **)): Get a
	DBusGConnection using a particular GMainContext.
	(name_owner_changed_callback_data): Data propagated to
	openvrml_xembed_name_owner_changed.
	(dbus_thread_loop): Function object for the D-Bus thread main
	loop.
	(main(int, char *[])): Start, and ultimately join, a thread for
	D-Bus interactions.
	(openvrml_xembed_name_owner_changed(DBusGProxy *, const gchar *,
	const gchar *, const gchar *, gpointer)): Callback to clean up the
	browser(s) associated with a host (and exit if there are no more
	hosts).
	* src/openvrml-xembed/plugin_streambuf.cpp
	(openvrml_xembed::plugin_streambuf::plugin_streambuf(const
	std::string &, uninitialized_plugin_streambuf_map &,
	plugin_streambuf_map &)): Removed initialization of member
	"initialized_".
	(openvrml_xembed::plugin_streambuf::set_get_url_result(int)): Only
	notify waiting threads if the "GetUrl" result indicates success;
	the only reason anyone should be waiting on this is if the fetch
	operation has (at least partially) succeeded.
	(openvrml_xembed::plugin_streambuf::get_url_result() const):
	Removed.
	(openvrml_xembed::plugin_streambuf::init(size_t, const
	std::string&, const std::string &)): Wait for set_get_url_result
	to be called.
	(openvrml_xembed::plugin_streambuf::url() const): Check state_
	instead of initialized_.
	(openvrml_xembed::plugin_streambuf::type() const): Check state_
	instead of initialized_.
	(openvrml_xembed::plugin_streambuf::underflow()): Check state_
	instead of initialized_.
	* src/openvrml-xembed/plugin_streambuf.h
	(openvrml_xembed::plugin_streambuf): Removed friend declaration
	for openvrml_xembed_browser_realize; grant friendship to
	openvrml_xembed_browser_constructor.  Removed member
	"initialized_".  Removed "get_url_result" member function.

2009-02-27 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/script.cpp
	(openvrml::script_factory_registry::impl::~impl()): Clear the maps
	before unloading the modules so that we don't reference code
	that's just been unloaded.

2008-12-10 Braden McDaniel  <braden@endoframe.com>

	* src/Makefile.am: Build libraries with -no-undefined.

2008-11-24 Braden McDaniel  <braden@endoframe.com>

	Provide access to a PROTO instance's implementation nodes.

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::externproto_node): Override
	openvrml::node::do_impl_nodes.
	(openvrml::externproto_node::do_impl_nodes() const): If there is
	an implementation, return the implementation's nodes.
	* src/libopenvrml/openvrml/local/proto.cpp
	(openvrml::local::proto_node): Override
	openvrml::node::do_impl_nodes.
	(openvrml::local::proto_node::do_impl_nodes() const): Return the
	implementation nodes.
	* src/libopenvrml/openvrml/node.cpp
	(openvrml::node::impl_nodes() const): Delegate to
	node::do_impl_nodes.
	(openvrml::node::do_impl_nodes() const): Default implementation
	returns an empty vector.
	(openvrml::is_proto_instance(const node &)): Return true if a node
	is a PROTO instance; false otherwise.
	* src/libopenvrml/openvrml/node.h
	(openvrml::node): Added member functions impl_nodes and
	do_impl_nodes.
	(openvrml::is_proto_instance(const node &)): Added; detects if a
	node instance is a PROTO instance.

2008-11-23 Braden McDaniel  <braden@endoframe.com>

	Use trailing underscore convention for private variables in
	openvrml::local::proto_node.

	* src/libopenvrml/openvrml/local/proto.cpp

2008-11-23 Braden McDaniel  <braden@endoframe.com>

	Use trailing underscore convention for private variables in
	openvrml::local::proto_node_metatype.

	* src/libopenvrml/openvrml/local/proto.cpp
	* src/libopenvrml/openvrml/local/proto.h

2008-11-22 Braden McDaniel  <braden@endoframe.com>

	Made openvrml::node_traverser::halted and
	openvrml::node_traverser::traversed const.

	* src/libopenvrml/openvrml/node.cpp
	(openvrml::node_traverser::halted() const): Made const.
	(openvrml::node_traverser::traversed(node &) const): Made const.
	* src/libopenvrml/openvrml/node.h
	(openvrml::node_traverser): Made the halted and traversed member
	functions const.

2008-11-21 Braden McDaniel  <braden@endoframe.com>

	Moved node implementations to dynamically loaded libraries.

	* ide-projects/Windows/VisualC9_0/OpenVRML/OpenVRML.sln
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj:
	Removed dependencies libpng, zlib, and FreeType; added
	libopenvrml/openvrml/local/node_metatype_registry_impl.{cpp,h};
	removed libopenvrml/openvrml/vrml97node.{cpp,h}, removed
	libopenvrml/openvrml/x3d_cad_geometry.{cpp,h}, removed
	libopenvrml/openvrml/x3d_core.{cpp,h}, removed
	libopenvrml/openvrml/x3d_dis.{cpp,h}, removed
	libopenvrml/openvrml/x3d_environmental_effects.{cpp,h}, removed
	libopenvrml/openvrml/x3d_event_utilities.{cpp,h}, removed
	libopenvrml/openvrml/x3d_geometry2d.{cpp,h}, removed
	libopenvrml/openvrml/x3d_geospatial.{cpp,h}, removed
	libopenvrml/openvrml/x3d_grouping.{cpp,h}, removed
	libopenvrml/openvrml/x3d_hanim.{cpp,h}, removed
	libopenvrml/openvrml/x3d_interpolation.{cpp,h}, removed
	libopenvrml/openvrml/x3d_key_device_sensor.{cpp,h}, removed
	libopenvrml/openvrml/x3d_networking.{cpp,h}, removed
	libopenvrml/openvrml/x3d_nurbs.{cpp,h}, removed
	libopenvrml/openvrml/x3d_rendering.{cpp,h}, removed
	libopenvrml/openvrml/x3d_shape.{cpp,h} removed
	libopenvrml/openvrml/x3d_texturing.{cpp,h}.
	* ide-projects/Windows/VisualC9_0/OpenVRML/vrml97/vrml97.vcproj:
	Build as a DLL; added dependencies libpng, zlib, and FreeType;
	added node/vrml97/register_node_metatypes.cpp.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-cad-geometry/x3d-cad-geometry.vcproj:
	Build as a DLL; added
	node/x3d-cad-geometry/register_node_metatypes.cpp.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-core/x3d-core.vcproj:
	Build as a DLL; added node/x3d-core/register_node_metatypes.cpp.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-dis/x3d-dis.vcproj:
	Build as a DLL; added node/x3d-dis/register_node_metatypes.cpp.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-environmental-effects/x3d-environmental-effects.vcproj:
	Build as a DLL; added
	node/x3d-environmental-effects/register_node_metatypes.cpp.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-event-utilities/x3d-event-utilities.vcproj:
	Build as a DLL; added
	node/x3d-event-utilities/register_node_metatypes.cpp.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-geometry2d/x3d-geometry2d.vcproj:
	Build as a DLL; added
	node/x3d-geometry2d/register_node_metatypes.cpp.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-geospatial/x3d-geospatial.vcproj:
	Build as a DLL; added
	node/x3d-geospatial/register_node_metatypes.cpp.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-grouping/x3d-grouping.vcproj:
	Build as a DLL; added
	node/x3d-grouping/register_node_metatypes.cpp.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-h-anim/x3d-h-anim.vcproj:
	Build as a DLL; added node/x3d-h-anim/register_node_metatypes.cpp.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-interpolation/x3d-interpolation.vcproj:
	Build as a DLL; added
	node/x3d-interpolation/register_node_metatypes.cpp.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-key-device-sensor/x3d-key-device-sensor.vcproj:
	Build as a DLL; added
	node/x3d-key-device-sensor/register_node_metatypes.cpp.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-networking/x3d-networking.vcproj:
	Build as a DLL; added
	node/x3d-networking/register_node_metatypes.cpp.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-nurbs/x3d-nurbs.vcproj:
	Build as a DLL; added node/x3d-nurbs/register_node_metatypes.cpp.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-rendering/x3d-rendering.vcproj:
	Build as a DLL; added
	node/x3d-rendering/register_node_metatypes.cpp.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-shape/x3d-shape.vcproj:
	Build as a DLL; added node/x3d-shape/register_node_metatypes.cpp.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-texturing/x3d-texturing.vcproj:
	Build as a DLL; added
	node/x3d-texturing/register_node_metatypes.cpp.
	* src/Makefile.am
	(noinst_LTLIBRARIES): Removed.
	(openvrml_include_HEADERS): Removed
	libopenvrml/openvrml/vrml97node.h,
	libopenvrml/openvrml/x3d_core.h,
	libopenvrml/openvrml/x3d_networking.h,
	libopenvrml/openvrml/x3d_grouping.h,
	libopenvrml/openvrml/x3d_rendering.h,
	libopenvrml/openvrml/x3d_shape.h,
	libopenvrml/openvrml/x3d_geometry2d.h,
	libopenvrml/openvrml/x3d_texturing.h,
	libopenvrml/openvrml/x3d_interpolation.h,
	libopenvrml/openvrml/x3d_key_device_sensor.h,
	libopenvrml/openvrml/x3d_event_utilities.h,
	libopenvrml/openvrml/x3d_dis.h,
	libopenvrml/openvrml/x3d_environmental_effects.h,
	libopenvrml/openvrml/x3d_geospatial.h,
	libopenvrml/openvrml/x3d_hanim.h,
	libopenvrml/openvrml/x3d_nurbs.h,
	libopenvrml/openvrml/x3d_cad_geometry.h
	(libopenvrml_libopenvrml_la_SOURCES): Removed
	libopenvrml/openvrml/vrml97node.cpp,
	libopenvrml/openvrml/x3d_core.cpp,
	libopenvrml/openvrml/x3d_networking.cpp,
	libopenvrml/openvrml/x3d_grouping.cpp,
	libopenvrml/openvrml/x3d_rendering.cpp,
	libopenvrml/openvrml/x3d_shape.cpp,
	libopenvrml/openvrml/x3d_geometry2d.cpp,
	libopenvrml/openvrml/x3d_texturing.cpp,
	libopenvrml/openvrml/x3d_interpolation.cpp,
	libopenvrml/openvrml/x3d_key_device_sensor.cpp,
	libopenvrml/openvrml/x3d_event_utilities.cpp,
	libopenvrml/openvrml/x3d_dis.cpp,
	libopenvrml/openvrml/x3d_environmental_effects.cpp,
	libopenvrml/openvrml/x3d_geospatial.cpp,
	libopenvrml/openvrml/x3d_hanim.cpp,
	libopenvrml/openvrml/x3d_nurbs.cpp,
	libopenvrml/openvrml/x3d_cad_geometry.cpp; added
	libopenvrml/openvrml/local/node_metatype_registry_impl.{cpp,h}.
	(libopenvrml_libopenvrml_la_LIBADD): Removed
	node/vrml97/libvrml97.la, node/x3d-core/libx3d-core.la,
	node/x3d-networking/libx3d-networking.la,
	node/x3d-grouping/libx3d-grouping.la,
	node/x3d-rendering/libx3d-rendering.la,
	node/x3d-shape/libx3d-shape.la,
	node/x3d-geometry2d/libx3d-geometry2d.la,
	node/x3d-texturing/libx3d-texturing.la,
	node/x3d-interpolation/libx3d-interpolation.la,
	node/x3d-key-device-sensor/libx3d-key-device-sensor.la,
	node/x3d-event-utilities/libx3d-event-utilities.la,
	node/x3d-dis/libx3d-dis.la,
	node/x3d-environmental-effects/libx3d-environmental-effects.la,
	node/x3d-geospatial/libx3d-geospatial.la,
	node/x3d-h-anim/libx3d-h-anim.la, node/x3d-nurbs/libx3d-nurbs.la,
	node/x3d-cad-geometry/libx3d-cad-geometry.la.
	(openvrmlnode_LTLIBRARIES): Added node/vrml97.la,
	node/x3d-core.la, node/x3d-networking.la, node/x3d-grouping.la,
	node/x3d-rendering.la, node/x3d-shape.la, node/x3d-geometry2d.la,
	node/x3d-texturing.la, node/x3d-interpolation.la,
	node/x3d-key-device-sensor.la, node/x3d-event-utilities.la,
	node/x3d-dis.la, node/x3d-environmental-effects.la,
	node/x3d-geospatial.la, node/x3d-h-anim.la, node/x3d-nurbs.la,
	node/x3d-cad-geometry.la.
	(node_vrml97_la_CPPFLAGS): Replaced
	node_vrml97_libvrml97_la_CPPFLAGS.
	(node_vrml97_la_CXXFLAGS): Replaced
	node_vrml97_libvrml97_la_CXXFLAGS.
	(node_vrml97_la_SOURCES): Replaced
	node_vrml97_libvrml97_la_SOURCES; added
	node/vrml97/register_node_metatypes.cpp.
	(node_vrml97_la_LDFLAGS): Replaced
	node_vrml97_libvrml97_la_LDFLAGS; added -module.
	(node_x3d_core_la_CPPFLAGS): Replaced
	node_x3d_core_libx3d_core_la_CPPFLAGS.
	(node_x3d_core_la_CXXFLAGS): Replaced
	node_x3d_core_libx3d_core_la_CXXFLAGS.
	(node_x3d_core_la_SOURCES): Replaced
	node_x3d_core_libx3d_core_la_SOURCES; added
	node/x3d-core/register_node_metatypes.cpp.
	(node_x3d_core_la_LDFLAGS): Added -module -avoid-version.
	(node_x3d_networking_la_CPPFLAGS): Replaced
	node_x3d_networking_libx3d_networking_la_CPPFLAGS.
	(node_x3d_networking_la_CXXFLAGS): Replaced
	node_x3d_networking_libx3d_networking_la_CXXFLAGS.
	(node_x3d_networking_la_SOURCES): Replaced
	node_x3d_networking_libx3d_networking_la_SOURCES; added
	node/x3d-networking/register_node_metatypes.cpp.
	(node_x3d_networking_la_LDFLAGS): Added -module -avoid-version.
	(node_x3d_grouping_la_CPPFLAGS): Replaced
	node_x3d_grouping_libx3d_grouping_la_CPPFLAGS.
	(node_x3d_grouping_la_CXXFLAGS): Replaced
	node_x3d_grouping_libx3d_grouping_la_CXXFLAGS.
	(node_x3d_grouping_la_SOURCES): Replaced
	node_x3d_grouping_libx3d_grouping_la_SOURCES; added
	node/x3d-grouping/register_node_metatypes.cpp.
	(node_x3d_grouping_la_LDFLAGS): Added -module -avoid-version.
	(node_x3d_rendering_la_CPPFLAGS): Replaced
	node_x3d_rendering_libx3d_rendering_la_CPPFLAGS.
	(node_x3d_rendering_la_CXXFLAGS): Replaced
	node_x3d_rendering_libx3d_rendering_la_CXXFLAGS.
	(node_x3d_rendering_la_SOURCES): Replaced
	node_x3d_rendering_libx3d_rendering_la_SOURCES; added
	node/x3d-rendering/register_node_metatypes.cpp.
	(node_x3d_rendering_la_LDFLAGS): Added -module -avoid-version.
	(node_x3d_shape_la_CPPFLAGS): Replaced
	node_x3d_shape_libx3d_shape_la_CPPFLAGS.
	(node_x3d_shape_la_CXXFLAGS): Replaced
	node_x3d_shape_libx3d_shape_la_CXXFLAGS.
	(node_x3d_shape_la_SOURCES): Replaced
	node_x3d_shape_libx3d_shape_la_SOURCES; added
	node/x3d-shape/register_node_metatypes.cpp.
	(node_x3d_shape_la_LDFLAGS): Added -module -avoid-version.
	(node_x3d_geometry2d_la_CPPFLAGS): Replaced
	node_x3d_geometry2d_libx3d_geometry2d_la_CPPFLAGS.
	(node_x3d_geometry2d_la_CXXFLAGS): Replaced
	node_x3d_geometry2d_libx3d_geometry2d_la_CXXFLAGS.
	(node_x3d_geometry2d_la_SOURCES): Replaced
	node_x3d_geometry2d_libx3d_geometry2d_la_SOURCES; added
	node/x3d-geometry2d/register_node_metatypes.cpp.
	(node_x3d_geometry2d_la_LDFLAGS): Added -module -avoid-version.
	(node_x3d_texturing_la_CPPFLAGS): Replaced
	node_x3d_texturing_libx3d_texturing_la_CPPFLAGS.
	(node_x3d_texturing_la_CXXFLAGS): Replaced
	node_x3d_texturing_libx3d_texturing_la_CXXFLAGS.
	(node_x3d_texturing_la_SOURCES): Replaced
	node_x3d_texturing_libx3d_texturing_la_SOURCES; added
	node/x3d-texturing/register_node_metatypes.cpp.
	(node_x3d_texturing_la_LDFLAGS): Added -module -avoid-version.
	(node_x3d_interpolation_la_CPPFLAGS): Replaced
	node_x3d_interpolation_libx3d_interpolation_la_CPPFLAGS.
	(node_x3d_interpolation_la_CXXFLAGS): Replaced
	node_x3d_interpolation_libx3d_interpolation_la_CXXFLAGS.
	(node_x3d_interpolation_la_SOURCES): Replaced
	node_x3d_interpolation_libx3d_interpolation_la_SOURCES; added
	node/x3d-interpolation/register_node_metatypes.cpp.
	(node_x3d_interpolation_la_LDFLAGS): Added -module -avoid-version.
	(node_x3d_key_device_sensor_la_CPPFLAGS): Replaced
	node_x3d_key_device_sensor_libx3d_key_device_sensor_la_CPPFLAGS.
	(node_x3d_key_device_sensor_la_CXXFLAGS): Replaced
	node_x3d_key_device_sensor_libx3d_key_device_sensor_la_CXXFLAGS.
	(node_x3d_key_device_sensor_la_SOURCES): Replaced
	node_x3d_key_device_sensor_libx3d_key_device_sensor_la_SOURCES;
	added node/x3d-key-device-sensor/register_node_metatypes.cpp.
	(node_x3d_key_device_sensor_la_LDFLAGS): Added -module
	-avoid-version.
	(node_x3d_event_utilities_la_CPPFLAGS): Replaced
	node_x3d_event_utilities_libx3d_event_utilities_la_CPPFLAGS.
	(node_x3d_event_utilities_la_CXXFLAGS): Replaced
	node_x3d_event_utilities_libx3d_event_utilities_la_CXXFLAGS.
	(node_x3d_event_utilities_la_SOURCES): Replaced
	node_x3d_event_utilities_libx3d_event_utilities_la_SOURCES; added
	node/x3d-event-utilities/register_node_metatypes.cpp.
	(node_x3d_event_utilities_la_LDFLAGS): Added -module
	-avoid-version.
	(node_x3d_dis_la_CPPFLAGS): Replaced
	node_x3d_dis_libx3d_dis_la_CPPFLAGS.
	(node_x3d_dis_la_CXXFLAGS): Replaced
	node_x3d_dis_libx3d_dis_la_CXXFLAGS.
	(node_x3d_dis_la_SOURCES): Replaced
	node_x3d_dis_libx3d_dis_la_SOURCES; added
	node/x3d-dis/register_node_metatypes.cpp.
	(node_x3d_dis_la_LDFLAGS): Added -module -avoid-version.
	(node_x3d_environmental_effects_la_CPPFLAGS): Replaced
	node_x3d_environmental_effects_libx3d_environmental_effects_la_CPPFLAGS.
	(node_x3d_environmental_effects_la_CXXFLAGS): Replaced
	node_x3d_environmental_effects_libx3d_environmental_effects_la_CXXFLAGS.
	(node_x3d_environmental_effects_la_SOURCES): Replaced
	node_x3d_environmental_effects_libx3d_environmental_effects_la_SOURCES;
	added node/x3d-environmental-effects/register_node_metatypes.cpp.
	(node_x3d_environmental_effects_la_LDFLAGS): Added -module
	-avoid-version.
	(node_x3d_geospatial_la_CPPFLAGS): Replaced
	node_x3d_geospatial_libx3d_geospatial_la_CPPFLAGS.
	(node_x3d_geospatial_la_CXXFLAGS): Replaced
	node_x3d_geospatial_libx3d_geospatial_la_CXXFLAGS.
	(node_x3d_geospatial_la_SOURCES): Replaced
	node_x3d_geospatial_libx3d_geospatial_la_SOURCES; added
	node/x3d-geospatial/register_node_metatypes.cpp.
	(node_x3d_geospatial_la_LDFLAGS): Added -module -avoid-version.
	(node_x3d_h_anim_la_CPPFLAGS): Replaced
	node_x3d_h_anim_libx3d_h_anim_la_CPPFLAGS.
	(node_x3d_h_anim_la_CXXFLAGS): Replaced
	node_x3d_h_anim_libx3d_h_anim_la_CXXFLAGS.
	(node_x3d_h_anim_la_SOURCES): Replaced
	node_x3d_h_anim_libx3d_h_anim_la_SOURCES; added
	node/x3d-h-anim/register_node_metatypes.cpp.
	(node_x3d_h_anim_la_LDFLAGS): Added -module -avoid-version.
	(node_x3d_nurbs_la_CPPFLAGS): Replaced
	node_x3d_nurbs_libx3d_nurbs_la_CPPFLAGS.
	(node_x3d_nurbs_la_CXXFLAGS): Replaced
	node_x3d_nurbs_libx3d_nurbs_la_CXXFLAGS.
	(node_x3d_nurbs_la_SOURCES): Replaced
	node_x3d_nurbs_libx3d_nurbs_la_SOURCES; added
	node/x3d-nurbs/register_node_metatypes.cpp.
	(node_x3d_nurbs_la_LDFLAGS): Added -module -avoid-version.
	(node_x3d_cad_geometry_la_CPPFLAGS): Replaced
	node_x3d_cad_geometry_libx3d_cad_geometry_la_CPPFLAGS.
	(node_x3d_cad_geometry_la_CXXFLAGS): Replaced
	node_x3d_cad_geometry_libx3d_cad_geometry_la_CXXFLAGS.
	(node_x3d_cad_geometry_la_SOURCES): Replaced
	node_x3d_cad_geometry_libx3d_cad_geometry_la_SOURCES; added
	node/x3d-cad-geometry/register_node_metatypes.cpp.
	(node_x3d_cad_geometry_la_LDFLAGS): Added -module -avoid-version.
	* src/node/vrml97/register_node_metatypes.cpp: Moved from
	libopenvrml/openvrml/vrml97node.cpp.
	(openvrml_register_node_metatypes(openvrml::node_metatype_registry&)):
	Replaced register_vrml97_node_metatypes.
	* src/node/x3d-cad-geometry/register_node_metatypes.cpp: Moved
	from libopenvrml/openvrml/x3d_cad_geometry.cpp.
	(openvrml_register_node_metatypes(openvrml::node_metatype_registry&)):
	Replaced register_x3d_cad_geometry_node_metatypes.
	* src/node/x3d-core/register_node_metatypes.cpp: Moved from
	libopenvrml/openvrml/vrml97node.cpp.
	(openvrml_register_node_metatypes(openvrml::node_metatype_registry&)):
	Replaced register_vrml97_node_metatypes.
	* src/node/x3d-dis/register_node_metatypes.cpp: Moved from
	libopenvrml/openvrml/x3d_dis.cpp.
	(openvrml_register_node_metatypes(openvrml::node_metatype_registry&)):
	Replaced register_x3d_dis_node_metatypes.
	* src/node/x3d-environmental-effects/register_node_metatypes.cpp:
	Moved from libopenvrml/openvrml/x3d_environmental_effects.cpp.
	(openvrml_register_node_metatypes(openvrml::node_metatype_registry&)):
	Replaced register_x3d_environmental_effects_node_metatypes.
	* src/node/x3d-event-utilities/register_node_metatypes.cpp: Moved
	from libopenvrml/openvrml/x3d_event_utilities.cpp.
	(openvrml_register_node_metatypes(openvrml::node_metatype_registry&)):
	Replaced register_x3d_event_utilities_node_metatypes.
	* src/node/x3d-geometry2d/register_node_metatypes.cpp: Moved from
	libopenvrml/openvrml/x3d_geometry2d.cpp.
	(openvrml_register_node_metatypes(openvrml::node_metatype_registry&)):
	Replaced register_x3d_geometry2d_node_metatypes.
	* src/node/x3d-geospatial/register_node_metatypes.cpp: Moved from
	libopenvrml/openvrml/x3d_geospatial.cpp.
	(openvrml_register_node_metatypes(openvrml::node_metatype_registry&)):
	Replaced register_x3d_geospatial_node_metatypes.
	* src/node/x3d-grouping/register_node_metatypes.cpp: Moved from
	libopenvrml/openvrml/x3d_grouping.cpp.
	(openvrml_register_node_metatypes(openvrml::node_metatype_registry&)):
	Replaced register_x3d_grouping_node_metatypes.
	* src/node/x3d-h-anim/register_node_metatypes.cpp: Moved from
	libopenvrml/openvrml/x3d_hanim.cpp.
	(openvrml_register_node_metatypes(openvrml::node_metatype_registry&)):
	Replaced register_x3d_hanim_node_metatypes.
	* src/node/x3d-interpolation/register_node_metatypes.cpp: Moved
	from libopenvrml/openvrml/x3d_interpolation.cpp.
	(openvrml_register_node_metatypes(openvrml::node_metatype_registry&)):
	Replaced register_x3d_interpolation_node_metatypes.
	* src/node/x3d-key-device-sensor/register_node_metatypes.cpp:
	Moved from libopenvrml/openvrml/x3d_key_device_sensor.cpp.
	(openvrml_register_node_metatypes(openvrml::node_metatype_registry&)):
	Replaced register_x3d_key_device_sensor_node_metatypes.
	* src/node/x3d-networking/register_node_metatypes.cpp: Moved from
	libopenvrml/openvrml/x3d_networking.cpp.
	(openvrml_register_node_metatypes(openvrml::node_metatype_registry&)):
	Replaced register_x3d_networking_node_metatypes.
	* src/node/x3d-nurbs/register_node_metatypes.cpp: Moved from
	libopenvrml/openvrml/x3d_nurbs.cpp.
	(openvrml_register_node_metatypes(openvrml::node_metatype_registry&)):
	Replaced register_x3d_nurbs_node_metatypes.
	* src/node/x3d-rendering/register_node_metatypes.cpp: Moved from
	libopenvrml/openvrml/x3d_rendering.cpp.
	(openvrml_register_node_metatypes(openvrml::node_metatype_registry&)):
	Replaced register_x3d_rendering_node_metatypes.
	* src/node/x3d-shape/register_node_metatypes.cpp: Moved from
	libopenvrml/openvrml/x3d_shape.cpp.
	(openvrml_register_node_metatypes(openvrml::node_metatype_registry&)):
	Replaced register_x3d_shape_node_metatypes.
	* src/node/x3d-texturing/register_node_metatypes.cpp: Moved from
	libopenvrml/openvrml/x3d_texturing.cpp.
	(openvrml_register_node_metatypes(openvrml::node_metatype_registry&)):
	Replaced register_x3d_texturing_node_metatypes.
	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::browser::node_metatype_map::node_metatype_map()):
	Removed.
	(openvrml::browser::node_metatype_map::~node_metatype_map()):
	Removed.
	(openvrml::browser::node_metatype_map::operator=(const
	node_metatype_map &)): Removed.
	(openvrml::browser::node_metatype_map::init(viewpoint_node *,
	double)): Removed; logic moved to
	openvrml::local::node_metatype_registry_impl::init.
	(openvrml::browser::node_metatype_map::insert(const std::string &,
	const boost::shared_ptr<openvrml::node_metatype> &)): Removed;
	replaced with
	openvrml::node_metatype_registry::register_node_metatype.
	(openvrml::browser::node_metatype_map::remove(const
	std::string&)): Removed.
	(openvrml::browser::node_metatype_map::find(const std::string &)):
	Removed; logic moved to
	openvrml::local::node_metatype_registry_impl::find.
	(openvrml::browser::node_metatype_map::node_metatype_ids(const
	node_metatype &)): Removed; logic moved to
	openvrml::local::node_metatype_registry_impl::node_metatype_ids.
	(openvrml::browser::node_metatype_map::render(viewer &)): Removed;
	logic moved to
	openvrml::local::node_metatype_registry_impl::render.
	(openvrml::browser::node_metatype_map::shutdown(double)): Removed;
	logic moved to
	openvrml::local::node_metatype_registry_impl::shutdown.
	(register_node_metatypes(openvrml::browser &)): Removed.
	(openvrml::browser::browser(resource_fetcher &, std::ostream &,
	std::ostream &)): Initialize node_metatype_registry_; removed call
	to register_node_metatypes.
	(openvrml::browser::~browser()): Shutdown node_metatype_registry_
	instead of node_metatype_map_.
	(openvrml::browser::add_node_metatype(const node_metatype_id &,
	const boost::shared_ptr<node_metatype> &)): Delegate to
	openvrml::local::node_metatype_registry_impl::register_node_metatype.
	(openvrml::browser::node_metatype(const node_metatype_id &)
	const): Delegate to
	openvrml::local::node_metatype_registry_impl::find.
	(openvrml::browser::set_world(resource_istream &)): Teardown/setup
	node_metatype_registry_ instead of node_metatype_map_.
	* src/libopenvrml/openvrml/browser.h
	(openvrml::node_metatype_registry): Added class definition.
	(openvrml::browser): Removed node_metatype_map; this logic moved
	to openvrml::node_metatype_registry and
	openvrml::local::node_metatype_registry_impl.  Added
	node_metatype_registry_ member.
	* src/libopenvrml/openvrml/exposedfield.h
	(openvrml::exposedfield): Removed OPENVRML_API; templates don't
	need it.
	* src/libopenvrml/openvrml/local/node_metatype_registry_impl.cpp
	* src/libopenvrml/openvrml/local/node_metatype_registry_impl.h
	(openvrml::local::node_metatype_registry_impl): Added; loads and
	maintains the node_metatypes used by an openvrml::browser
	instance.
	* src/libopenvrml/openvrml/node.cpp
	(openvrml::operator==(const node_type &, const node_type &)): Use
	the node_metatype_registry_impl instead of the node_metatype_map.
	* src/libopenvrml/openvrml/read_write_mutex.h
	(openvrml::read_write_mutex::scoped_read_lock): Applied
	OPENVRML_API.
	(openvrml::read_write_mutex::scoped_write_lock): Applied
	OPENVRML_API.
	(openvrml::read_write_mutex::scoped_read_write_lock): Applied
	OPENVRML_API.
	* src/libopenvrml/openvrml/vrml97node.cpp: Moved to
	src/node/vrml97/register_node_metatypes.cpp.
	* src/libopenvrml/openvrml/vrml97node.h: Removed.
	* src/libopenvrml/openvrml/x3d_cad_geometry.cpp: Moved to
	src/node/x3d-cad-geometry/register_node_metatypes.cpp.
	* src/libopenvrml/openvrml/x3d_cad_geometry.h: Removed.
	* src/libopenvrml/openvrml/x3d_core.cpp: Moved to
	src/node/x3d-core/register_node_metatypes.cpp.
	* src/libopenvrml/openvrml/x3d_core.h: Removed.
	* src/libopenvrml/openvrml/x3d_dis.cpp: Moved to
	src/node/x3d-dis/register_node_metatypes.cpp.
	* src/libopenvrml/openvrml/x3d_dis.h: Removed.
	* src/libopenvrml/openvrml/x3d_environmental_effects.cpp: Moved to
	src/node/x3d-environmental-effects/register_node_metatypes.cpp.
	* src/libopenvrml/openvrml/x3d_environmental_effects.h: Removed.
	* src/libopenvrml/openvrml/x3d_event_utilities.cpp: Moved to
	src/node/x3d-event-utilities/register_node_metatypes.cpp.
	* src/libopenvrml/openvrml/x3d_event_utilities.h: Removed.
	* src/libopenvrml/openvrml/x3d_geometry2d.cpp: Moved to
	src/node/x3d-geometry2d/register_node_metatypes.cpp.
	* src/libopenvrml/openvrml/x3d_geometry2d.h: Removed.
	* src/libopenvrml/openvrml/x3d_geospatial.cpp: Moved to
	src/node/x3d-geospatial/register_node_metatypes.cpp.
	* src/libopenvrml/openvrml/x3d_geospatial.h: Removed.
	* src/libopenvrml/openvrml/x3d_grouping.cpp: Moved to
	src/node/x3d-grouping/register_node_metatypes.cpp.
	* src/libopenvrml/openvrml/x3d_grouping.h: Removed.
	* src/libopenvrml/openvrml/x3d_hanim.cpp: Moved to
	src/node/x3d-h-anim/register_node_metatypes.cpp.
	* src/libopenvrml/openvrml/x3d_hanim.h: Removed.
	* src/libopenvrml/openvrml/x3d_interpolation.cpp: Moved to
	src/node/x3d-interpolation/register_node_metatypes.cpp.
	* src/libopenvrml/openvrml/x3d_interpolation.h: Removed.
	* src/libopenvrml/openvrml/x3d_key_device_sensor.cpp: Moved to
	src/node/x3d-key-device-sensor/register_node_metatypes.cpp.
	* src/libopenvrml/openvrml/x3d_key_device_sensor.h: Removed.
	* src/libopenvrml/openvrml/x3d_networking.cpp: Moved to
	src/node/x3d-networking/register_node_metatypes.cpp.
	* src/libopenvrml/openvrml/x3d_networking.h: Removed.
	* src/libopenvrml/openvrml/x3d_nurbs.cpp: Moved to
	src/node/x3d-nurbs/register_node_metatypes.cpp.
	* src/libopenvrml/openvrml/x3d_nurbs.h: Removed.
	* src/libopenvrml/openvrml/x3d_rendering.cpp: Moved to
	src/node/x3d-rendering/register_node_metatypes.cpp.
	* src/libopenvrml/openvrml/x3d_rendering.h: Removed.
	* src/libopenvrml/openvrml/x3d_shape.cpp: Moved to
	src/node/x3d-shape/register_node_metatypes.cpp.
	* src/libopenvrml/openvrml/x3d_shape.h: Removed.
	* src/libopenvrml/openvrml/x3d_texturing.cpp: Moved to
	src/node/x3d-texturing/register_node_metatypes.cpp.
	* src/libopenvrml/openvrml/x3d_texturing.h: Removed.

2008-11-10 Braden McDaniel  <braden@endoframe.com>

	Updated to 20081110 release of Autoconf GL Macros.  This addresses
	some quoting issues in the AX_CHECK_GL macro.

	* m4/ax_check_gl.m4

2008-11-09 Braden McDaniel  <braden@endoframe.com>

	Updated to 20081109 release of Autoconf GL Macros.  This addresses
	issues with the test for the varargs GLU tesselator callback
	signature on Mac OS X 10.4.

	* m4/ax_check_gl.m4
	* m4/ax_check_glu.m4
	* m4/ax_lang_compiler_ms.m4

2008-11-09 Braden McDaniel  <braden@endoframe.com>

	Acquire a read lock on the scene pointer mutex when rendering a
	node.

	* src/libopenvrml/openvrml/node.cpp
	(openvrml::node::scene_mutex()): Get the scene pointer mutex.
	(openvrml::appearance_node::render_appearance(viewer &,
	rendering_context)): Acquire a read lock on the scene pointer
	mutex.
	(openvrml::child_node::render_child(viewer &, rendering_context)):
	Acquire a read lock on the scene pointer mutex.
	(openvrml::geometry_node::render_geometry(viewer &,
	rendering_context)): Acquire a read lock on the scene pointer
	mutex.
	(openvrml::scoped_light_node::render_scoped_light(viewer &)):
	Acquire a read lock on the scene pointer mutex.
	(openvrml::texture_node::render_texture(viewer &)): Acquire a read
	lock on the scene pointer mutex.
	(openvrml::texture_transform_node::render_texture_transform(viewer&)):
	Acquire a read lock on the scene pointer mutex.
	* src/libopenvrml/openvrml/node.h
	(openvrml::node): Added protected accessor for the scene mutex.

2008-11-03 Braden McDaniel  <braden@endoframe.com>

	Only render a node if the scene pointer is nonnull (i.e., the node
	has been initialized).

	* src/libopenvrml/openvrml/node.cpp
	(openvrml::appearance_node::render_appearance(viewer &,
	rendering_context)): Check that the scene pointer is nonnull.
	(openvrml::child_node::render_child(viewer &, rendering_context)):
	Check that the scene pointer is nonnull.
	(openvrml::geometry_node::render_geometry(viewer &,
	rendering_context)): Check that the scene pointer is nonnull.
	(openvrml::scoped_light_node::render_scoped_light(viewer &)):
	Check that the scene pointer is nonnull.
	(openvrml::texture_node::render_texture(viewer &)): Check that the
	scene pointer is nonnull.
	(openvrml::texture_transform_node::render_texture_transform(viewer&)):
	Check that the scene pointer is nonnull.
	* src/node/vrml97/image_texture.cpp
	(image_texture_node::update_texture()): Assert that the scene
	pointer is nonnull (i.e., the node has been initialized).

2008-11-03 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/local/proto.cpp
	(proto_node::do_shutdown(double)): Doc-comment fix.

2008-10-26 Braden McDaniel  <braden@endoframe.com>

	Updates for 0.17.10 release.

	* NEWS
	* README

2008-10-26 Braden McDaniel  <braden@endoframe.com>

	"got_initial_stream" flag needs to be per-XEmbed browser instance.

	* src/openvrml-xembed/browser.cpp
	(OpenvrmlXembedBrowserPrivate_): Added member got_initial_stream.
	(openvrml_xembed_browser_new_stream(OpenvrmlXembedStreamClient *,
	guint64, const char *, const char *, GError **)): Use the
	got_initial_stream private member instead of a static variable.

2008-10-26 Braden McDaniel  <braden@endoframe.com>

	Set GErrors on failure of the XEmbed browser control's stream
	handling functions.

	* src/openvrml-xembed/browser.cpp
	(openvrml_xembed_error_quark()): Moved from browserfactory.cpp.
	(openvrml_xembed_browser_new_stream(OpenvrmlXembedStreamClient *,
	guint64, const char *, const char *, GError **)): Set an
	OPENVRML_XEMBED_ERROR_UNKNOWN_STREAM GError if the new stream URI
	is not recognized.
	(openvrml_xembed_browser_destroy_stream(OpenvrmlXembedStreamClient *,
	guint64, GError **)): Set an OPENVRML_XEMBED_ERROR_UNKNOWN_STREAM
	GError if the stream id is not recognized.
	(openvrml_xembed_browser_write(OpenvrmlXembedStreamClient *,
	guint64, const GArray *, GError **)): Set an
	OPENVRML_XEMBED_ERROR_UNKNOWN_STREAM GError if the stream id is
	not recognized.
	* src/openvrml-xembed/browser.h
	(OpenvrmlXembedError): Moved from browserfactory.cpp; added
	OPENVRML_XEMBED_ERROR_UNKNOWN_STREAM.
	* src/openvrml-xembed/browserfactory.cpp
	(openvrml_xembed_error_quark()): Moved to browser.cpp.
	(OpenvrmlXembedError): Moved to browser.h.

2008-10-25 Braden McDaniel  <braden@endoframe.com>

	Ensure the XEmbed control host identifier is consistently treated
	as a 64-bit type.

	* mozilla-plugin/src/Makefile.am: Generate client code for
	org.openvrml.Browser and org.openvrml.BrowserFactory.
	* mozilla-plugin/src/openvrml.cpp
	(get_browser(DBusGConnection *, const char *, const char *,
	guint64, GError **)): Use the generated function
	org_openvrml_BrowserFactory_create_control.
	(plugin_instance::new_stream(NPMIMEType, NPStream *)): Use the
	generated function org_openvrml_Browser_new_stream.
	(plugin_instance::destroy_stream(NPStream *)): Cast the stream
	identifier to guint64.
	(plugin_instance::write(NPStream *, int32, void *)): Cast the
	stream identifier to guint64.
	* src/Makefile.am: Generate client code for org.openvrml.Browser
	and org.openvrml.BrowserFactory.
	* src/openvrml-player/curlbrowserhost.cpp
	(openvrml_player_curl_browser_host_realize(GtkWidget *)): Use the
	generated function org_openvrml_Browser_get_id.
	(openvrml_player_curl_browser_host_curl_source_callback(gpointer)):
	Cast the stream identifier to guint64.
	(openvrml_player_curl_browser_host_curl_write(void *, size_t,
	size_t, void *)): Use the generated function
	org_openvrml_Browser_new_stream; cast the stream identifier to
	guint64.
	(get_browser(DBusGConnection *, const char *, const char *,
	guint64, GError **)): Use the generated function
	org_openvrml_BrowserFactory_create_control.

2008-10-25 Braden McDaniel  <braden@endoframe.com>

	Fixed signature of openvrml_xembed_browser_factory_create_control
	to use guint64 for the host_id.

	* src/openvrml-xembed/browserfactory.cpp
	* src/openvrml-xembed/browserfactory.h

2008-10-23 Braden McDaniel  <braden@endoframe.com>

	Removed redundant registration of the OpenvrmlXembedBrowserFactory
	instance.

	* src/openvrml-xembed/main.cpp
	(main(int, char *[])): Removed redundant registration of the
	OpenvrmlXembedBrowserFactory instance.
	* src/openvrml-player/curlbrowserhost.cpp
	(get_browser(DBusGConnection *, const char *, const char *,
	guint64, GError **)): Proper factory object path is
	"org/openvrml/BrowserFactory".
	* mozilla-plugin/src/openvrml.cpp
	(get_browser(DBusGConnection *, const char *, const char *,
	guint64, GError **)): Proper factory object path is
	"org/openvrml/BrowserFactory".

2008-10-23 Braden McDaniel  <braden@endoframe.com>

	Require Automake 1.10.1.

	* configure.ac: Require Automake 1.10.1.
	* src/Makefile.am: Removed hack to make distcheck work with
	Automake 1.10.

2008-10-16 Braden McDaniel  <braden@endoframe.com>

	Moved floating point comparison functions from private.h to
	openvrml/local/float.h.

	* src/Makefile.am
	(libopenvrml_libopenvrml_la_SOURCES): Added
	libopenvrml/openvrml/local/float.h.
	* src/libopenvrml/private.h: Moved floating point comparison
	functions to openvrml/local/float.h.
	* src/libopenvrml/openvrml/basetypes.cpp
	* src/libopenvrml/openvrml/bounding_volume.cpp
	* src/libopenvrml/openvrml/frustum.cpp
	* src/libopenvrml/openvrml/local/float.h: Added file; moved
	floating point comparison functions here.
	* src/node/vrml97/cylinder_sensor.cpp
	* src/node/vrml97/normal_interpolator.cpp
	* src/node/vrml97/orientation_interpolator.cpp
	* src/node/vrml97/proximity_sensor.cpp
	* src/node/vrml97/texture_transform.cpp
	* src/node/vrml97/time_sensor.cpp
	* src/node/vrml97/visibility_sensor.cpp
	* src/script/javascript.cpp

2008-10-16 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Removed redundant AC_ARG_VAR for JAVA_HOME.

2008-10-15 Braden McDaniel  <braden@endoframe.com>

	* ide-projects/Makefile.am
	(VISUALC9_0_FILES): Add project files for node component libraries
	to the distribution.

2008-10-14 Braden McDaniel  <braden@endoframe.com>

	Define _SECURE_SCL=0 for Release configurations.

	* ide-projects/Windows/VisualC9_0/OpenVRML/javascript/javascript.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/parse-vrml97/parse-vrml97.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/parse-x3dvrml/parse-x3dvrml.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/pretty-print/pretty-print.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/sdl-viewer/sdl-viewer.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/vrml97/vrml97.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-cad-geometry/x3d-cad-geometry.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-core/x3d-core.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-dis/x3d-dis.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-environmental-effects/x3d-environmental-effects.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-event-utilities/x3d-event-utilities.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-geometry2d/x3d-geometry2d.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-geospatial/x3d-geospatial.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-grouping/x3d-grouping.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-h-anim/x3d-h-anim.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-interpolation/x3d-interpolation.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-key-device-sensor/x3d-key-device-sensor.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-networking/x3d-networking.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-nurbs/x3d-nurbs.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-shape/x3d-shape.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-rendering/x3d-rendering.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-texturing/x3d-texturing.vcproj

2008-10-14 Braden McDaniel  <braden@endoframe.com>

	Moved the boost::mpl::vector of field value types to the
	openvrml::local namespace.

	* src/libopenvrml/private.h: Moved field_value_types to the
	openvrml::local namespace;
	* src/libopenvrml/openvrml/local/proto.cpp: Use
	openvrml::local::field_value_types.
	* src/libopenvrml/openvrml/local/field_value_types.h: Added file;
	contains the declaration of openvrml::local::field_value_types.
	* src/libopenvrml/openvrml/node.cpp: Use
	openvrml::local::field_value_types.
	* src/libopenvrml/openvrml/browser.cpp: Use
	openvrml::local::field_value_types.
	* src/libopenvrml/openvrml/script.cpp: Use
	openvrml::local::field_value_types.
	* src/libopenvrml/openvrml/field_value.cpp: Use
	openvrml::local::field_value_types.
	* src/Makefile.am
	(libopenvrml_libopenvrml_la_SOURCES): Added
	libopenvrml/openvrml/local/field_value_types.h.

2008-10-13 Braden McDaniel  <braden@endoframe.com>

	Use the implementation of ScopeGuard buried in Boost.MultiIndex
	instead of providing our own.  (Yes, it's in a "detail" namespace;
	but since Boost doesn't guarantee any API stability from one
	release to the next, that has little practical meaning.)

	* src/libopenvrml/private.h: Removed ScopeGuard implementation.
	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::browser::externproto_node_metatype::load_proto::operator()()
	const): Use boost::multi_index::detail::scope_guard.
	* src/libopenvrml/openvrml/script.cpp
	(openvrml::script_node::script_node(script_node_metatype &, const
	boost::shared_ptr<openvrml::scope> &, const node_interface_set &,
	const initial_value_map &)): Use
	boost::multi_index::detail::scope_guard.
	* src/script/javascript.cpp
	(script::activate(double, const std::string &, size_t, const
	openvrml::field_value * const[])): Use
	boost::multi_index::detail::scope_guard.

2008-10-09 Braden McDaniel  <braden@endoframe.com>

	Updates for 0.17.9 release.

	* NEWS
	* README
	* doc/Doxyfile
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.rc
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.rc
	* src/Makefile.am: Updated libopenvrml libtool library version to
	8:7:0; updated libopenvrml-gl libtool library version to 7:3:0.

2008-10-09 Braden McDaniel  <braden@endoframe.com>

	Removed obsolete texinfo documentation for openvrml-xembed.

	* doc/Makefile.am
	* doc/openvrml-xembed.texi: Removed.
	* doc/fdl.texi: Removed.

2008-10-08 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Fail if dbus-glib isn't found.

2008-10-07 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Removed redundant AC_ARG_VAR for JAVA_HOME.

2008-10-06 Braden McDaniel  <braden@endoframe.com>

	Process org.openvrml.BrowserControl.service.in with sed (rather
	than config.status) so that substitutions that expand to make
	macros get fully resolved.

	* configure.ac: Removed
	src/openvrml-xembed/org.openvrml.BrowserControl.service from
	AC_CONFIG_FILES.
	* src/Makefile.am: Added rules to create
	org.openvrml.BrowserControl.service from
	org.openvrml.BrowserControl.service.in.

2008-10-06 Braden McDaniel  <braden@endoframe.com>

	* doc/Makefile.am: install/distcheck fixes for javadoc
	documentation.

2008-10-06 Braden McDaniel  <braden@endoframe.com>

	Updated to 20081006 release of Autoconf GL Macros.

	* m4/ax_check_gl.m4

2008-10-05 Braden McDaniel  <braden@endoframe.com>

	Updated to 20081005 release of Autoconf GL Macros.

	* m4/acx_pthread.m4
	* m4/ax_check_gl.m4

2008-10-05 Braden McDaniel  <braden@endoframe.com>

	Need to use dbus_g_proxy_new_for_name rather than
	_new_for_name_owner in order for activation to work.

	* mozilla-plugin/src/openvrml.cpp
	(get_browser(DBusGConnection *, const char *, const char *,
	guint64, GError **)): Use dbus_g_proxy_new_for_name to get the
	org.openvrml.BrowserFactory proxy.
	* src/openvrml-player/curlbrowserhost.cpp
	(get_browser(DBusGConnection *, const char *, const char *,
	guint64, GError **)): Use dbus_g_proxy_new_for_name to get the
	org.openvrml.BrowserFactory proxy.

2008-10-04 Braden McDaniel  <braden@endoframe.com>

	If we set the absolute path of session_bus_servicesdir, the
	resulting Automake code is not DESTDIR-aware.  While we could take
	care of this in install-local, it's probably safe to hard-code a
	relative path for this.

	* configure.ac: Don't AC_SUBST session_bus_servicesdir.
	* src/Makefile.am: Hard code the relative path of
	session_bus_servicesdir.

2008-10-03 Braden McDaniel  <braden@endoframe.com>

	* src/Makefile.am
	(openvrml_player_openvrml_player_CPPFLAGS): Can't safely use
	builddir for relative paths; and we don't need it anyway.

2008-10-02 Braden McDaniel  <braden@endoframe.com>

	Use jlong in JNI function signatures to ensure consistency with
	javah output.

	* src/script/java.cpp
	(Java_vrml_field_SFString_createPeer(JNIEnv *, jclass, jstring)):
	Use jlong for the return type.
	(Java_vrml_field_SFTime_createPeer(JNIEnv *, jclass, jdouble)):
	Use jlong for the return type.

2008-10-02 Braden McDaniel  <braden@endoframe.com>

	Keep track of host instances in openvrml-xembed and shut down when
	the last one terminates.

	* src/openvrml-xembed/browser-factory.xml: Added
	"org.freedesktop.DBus.GLib.Async" annotation to CreateControl
	method.  This allows us to use DBusGMethodInvocation in the method
	implementation.
	* src/openvrml-xembed/browserfactory.cpp
	(openvrml_xembed_error_quark()): GQuark for the GErrors we
	generate.
	(OpenvrmlXembedError): GError codes.
	(intrusive_ptr_add_ref(GObject *)): Added so that
	boost::intrusive_ptr can be used with GObject.
	(intrusive_ptr_release(GObject *)): Added so that
	boost::intrusive_ptr can be used with GObject.
	(OpenvrmlXembedBrowserFactoryPrivate_): Moved
	OpenvrmlXembedBrowserFactory data members to a private struct.
	hosts is a map of the unique bus identifiers of hosts to a map of
	the controls instantiated by the host.
	(openvrml_xembed_browser_factory_constructor(GType, guint,
	GObjectConstructParam *)): Instantiate the hosts map in the
	constructor function.
	(openvrml_xembed_browser_factory_finalize(GObject *)): Destroy the
	hosts map and unref the DBus proxy.
	(openvrml_xembed_browser_factory_init(OpenvrmlXembedBrowserFactory *)):
	Use the DBus proxy associated with the
	OpenvrmlXembedBrowserFactory instance; connect to the
	org.freedesktop.DBus.NameOwnerChanged signal.
	(openvrml_xembed_browser_factory_class_init(OpenvrmlXembedBrowserFactoryClass *)):
	Set constructor and finalize functions; set up private data.
	(on_host_shutdown_data): Added host_name to hold the unique bus
	identifier of the host.
	(delete_on_host_shutdown_data): on_host_shutdown_data now owns the
	control_obj_path and host_name strings; free them.
	(openvrml_xembed_browser_factory_create_control(OpenvrmlXembedBrowserFactory *,
	const char *, const char *, guint, gboolean,
	DBusGMethodInvocation *)): Get the host's unique bus identifier
	and track it in the hosts map.
	(openvrml_xembed_browser_factory_on_host_shutdown_event(DBusGProxy *,
	gpointer)): Erase the shut down control from the hosts map.  The
	intrusive_ptr will unref it.
	(openvrml_xembed_browser_factory_name_owner_changed(DBusGProxy *,
	const gchar *, const gchar *, const gchar *, gpointer)): Erase the
	host leaving the bus from the hosts map; this cleans up resources
	associated with the host.  Quit when the last host leaves.
	* src/openvrml-xembed/browserfactory.h
	(OPENVRML_XEMBED_BROWSER_FACTORY_CLASS): Fixed missing third
	parameter to G_TYPE_CHECK_CLASS_CAST.
	(OpenvrmlXembedBrowserFactory_): Moved data members to private
	struct.
	(openvrml_xembed_browser_factory_create_control(OpenvrmlXembedBrowserFactory *,
	const char *, const char *, guint, gboolean,
	DBusGMethodInvocation *)): Changed signature per
	"org.freedesktop.DBus.GLib.Async" annotation.
	* src/openvrml-xembed/main.cpp
	(main(int, char *[])): Removed redundant name request; this is
	taken care of in the OpenvrmlXembedBrowserFactory implementation.
	Don't unref the browser_factory; this seems not to play well with
	dbus_g_connection_register_g_object.

2008-09-30 Braden McDaniel  <braden@endoframe.com>

	In the spirit of not returning mutable instances by value, change
	uri's std::string conversion operator to convert to a const
	std::string.

	* src/libopenvrml/openvrml/local/uri.cpp
	* src/libopenvrml/openvrml/local/uri.h

2008-09-30 Braden McDaniel  <braden@endoframe.com>

	Moved openvrml::local::uri::resolve_against to
	openvrml::local::resolve_against (i.e., made it a nonmember
	function).

	* src/libopenvrml/openvrml/local/uri.cpp
	* src/libopenvrml/openvrml/local/uri.h
	* src/libopenvrml/openvrml/scene.cpp
	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/script.cpp

2008-09-28 Braden McDaniel  <braden@endoframe.com>

	Updated version to 0.17.99.

	* configure.ac
	* doc/Doxyfile
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.rc
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.rc
	* mozilla-plugin/configure.ac

2008-09-28 Braden McDaniel  <braden@endoframe.com>

	More documentation improvements.

	* src/libopenvrml/openvrml/viewer.cpp
	* doc/Makefile.am
	(CUSTOMIZED_IMAGES): Added x3d-white-on-black.png.

2008-09-27 Braden McDaniel  <braden@endoframe.com>

	Documentation improvements.  No longer use the Doxygen default
	style sheet at all.  Also, added X3D link to the page footer.

	* doc/Doxyfile
	* doc/doxygen-footer
	* doc/doxygen-header
	* doc/manual/x3d-white-on-black.png
	* src/libopenvrml/openvrml/local/proto.cpp
	* src/libopenvrml/openvrml/local/proto.h
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/script.cpp

2008-09-27 Braden McDaniel  <braden@endoframe.com>

	Fixes for the Visual C++ build.

	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj
	* src/libopenvrml/openvrml/local/dl.cpp
	* src/libopenvrml/openvrml/local/uri.cpp
	* src/libopenvrml/openvrml/local/xml_reader.cpp

2008-09-26 Braden McDaniel  <braden@endoframe.com>

	Moved proto_node class from an inner class of
	openvrml::local::proto_node_metatype to the openvrml::local
	namespace.  proto_node needs access to the private parts of
	openvrml::node; and gcc 4.0 requires us to grant friendship to
	proto_node specifically (rather than granting friendship to
	proto_node_metatype when proto_node is an inner class of it).  We
	need to be able to forward-declare proto_node (the public header
	node.h cannot include the private proto.h); and to accommodate
	that, proto_node cannot be an inner class.

	* src/libopenvrml/openvrml/local/proto.cpp
	* src/libopenvrml/openvrml/local/proto.h
	* src/libopenvrml/openvrml/node.h

2008-09-26 Braden McDaniel  <braden@endoframe.com>

	Moved PROTO implementation classes to the openvrml::local
	namespace and out of browser.cpp.

	* src/Makefile.am
	(libopenvrml_libopenvrml_la_SOURCES): Added
	libopenvrml/openvrml/local/proto.{cpp,h}.
	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/local/proto.cpp
	* src/libopenvrml/openvrml/local/proto.h
	* src/libopenvrml/openvrml/node.h

2008-09-24 Braden McDaniel  <braden@endoframe.com>

	Moved dlopen/LoadLibrary wrapper functions, the XML parser
	wrapper, and the uri class to the openvrml::local namespace.  This
	facilitates breaking up browser.cpp a bit.  openvrml::scene has
	been moved to its own header and implementation file and the
	openvrml::script implementation has been moved back to its own
	file.

	* src/Makefile.am
	(openvrml_include_HEADERS): Added libopenvrml/openvrml/bad_url.h
	and libopenvrml/openvrml/scene.h.
	(libopenvrml_libopenvrml_la_SOURCES): Added
	libopenvrml/openvrml/bad_url.cpp, libopenvrml/openvrml/script.cpp,
	libopenvrml/openvrml/scene.cpp,
	libopenvrml/openvrml/local/dl.{cpp,h},
	libopenvrml/openvrml/uri.{cpp,h}, and
	libopenvrml/openvrml/local/xml_reader.{cpp,h}.
	* src/libopenvrml/private.h: Moved URI grammar to
	libopenvrml/openvrml/local/uri.h.
	* src/libopenvrml/openvrml/bad_url.cpp: Implementation of
	openvrml::bad_url and derived exceptions; moved from browser.cpp.
	* src/libopenvrml/openvrml/bad_url.h: openvrml::bad_url and
	derived exceptions; moved from browser.h.
	* src/libopenvrml/openvrml/browser.cpp: Moved dlopen/LoadLibrary
	wrapper functions to libopenvrml/openvrml/local/dl.cpp; moved uri
	class implementation to libopenvrml/openvrml/local/uri.cpp; moved
	xml_reader class implementation to
	libopenvrml/openvrml/local/xml_reader.cpp; moved script_node
	implementation to libopenvrml/openvrml/script.cpp.
	* src/libopenvrml/openvrml/browser.h: Moved openvrml::script_node
	definition to libopenvrml/openvrml/script.h; moved definition of
	openvrml::bad_url and derived exceptions to
	libopenvrml/openvrml/bad_url.h.
	* src/libopenvrml/openvrml/local/dl.cpp: Added; dlopen/LoadLibrary
	wrapper function definitions.
	* src/libopenvrml/openvrml/local/dl.h: Added; dlopen/LoadLibrary
	wrapper function declarations (moved from
	libopenvrml/openvrml/browser.cpp).
	* src/libopenvrml/openvrml/local/uri.cpp: Added; uri class
	implementation (moved from libopenvrml/openvrml/browser.cpp).
	* src/libopenvrml/openvrml/local/uri.h: Added; uri class
	definition and grammar definitions (moved from
	libopenvrml/openvrml/browser.cpp and libopenvrml/private.h).
	* src/libopenvrml/openvrml/local/xml_reader.cpp: Added; xml_reader
	implementation (moved from libopenvrml/openvrml/browser.cpp).
	* src/libopenvrml/openvrml/local/xml_reader.h: Added; xml_reader
	class definition (moved from libopenvrml/openvrml/browser.cpp).
	* src/libopenvrml/openvrml/node.cpp: Include scope.h here rather
	than in node.h.
	* src/libopenvrml/openvrml/node.h: Declare openvrml::scope rather
	than include scope.h here.
	* src/libopenvrml/openvrml/scene.cpp: Added; openvrml::scene
	implementation (moved from libopenvrml/openvrml/browser.cpp).
	* src/libopenvrml/openvrml/scene.h: Added; openvrml::scene
	definition (moved from libopenvrml/openvrml/browser.h).
	* src/libopenvrml/openvrml/script.cpp: Added; openvrml::script and
	openvrml::script_node implementations (moved from
	libopenvrml/openvrml/browser.cpp).
	* src/libopenvrml/openvrml/script.h: Moved openvrml::script_node
	definition here (from libopenvrml/openvrml/browser.h).
	* src/node/vrml97/movie_texture.cpp: Include <openvrml/scene.h>.
	* src/node/vrml97/audio_clip.cpp: Include <openvrml/scene.h>.
	* src/node/vrml97/anchor.cpp: Include <openvrml/scene.h>.
	* src/node/vrml97/inline.cpp: Include <openvrml/scene.h>.
	* src/node/vrml97/time_sensor.cpp: Include <openvrml/scene.h>.
	* src/node/vrml97/image_texture.cpp: Include <openvrml/scene.h>.
	* src/node/vrml97/spot_light.cpp: Include <openvrml/scene.h>.
	* src/node/vrml97/background.cpp: Include <openvrml/scene.h>.
	* src/node/vrml97/point_light.cpp: Include <openvrml/scene.h>.
	* src/node/vrml97/viewpoint.cpp: Include <openvrml/scene.h>.
	* src/script/java.cpp: Include <openvrml/scene.h>.
	* src/script/javascript.cpp: Include <openvrml/scene.h>.

2008-09-24 Braden McDaniel  <braden@endoframe.com>

	Moved X3D CAD Geometry node implementations into a convenience
	library.

	* ide-projects/Windows/VisualC9_0/OpenVRML/OpenVRML.sln: Added
	x3d-cad-geometry static library project.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-cad-geometry/x3d-cad-geometry.
	* src/Makefile.am: Added convenience library
	node/x3d-cad-geometry/libx3d-cad-geometry.la.
	* src/libopenvrml/openvrml/x3d_cad_geometry.cpp: Moved node
	implementations to separate files.
	* src/node/x3d-cad-geometry/cad_face.cpp
	* src/node/x3d-cad-geometry/cad_face.h
	* src/node/x3d-cad-geometry/indexed_quad_set.cpp
	* src/node/x3d-cad-geometry/indexed_quad_set.h

2008-09-24 Braden McDaniel  <braden@endoframe.com>

	Moved X3D NURBS node implementations into a convenience
	library.

	* ide-projects/Windows/VisualC9_0/OpenVRML/OpenVRML.sln: Added
	x3d-nurbs static library project.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-nurbs/x3d-nurbs.vcproj
	* src/Makefile.am: Added convenience library
	node/x3d-nurbs/libx3d-nurbs.la.
	* src/libopenvrml/openvrml/x3d_nurbs.cpp: Moved node
	implementations to separate files.
	* src/node/x3d-nurbs/contour2d.cpp
	* src/node/x3d-nurbs/contour2d.h
	* src/node/x3d-nurbs/contour_polyline2d.cpp
	* src/node/x3d-nurbs/contour_polyline2d.h
	* src/node/x3d-nurbs/coordinate_double.cpp
	* src/node/x3d-nurbs/coordinate_double.h
	* src/node/x3d-nurbs/nurbs_curve.cpp
	* src/node/x3d-nurbs/nurbs_curve.h
	* src/node/x3d-nurbs/nurbs_curve2d.cpp
	* src/node/x3d-nurbs/nurbs_curve2d.h
	* src/node/x3d-nurbs/nurbs_orientation_interpolator.cpp
	* src/node/x3d-nurbs/nurbs_orientation_interpolator.h
	* src/node/x3d-nurbs/nurbs_patch_surface.cpp
	* src/node/x3d-nurbs/nurbs_patch_surface.h
	* src/node/x3d-nurbs/nurbs_position_interpolator.cpp
	* src/node/x3d-nurbs/nurbs_position_interpolator.h
	* src/node/x3d-nurbs/nurbs_set.cpp
	* src/node/x3d-nurbs/nurbs_set.h
	* src/node/x3d-nurbs/nurbs_surface_interpolator.cpp
	* src/node/x3d-nurbs/nurbs_surface_interpolator.h
	* src/node/x3d-nurbs/nurbs_swept_surface.cpp
	* src/node/x3d-nurbs/nurbs_swept_surface.h
	* src/node/x3d-nurbs/nurbs_swung_surface.cpp
	* src/node/x3d-nurbs/nurbs_swung_surface.h
	* src/node/x3d-nurbs/nurbs_texture_coordinate.cpp
	* src/node/x3d-nurbs/nurbs_texture_coordinate.h
	* src/node/x3d-nurbs/nurbs_trimmed_surface.cpp
	* src/node/x3d-nurbs/nurbs_trimmed_surface.h

2008-09-23 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::browser::vrml97_parse_actions::on_externproto_t::operator()(const
	std::string &, const node_interface_set &, const
	std::vector<std::string> &) const): Removed stray debugging
	output.

2008-09-22 Braden McDaniel  <braden@endoframe.com>

	Moved X3D H-Anim node implementations into a convenience
	library.

	* ide-projects/Windows/VisualC9_0/OpenVRML/OpenVRML.sln: Added
	x3d-h-anim static library project.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-h-anim/x3d-h-anim.vcproj
	* src/Makefile.am: Added convenience library
	node/x3d-h-anim/libx3d-h-anim.la.
	* src/libopenvrml/openvrml/x3d_hanim.cpp: Moved node
	implementations to separate files.
	* src/node/x3d-h-anim/h_anim_displacer.cpp
	* src/node/x3d-h-anim/h_anim_displacer.h
	* src/node/x3d-h-anim/h_anim_humanoid.cpp
	* src/node/x3d-h-anim/h_anim_humanoid.h
	* src/node/x3d-h-anim/h_anim_joint.cpp
	* src/node/x3d-h-anim/h_anim_joint.h
	* src/node/x3d-h-anim/h_anim_segment.cpp
	* src/node/x3d-h-anim/h_anim_segment.h
	* src/node/x3d-h-anim/h_anim_site.cpp
	* src/node/x3d-h-anim/h_anim_site.h

2008-09-22 Braden McDaniel  <braden@endoframe.com>

	Moved X3D Geospatial node implementations into a convenience
	library.

	* ide-projects/Windows/VisualC9_0/OpenVRML/OpenVRML.sln: Added
	x3d-geospatial static library project.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-geospatial/x3d-geospatial.vcproj
	* src/Makefile.am: Added convenience library
	node/x3d-geospatial/libx3d-geospatial.la.
	* src/libopenvrml/openvrml/x3d_geospatial.cpp: Moved node
	implementations to separate files.
	* src/node/x3d-geospatial/geo_coordinate.cpp
	* src/node/x3d-geospatial/geo_coordinate.h
	* src/node/x3d-geospatial/geo_elevation_grid.cpp
	* src/node/x3d-geospatial/geo_elevation_grid.h
	* src/node/x3d-geospatial/geo_location.cpp
	* src/node/x3d-geospatial/geo_location.h
	* src/node/x3d-geospatial/geo_lod.cpp
	* src/node/x3d-geospatial/geo_lod.h
	* src/node/x3d-geospatial/geo_metadata.cpp
	* src/node/x3d-geospatial/geo_metadata.h
	* src/node/x3d-geospatial/geo_origin.cpp
	* src/node/x3d-geospatial/geo_origin.h
	* src/node/x3d-geospatial/geo_position_interpolator.cpp
	* src/node/x3d-geospatial/geo_position_interpolator.h
	* src/node/x3d-geospatial/geo_touch_sensor.cpp
	* src/node/x3d-geospatial/geo_touch_sensor.h
	* src/node/x3d-geospatial/geo_viewpoint.cpp
	* src/node/x3d-geospatial/geo_viewpoint.h
	* src/node/x3d-geospatial/geospatial-common.cpp
	* src/node/x3d-geospatial/geospatial-common.h

2008-09-21 Braden McDaniel  <braden@endoframe.com>

	Moved X3D Environmental Effects node implementations into a convenience
	library.

	* ide-projects/Windows/VisualC9_0/OpenVRML/OpenVRML.sln: Added
	x3d-environmental-effects static library project.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-environmental-effects/x3d-environmental-effects.vcproj
	* src/Makefile.am: Added convenience library
	node/x3d-environmental-effectx/libx3d-environmental-effects.la.
	* src/libopenvrml/openvrml/x3d_environmental_effects.cpp: Moved
	node implementations to separate files.
	* src/node/x3d-environmental-effects/texture_background.cpp
	* src/node/x3d-environmental-effects/texture_background.h

2008-09-21 Braden McDaniel  <braden@endoframe.com>

	Moved X3D DIS node implementations into a convenience
	library.

	* ide-projects/Windows/VisualC9_0/OpenVRML/OpenVRML.sln: Added
	x3d-dis static library project.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-dis/x3d-dis.vcproj
	* src/Makefile.am: Added convenience library
	node/x3d-dis/libx3d-dis.la.
	* src/libopenvrml/openvrml/x3d_dis.cpp: Moved node implementations
	to separate files.
	* src/node/x3d-dis/espdu_transform.cpp
	* src/node/x3d-dis/espdu_transform.h
	* src/node/x3d-dis/receiver_pdu.cpp
	* src/node/x3d-dis/receiver_pdu.h
	* src/node/x3d-dis/signal_pdu.cpp
	* src/node/x3d-dis/signal_pdu.h
	* src/node/x3d-dis/transmitter_pdu.cpp
	* src/node/x3d-dis/transmitter_pdu.h

2008-09-21 Braden McDaniel  <braden@endoframe.com>

	Moved X3D Event Utilities node implementations into a convenience
	library.

	* ide-projects/Windows/VisualC9_0/OpenVRML/OpenVRML.sln: Added
	x3d-event-utilities static library project.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-event-utilities/x3d-event-utilities.vcproj
	* src/Makefile.am: Added convenience library
	node/x3d-event-utilities/libx3d-event-utilities.la.
	* src/libopenvrml/openvrml/x3d_event_utilities.cpp: Moved node
	implementations to separate files.
	* src/node/x3d-event-utilities/boolean_filter.cpp
	* src/node/x3d-event-utilities/boolean_filter.h
	* src/node/x3d-event-utilities/boolean_sequencer.cpp
	* src/node/x3d-event-utilities/boolean_sequencer.h
	* src/node/x3d-event-utilities/boolean_toggle.cpp
	* src/node/x3d-event-utilities/boolean_toggle.h
	* src/node/x3d-event-utilities/boolean_trigger.cpp
	* src/node/x3d-event-utilities/boolean_trigger.h
	* src/node/x3d-event-utilities/integer_sequencer.cpp
	* src/node/x3d-event-utilities/integer_sequencer.h
	* src/node/x3d-event-utilities/integer_trigger.cpp
	* src/node/x3d-event-utilities/integer_trigger.h
	* src/node/x3d-event-utilities/time_trigger.cpp
	* src/node/x3d-event-utilities/time_trigger.h

2008-09-21 Braden McDaniel  <braden@endoframe.com>

	Moved X3D Key Device Sensor node implementations into a convenience
	library.

	* ide-projects/Windows/VisualC9_0/OpenVRML/OpenVRML.sln: Added
	x3d-key-device-sensor static library project.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-key-device-sensor/x3d-key-device-sensor.vcproj
	* src/Makefile.am: Added convenience library
	node/x3d-key-device-sensor/libx3d-key-device-sensor.la.
	* src/libopenvrml/openvrml/x3d_key_device_sensor.cpp: Moved node
	implementations to separate files.
	* src/node/x3d-key-device-sensor/string_sensor.cpp
	* src/node/x3d-key-device-sensor/string_sensor.h
	* src/node/x3d-key-device-sensor/key_sensor.cpp
	* src/node/x3d-key-device-sensor/key_sensor.h

2008-09-21 Braden McDaniel  <braden@endoframe.com>

	Moved X3D Interpolation node implementations into a convenience
	library.

	* ide-projects/Windows/VisualC9_0/OpenVRML/OpenVRML.sln: Added
	x3d-interpolation static library project.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-interpolation/x3d-interpolation.vcproj
	* src/Makefile.am: Added convenience library
	node/x3d-interpolation/libx3d-interpolation.la.
	* src/libopenvrml/openvrml/x3d_interpolation.cpp: Moved node
	implementations to separate files.
	* src/node/x3d-interpolation/coordinate_interpolator2d.cpp
	* src/node/x3d-interpolation/coordinate_interpolator2d.h
	* src/node/x3d-interpolation/position_interpolator2d.cpp
	* src/node/x3d-interpolation/position_interpolator2d.h

2008-09-21 Braden McDaniel  <braden@endoframe.com>

	Removed unnecessary includes.

	* src/libopenvrml/openvrml/x3d_geometry2d.cpp
	* src/libopenvrml/openvrml/x3d_texturing.cpp

2008-09-21 Braden McDaniel  <braden@endoframe.com>

	Moved X3D Texturing node implementations into a convenience
	library.

	* ide-projects/Windows/VisualC9_0/OpenVRML/OpenVRML.sln: Added
	x3d-texturing static library project.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-texturing/x3d-texturing.vcproj
	* src/Makefile.am: Added convenience library
	node/x3d-texturing/libx3d-texturing.la.
	* src/libopenvrml/openvrml/x3d_texturing.cpp: Moved node
	implementations to separate files.
	* src/node/x3d-texturing/multi_texture.cpp
	* src/node/x3d-texturing/multi_texture.h
	* src/node/x3d-texturing/multi_texture_coordinate.cpp
	* src/node/x3d-texturing/multi_texture_coordinate.h
	* src/node/x3d-texturing/multi_texture_transform.cpp
	* src/node/x3d-texturing/multi_texture_transform.h
	* src/node/x3d-texturing/texture_coordinate_generator.cpp
	* src/node/x3d-texturing/texture_coordinate_generator.h

2008-09-20 Braden McDaniel  <braden@endoframe.com>

	Moved X3D Geometry2D node implementations into a convenience
	library.

	* ide-projects/Windows/VisualC9_0/OpenVRML/OpenVRML.sln: Added
	x3d-geometry2d static library project.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-geometry2d/x3d-geometry2d.vcproj
	* src/Makefile.am: Added convenience library
	node/x3d-geometry2d/libx3d-geometry2d.la.
	* src/libopenvrml/openvrml/x3d_geometry2d.cpp: Moved node
	implementations to separate files.
	* src/node/x3d-geometry2d/arc2d.cpp
	* src/node/x3d-geometry2d/arc2d.h
	* src/node/x3d-geometry2d/arc_close2d.cpp
	* src/node/x3d-geometry2d/arc_close2d.h
	* src/node/x3d-geometry2d/circle2d.cpp
	* src/node/x3d-geometry2d/circle2d.h
	* src/node/x3d-geometry2d/disk2d.cpp
	* src/node/x3d-geometry2d/disk2d.h
	* src/node/x3d-geometry2d/polyline2d.cpp
	* src/node/x3d-geometry2d/polyline2d.h
	* src/node/x3d-geometry2d/polypoint2d.cpp
	* src/node/x3d-geometry2d/polypoint2d.h
	* src/node/x3d-geometry2d/rectangle2d.cpp
	* src/node/x3d-geometry2d/rectangle2d.h
	* src/node/x3d-geometry2d/triangle_set2d.cpp
	* src/node/x3d-geometry2d/triangle_set2d.h

2008-09-18 Braden McDaniel  <braden@endoframe.com>

	Moved X3D Shape node implementations into a convenience
	library.

	* ide-projects/Windows/VisualC9_0/OpenVRML/OpenVRML.sln: Added
	x3d-shape static library project.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-shape/x3d-shape.vcproj
	* src/Makefile.am: Added convenience library
	node/x3d-shape/libx3d-shape.la.
	* src/libopenvrml/openvrml/x3d_shape.cpp: Moved node
	implementations to separate files.
	* src/node/x3d-shape/fill_properties.cpp
	* src/node/x3d-shape/fill_properties.h
	* src/node/x3d-shape/line_properties.cpp
	* src/node/x3d-shape/line_properties.h

2008-09-17 Braden McDaniel  <braden@endoframe.com>

	Moved X3D Rendering node implementations into a convenience
	library.

	* ide-projects/Windows/VisualC9_0/OpenVRML/OpenVRML.sln: Added
	x3d-rendering static library project.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-rendering/x3d-rendering.vcproj
	* src/Makefile.am: Added convenience library
	node/x3d-rendering/libx3d-rendering.la.
	* src/libopenvrml/openvrml/x3d_rendering.cpp: Moved node
	implementations to separate files.
	* src/node/x3d-rendering/color_rgba.cpp
	* src/node/x3d-rendering/color_rgba.h
	* src/node/x3d-rendering/indexed_triangle_fan_set.cpp
	* src/node/x3d-rendering/indexed_triangle_fan_set.h
	* src/node/x3d-rendering/indexed_triangle_set.cpp
	* src/node/x3d-rendering/indexed_triangle_set.h
	* src/node/x3d-rendering/indexed_triangle_strip_set.cpp
	* src/node/x3d-rendering/indexed_triangle_strip_set.h
	* src/node/x3d-rendering/triangle_fan_set.cpp
	* src/node/x3d-rendering/triangle_fan_set.h
	* src/node/x3d-rendering/triangle_set.cpp
	* src/node/x3d-rendering/triangle_set.h
	* src/node/x3d-rendering/triangle_strip_set.cpp
	* src/node/x3d-rendering/triangle_strip_set.h

2008-09-16 Braden McDaniel  <braden@endoframe.com>

	Moved X3D Grouping node implementations into a convenience
	library.

	* ide-projects/Windows/VisualC9_0/OpenVRML/OpenVRML.sln: Added
	x3d-grouping static library project.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-grouping/x3d-grouping.vcproj
	* src/Makefile.am: Added convenience library
	node/x3d-grouping/libx3d-grouping.la.
	* src/libopenvrml/openvrml/x3d_grouping.cpp: Moved node
	implementations to separate files.
	* src/node/x3d-grouping/static_group.cpp
	* src/node/x3d-grouping/static_group.h

2008-09-16 Braden McDaniel  <braden@endoframe.com>

	Moved X3D Networking node implementations into a convenience
	library.

	* ide-projects/Windows/VisualC9_0/OpenVRML/OpenVRML.sln: Added
	x3d-networking static library project.
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-networking/x3d-networking.vcproj
	* src/Makefile.am: Added convenience library
	node/x3d-networking/libx3d-networking.la.
	* src/libopenvrml/openvrml/x3d_networking.cpp: Moved node
	implementations to separate files.
	* src/node/x3d-networking/load_sensor.cpp
	* src/node/x3d-networking/load_sensor.h

2008-09-16 Braden McDaniel  <braden@endoframe.com>

	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-core/x3d-core.vcproj:
	Removed flags defining BOOST_SPIRIT_THREADSAFE,
	BOOST_SPIRIT_CLOSURE_LIMIT, and PHOENIX_LIMIT.

2008-09-16 Braden McDaniel  <braden@endoframe.com>

	Moved X3D Core node implementations into a convenience library.

	* ide-projects/Windows/VisualC9_0/OpenVRML/OpenVRML.sln: Added
	x3d-core static library project.
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/x3d-core/x3d-core.vcproj
	* src/Makefile.am: Added convenience library
	node/x3d-core/libx3d-core.la.
	* src/libopenvrml/openvrml/x3d_core.cpp: Moved node
	implementations to separate files.
	* src/node/x3d-core/metadata_double.cpp
	* src/node/x3d-core/metadata_double.h
	* src/node/x3d-core/metadata_float.cpp
	* src/node/x3d-core/metadata_float.h
	* src/node/x3d-core/metadata_integer.cpp
	* src/node/x3d-core/metadata_integer.h
	* src/node/x3d-core/metadata_set.cpp
	* src/node/x3d-core/metadata_set.h
	* src/node/x3d-core/metadata_string.cpp
	* src/node/x3d-core/metadata_string.h

2008-09-16 Braden McDaniel  <braden@endoframe.com>

	Moved VRML97 node implementations to a static library in the
	Visual C++ solution.

	* ide-projects/Windows/VisualC9_0/OpenVRML/OpenVRML.sln
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/vrml97/vrml97.vcproj

2008-09-15 Braden McDaniel  <braden@endoframe.com>

	Define BOOST_SPIRIT_THREADSAFE, BOOST_SPIRIT_CLOSURE_LIMIT, and
	PHOENIX_LIMIT in openvrml-common.h since we need to ensure these
	get set for client code.

	* src/Makefile.am
	(libopenvrml_libopenvrml_la_CPPFLAGS): Removed flags defining
	BOOST_SPIRIT_THREADSAFE, BOOST_SPIRIT_CLOSURE_LIMIT, and
	PHOENIX_LIMIT.
	* src/libopenvrml/openvrml/vrml97_grammar.h: Reordered includes to
	ensure that openvrml-common.h gets included before Boost headers.
	* src/libopenvrml/openvrml-common.h: Define
	BOOST_SPIRIT_THREADSAFE, BOOST_SPIRIT_CLOSURE_LIMIT, and
	PHOENIX_LIMIT.
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj:
	Removed flags defining BOOST_SPIRIT_THREADSAFE,
	BOOST_SPIRIT_CLOSURE_LIMIT, and PHOENIX_LIMIT.
	* ide-projects/Windows/VisualC9_0/OpenVRML/parse-vrml97/parse-vrml97.vcproj:
	Removed flags defining BOOST_SPIRIT_THREADSAFE,
	BOOST_SPIRIT_CLOSURE_LIMIT, and PHOENIX_LIMIT.
	* ide-projects/Windows/VisualC9_0/OpenVRML/parse-x3dvrml/parse-x3dvrml.vcproj:
	Removed flags defining BOOST_SPIRIT_THREADSAFE,
	BOOST_SPIRIT_CLOSURE_LIMIT, and PHOENIX_LIMIT.
	* ide-projects/Windows/VisualC9_0/OpenVRML/pretty-print/pretty-print.vcproj:
	Removed flags defining BOOST_SPIRIT_THREADSAFE,
	BOOST_SPIRIT_CLOSURE_LIMIT, and PHOENIX_LIMIT.
	* tests/Makefile.am
	(AM_CPPFLAGS): Removed flags defining BOOST_SPIRIT_THREADSAFE,
	BOOST_SPIRIT_CLOSURE_LIMIT, and PHOENIX_LIMIT.
	* examples/Makefile.am
	(pretty_print_CPPFLAGS): Removed flags defining
	BOOST_SPIRIT_THREADSAFE, BOOST_SPIRIT_CLOSURE_LIMIT, and
	PHOENIX_LIMIT.

2008-09-15 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/vrml97node.cpp: Explicitly instantiate
	std::vector<boost::intrusive_ptr<openvrml::node> >::pop_back.  gcc
	4.0.1 seems to need this (on Mac OS X 10.5, at least) and it
	should be benign elsewhere.

2008-09-15 Braden McDaniel  <braden@endoframe.com>

	* src/Makefile.am: Made contents of BUILT_SOURCES conditional
	based on ENABLE_XEMBED and ENABLE_PLAYER.

2008-09-15 Braden McDaniel  <braden@endoframe.com>

	Put the VRML97 node implementations into a convenience library for
	now.

	* src/Makefile.am
	(noinst_LTLIBRARIES): Added node/vrml97/libvrml97.la as a
	convenience library.
	(libopenvrml_libopenvrml_la_CXXFLAGS): Removed flags now only
	needed by libvrml97.la.
	(libopenvrml_libopenvrml_la_SOURCES): Removed sources now present
	in libvrml97.la.
	(libopenvrml_libopenvrml_la_LDFLAGS): Removed flags now only
	needed by libvrml97.la.
	(node_vrml97_libvrml97_la_CPPFLAGS): Preprocessor flags for
	node/vrml97/libvrml97.la.
	(node_vrml97_libvrml97_la_CXXFLAGS): Compiler flags for
	node/vrml97/libvrml97.la.
	(node_vrml97_libvrml97_la_SOURCES): Sources for
	node/vrml97/libvrml97.la.
	(node_vrml97_libvrml97_la_LDFLAGS): Linker flags for
	node/vrml97/libvrml97.la.

2008-09-14 Braden McDaniel  <braden@endoframe.com>

	Made openvrml::node_impl_util::node_type_impl's member functions
	for adding field, eventIn, eventOut, and exposedField handlers
	templates that take a pointer-to-member.  This reduces the amount
	of code typically needed when calling these functions.

	* src/libopenvrml/openvrml/node_impl_util.cpp: Added doc-comments.
	* src/libopenvrml/openvrml/node_impl_util.h
	(openvrml::node_impl_util::make_field_ptr_ptr(FieldMember
	DeducedNode::*)): Make a field_ptr_ptr from a pointer-to-member.
	(openvrml::node_impl_util::make_event_listener_ptr_ptr(EventListenerMember
	DeducedNode::*)): Make an event_listener_ptr_ptr from a
	pointer-to-member.
	(openvrml::node_impl_util::make_event_emitter_ptr_ptr(EventEmitterMember
	DeducedNode::*)): Make an event_emitter_ptr_ptr from a
	pointer-to-member.
	(openvrml::node_impl_util::add_eventin(openvrml::field_value::type_id,
	const std::string &, EventListenerMember DeducedNode::*)): Changed
	to a function template taking a pointer-to-member for the member
	of the node that handles the eventIn.
	(openvrml::node_impl_util::add_eventout(openvrml::field_value::type_id,
	const std::string &, EventEmitterMember DeducedNode::*)): Changed
	to a function template taking a pointer-to-member for the member
	of the node that handles the eventOut.
	(openvrml::node_impl_util::add_exposedfield(openvrml::field_value::type_id,
	const std::string &, EventListenerMember DeducedNode::*,
	FieldMember DeducedNode::*, EventEmitterMember DeducedNode::*)):
	Changed to a function template taking pointers-to-member for the
	member(s) of the node that handle the exposedField.
	(openvrml::node_impl_util::add_exposedfield(openvrml::field_value::type_id,
	const std::string &, ExposedfieldMember DeducedNode::*)):
	Convenience function useful for when all three components of an
	exposedField are handled by a single member.
	(openvrml::node_impl_util::add_field(openvrml::field_value::type_id,
	const std::string &, FieldMember DeducedNode::*)): Changed to a
	function template taking a pointer-to-member for the member of the
	node that handles the field.
	* src/libopenvrml/openvrml/x3d_cad_geometry.cpp
	* src/libopenvrml/openvrml/x3d_core.cpp
	* src/libopenvrml/openvrml/x3d_dis.cpp
	* src/libopenvrml/openvrml/x3d_environmental_effects.cpp
	* src/libopenvrml/openvrml/x3d_event_utilities.cpp
	* src/libopenvrml/openvrml/x3d_geometry2d.cpp
	* src/libopenvrml/openvrml/x3d_geospatial.cpp
	* src/libopenvrml/openvrml/x3d_grouping.cpp
	* src/libopenvrml/openvrml/x3d_hanim.cpp
	* src/libopenvrml/openvrml/x3d_interpolation.cpp
	* src/libopenvrml/openvrml/x3d_key_device_sensor.cpp
	* src/libopenvrml/openvrml/x3d_networking.cpp
	* src/libopenvrml/openvrml/x3d_nurbs.cpp
	* src/libopenvrml/openvrml/x3d_rendering.cpp
	* src/libopenvrml/openvrml/x3d_shape.cpp
	* src/libopenvrml/openvrml/x3d_texturing.cpp
	* src/node/vrml97/anchor.cpp
	* src/node/vrml97/appearance.cpp
	* src/node/vrml97/audio_clip.cpp
	* src/node/vrml97/background.cpp
	* src/node/vrml97/billboard.cpp
	* src/node/vrml97/box.cpp
	* src/node/vrml97/cad_assembly.cpp
	* src/node/vrml97/cad_layer.cpp
	* src/node/vrml97/collision.cpp
	* src/node/vrml97/color.cpp
	* src/node/vrml97/color_interpolator.cpp
	* src/node/vrml97/cone.cpp
	* src/node/vrml97/coordinate.cpp
	* src/node/vrml97/coordinate_interpolator.cpp
	* src/node/vrml97/cylinder.cpp
	* src/node/vrml97/cylinder_sensor.cpp
	* src/node/vrml97/directional_light.cpp
	* src/node/vrml97/elevation_grid.cpp
	* src/node/vrml97/extrusion.cpp
	* src/node/vrml97/fog.cpp
	* src/node/vrml97/font_style.cpp
	* src/node/vrml97/group.cpp
	* src/node/vrml97/indexed_face_set.cpp
	* src/node/vrml97/indexed_line_set.cpp
	* src/node/vrml97/inline.cpp
	* src/node/vrml97/image_texture.cpp
	* src/node/vrml97/lod.cpp
	* src/node/vrml97/material.cpp
	* src/node/vrml97/movie_texture.cpp
	* src/node/vrml97/navigation_info.cpp
	* src/node/vrml97/normal.cpp
	* src/node/vrml97/normal_interpolator.cpp
	* src/node/vrml97/orientation_interpolator.cpp
	* src/node/vrml97/pixel_texture.cpp
	* src/node/vrml97/plane_sensor.cpp
	* src/node/vrml97/point_light.cpp
	* src/node/vrml97/point_set.cpp
	* src/node/vrml97/position_interpolator.cpp
	* src/node/vrml97/proximity_sensor.cpp
	* src/node/vrml97/scalar_interpolator.cpp
	* src/node/vrml97/shape.cpp
	* src/node/vrml97/sound.cpp
	* src/node/vrml97/sphere.cpp
	* src/node/vrml97/sphere_sensor.cpp
	* src/node/vrml97/spot_light.cpp
	* src/node/vrml97/switch.cpp
	* src/node/vrml97/text.cpp
	* src/node/vrml97/texture_coordinate.cpp
	* src/node/vrml97/texture_transform.cpp
	* src/node/vrml97/time_sensor.cpp
	* src/node/vrml97/touch_sensor.cpp
	* src/node/vrml97/transform.cpp
	* src/node/vrml97/viewpoint.cpp
	* src/node/vrml97/visibility_sensor.cpp
	* src/node/vrml97/world_info.cpp

2008-09-11 Braden McDaniel  <braden@endoframe.com>

	Added a Visual C++ project file for the pretty-print example.

	* examples/pretty_print.cpp: Removed uses of "interface" as an
	identifier for Windows friendliness.
	* ide-projects/Makefile.am: Distribute pretty-print.vcproj.
	* ide-projects/Windows/VisualC9_0/OpenVRML/OpenVRML.sln: Added the
	pretty-print project.
	* ide-projects/Windows/VisualC9_0/OpenVRML/pretty-print/pretty-print.vcproj:
	Added.

2008-09-10 Braden McDaniel  <braden@endoframe.com>

	Added projects for the parse-vrml97 and parse-x3dvrml test
	programs to the Visual C++ solution.

	* ide-projects/Makefile.am: Distribute the project files.
	* ide-projects/Windows/VisualC9_0/OpenVRML/OpenVRML.sln
	* ide-projects/Windows/VisualC9_0/OpenVRML/parse-x3dvrml/parse-x3dvrml.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/parse-vrml97/parse-vrml97.vcproj

2008-09-10 Braden McDaniel  <braden@endoframe.com>

	* ide-projects/Windows/VisualC9_0/OpenVRML/OpenVRML.sln: Changed
	to CRLF line endings.

2008-09-09 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/bounding_volume.cpp
	(openvrml::bounding_sphere::do_enclose(const
	std::vector<vec3f>&)): No reason to define span before
	setting its value.

2008-09-09 Braden McDaniel  <braden@endoframe.com>

	* ide-projects/Windows/VisualC9_0/OpenVRML/javascript/javascript.vcproj:
	Removed unnecessary backslash.

2008-09-09 Braden McDaniel  <braden@endoframe.com>

	Order include directories consistently for Debug and Release
	configurations.

	* ide-projects/Windows/VisualC9_0/OpenVRML/sdl-viewer/sdl-viewer.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.vcproj

2008-09-09 Braden McDaniel  <braden@endoframe.com>

	* ide-projects/Windows/VisualC9_0/OpenVRML/sdl-viewer/sdl-viewer.vcproj:
	Changed to CRLF line endings.

2008-09-08 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp: Added doc-comments and
	exception specifications to openvrml_::xml_reader.

2008-09-08 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml_::xml_reader): xmlTextReaderPtr, not XmlTextReaderPtr.

2008-09-08 Braden McDaniel  <braden@endoframe.com>

	Use XmlLite on Windows rather than libxml.

	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj
	Added dependencies shlwapi.lib and XmlLite.lib; removed
	dependencies libxml2_a_dll.lib, iconv_a.lib, and WS2_32.lib.
	* src/libopenvrml/openvrml/browser.cpp
	(openvrml_::xml_reader): Added a wrapper that abstracts XmlLite on
	Windows and libxml's XmlTextReader interface everywhere else.
	(openvrml_::xml_reader::xml_reader(const std::string &)):
	Construct using a file name.  On Windows, create an IStream from a
	file and an IXmlReader.  Everywhere else, create a libxml
	XmlTextReader.
	(openvrml_::xml_reader::~xml_reader()): Clean up.
	(openvrml_::xml_reader::read()): Delegate to IXmlReader::Read on
	Windows; xmlTextReaderRead everywhere else.
	(openvrml_::xml_reader::node_type() const): Get the node type
	identifier.  Conveniently, these IDs have parity between the
	XmlLite and XmlTextReader APIs.
	(openvrml_::xml_reader::local_name() const): The local name of the
	current node.
	(openvrml_::xml_reader::value() const): The value, if any, of the
	current node.
	(openvrml_::xml_reader::move_to_first_attribute()): Move to the
	first attribute of the current node.
	(openvrml_::xml_reader::move_to_next_attribute()): Move to the
	next attribute of the current node.
	(component::xml_reader::read(const std::string &)): Use
	openvrml_::xml_reader.
	(component::xml_reader::process_node(openvrml_::xml_reader &)):
	Use openvrml_::xml_reader.
	(component::xml_reader::start_element(openvrml_::xml_reader &)):
	Use openvrml_::xml_reader.
	(component::xml_reader::end_element(openvrml_::xml_reader &)): Use
	openvrml_::xml_reader.

2008-09-07 Braden McDaniel  <braden@endoframe.com>

	Use libxml's XmlTextReader interface rather than its SAX one.  The
	XmlTextReader interface is a lot closer to Microsoft's XmlLite
	interface, which should better facilitate using XmlLite when
	building on Windows.

	* configure.ac: Require at least libxml 2.5.
	* src/libopenvrml/openvrml/browser.cpp
	(component::parser): Removed.
	(component::xml_reader): Added; a parser for OpenVRML's XML
	component descriptors using libxml's XmlTextReader interface.
	(openvrml_component_parser_startElement(void *, const xmlChar *,
	const xmlChar **)): Removed.
	(openvrml_component_parser_endElement(void *, const xmlChar *)):
	Removed.
	(component::xml_reader::xml_reader(::component &)): Added;
	construct the xml_reader.
	(component::xml_reader::read(const std::string &)): Added; read an
	XML component descriptor.
	(component::xml_reader::process_node(xmlTextReader &)): Added;
	process a node.
	(component::xml_reader::start_element(xmlTextReader &)): Process
	the start of an element.
	(component::xml_reader::end_element(xmlTextReader &)): Process the
	end of an element.
	(component::parser::parser(::component &)): Removed.
	(component::parser::parse(const std::string &)): Removed.
	(component::component(const std::string & filename)): Parse the
	component descriptor using xml_reader.

2008-09-06 Braden McDaniel  <braden@endoframe.com>

	Use D-Bus for communication between openvrml-xembed and its hosts,
	openvrml-player and the Mozilla plug-in.

	* README: Note changed openvrml-xembed usage.
	* configure.ac: Check for D-Bus; emit the BrowserControl service
	descriptor.
	* lib/gtkglext/gdk/x11/gdkglcontext-x11.c
	(_gdk_gl_context_destroy): Fixed usage of
	g_object_remove_weak_pointer.
	(_gdk_gl_context_set_gl_drawable): Fixed usage of
	g_object_{add,remove}_weak_pointer.
	* mozilla-plugin/configure.ac: Check for D-Bus; remove check for
	GTK+.
	* mozilla-plugin/src/Makefile.am
	(AM_CXXFLAGS): Added DBUS_G_CFLAGS.
	(BUILT_SOURCES): Build browser-host-server-glue.h.
	(openvrml_la_LDFLAGS): Added DBUS_G_LIBS.
	* mozilla-plugin/src/openvrml.cpp
	(OpenvrmlNpBrowserHost): GObject implementing the
	org.openvrml.BrowserHost D-Bus interface.
	(OpenvrmlNpBrowserHostClass): Class object for
	OpenvrmlNpBrowserHost.
	(openvrml_np_browser_host_get_type()): GType object for
	OpenvrmlNpBrowserHost.
	(plugin_instance): Use void* for window rather than
	GdkNativeWindow; no reason for this type to be the plug-in code's
	only GTK+ dependency.  Removed members command_channel,
	request_channel, request_channel_watch_id, and request_line.
	Added browser_host--the org.openvrml.BrowserHost--and browser--the
	proxy for the org.openvrml.Browser object.  Removed write_command
	member funtion; added member functions new_stream, destroy_stream,
	and write.  The latter are delegated to by NPP_NewStream,
	NPP_DestroyStream, and NPP_Write, respectively.
	(openvrml_np_browser_host_init(OpenvrmlNpBrowserHost *)): Instance
	init function for the OpenvrmlNpBrowserHost GObject.
	(openvrml_np_browser_host_class_init(OpenvrmlNpBrowserHostClass *)):
	Class init function for the OpenvrmlNpBrowserHost GObject.
	(openvrml_np_browser_host_get_url(OpenvrmlNpBrowserHost *, const
	char *, GError **)): Implementation of
	org.openvrml.BrowserHost.GetUrl.  We can delegate directly to
	NPN_GetURL.
	(openvrml_np_browser_host_set_world_url(OpenvrmlNpBrowserHost *,
	const char * url, GError **)): Implementation of
	org.openvrml.BrowserHost.SetWorldUrl.  For now, at least, we don't
	need this to do anything.
	(NPP_GetMIMDescription()): Use an explicit const_cast to quell the
	gcc warning about using a string literal as a (nonconst) char*.
	(NPP_NewStream(NPP, NPMIMEType, NPStream *, NPBool, uint16 *)):
	Delegate to plugin_instance::new_stream.
	(NPP_DestroyStream(NPP, NPStream *, NPError)): Delegate to
	plugin_instance::destroy_stream.
	(NPP_Write(NPP, NPStream *, int32, int32, void *)): Delegate to
	plugin_instance::write.
	(plugin_instance::plugin_instance(NPP)): Initialize the
	browser_host; set its npp member.
	(plugin_instance::~plugin_instance()): Emit the Shutdown signal.
	(get_browser(DBusGConnection *, const char *, const char *,
	guint64, GError **)): Get the org.openvrml.Browser proxy.
	(plugin_instance::set_window(NPWindow &)): Get the plug via D-Bus;
	we don't need (explicitly) to start up the openvrml-xembed process
	here anymore.
	(plugin_instance::new_stream(NPMIMEType, NPStream *)): Make a
	blocking call to org.openvrml.Browser.NewStream.
	(plugin_instance::destroy_stream(NPStream *)): Make a nonblocking
	call to org.openvrml.Browser.DestroyStream.
	(plugin_instance::write(NPStream *, int32, void *)): Make a
	nonblocking call to org.openvrml.Browser.Write.
	(plugin_instance::write_command(const std::string &)): Removed.
	(request_data_available(GIOChannel *, GIOCondition, gpointer)):
	Removed.
	* src/Makefile.am
	(session_bus_services_DATA): Install the
	org.openvrml.BrowserControl service descriptor.
	(noinst_HEADERS): Removed obsolete
	openvrml-xembed/command_istream.h,
	openvrml-xembed/request_channel.h, and
	openvrml-xembed/gtkvrmlbrowser.h.
	(openvrml_xembed_openvrml_xembed_CPPFLAGS): Look in the
	openvrml-xembed builddir for headers (specifically, the ones
	generated by dbus-binding-tool).
	(openvrml_xembed_datadir): (Sub)package-specific data directory.
	(openvrml_xembed_dbusdir): We'll install the D-Bus interface XML
	here for lack of a better idea.
	(dist_openvrml_xembed_dbus_DATA): D-Bus interface XML.
	(BUILT_SOURCES): Build the introspection data headers with
	dbus-binding-tool.
	* src/openvrml-xembed/org.openvrml.BrowserControl.service.in
	(openvrml_player_openvrml_player_CPPFLAGS): Look in the
	openvrml-player builddir for headers (specifically, the ones
	generated by dbus-binding-tool).
	(openvrml_player_openvrml_player_CXXFLAGS): Added DBUS_G_CFLAGS.
	(openvrml_player_openvrml_player_LDFLAGS): Added DBUS_G_LIBS.
	(openvrml_player_openvrml_player_SOURCES): Added
	openvrml-player/curlbrowserhost.{cpp,h}.
	(EXTRA_DIST): Added
	openvrml-xembed/org.openvrml.BrowserControl.service.in (configure
	input).
	(CLEANFILES): Added BUILT_SOURCES.
	(DISTCLEANFILES): Clean up configure-generated files.
	* src/openvrml-xembed/browser.cpp: Added file.
	OpenvrmlXembedBrowser implementation (evolved from the now-defunct
	GtkVrmlBrowser).
	* src/openvrml-xembed/browser.h: Added file.
	OpenvrmlXembedBrowser implements the org.openvrml.Browser D-Bus
	interface.
	* src/openvrml-xembed/browser.xml: Added
	file. org.openvrml.Browser D-Bus interface definition.
	* src/openvrml-xembed/browserfactory.cpp: Added file.
	OpenvrmlXembedBrowserFactory implementation.
	* src/openvrml-xembed/browserfactory.h: Added file.
	OpenvrmlXembedBrowserFactory implements the
	org.openvrml.BrowserFactory D-Bus interface.
	* src/openvrml-xembed/browser-factory.xml: Added file.
	org.openvrml.BrowserFactory D-Bus interface definition.
	* src/openvrml-xembed/browser-host.xml: Added file.
	org.openvrml.BrowserHost D-Bus interface definition.
	* src/openvrml-xembed/command_istream.cpp: Removed.
	* src/openvrml-xembed/command_istream.h: Removed.
	* src/openvrml-xembed/gtkvrmlbrowser.cpp: Removed.
	* src/openvrml-xembed/gtkvrmlbrowser.h: Removed.
	* src/openvrml-xembed/plugin_streambuf.cpp
	(openvrml_xembed::plugin_streambuf::plugin_streambuf(const
	std::string &, uninitialized_plugin_streambuf_map &,
	plugin_streambuf_map &)): Maintain references to the
	uninitialized_plugin_streambuf_map and the plugin_streambuf_map.
	Now that these maps are per-OpenvrmlXembedBrowser instance, we
	cannot access them as globals.
	(openvrml_xembed::plugin_streambuf::state() const): Get the
	current state of the streambuf (i.e., requested, uninitialized, or
	initialized).
	(openvrml_xembed::plugin_streambuf::set_get_url_result(int)):
	Since we no longer have the requested_plugin_streambuf_map, set
	the state to uninitialized on success; or simply remove the stream
	from the uninitialized_map_ on failure.
	(openvrml_xembed::plugin_streambuf::fail()): Use the member
	uninitialized_map_.
	(openvrml_xembed::requested_plugin_streambuf_map::find(const
	std::string &) const): Removed.
	(openvrml_xembed::requested_plugin_streambuf_map::insert(const
	std::string &, const boost::shared_ptr<plugin_streambuf> &)):
	Removed.
	(openvrml_xembed::requested_plugin_streambuf_map::map_entry_matches_streambuf):
	Removed.
	(openvrml_xembed::requested_plugin_streambuf_map::erase(const
	plugin_streambuf &)): Removed.
	(openvrml_xembed::requested_plugin_streambuf_map_): Removed.
	(openvrml_xembed::uninitialized_plugin_streambuf_map_): Removed.
	(openvrml_xembed::plugin_streambuf_map_): Removed.
	* src/openvrml-xembed/plugin_streambuf.h
	(openvrml_xembed::plugin_streambuf): Added state_id enum along
	with state_ member and the corresponding state() accessor.  Added
	reference members for the uninitialized_plugin_streambuf_map and
	the plugin_streambuf_map.
	(openvrml_xembed::requested_plugin_streambuf_map): Removed.
	* src/openvrml-xembed/main.cpp
	(initial_stream_uri): Moved to browser.cpp.
	(openvrml_xembed::request_channel): Removed.
	(openvrml_xembed::request_channel_mutex): Removed.
	(openvrml_xembed::event_listener_id_map): Removed.
	(openvrml_xembed::command_istream_reader): Removed.
	(openvrml_xembed::initial_stream_reader): Moved to browser.cpp.
	(openvrml_xembed::command_channel_loop): Removed.
	(main(int, char *[])): Removed --initial-stream option and the XID
	argument.  Rather than setting up GIOChannels, create the
	BrowserFactory.
	(openvrml_xembed_browser_event_func(GtkVrmlBrowser *,
	GtkVrmlBrowserEvent, gpointer)): Removed.
	(command_channel_shutdown(GIOChannel *)): Removed.
	(request_channel_shutdown(GIOChannel *)): Removed.
	* src/openvrml-xembed/request_channel.h: Removed.
	* src/openvrml-xembed/streamclient.cpp: Added;
	OpenvrmlXembedStreamClient interface definition.
	* src/openvrml-xembed/streamclient.h: Added; a gobject interface
	that a host can stream to.
	* src/openvrml-player/openvrml-player.ui: Don't specify an object
	target for the openvrml_player_on_file_open_activated signal
	handler.  Create a child OpenvrmlPlayerCurlBrowserHost instead of
	a GtkSocket.
	* src/openvrml-player/curlbrowserhost.cpp: Added.
	OpenvrmlPlayerCurlBrowserHost implementation.
	* src/openvrml-player/curlbrowserhost.h: Added.
	OpenvrmlPlayerCurlBrowserHost inherits GtkSocket and implements
	the org.openvrml.BrowserHost D-Bus interface.
	* src/openvrml-player/player.cpp
	(command_channel): Removed.
	(request_channel): Removed.
	(request_channel_watch_id): Removed.
	(signal_data): Added.  Data for GUI (GtkBuilder) signal handlers.
	(curl_stream_data): Moved to curlbrowserhost.cpp.
	(curl_source_callback_data): Removed.
	(request_data): Removed.
	(location_entry): Removed.
	(OPENVRML_PLAYER_CURL_EASY_RETURN_VAL_IF_ERROR): Moved to
	curlbrowserhost.cpp.
	(OPENVRML_PLAYER_CURL_MULTI_RETURN_IF_ERROR): Moved to
	curlbrowserhost.cpp.
	(OPENVRML_PLAYER_CURL_MULTI_RETURN_VAL_IF_ERROR): Moved to
	curlbrowserhost.cpp.
	(main(int, char *[])): Got rid of all the command/request channel
	setup stuff.  The browser control is now created by the
	OpenvrmlPlayerCurlControlHost.  All we have to do in main is set
	up the GUI.  Note that since the control isn't created until
	realize, we defer calling _load_url until then.
	(get_openvrml_xembed_cmd(gint &, char **&)): Removed.
	(spawn_openvrml_xembed(GtkNativeWindow, gint &, gint &)): Removed.
	(set_locationentry_text(const gchar *)): Removed.
	(load_url(const gchar *)): Removed.
	(CURLSource): Moved to curlbrowserhost.cpp.
	(curl_source_new(CURLM *)): Moved to curlbrowserhost.cpp.
	(reset_fds(CURLSource &)): Moved to curlbrowserhost.cpp.
	(openvrml_player_curl_prepare(GSource *, gint *)): Moved to
	curlbrowserhost.cpp as
	openvrml_player_curl_browser_host_curl_prepare.
	(openvrml_player_curl_check(GSource *)): Moved to
	curlbrowserhost.cpp as
	openvrml_player_curl_browser_host_curl_check.
	(openvrml_player_curl_dispatch(GSource *, GSourceFunc, gpointer)):
	Moved to curlbrowserhost.cpp as
	openvrml_player_curl_browser_host_curl_dispatch.
	(openvrml_player_curl_finalize(GSource *)): Moved to
	curlbrowserhost.cpp as
	openvrml_player_curl_browser_host_curl_finalize.
	(openvrml_player_curl_source_callback(gpointer)): Moved to
	curlbrowserhost.cpp as
	openvrml_player_curl_browser_host_curl_source_callback.
	(openvrml_player_request_data_available(GIOChannel *,
	GIOCondition, gpointer)): Removed.
	(openvrml_player_curl_write(void *, size_t, size_t, void *)):
	Moved to curlbrowserhost.cpp as
	openvrml_player_curl_browser_host_curl_write.
	(openvrml_player_on_file_open_activated(GtkAction *, gpointer)):
	Use signal_data passed in the user_data argument.
	(openvrml_player_on_locationentry_activated(GtkEntry *,
	gpointer)): Use signal_data passed in the user_data argument.
	(openvrml_player_quit): No more quit dance; just call
	gtk_main_quit.
	(openvrml_player_watch_child(GPid, gint, gpointer)): Removed.
	(openvrml_player_on_browserhost_realize(GtkWidget *, gpointer)):
	Load the URL passed in user_data; see main.
	(write_command(const std::string &)): Removed.
	(curl_stream_data(CURL *, const char *)): Moved to
	curlbrowserhost.cpp.
	(curl_stream_data::handle() const): Moved to curlbrowserhost.cpp.
	(curl_stream_data::url() const): Moved to curlbrowserhost.cpp.
	(curl_stream_data::initialize()): Moved to curlbrowserhost.cpp.
	(curl_stream_data::initialized() const): Moved to
	curlbrowserhost.cpp.

2008-09-01 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/script.h: Don't need to include
	<boost/scoped_ptr.hpp> here.

2008-08-31 Braden McDaniel  <braden@endoframe.com>

	Culled redundant includes.

	* src/libopenvrml/openvrml/browser.h: Don't need to include
	read_write_mutex.h here.
	* src/libopenvrml/openvrml/field_value.h: Don't need to include
	boost/thread/mutex.hpp here.

2008-08-27 Braden McDaniel  <braden@endoframe.com>

	* data/Makefile.am
	(dist_component_DATA): Add component XML descriptors to the
	distribution.

2008-08-27 Braden McDaniel  <braden@endoframe.com>

	* src/Makefile.am
	(dist_openvrml_player_ui_DATA): Applied dist_ prefix.
	(EXTRA_DIST): Removed openvrml_player_ui_DATA.

2008-08-27 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Apply AC_CONFIG_MACRO_DIR; require at least
	autoconf 2.59.

2008-08-21 Braden McDaniel  <braden@endoframe.com>

	* src/script/java.cpp (create_java_vm(JavaVM *&, JNIEnv *&)):
	Quell gcc warning about deprecated automatic conversion of string
	literals to char* (from const char*).

2008-08-21 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	(openvrml::gl::viewer::do_insert_shell(unsigned int, const
	std::vector<vec3f> & coord, const std::vector<int32> &
	coord_index, const std::vector<color> & color, const
	std::vector<int32> & color_index, const std::vector<vec3f> &
	normal, const std::vector<int32> & normal_index, const
	std::vector<vec2f> & tex_coord, const std::vector<int32> &
	tex_coord_index)): Quell some warnings from gcc about comparing
	signed and unsigned types.

2008-08-15 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::browser::load_url(const std::vector<std::string> &,
	const std::vector<std::string> &)): Improved doc-comment.

2008-08-15 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/node.cpp: Symbols with internal linkage
	don't need visibility attributes.

2008-08-13 Braden McDaniel  <braden@endoframe.com>

	Updates for 0.17.8 release.

	* NEWS
	* README
	* configure.ac
	* doc/Doxyfile
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.rc
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.rc
	* mozilla-plugin/configure.ac

2008-08-13 Braden McDaniel  <braden@endoframe.com>

	* src/openvrml-player/player.cpp: Updated "About" dialog license
	text to reflect GPLv3 licensing.

2008-08-13 Braden McDaniel  <braden@endoframe.com>

	* src/openvrml-xembed/gtkvrmlbrowser.cpp: Fixed invocation of
	G_DEFINE_TYPE to point at the parent type.

2008-08-12 Braden McDaniel  <braden@endoframe.com>

	Updates for 0.17.7 release.

	* NEWS
	* README
	* configure.ac
	* doc/Doxyfile
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.rc
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.rc
	* mozilla-plugin/configure.ac
	* src/Makefile.am: Updated libopenvrml libtool library version to
	8:6:0; updated libopenvrml-gl libtool library version to 7:2:0.

2008-08-12 Braden McDaniel  <braden@endoframe.com>

	Consistently use size_t when inserting stream handles into
	IOStreams.  ptrdiff_t is signed; so mixing this with size_t can
	lead to badness.

	* src/openvrml-player/player.cpp
	(openvrml_player_curl_source_callback(gpointer)): Cast the
	easy_handle to size_t instead of ptrdiff_t before inserting into
	the command stream.
	(openvrml_player_curl_write(void *, size_t, size_t, void *)): Cast
	the easy_handle to size_t instead of ptrdiff_t before inserting
	into the command stream.
	* mozilla-plugin/src/openvrml.cpp
	(NPP_NewStream(NPP, NPMIMEType, NPStream *, NPBool, uint16 *)):
	Cast the stream handle to size_t instead of ptrdiff_t before
	inserting into the command stream.
	(NPP_DestroyStream(NPP, NPStream *, NPError)): Cast the stream
	handle to size_t instead of ptrdiff_t before inserting into the
	command stream.
	(NPP_Write(NPP, NPStream *, int32, int32, void *)): Cast the stream
	handle to size_t instead of ptrdiff_t before inserting into the
	command stream.

2008-08-12 Braden McDaniel  <braden@endoframe.com>

	Use G_DEFINE_TYPE for custom GTK+ widgets.

	* src/openvrml-xembed/gtkvrmlbrowser.cpp
	* src/openvrml-player/filechooserdialog.cpp

2008-08-03 Braden McDaniel  <braden@endoframe.com>

	* tests/Makefile.am: Only compile Java test programs if Script
	node Java support was enabled.

2008-07-26 Braden McDaniel  <braden@endoframe.com>

	Fixed some potential crashes when processing coordinate, color,
	and normal indices.

	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	(insertShellTess(GLUtesselator &, const std::vector<vertex_data>&,
	const std::vector<openvrml::int32> &, bool, const
	std::vector<openvrml::color> &, const
	std::vector<openvrml::int32>&, bool, const
	std::vector<openvrml::vec3f> &, const
	std::vector<openvrml::int32>&)): Advance past invalid coordinate
	indices.
	(openvrml::gl::viewer::do_insert_shell(unsigned int, const
	std::vector<vec3f> &, const std::vector<int32> &, const
	std::vector<color> &, const std::vector<int32> &, const
	std::vector<vec3f> & const std::vector<int32> &, const
	std::vector<vec2f> &, const std::vector<int32> &)): Advance past
	-1 entries and invalid coordinate indices in the colorIndex and
	normalIndex fields.

2008-07-23 Braden McDaniel  <braden@endoframe.com>

	Use GtkBuilder in openvrml-player instead of libglade.  Note that
	this changes the environment variable used to locate the UI
	definition from OPENVRML_PLAYER_GLADEDIR to OPENVRML_PLAYER_UIDIR.

	* configure.ac: Removed check for libglade; require gtk+-2.0 >=
	2.12.
	* src/Makefile.am
	(openvrml_player_openvrml_player_CXXFLAGS): Removed GLADE_CFLAGS.
	(openvrml_player_openvrml_player_LDFLAGS): Removed GLADE_LIBS.
	(openvrml_player_gladedir): Removed; replaced with
	openvrml_player_uidir.
	(openvrml_player_glade_DATA): Removed; replaced with
	openvrml_player_ui_DATA.
	(openvrml_player_uidir): Added.
	(openvrml_player_ui_DATA): Added.
	(EXTRA_DIST): Distribute openvrml_player_ui_DATA files.
	* src/openvrml-player/filechooserdialog.cpp
	(openvrml_player_file_chooser_dialog_get_type()): Removed; use
	definition provided by G_DEFINE_TYPE instead.
	(openvrml_player_file_chooser_dialog_new(GtkWindow *)): Removed;
	logic moved to constructor.
	(constructor(GType, guint, GObjectConstructParam *)): Moved dialog
	setup logic here.
	(class_init(gpointer, gpointer)): Moved to
	openvrml_player_file_chooser_dialog_class_init (because
	G_DEFINE_TYPE wants the long name).
	(init(GTypeInstance *, gpointer)): Moved to
	openvrml_player_file_chooser_dialog_init (because G_DEFINE_TYPE
	wants the long name).
	(openvrml_player_file_chooser_dialog_class_init(OpenvrmlPlayerFileChooserDialogClass *)):
	Specify the constructor function.
	(openvrml_player_file_chooser_dialog_init(OpenvrmlPlayerFileChooserDialog *)):
	Added.
	* src/openvrml-player/filechooserdialog.h
	(openvrml_player_file_chooser_dialog_new(GtkWindow *)): Removed.
	* src/openvrml-player/openvrml-player.glade: Removed.
	* src/openvrml-player/openvrml-player.ui: Added.
	* src/openvrml-player/player.cpp
	(main(int, char *[])): Removed calls to glade_init and
	glade_register_widget; create a GtkBuilder instead of GladeXML;
	call gtk_builder_connect_signals instead of
	glade_xml_signal_autoconnect; call gtk_builder_get_object instead
	of glade_xml_get_widget.
	(xml_new(GnomeProgram &)): Removed; replaced with builder_new.
	(builder_new(GnomeProgram &, GError **)): Create a GtkBuilder from
	openvrml-player.ui.  Use the environment variable
	OPENVRML_PLAYER_UIDIR to locate this file if it is not in a known
	location.
	(openvrml_player_build_file_chooser_dialog(GladeXML *, GType,
	GladeWidgetInfo *)): Removed.

2008-07-20 Braden McDaniel  <braden@endoframe.com>

	* src/openvrml-player/player.cpp: Apply OPENVRML_API to symbols
	that libglade needs.

2008-07-16 Braden McDaniel  <braden@endoframe.com>

	* examples/sdl_viewer.cpp (resource_fetcher::do_get_resource(const
	std::string &)): Added a comment to note that no translation of
	URI-encoded characters is being done.

2008-06-27 Braden McDaniel  <braden@endoframe.com>

	Added parentheses to quell warnings from gcc 4.3.

	* src/libopenvrml/openvrml/x3d_vrml_grammar.h
	* src/libopenvrml/openvrml/vrml97_grammar.h

2008-06-27 Braden McDaniel  <braden@endoframe.com>

	Factored platform-specifc getcwd logic out of create_file_url.

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml_getcwd()): Wrapper function for getcwd on POSIX and
	GetCurrentDirectory on Windows.
	(create_file_url(const uri &)): Delegate to openvrml_getcwd.

2008-06-24 Braden McDaniel  <braden@endoframe.com>

	Use native DLL loading facilities on Windows instead of libltdl.

	* src/libopenvrml/openvrml/browser.cpp
	* ide-projects/Windows/VisualC9_0/OpenVRML/javascript/javascript.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/OpenVRML.sln

2008-06-18 Braden McDaniel  <braden@endoframe.com>

	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj:
	Updated FreeType dependency to 2.3.6; ignore default library
	"msvcrt" in the Debug configuration.

2008-06-17 Braden McDaniel  <braden@endoframe.com>

	Updates for 0.17.6 release.

	* NEWS
	* README
	* configure.ac
	* doc/Doxyfile
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.rc
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.rc
	* mozilla-plugin/configure.ac
	* src/Makefile.am: Updated libopenvrml libtool library version to
	8:5:0.

2008-06-16 Braden McDaniel  <braden@endoframe.com>

	If the node hasn't been initialized, we can't use the scene
	pointer.  Modified update_textures functions to return without
	doing anything if the node hasn't yet been initialized.

	* src/node/vrml97/background.cpp
	(openvrml_node_vrml97::background_node::update_textures()): Return
	without doing anything if the node has not been initialized.
	* src/node/vrml97/image_texture.cpp
	(image_texture_node::update_texture()): Return without doing
	anything if the node has not been initialized.

2008-06-16 Braden McDaniel  <braden@endoframe.com>

	Added missing namespace qualification to openvrml::node uses.
	From Steinar Hamre <steinarh@users.sourceforge.net>

	* src/node/vrml97/grouping_node_base.h
	* src/node/vrml97/lod.cpp
	* src/node/vrml97/inline.cpp
	* src/node/vrml97/cad_layer.cpp
	* src/node/vrml97/switch.cpp

2008-06-15 Braden McDaniel  <braden@endoframe.com>

	* models/warbird.wrl: Changed 'vrmlscript' references to
	'javascript'.

2008-06-12 Braden McDaniel  <braden@endoframe.com>

	Increment read_write_mutex::readers_active_ on
	scoped_read_write_lock promotion and decrement it on demotion.
	Otherwise, the scoped_read_write_lock's thread may not get
	notified on destruction of a scoped_read_lock.

	* src/libopenvrml/openvrml/read_write_mutex.cpp
	(openvrml::read_write_mutex::scoped_read_write_lock::promote()):
	Decrement read_write_mutex::readers_active_.
	(openvrml::read_write_mutex::scoped_read_write_lock::demote()):
	Increment read_write_mutex::readers_active_.

2008-06-11 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/read_write_mutex.cpp
	(openvrml::read_write_mutex::scoped_read_write_lock::demote()):
	Notify any waiting writers.

2008-05-31 Braden McDaniel  <braden@endoframe.com>

	Visual C++ project file changes to get Release builds working.

	* ide-projects/Windows/VisualC9_0/OpenVRML/ltdl/ltdl.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml-config.h
	* ide-projects/Windows/VisualC9_0/OpenVRML/javascript/javascript.vcproj

2008-05-28 Braden McDaniel  <braden@endoframe.com>

	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj:
	Added VRML97 node source files.

2008-05-28 Braden McDaniel  <braden@endoframe.com>

	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml-config.h:
	Define OPENVRML_JAVASCRIPT_LOCAL.

2008-05-28 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp: Replaced "interface" with
	"interface_" for Windows-friendliness.

2008-05-28 Braden McDaniel  <braden@endoframe.com>

	* ide-projects/Windows/VisualC9_0/OpenVRML/ltdl/ltdl.vcproj: Refer
	to the local libltdl copy.

2008-05-28 Braden McDaniel  <braden@endoframe.com>

	Replaced "interface" with "interface_" for Windows-friendliness.

	* src/node/vrml97/anchor.cpp
	* src/node/vrml97/appearance.cpp
	* src/node/vrml97/audio_clip.cpp
	* src/node/vrml97/background.cpp
	* src/node/vrml97/billboard.cpp
	* src/node/vrml97/box.cpp
	* src/node/vrml97/cad_assembly.cpp
	* src/node/vrml97/cad_layer.cpp
	* src/node/vrml97/collision.cpp
	* src/node/vrml97/color.cpp
	* src/node/vrml97/color_interpolator.cpp
	* src/node/vrml97/cone.cpp
	* src/node/vrml97/coordinate.cpp
	* src/node/vrml97/coordinate_interpolator.cpp
	* src/node/vrml97/cylinder.cpp
	* src/node/vrml97/cylinder_sensor.cpp
	* src/node/vrml97/directional_light.cpp
	* src/node/vrml97/elevation_grid.cpp
	* src/node/vrml97/extrusion.cpp
	* src/node/vrml97/fog.cpp
	* src/node/vrml97/font_style.cpp
	* src/node/vrml97/group.cpp
	* src/node/vrml97/image_texture.cpp
	* src/node/vrml97/indexed_face_set.cpp
	* src/node/vrml97/indexed_line_set.cpp
	* src/node/vrml97/inline.cpp
	* src/node/vrml97/lod.cpp
	* src/node/vrml97/material.cpp
	* src/node/vrml97/movie_texture.cpp
	* src/node/vrml97/navigation_info.cpp
	* src/node/vrml97/normal.cpp
	* src/node/vrml97/normal_interpolator.cpp
	* src/node/vrml97/orientation_interpolator.cpp
	* src/node/vrml97/pixel_texture.cpp
	* src/node/vrml97/plane_sensor.cpp
	* src/node/vrml97/point_light.cpp
	* src/node/vrml97/point_set.cpp
	* src/node/vrml97/position_interpolator.cpp
	* src/node/vrml97/proximity_sensor.cpp
	* src/node/vrml97/scalar_interpolator.cpp
	* src/node/vrml97/shape.cpp
	* src/node/vrml97/sound.cpp
	* src/node/vrml97/sphere.cpp
	* src/node/vrml97/sphere_sensor.cpp
	* src/node/vrml97/spot_light.cpp
	* src/node/vrml97/switch.cpp
	* src/node/vrml97/text.cpp
	* src/node/vrml97/texture_coordinate.cpp
	* src/node/vrml97/texture_transform.cpp
	* src/node/vrml97/time_sensor.cpp
	* src/node/vrml97/touch_sensor.cpp
	* src/node/vrml97/transform.cpp
	* src/node/vrml97/viewpoint.cpp
	* src/node/vrml97/visibility_sensor.cpp
	* src/node/vrml97/world_info.cpp

2008-04-26 Braden McDaniel  <braden@endoframe.com>

	Qualification fixes to satisfy gcc 4.3 pickiness.

	* src/script/java.cpp
	(Java_vrml_node_Script_emitEvent(JNIEnv *, jobject, jstring,
	jobject)): Import std::find_if.
	* src/script/javascript.cpp
	(eventOut_setProperty(JSContext *, JSObject *, jsval, jsval *)):
	Import std::find_if.
	(script::field_setProperty(JSContext *, JSObject *, jsval,
	jsval *)): Import std::find_if.
	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::browser::node_metatype_map::init(viewpoint_node *,
	double)): Qualify std::for_each.
	(openvrml::browser::node_metatype_map::render(openvrml::viewer&)):
	Qualify std::for_each.
	(openvrml::browser::node_metatype_map::shutdown(double)): Qualify
	std::for_each.
	(openvrml::browser::set_world(resource_istream &)): Import
	std::for_each into the function's outermost scope.

2008-04-12 Braden McDaniel  <braden@endoframe.com>

	Applied OPENVRML_LOCAL to libxml callback functions.

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml_component_parser_startElement(void *, const xmlChar *,
	const xmlChar **)): Applied OPENVRML_LOCAL.
	(openvrml_component_parser_endElement(void *, const xmlChar *)):
	Applied OPENVRML_LOCAL.

2008-04-11 Braden McDaniel  <braden@endoframe.com>

	Moved component definitions to XML descriptor files.  Use libxml's
	SAX interface for parsing.

	* Makefile.am (SUBDIRS): Added "data".
	* configure.ac: Added "data/Makefile" to AC_OUTPUT; use pkg-config
	to find libxml.
	* data/Makefile.am: Added file.
	* data/component/cad-geometry.xml: Added file; CADGeometry
	component descriptor.
	* data/component/core.xml: Added file; Core component descriptor.
	* data/component/dis.xml: Added file; DIS component descriptor.
	* data/component/environmental-effects.xml: Added file;
	EnvironmentalEffects component descriptor.
	* data/component/environmental-sensor.xml: Added file;
	EnvironmentalSensor component descriptor.
	* data/component/event-utilities.xml: Added file; EventUtilities
	component descriptor.
	* data/component/geometry2d.xml: Added file; Geometry2D component
	descriptor.
	* data/component/geometry3d.xml: Added file; Geometry3D component
	descriptor.
	* data/component/geospatial.xml: Added file; Geospatial component
	descriptor.
	* data/component/grouping.xml: Added file; Grouping component
	descriptor.
	* data/component/h-anim.xml: Added file; H-Anim component
	descriptor.
	* data/component/interpolation.xml: Added file; Interpolation
	component descriptor.
	* data/component/key-device-sensor.xml: Added file;
	KeyDeviceSensor component descriptor.
	* data/component/lighting.xml: Added file; Lighting component
	descriptor.
	* data/component/navigation.xml: Added file; Navigation component
	descriptor.
	* data/component/networking.xml: Added file; Networking component
	descriptor.
	* data/component/nurbs.xml: Added file; NURBS component
	descriptor.
	* data/component/pointing-device-sensor.xml: Added file;
	PointingDeviceSensor component descriptor.
	* data/component/rendering.xml: Added file; Rendering component
	descriptor.
	* data/component/shape.xml: Added file; Shape component
	descriptor.
	* data/component/sound.xml: Added file; Sound component
	descriptor.
	* data/component/text.xml: Added file; Text component descriptor.
	* data/component/texturing.xml: Added file; Texturing component
	descriptor.
	* data/component/time.xml: Added file; Time component descriptor.
	* data/component/vrml97.xml: Added file; VRML97 component
	descriptor.
	* tests/Makefile.am
	(TESTS_ENVIRONMENT): Set OPENVRML_DATADIR for the test execution
	environment.
	(check-local): Set OPENVRML_DATADIR for the test execution
	* src/Makefile.am
	(libopenvrml_libopenvrml_la_CXXFLAGS): Added XML_CFLAGS.
	(libopenvrml_libopenvrml_la_LDFLAGS): Added XML_LIBS.
	(libopenvrml_libopenvrml_la_LIBADD): Added -lboost_filesystem.
	* src/libopenvrml/openvrml/browser.cpp: Removed explicit component
	definitions in code; instead, parse XML resource files to create
	component definitions.

2008-04-08 Braden McDaniel  <braden@endoframe.com>

	Fixed a potential crash during creation of the Gtk widget.

	* src/openvrml-xembed/gtkvrmlbrowser.cpp (gtk_vrml_browser_new()):
	Don't call resize here; we don't yet have a valid GL context.

2008-03-23 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/node.cpp
	(openvrml::operator>>(std::istream &, node_interface::type_id &)):
	Accept the X3D-style names for interface types as well.

2008-03-23 Braden McDaniel  <braden@endoframe.com>

	Applied missing OPENVRML_API.

	* src/libopenvrml/openvrml/browser.h
	(openvrml::profile(const std::string &)): Appled OPENVRML_API.
	(openvrml::add_component(node_type_decls &, const std::string &,
	size_t): Applied OPENVRML_API.

2008-03-23 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Call AC_LIBTOOL_DLOPEN for good measure.

2008-03-21 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Ensure jsapi.h is usable.

2008-03-20 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Improved check to see if JS_THREADSAFE needs to be
	defined.  This should now work with the stand-alone SpiderMonkey
	distribution as well.

2008-03-20 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Fixed check to see whether SpiderMonkey has been
	found.

2008-03-19 Braden McDaniel  <braden@endoframe.com>

	Partitioned vrml97node.cpp into multiple files.  For the most
	part, there is now one translation unit per node implementation.
	This alleviates performance issues in gcc related to large
	translation units with lots of template instantiation; it also
	parallelizes much better.

	* src/Makefile.am
	(libopenvrml_libopenvrml_la_CPPFLAGS): Added include directories
	for VRML97 node implementation sources.
	(libopenvrml_libopenvrml_la_SOURCES): Added VRML97 node
	implementation source files.
	* src/libopenvrml/openvrml/vrml97node.cpp: Moved node
	implementations to individual files.
	* src/node/vrml97/abstract_indexed_set.h
	* src/node/vrml97/abstract_light.h
	* src/node/vrml97/abstract_texture.h
	* src/node/vrml97/anchor.cpp
	* src/node/vrml97/anchor.h
	* src/node/vrml97/appearance.cpp
	* src/node/vrml97/appearance.h
	* src/node/vrml97/audio_clip.cpp
	* src/node/vrml97/audio_clip.h
	* src/node/vrml97/background.cpp
	* src/node/vrml97/background.h
	* src/node/vrml97/billboard.cpp
	* src/node/vrml97/billboard.h
	* src/node/vrml97/box.cpp
	* src/node/vrml97/box.h
	* src/node/vrml97/cad_assembly.cpp
	* src/node/vrml97/cad_assembly.h
	* src/node/vrml97/cad_layer.cpp
	* src/node/vrml97/cad_layer.h
	* src/node/vrml97/collision.cpp
	* src/node/vrml97/collision.h
	* src/node/vrml97/color.cpp
	* src/node/vrml97/color.h
	* src/node/vrml97/color_interpolator.cpp
	* src/node/vrml97/color_interpolator.h
	* src/node/vrml97/cone.cpp
	* src/node/vrml97/cone.h
	* src/node/vrml97/coordinate.cpp
	* src/node/vrml97/coordinate.h
	* src/node/vrml97/coordinate_interpolator.cpp
	* src/node/vrml97/coordinate_interpolator.h
	* src/node/vrml97/cylinder.cpp
	* src/node/vrml97/cylinder.h
	* src/node/vrml97/cylinder_sensor.cpp
	* src/node/vrml97/cylinder_sensor.h
	* src/node/vrml97/directional_light.cpp
	* src/node/vrml97/directional_light.h
	* src/node/vrml97/elevation_grid.cpp
	* src/node/vrml97/elevation_grid.h
	* src/node/vrml97/extrusion.cpp
	* src/node/vrml97/extrusion.h
	* src/node/vrml97/fog.cpp
	* src/node/vrml97/fog.h
	* src/node/vrml97/font_style.cpp
	* src/node/vrml97/font_style.h
	* src/node/vrml97/group.cpp
	* src/node/vrml97/group.h
	* src/node/vrml97/grouping_node_base.h
	* src/node/vrml97/image_stream_listener.cpp
	* src/node/vrml97/image_stream_listener.h
	* src/node/vrml97/image_texture.cpp
	* src/node/vrml97/image_texture.h
	* src/node/vrml97/indexed_face_set.cpp
	* src/node/vrml97/indexed_face_set.h
	* src/node/vrml97/indexed_line_set.cpp
	* src/node/vrml97/indexed_line_set.h
	* src/node/vrml97/inline.cpp
	* src/node/vrml97/inline.h
	* src/node/vrml97/lod.cpp
	* src/node/vrml97/lod.h
	* src/node/vrml97/material.cpp
	* src/node/vrml97/material.h
	* src/node/vrml97/movie_texture.cpp
	* src/node/vrml97/movie_texture.h
	* src/node/vrml97/navigation_info.cpp
	* src/node/vrml97/navigation_info.h
	* src/node/vrml97/normal.cpp
	* src/node/vrml97/normal.h
	* src/node/vrml97/normal_interpolator.cpp
	* src/node/vrml97/normal_interpolator.h
	* src/node/vrml97/orientation_interpolator.cpp
	* src/node/vrml97/orientation_interpolator.h
	* src/node/vrml97/pixel_texture.cpp
	* src/node/vrml97/pixel_texture.h
	* src/node/vrml97/plane_sensor.cpp
	* src/node/vrml97/plane_sensor.h
	* src/node/vrml97/point_light.cpp
	* src/node/vrml97/point_light.h
	* src/node/vrml97/point_set.cpp
	* src/node/vrml97/point_set.h
	* src/node/vrml97/position_interpolator.cpp
	* src/node/vrml97/position_interpolator.h
	* src/node/vrml97/proximity_sensor.cpp
	* src/node/vrml97/proximity_sensor.h
	* src/node/vrml97/scalar_interpolator.cpp
	* src/node/vrml97/scalar_interpolator.h
	* src/node/vrml97/shape.cpp
	* src/node/vrml97/shape.h
	* src/node/vrml97/sound.cpp
	* src/node/vrml97/sound.h
	* src/node/vrml97/sphere.cpp
	* src/node/vrml97/sphere.h
	* src/node/vrml97/sphere_sensor.cpp
	* src/node/vrml97/sphere_sensor.h
	* src/node/vrml97/spot_light.cpp
	* src/node/vrml97/spot_light.h
	* src/node/vrml97/switch.cpp
	* src/node/vrml97/switch.h
	* src/node/vrml97/text.cpp
	* src/node/vrml97/text.h
	* src/node/vrml97/texture_coordinate.cpp
	* src/node/vrml97/texture_coordinate.h
	* src/node/vrml97/texture_transform.cpp
	* src/node/vrml97/texture_transform.h
	* src/node/vrml97/time_sensor.cpp
	* src/node/vrml97/time_sensor.h
	* src/node/vrml97/touch_sensor.cpp
	* src/node/vrml97/touch_sensor.h
	* src/node/vrml97/transform.cpp
	* src/node/vrml97/transform.h
	* src/node/vrml97/viewpoint.cpp
	* src/node/vrml97/viewpoint.h
	* src/node/vrml97/visibility_sensor.cpp
	* src/node/vrml97/visibility_sensor.h
	* src/node/vrml97/world_info.cpp
	* src/node/vrml97/world_info.h

2008-02-24 Braden McDaniel  <braden@endoframe.com>

	* src/script/javascript.cpp
	(script::activate(double, const std::string &, size_t, const
	openvrml::field_value * const[])): Call JS_MaybeGC to run the
	garbage collector every so often.

2008-02-24 Braden McDaniel  <braden@endoframe.com>

	* examples/sdl_viewer.cpp (sdl_viewer::run()): Initialize the
	event_info struct.

2008-02-24 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/read_write_mutex.cpp
	(openvrml::read_write_mutex::scoped_read_write_lock::demote()):
	Notify waiting readers when demoting the lock.

2008-02-24 Braden McDaniel  <braden@endoframe.com>

	* src/script/java.cpp
	(openvrml_script_LTX_register_factory): needs to be extern "C".

2008-02-24 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Fixed merge error; need to substitute
	OPENVRML_JAVASCRIPT_RPATH.

2008-02-23 Braden McDaniel  <braden@endoframe.com>

	Moved Script node scripting bindings to dynamically opened
	modules; reenabled Java binding.

	* Makefile.am (SUBDIRS): Removed reference to java subdirectory.
	* README: Reflect changes to the directory layout; removed
	obsolete references to OPENVRML_ENABLE_SCRIPT_NODE_JAVASCRIPT and
	OPENVRML_ENABLE_SCRIPT_NODE_JAVA.
	* configure.ac: Reflect changes to the directory layout in
	AC_OUTPUT; invoke AM_PROG_GCJ; added symbol visibility macros for
	JavaScript and Java scripting modules; simply check for jni.h
	rather than attempting to link with libjvm (via OV_CHECK_JNI);
	added ENABLE_SCRIPT_NODE_JAVASCRIPT and ENABLE_SCRIPT_NODE_JAVA
	Automake conditionals; establish the location of libjvm using
	JAVA_HOME; replaced OPENVRML_RPATH with OPENVRML_JAVASCRIPT_RPATH.
	* openvrml.pc.in: Removed JNI_LIBS substitution.
	* doc/Doxyfile: Removed reference to ScriptJDK.h.
	* doc/Makefile.am: Create javadoc documentation for the Java
	sources.
	* examples/sdl_viewer.cpp: Apply MIME media types to JavaScript
	and Java resources.
	* ide-projects/Windows/VisualC9_0/OpenVRML/OpenVRML.sln: Added
	projects ltdl and javascript.
	* ide-projects/Windows/VisualC9_0/OpenVRML/ltdl/ltdl.vcproj: Added
	project.
	* ide-projects/Windows/VisualC9_0/OpenVRML/javascript/javascript.vcproj:
	Added project.
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj:
	Removed references to script.cpp, ScriptJDK.cpp, and ScriptJDK.h;
	define OPENVRML_PKGLIBDIR_ to an empty string for now.
	* java/vrml/BaseNode.java: Moved to src/script.
	* java/vrml/Browser.java: Moved to src/script.
	* java/vrml/ConstField.java: Moved to src/script.
	* java/vrml/ConstMField.java: Moved to src/script.
	* java/vrml/Event.java: Moved to src/script.
	* java/vrml/Field.java: Moved to src/script.
	* java/vrml/InvalidEventInException.java: Moved to src/script.
	* java/vrml/InvalidEventOutException.java: Moved to src/script.
	* java/vrml/InvalidExposedFieldException.java: Moved to
	src/script.
	* java/vrml/InvalidFieldChangeException.java: Moved to src/script.
	* java/vrml/InvalidFieldException.java: Moved to src/script.
	* java/vrml/InvalidRouteException.java: Moved to src/script.
	* java/vrml/InvalidVRMLSyntaxException.java: Moved to src/script.
	* java/vrml/MField.java: Moved to src/script.
	* java/vrml/Makefile.am: Moved to src/script.
	* java/vrml/field/ConstMFBool.java: Moved to src/script.
	* java/vrml/field/ConstMFColor.java: Moved to src/script.
	* java/vrml/field/ConstMFDouble.java: Moved to src/script.
	* java/vrml/field/ConstMFFloat.java: Moved to src/script.
	* java/vrml/field/ConstMFInt32.java: Moved to src/script.
	* java/vrml/field/ConstMFNode.java: Moved to src/script.
	* java/vrml/field/ConstMFRotation.java: Moved to src/script.
	* java/vrml/field/ConstMFString.java: Moved to src/script.
	* java/vrml/field/ConstMFTime.java: Moved to src/script.
	* java/vrml/field/ConstMFVec2d.java: Moved to src/script.
	* java/vrml/field/ConstMFVec2f.java: Moved to src/script.
	* java/vrml/field/ConstMFVec3d.java: Moved to src/script.
	* java/vrml/field/ConstMFVec3f.java: Moved to src/script.
	* java/vrml/field/ConstSFBool.java: Moved to src/script.
	* java/vrml/field/ConstSFColor.java: Moved to src/script.
	* java/vrml/field/ConstSFDouble.java: Moved to src/script.
	* java/vrml/field/ConstSFFloat.java: Moved to src/script.
	* java/vrml/field/ConstSFImage.java: Moved to src/script.
	* java/vrml/field/ConstSFInt32.java: Moved to src/script.
	* java/vrml/field/ConstSFNode.java: Moved to src/script.
	* java/vrml/field/ConstSFRotation.java: Moved to src/script.
	* java/vrml/field/ConstSFString.java: Moved to src/script.
	* java/vrml/field/ConstSFTime.java: Moved to src/script.
	* java/vrml/field/ConstSFVec2d.java: Moved to src/script.
	* java/vrml/field/ConstSFVec2f.java: Moved to src/script.
	* java/vrml/field/ConstSFVec3d.java: Moved to src/script.
	* java/vrml/field/ConstSFVec3f.java: Moved to src/script.
	* java/vrml/field/MFBool.java: Moved to src/script.
	* java/vrml/field/MFColor.java: Moved to src/script.
	* java/vrml/field/MFDouble.java: Moved to src/script.
	* java/vrml/field/MFFloat.java: Moved to src/script.
	* java/vrml/field/MFInt32.java: Moved to src/script.
	* java/vrml/field/MFNode.java: Moved to src/script.
	* java/vrml/field/MFRotation.java: Moved to src/script.
	* java/vrml/field/MFString.java: Moved to src/script.
	* java/vrml/field/MFTime.java: Moved to src/script.
	* java/vrml/field/MFVec2d.java: Moved to src/script.
	* java/vrml/field/MFVec2f.java: Moved to src/script.
	* java/vrml/field/MFVec3d.java: Moved to src/script.
	* java/vrml/field/MFVec3f.java: Moved to src/script.
	* java/vrml/field/Makefile.am: Moved to src/script.
	* java/vrml/field/SFBool.java: Moved to src/script.
	* java/vrml/field/SFColor.java: Moved to src/script.
	* java/vrml/field/SFDouble.java: Moved to src/script.
	* java/vrml/field/SFFloat.java: Moved to src/script.
	* java/vrml/field/SFImage.java: Moved to src/script.
	* java/vrml/field/SFInt32.java: Moved to src/script.
	* java/vrml/field/SFNode.java: Moved to src/script.
	* java/vrml/field/SFRotation.java: Moved to src/script.
	* java/vrml/field/SFString.java: Moved to src/script.
	* java/vrml/field/SFTime.java: Moved to src/script.
	* java/vrml/field/SFVec2d.java: Moved to src/script.
	* java/vrml/field/SFVec2f.java: Moved to src/script.
	* java/vrml/field/SFVec3d.java: Moved to src/script.
	* java/vrml/field/SFVec3f.java: Moved to src/script.
	* java/vrml/node/Makefile.am: Moved to src/script.
	* java/vrml/node/Node.java: Moved to src/script.
	* java/vrml/node/Script.java: Moved to src/script.
	* java/Makefile.am: Moved to src/script.
	* models/TestJSAI.java: Formatting changes.
	* src/Makefile.am
	(SUBDIRS): Recurse into script to build the Java sources.
	(noinst_HEADERS): Removed reference to ScriptJDK.h.
	(libopenvrml_libopenvrml_la_CPPFLAGS): Define OPENVRML_PKGLIBDIR_.
	(libopenvrml_libopenvrml_la_CXXFLAGS): Removed JS_CFLAGS.
	(libopenvrml_libopenvrml_la_SOURCES): Removed references to
	script.cpp and ScriptJDK.cpp.
	(libopenvrml_libopenvrml_la_LDFLAGS): Removed JS_LIBS and
	JNI_LIBS.
	(libopenvrml_libopenvrml_la_LIBADD): Added -lltdl.
	(openvrmlscriptdir): Added.
	(openvrmlscript_LTLIBRARIES): Add javascript.la and java.la based
	on their respective Automake conditionals.
	(script_javascript_la_SOURCES): Added.
	(script_javascript_la_CPPFLAGS): Added.
	(script_javascript_la_CXXFLAGS): Added.
	(script_javascript_la_LDFLAGS): Added; apply
	OPENVRML_JAVASCRIPT_RPATH.
	(script_java_la_SOURCES): Added.
	(script_java_la_CPPFLAGS): Added.
	(script_java_la_LDFLAGS): Added.
	(openvrml_xembed_openvrml_xembed_LDFLAGS): Removed OPENVRML_RPATH.
	* src/libopenvrml/openvrml/script.cpp: Moved implementation of
	openvrml::script_node to browser.cpp; moved implementation of
	Script node JavaScript binding to src/script/javascript.cpp.
	* src/libopenvrml/openvrml/script.h
	(openvrml::script_factory): Added; an abstract factory for
	openvrml::script instances.
	(openvrml::script_node): Moved to browser.h.
	(openvrml::script_factory_registry): Added; registry for
	script_factory.
	* src/libopenvrml/openvrml/browser.cpp: Moved implementation of openvrml::script_node here to share uri implementation.
	* src/libopenvrml/openvrml/browser.h
	(openvrml::script_node): Moved here from script.h.
	(openvrml::browser): Made openvrml::script_node a friend.
	* src/libopenvrml/openvrml/ScriptJDK.cpp: Removed; moved contents to src/script/java.cpp.
	* src/libopenvrml/openvrml/ScriptJDK.h: Removed file.
	* src/script/Makefile.am: Added file.
	* src/script/java.cpp: Added file; contents moved from ScriptJDK.cpp.
	* src/script/javascript.cpp: Added file; contents moved from script.cpp.
	* src/script/java/Makefile.am: Added file.
	* src/script/java/vrml/BaseNode.java: Moved from java.
	* src/script/java/vrml/Browser.java: Moved from java.
	* src/script/java/vrml/ConstField.java: Moved from java.
	* src/script/java/vrml/ConstMField.java: Moved from java.
	* src/script/java/vrml/Event.java: Moved from java.
	* src/script/java/vrml/Field.java: Moved from java.
	* src/script/java/vrml/InvalidEventInException.java: Moved from java.
	* src/script/java/vrml/InvalidEventOutException.java: Moved from java.
	* src/script/java/vrml/InvalidExposedFieldException.java: Moved from java.
	* src/script/java/vrml/InvalidFieldChangeException.java: Moved from java.
	* src/script/java/vrml/InvalidFieldException.java: Moved from java.
	* src/script/java/vrml/InvalidRouteException.java: Moved from java.
	* src/script/java/vrml/InvalidVRMLSyntaxException.java: Moved from java.
	* src/script/java/vrml/MField.java: Moved from java.
	* src/script/java/vrml/Makefile.am: Moved from java.
	* src/script/java/vrml/field/ConstMFBool.java: Moved from java.
	* src/script/java/vrml/field/ConstMFColor.java: Moved from java.
	* src/script/java/vrml/field/ConstMFDouble.java: Moved from java.
	* src/script/java/vrml/field/ConstMFFloat.java: Moved from java.
	* src/script/java/vrml/field/ConstMFInt32.java: Moved from java.
	* src/script/java/vrml/field/ConstMFNode.java: Moved from java.
	* src/script/java/vrml/field/ConstMFRotation.java: Moved from java.
	* src/script/java/vrml/field/ConstMFString.java: Moved from java.
	* src/script/java/vrml/field/ConstMFTime.java: Moved from java.
	* src/script/java/vrml/field/ConstMFVec2d.java: Moved from java.
	* src/script/java/vrml/field/ConstMFVec2f.java: Moved from java.
	* src/script/java/vrml/field/ConstMFVec3d.java: Moved from java.
	* src/script/java/vrml/field/ConstMFVec3f.java: Moved from java.
	* src/script/java/vrml/field/ConstSFBool.java: Moved from java.
	* src/script/java/vrml/field/ConstSFColor.java: Moved from java.
	* src/script/java/vrml/field/ConstSFDouble.java: Moved from java.
	* src/script/java/vrml/field/ConstSFFloat.java: Moved from java.
	* src/script/java/vrml/field/ConstSFImage.java: Moved from java.
	* src/script/java/vrml/field/ConstSFInt32.java: Moved from java.
	* src/script/java/vrml/field/ConstSFNode.java: Moved from java.
	* src/script/java/vrml/field/ConstSFRotation.java: Moved from java.
	* src/script/java/vrml/field/ConstSFString.java: Moved from java.
	* src/script/java/vrml/field/ConstSFTime.java: Moved from java.
	* src/script/java/vrml/field/ConstSFVec2d.java: Moved from java.
	* src/script/java/vrml/field/ConstSFVec2f.java: Moved from java.
	* src/script/java/vrml/field/ConstSFVec3d.java: Moved from java.
	* src/script/java/vrml/field/ConstSFVec3f.java: Moved from java.
	* src/script/java/vrml/field/MFBool.java: Moved from java.
	* src/script/java/vrml/field/MFColor.java: Moved from java.
	* src/script/java/vrml/field/MFDouble.java: Moved from java.
	* src/script/java/vrml/field/MFFloat.java: Moved from java.
	* src/script/java/vrml/field/MFInt32.java: Moved from java.
	* src/script/java/vrml/field/MFNode.java: Moved from java.
	* src/script/java/vrml/field/MFRotation.java: Moved from java.
	* src/script/java/vrml/field/MFString.java: Moved from java.
	* src/script/java/vrml/field/MFTime.java: Moved from java.
	* src/script/java/vrml/field/MFVec2d.java: Moved from java.
	* src/script/java/vrml/field/MFVec2f.java: Moved from java.
	* src/script/java/vrml/field/MFVec3d.java: Moved from java.
	* src/script/java/vrml/field/MFVec3f.java: Moved from java.
	* src/script/java/vrml/field/Makefile.am: Moved from java.
	* src/script/java/vrml/field/SFBool.java: Moved from java.
	* src/script/java/vrml/field/SFColor.java: Moved from java.
	* src/script/java/vrml/field/SFDouble.java: Moved from java.
	* src/script/java/vrml/field/SFFloat.java: Moved from java.
	* src/script/java/vrml/field/SFImage.java: Moved from java.
	* src/script/java/vrml/field/SFInt32.java: Moved from java.
	* src/script/java/vrml/field/SFNode.java: Moved from java.
	* src/script/java/vrml/field/SFRotation.java: Moved from java.
	* src/script/java/vrml/field/SFString.java: Moved from java.
	* src/script/java/vrml/field/SFTime.java: Moved from java.
	* src/script/java/vrml/field/SFVec2d.java: Moved from java.
	* src/script/java/vrml/field/SFVec2f.java: Moved from java.
	* src/script/java/vrml/field/SFVec3d.java: Moved from java.
	* src/script/java/vrml/field/SFVec3f.java: Moved from java.
	* src/script/java/vrml/node/Makefile.am: Moved from java.
	* src/script/java/vrml/node/Node.java: Moved from java.
	* src/script/java/vrml/node/Script.java: Moved from java.
	* tests/TestScript.java: Added file.
	* tests/Makefile.am: Build TestScript.java.

2008-02-23 Braden McDaniel  <braden@endoframe.com>

	Updates to build with the Microsoft compiler.

	* src/libopenvrml/openvrml/vrml97node.cpp
	(grouping_node_base<Derived>::children_exposedfield): Fully
	qualify openvrml::mfnode.
	(cad_layer_node::do_render_child(openvrml::viewer &,
	openvrml::rendering_context)): For some reason the Microsoft
	compiler doesn't like "using openvrml::child_node;" here.

2008-02-17 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Ensure libjs only gets used when configuring
	--with-libjs.

2008-02-17 Braden McDaniel  <braden@endoframe.com>

	Look for seamonkey-js.pc and seamonkey-plugin.pc.

	* configure.ac
	* mozilla-plugin/configure.ac

2008-02-11 Braden McDaniel  <braden@endoframe.com>

	Doc-comment improvements; apply @tparam.

	* doc/Doxyfile: Updated to Doxygen 1.5.5.
	* src/libopenvrml/openvrml/basetypes.cpp
	* src/libopenvrml/openvrml/event.cpp
	* src/libopenvrml/openvrml/exposedfield.cpp
	* src/libopenvrml/openvrml/field_value.cpp
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node_impl_util.cpp
	* src/libopenvrml/openvrml/node_impl_util.h

2008-02-05 Braden McDaniel  <braden@endoframe.com>

	Updates for 0.17.5 release.

	* NEWS
	* README
	* configure.ac
	* doc/Doxyfile
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.rc
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.rc
	* mozilla-plugin/configure.ac
	* src/Makefile.am: Updated libopenvrml libtool library version to
	8:4:0.

2008-01-29 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::proto_impl_cloner::clone_node(const
	boost::intrusive_ptr<node> &)): Don't clone subtrees from the
	initial_values map.

2008-01-29 Braden McDaniel  <braden@endoframe.com>

	Changed configure not to apply -rpath for the Gecko runtime
	library directory by default.

	* README
	* configure.ac

2008-01-29 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/script.cpp
	(openvrml::script_node::update(double)): Use a const_iterator when
	iterating over the eventout_map_.

2008-01-29 Braden McDaniel  <braden@endoframe.com>

	Moved node::add_ref and node::release out-of-line.

	* src/libopenvrml/openvrml/node.cpp
	(openvrml::node::add_ref() const): Moved from node.h.
	(openvrml::node::release() const): Moved from node.h.
	* src/libopenvrml/openvrml/node.h
	(openvrml::node::add_ref() const): Moved to node.cpp.
	(openvrml::node::release() const): Moved to node.cpp.

2008-01-28 Braden McDaniel  <braden@endoframe.com>

	Since we aren't doing any ownership transfer, use a
	boost::scoped_ptr for openvrml::field_value::counted_impl_.

	* src/libopenvrml/openvrml/field_value.h
	(openvrml::field_value::counted_impl_): Changed to
	boost::scoped_ptr from std::auto_ptr.
	(openvrml::field_value::operator=<FieldValue>(const FieldValue&)):
	Reset the scoped_ptr.
	(openvrml::field_value::swap<FieldValue>(FieldValue &)):
	Delegate to boost::scoped_ptr::swap.

2007-01-28 Braden McDaniel  <braden@endoframe.com>

	Use a multimap for storing IS mappings in the parser.  This is
	required to accommodate exposedFields that may be mapped to an
	eventIn, a field, and/or an eventOut.

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::browser::vrml97_parse_actions::on_is_mapping_t::operator()(const
	std::string &) const): Insertion into a multimap always
	succeeds (or throws).
	(openvrml::browser::vrml97_parse_actions::node_data::is_map_t):
	Changed to a multimap.

2008-01-26 Braden McDaniel  <braden@endoframe.com>

	Updates for 0.17.4 release.

	* NEWS
	* README
	* configure.ac
	* doc/Doxyfile
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.rc
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.rc
	* mozilla-plugin/configure.ac
	* src/Makefile.am: Updated libopenvrml libtool library version to
	8:3:0.

2008-01-26 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/openvrml.cpp
	(request_data_available(GIOChannel *, GIOCondition, gpointer)):
	Fall out of the read loop upon receiving an EOL; otherwise we can
	end up with more than one request in the request_line (and end up
	sending a bogus command to the XEmbed control).

2008-01-25 Braden McDaniel  <braden@endoframe.com>

	Properly apply PROTO default values to EXTERNPROTO node instances.

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::externproto_node): Added members initial_values_ and
	received_event_.  initial_values_ stores the initial values used
	when instantiating the EXTERNPROTO node; received_event_ is a set
	of field values that have been updated in response to events sent
	to the EXTERNPROTO's exposedFields.
	(openvrml::externproto_node::externproto_exposedfield<FieldValue>::do_process_event(const
	FieldValue &, double)): Add the field_value to the received_event_
	set upon receiving an event.
	(openvrml::externproto_node::set_proto_node(proto_node_type &)):
	Use the initial values the EXTERNPROTO node was instantiated with,
	updated with values received via any events to exposedFields.

2008-01-23 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/script.cpp
	(js_::Global::print(JSContext *, JSObject *, uintN, jsval *,
	jsval *): Emit output using openvrml::browser::out.

2008-01-17 Braden McDaniel  <braden@endoframe.com>

	Updates for 0.17.3 release.

	* NEWS
	* README
	* configure.ac
	* doc/Doxyfile
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.rc
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.rc
	* mozilla-plugin/configure.ac

2008-01-16 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/openvrml.cpp
	(request_data_available(GIOChannel *, GIOCondition, gpointer)):
	Clear the request_line stringstream between requests.

2008-01-16 Braden McDaniel  <braden@endoframe.com>

	* src/openvrml-xembed/main.cpp
	(main(int, char *[])): Seed the
	uninitialized_plugin_streambuf_map_ with the initial stream's
	streambuf before starting the command channel loop thread in order
	to avoid a race (and a potential crash).

2008-01-09 Braden McDaniel  <braden@endoframe.com>

	Added option to disable use of the Gecko runtime library directory
	-rpath flag when building openvrml-xembed.

	* README
	* configure.ac

2008-01-09 Braden McDaniel  <braden@endoframe.com>

	Updates for 0.17.2 release.

	* NEWS
	* README
	* configure.ac
	* doc/Doxyfile
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.rc
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.rc
	* mozilla-plugin/configure.ac
	* src/Makefile.am: Updated libopenvrml libtool library version to
	8:2:0.

2008-01-08 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Fixed Automake conditional test for WITH_REZ.

2008-01-08 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Apply Rez to sdl-viewer if "-framework" occurs in
	GL_LIBS.

2008-01-08 Braden McDaniel  <braden@endoframe.com>

	* lib/gtkglext/docs/reference/gtkglext/Makefile.am
	(GTKDOC_LIBS): Mac OS X 10.5 needs GL_LIBS here on account of the
	wonky flags that libtool won't track.

2008-01-08 Braden McDaniel  <braden@endoframe.com>

	* src/openvrml-player/player.cpp
	(openvrml_player_request_data_available(GIOChannel *,
	GIOCondition, gpointer)): Accept any supported Content-Encoding.

2008-01-08 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp
	(uri::resolve_against(const uri &) const): Fixed crash in ".."
	path segment processing.

2008-01-07 Braden McDaniel  <braden@endoframe.com>

	Doc-comment fixes and improvements.

	* src/libopenvrml/openvrml/viewer.cpp
	* src/libopenvrml/openvrml/browser.cpp

2007-01-06 Braden McDaniel  <braden@endoframe.com>

	Updates for 0.17.1 release.

	* NEWS
	* README
	* configure.ac
	* doc/Doxyfile
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.rc
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.rc
	* mozilla-plugin/configure.ac
	* src/Makefile.am: Updated libopenvrml libtool library version to
	8:1:0; updated libopenvrml-gl libtool library version to 7:1:0.

2008-01-06 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/vrml97node.cpp
	(get_polygons_(const std::vector<std::vector<openvrml::vec2f> >
	&)): Don't return a reference.

2008-01-06 Braden McDaniel  <braden@endoframe.com>

	Refactored text_node::glyph_geometry constructor.

	* src/libopenvrml/openvrml/vrml97node.cpp
	(get_polygons_(const std::vector<std::vector<openvrml::vec2f> >
	&)): Return a reference (to const).
	(get_connection_map(const polygon_ &)): Added function.  Get the
	map of positions at which the interior and corresponding exterior
	contours in a glyph are connected to form a polygon.
	(draw_glyph_polygon): Function object to emit coordinates and
	coordinate indices for polygons given a polygon_.
	(text_node::glyph_geometry::glyph_geometry(const
	std::vector<std::vector<openvrml::vec2f> > &, float, float)):
	Delegate to draw_glyph_polygon.

2008-01-05 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::browser::vrml97_parse_actions::on_script_interface_decl_t::operator()(const
	node_interface &) const): Pop the children stack for eventIns and
	eventOuts after calling on_field_start since that doesn't get
	handled in any field value parsing.

2008-01-05 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml-gl/openvrml/gl/viewer.cpp (TessCB): Cannot use a
	typedef of "void" to denote an empty parameter list in C++.

2008-01-05 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/basetypes.cpp (rotation_p): Removed
	unnecessary application of OPENVRML_LOCAL.

2008-01-05 Braden McDaniel  <braden@endoframe.com>

	* src/Makefile.am (libopenvrml_libopenvrml_la_CPPFLAGS): Removed
	obsolete reference to antlr subdirectory.

2007-12-19 Braden McDaniel  <braden@endoframe.com>

	Updates for 0.17.0 release.

	* NEWS
	* README
	* configure.ac
	* doc/Doxyfile
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.rc
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.rc
	* mozilla-plugin/configure.ac
	* src/Makefile.am: Updated libopenvrml libtool library version to
	8:0:0; updated libopenvrml-gl libtool library version to 7:0:0.

2007-12-19 Braden McDaniel  <braden@endoframe.com>

	* README: Increased recommended minimum RAM for 32-bit build hosts
	to 1.5 GB; 3 GB for 64-bit hosts. Sigh.

2007-12-19 Braden McDaniel  <braden@endoframe.com>

	* doc/doxygen-header: Override styles from doxygen.css.

2007-12-19 Braden McDaniel  <braden@endoframe.com>

	Added OpenGL logo image and link to documentation footer.

	* doc/Makefile.am (CUSTOMIZED_IMAGES): Added OGL_sm_wht.png.
	* doc/doxygen-footer: Added OpenGL logo image.
	* doc/manual/OGL_sm_wht.png: Added file.

2007-12-19 Braden McDaniel  <braden@endoframe.com>

	* tests/Makefile.am (EXTRA_DIST): Added missing test input files.

2007-12-18 Braden McDaniel  <braden@endoframe.com>

	Call x3d_vrml_parse_error_msg in browser's error handler to get
	the error message string.

	* src/libopenvrml/openvrml/browser.cpp
	(error_handler::operator()<ScannerT,ErrorT>(const ScannerT &,
	const ErrorT &) const): Handle X3D-specific warnigns and call
	x3d_vrml_parse_error_msg to get the error message string.
	* src/libopenvrml/openvrml/x3d_vrml_grammar.h
	(openvrml::x3d_vrml_parse_error_message(vrml_parse_error)):
	Delegate to openvrml::vrml97_parse_error_msg for vrml_parse_errors
	that are not X3D-specific.

2007-12-18 Braden McDaniel  <braden@endoframe.com>

	* doc/doxygen-header: Doxygen as of 1.5.4-20071217 uses the class
	"navpath" instead of "nav".  For now, we'll do both.

2007-12-18 Braden McDaniel  <braden@endoframe.com>

	* doc/Makefile.am (DOCUMENTATION_FILES): Added gpl.doc and
	lgpl.doc.

2007-12-18 Braden McDaniel  <braden@endoframe.com>

	Call semantic actions when parsing IMPORT and EXPORT statements.

	* src/libopenvrml/openvrml/browser.cpp
	(x3d_vrml_parse_actions): Added no-op semantic actions
	on_import_statement and on_export_statement.
	* src/libopenvrml/openvrml/x3d_vrml_grammar.h
	(openvrml::null_x3d_vrml_parse_actions): Added no-op semantic
	actions on_import_statement and on_export_statement.
	(openvrml::import_statement_closure): Spirit closure used when
	parsing IMPORT statements.
	(openvrml::export_statement_closure): Spirit closure used when
	parsing EXPORT statements.
	(openvrml::x3d_vrml_grammar<Actions,ErrorHandler>::definition<ScannerT>::import_statement_rule_type):
	Rule type for import_statement incorporating
	import_statement_closure.
	(openvrml::x3d_vrml_grammar<Actions,ErrorHandler>::definition<ScannerT>::export_statement_rule_type):
	Rule type for export_statement incorporating
	export_statement_closure.
	(openvrml::x3d_vrml_grammar<Actions,ErrorHandler>::definition<ScannerT>::on_import_statement):
	Phoenix function for calling import_statement's associated
	semantic action.
	(openvrml::x3d_vrml_grammar<Actions,ErrorHandler>::definition<ScannerT>::on_export_statement):
	Phoenix function for calling export_statement's associated
	semantic action.
	(openvrml::x3d_vrml_grammar<Actions,ErrorHandler>::definition<ScannerT>::definition(const
	x3d_vrml_grammar &)): Call Actions.on_import_statement for
	import_statement and Actions.on_export_statement for
	export_statement.

2007-12-17 Braden McDaniel  <braden@endoframe.com>

	Update to GPL and LGPL version 3.

	* COPYING
	* COPYING.LESSER
	* README
	* doc/Doxyfile
	* doc/gpl.doc: Added file.
	* doc/index.doc
	* doc/intro.doc
	* doc/lgpl.doc: Added file.
	* examples/pretty_print.cpp
	* examples/sdl_viewer.cpp
	* mozilla-plugin/src/openvrml.cpp
	* src/libopenvrml/openvrml-common.h
	* src/libopenvrml/openvrml-config.h.in
	* src/libopenvrml/private.h
	* src/libopenvrml/openvrml/ScriptJDK.cpp
	* src/libopenvrml/openvrml/ScriptJDK.h
	* src/libopenvrml/openvrml/basetypes.cpp
	* src/libopenvrml/openvrml/basetypes.h
	* src/libopenvrml/openvrml/bounding_volume.cpp
	* src/libopenvrml/openvrml/bounding_volume.h
	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/browser.h
	* src/libopenvrml/openvrml/event.cpp
	* src/libopenvrml/openvrml/event.h
	* src/libopenvrml/openvrml/exposedfield.cpp
	* src/libopenvrml/openvrml/exposedfield.h
	* src/libopenvrml/openvrml/field_value.cpp
	* src/libopenvrml/openvrml/field_value.h
	* src/libopenvrml/openvrml/frustum.cpp
	* src/libopenvrml/openvrml/frustum.h
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node.h
	* src/libopenvrml/openvrml/node_impl_util.cpp
	* src/libopenvrml/openvrml/node_impl_util.h
	* src/libopenvrml/openvrml/read_write_mutex.cpp
	* src/libopenvrml/openvrml/read_write_mutex.h
	* src/libopenvrml/openvrml/rendering_context.cpp
	* src/libopenvrml/openvrml/rendering_context.h
	* src/libopenvrml/openvrml/scope.cpp
	* src/libopenvrml/openvrml/scope.h
	* src/libopenvrml/openvrml/script.cpp
	* src/libopenvrml/openvrml/script.h
	* src/libopenvrml/openvrml/viewer.cpp
	* src/libopenvrml/openvrml/viewer.h
	* src/libopenvrml/openvrml/vrml97_grammar.cpp
	* src/libopenvrml/openvrml/vrml97_grammar.h
	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml/openvrml/vrml97node.h
	* src/libopenvrml/openvrml/x3d_cad_geometry.cpp
	* src/libopenvrml/openvrml/x3d_cad_geometry.h
	* src/libopenvrml/openvrml/x3d_core.cpp
	* src/libopenvrml/openvrml/x3d_core.h
	* src/libopenvrml/openvrml/x3d_dis.cpp
	* src/libopenvrml/openvrml/x3d_dis.h
	* src/libopenvrml/openvrml/x3d_environmental_effects.cpp
	* src/libopenvrml/openvrml/x3d_environmental_effects.h
	* src/libopenvrml/openvrml/x3d_event_utilities.cpp
	* src/libopenvrml/openvrml/x3d_event_utilities.h
	* src/libopenvrml/openvrml/x3d_geometry2d.cpp
	* src/libopenvrml/openvrml/x3d_geometry2d.h
	* src/libopenvrml/openvrml/x3d_geospatial.cpp
	* src/libopenvrml/openvrml/x3d_geospatial.h
	* src/libopenvrml/openvrml/x3d_grouping.cpp
	* src/libopenvrml/openvrml/x3d_grouping.h
	* src/libopenvrml/openvrml/x3d_hanim.cpp
	* src/libopenvrml/openvrml/x3d_hanim.h
	* src/libopenvrml/openvrml/x3d_interpolation.cpp
	* src/libopenvrml/openvrml/x3d_interpolation.h
	* src/libopenvrml/openvrml/x3d_key_device_sensor.cpp
	* src/libopenvrml/openvrml/x3d_key_device_sensor.h
	* src/libopenvrml/openvrml/x3d_networking.cpp
	* src/libopenvrml/openvrml/x3d_networking.h
	* src/libopenvrml/openvrml/x3d_nurbs.cpp
	* src/libopenvrml/openvrml/x3d_nurbs.h
	* src/libopenvrml/openvrml/x3d_rendering.cpp
	* src/libopenvrml/openvrml/x3d_rendering.h
	* src/libopenvrml/openvrml/x3d_shape.cpp
	* src/libopenvrml/openvrml/x3d_shape.h
	* src/libopenvrml/openvrml/x3d_texturing.cpp
	* src/libopenvrml/openvrml/x3d_texturing.h
	* src/libopenvrml/openvrml/x3d_vrml_grammar.cpp
	* src/libopenvrml/openvrml/x3d_vrml_grammar.h
	* src/libopenvrml-gl/openvrml-gl-common.h
	* src/libopenvrml-gl/openvrml-gl-config.h.in
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	* src/libopenvrml-gl/openvrml/gl/viewer.h
	* src/openvrml-player/filechooserdialog.cpp
	* src/openvrml-player/filechooserdialog.h
	* src/openvrml-player/player.cpp
	* src/openvrml-xembed/bounded_buffer.h
	* src/openvrml-xembed/command_istream.cpp
	* src/openvrml-xembed/command_istream.h
	* src/openvrml-xembed/gtkvrmlbrowser.cpp
	* src/openvrml-xembed/gtkvrmlbrowser.h
	* src/openvrml-xembed/main.cpp
	* src/openvrml-xembed/plugin_streambuf.cpp
	* src/openvrml-xembed/plugin_streambuf.h
	* src/openvrml-xembed/request_channel.h
	* tests/browser.cpp
	* tests/browser_parse_vrml.cpp
	* tests/color.cpp
	* tests/image.cpp
	* tests/mat4f.cpp
	* tests/node_interface_set.cpp
	* tests/node_metatype_id.cpp
	* tests/parse_anchor.cpp
	* tests/parse_vrml97.cpp
	* tests/parse_x3dvrml.cpp
	* tests/rotation.cpp
	* tests/test_resource_fetcher.cpp
	* tests/test_resource_fetcher.h

2007-12-17 Braden McDaniel  <braden@endoframe.com>

	* README: Fixed typographical error.

2007-12-16 Braden McDaniel  <braden@endoframe.com>

	Removed erroneously applied copyright attributions to Chris
	Morley.

	* src/libopenvrml/openvrml/x3d_environmental_effects.cpp
	* src/libopenvrml/openvrml/x3d_environmental_effects.h
	* src/libopenvrml/openvrml/x3d_interpolation.h

2007-12-16 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/vrml97node.h: Removed copyright
	attribution to Chris Morley.  Code from Chris Morley or derived
	therefrom has been moved to vrml97node.cpp.

2007-12-16 Braden McDaniel  <braden@endoframe.com>

	Removed copyright attribution to Kumaran Santhanam.  Code
	contributed by this person appears to have been removed as of
	2003-06-05; yet this attribution was not removed.

	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml/openvrml/vrml97node.h

2007-12-16 Braden McDaniel  <braden@endoframe.com>

	* doc/Makefile.am
	(DOCUMENTED_SOURCE_FILES): Added vrml97_grammar.cpp,
	vrml97_grammar.h, x3d_vrml_grammar.cpp, and x3d_vrml_grammar.h.

2007-12-16 Braden McDaniel  <braden@endoframe.com>

	* doc/Doxyfile: Removed references to ANTLR-generated files.

2007-12-16 Braden McDaniel  <braden@endoframe.com>

	Partition the documentation into subpages.

	* doc/Doxyfile
	* doc/Makefile.am
	(DOCUMENTATION_FILES): Added intro.doc, parsing.doc, and
	libopenvrml.doc.
	* doc/doxygen-header
	* doc/index.doc
	* doc/intro.doc
	* doc/libopenvrml.doc
	* doc/parsing.doc

2007-12-16 Braden McDaniel  <braden@endoframe.com>

	Doc-comment fixes and improvements.

	* doc/index.doc
	* src/libopenvrml/openvrml/bounding_volume.cpp
	* src/libopenvrml/openvrml/frustum.cpp
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node_impl_util.cpp
	* src/libopenvrml/openvrml/read_write_mutex.cpp
	* src/libopenvrml/openvrml/read_write_mutex.h
	* src/libopenvrml/openvrml/rendering_context.cpp
	* src/libopenvrml/openvrml/viewer.cpp
	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml/openvrml/x3d_event_utilities.cpp
	* src/libopenvrml/openvrml/x3d_hanim.cpp
	* src/libopenvrml/openvrml/x3d_interpolation.cpp
	* src/libopenvrml/openvrml/x3d_nurbs.cpp
	* src/libopenvrml/openvrml/x3d_vrml_grammar.cpp

2007-12-14 Braden McDaniel  <braden@endoframe.com>

	Removed Visual C++ 8.0 project files.

	* README: Changed Visual C++ 8.0 reference to 9.0.
	* ide-projects/Windows/VisualC8_0/OpenVRML/OpenVRML.sln: Removed.
	* ide-projects/Windows/VisualC8_0/OpenVRML/antlr/antlr.vcproj:
	Removed.
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml/openvrml-config.h:
	Removed.
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml/openvrml.rc:
	Removed.
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml/openvrml.vcproj:
	Removed.
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml-gl/openvrml-gl-config.h:
	Removed.
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml-gl/openvrml-gl.rc:
	Removed.
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml-gl/openvrml-gl.vcproj:
	Removed.
	* ide-projects/Windows/VisualC8_0/OpenVRML/sdl-viewer/sdl-viewer.vcproj:
	Removed.

2007-12-12 Braden McDaniel  <braden@endoframe.com>

	Doc-comment fixes and improvements.

	* src/libopenvrml/openvrml/basetypes.cpp
	* src/libopenvrml/openvrml/basetypes.h
	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node_impl_util.cpp
	* src/libopenvrml/openvrml/node_impl_util.h
	* src/libopenvrml/openvrml/vrml97_grammar.cpp
	* src/libopenvrml/openvrml/vrml97_grammar.h
	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml/openvrml/x3d_vrml_grammar.cpp

2007-12-12 Braden McDaniel  <braden@endoframe.com>

	* doc/index.doc: Added a user guide for the Spirit parsers.

2007-12-12 Braden McDaniel  <braden@endoframe.com>

	* doc/doxygen-header: Style sheet changes to improve interaction
	with the doxygen-generated style sheet.

2007-12-12 Braden McDaniel  <braden@endoframe.com>

	Changed openvrml::vrml_parse_error_handler to
	openvrml::vrml97_parse_error_handler.

	* src/libopenvrml/openvrml/vrml97_grammar.h
	* src/libopenvrml/openvrml/x3d_vrml_grammar.h

2007-12-11 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/basetypes.cpp: Applied missing
	OPENVRML_LOCAL.

2007-12-11 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/vrml97_grammar.h
	(vrml97_parse_error_msg(vrml_parse_error)): Don't overload
	operator<< for vrml_parse_error because additions to the
	enumeration will need to be handled elsewhere.

2007-12-11 Braden McDaniel  <braden@endoframe.com>

	Removed unnecessary typedefs associated with
	boost::spirit::multi_pass usage.

	* examples/pretty_print.cpp
	(main(int, char *[])): Removed unnecessary typedefs.

2007-12-11 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/vrml97_grammar.h: Cleaned up
	unnecessary header inclusions.

2007-12-11 Braden McDaniel  <braden@endoframe.com>

	Changed openvrml::null_vrml_parse_actions to
	openvrml::null_vrml97_parse_actions.

	* examples/pretty_print.cpp
	* src/libopenvrml/openvrml/vrml97_grammar.h
	* src/libopenvrml/openvrml/x3d_vrml_grammar.h

2007-12-11 Braden McDaniel  <braden@endoframe.com>

	Removed unnecessary typedefs associated with
	boost::spirit::multi_pass usage.

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::browser::parse_vrml(std::istream &, const std::string&,
	const std::string &, const openvrml::scene &,
	std::vector<boost::intrusive_ptr<openvrml::node> > &,
	std::map<std::string, std::string> &)): Removed unnecessary
	typedefs.
	* tests/parse_vrml97.cpp
	(main(int, char *[])): Removed unnecessary typedefs.
	* tests/parse_x3dvrml.cpp
	(main(int, char *[])): Removed unnecessary typedefs.

2007-12-10 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/bounding_volume.cpp
	(openvrml::bounding_sphere::bounding_sphere()): Initialize center_
	with a default vec3f.

2007-12-09 Braden McDaniel  <braden@endoframe.com>

	Quelled some compiler warnings.

	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	(openvrml::gl::viewer::do_insert_shell(unsigned int, const
	std::vector<vec3f> &, const std::vector<int32> &, const
	std::vector<color> &, const std::vector<int32> &, const
	std::vector<vec3f> &, const std::vector<int32> &, const
	std::vector<vec2f> &, const std::vector<int32> &)): Initialize
	texParams array.
	* src/openvrml-player/player.cpp
	(curl_source_new(CURLM *)): Explicitly set last two GSourceFuncs
	struct entries to 0.
	* src/openvrml-xembed/main.cpp
	(openvrml_xembed::event_listener_id_map_): Apply G_GNUC_INTERNAL.

2007-12-09 Braden McDaniel  <braden@endoframe.com>

	Pushed the top-level parser exception handler (i.e., guard) down
	into the grammar definitions.  Also, changed the order of the
	vrml97_grammar and x3d_vrml_grammar template parameters to match
	the order of the constructor arguments.

	* examples/pretty_print.cpp
	(main(int, char *[])): Use the default error handler.  Also,
	removed the now-redundant guard.
	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::browser::parse_vrml(std::istream &, const std::string&,
	const openvrml::scene &,
	std::vector<boost::intrusive_ptr<openvrml::node> > &,
	std::map<std::string, std::string> &)): Changed template argument
	order for vrml97_grammar and x3d_vrml_grammar; removed guards.
	* src/libopenvrml/openvrml/vrml97_grammar.h
	(vrml97_grammar<Actions,ErrorHandler>): Changed template argument
	order to match the order of the constructor arguments.
	(vrml97_grammar<Actions,ErrorHandler>::definition<ScannerT>::definition(const
	vrml97_grammar &)): Added guard to vrml_scene production.
	* src/libopenvrml/openvrml/x3d_vrml_grammar.h
	(x3d_vrml_grammar<Actions,ErrorHandler>): Changed template
	argument order to match the order of the constructor arguments.
	(x3d_vrml_grammar<Actions,ErrorHandler>::definition<ScannerT>::definition(const
	x3d_vrml_grammar &)): Added guard to vrml_scene production.
	* tests/parse_vrml97.cpp
	(main(int, char *[])): Removed guard.
	* tests/parse_x3dvrml.cpp
	(main(int, char *[])): Removed guard.

2007-12-09 Braden McDaniel  <braden@endoframe.com>

	Provide default parameter values for vrml97_grammar and
	x3d_vrml_grammar.

	* src/libopenvrml/openvrml/vrml97_grammar.h
	(openvrml::vrml_parse_error_handler::vrml_parse_error_handler(std::ostream&):
	Default argument to std::cerr.
	(openvrml::vrml97_grammar<ErrorHandler,Actions>::vrml97_grammar(const
	Actions &, const ErrorHandler &)): Provide default values for
	parameters.
	* src/libopenvrml/openvrml/x3d_vrml_grammar.h
	(openvrml::x3d_vrml_parse_error_handler::x3d_vrml_parse_error_handler(std::ostream&):
	Default argument to std::cerr.
	(openvrml::x3d_vrml_grammar<ErrorHandler,Actions>::x3d_vrml_grammar(const
	Actions &, const ErrorHandler &)): Provide default values for
	parameters.
	* tests/parse_vrml97.cpp
	(main(int, char *[])): Use default parameter values when
	instantiating vrml97_grammar.
	* tests/parse_x3dvrml.cpp
	(main(int, char *[])): Use default parameter values when
	instantiating x3d_vrml_grammar.

2007-12-08 Braden McDaniel  <braden@endoframe.com>

	Fixes for building with Microsoft C/C++ 15.00.21022.08 (Visual C++
	9.0).  Also, it looks like Boost threads will pull in windows.h in
	the forthcoming 1.35 release; that makes OpenVRML's widespread use
	of the identifier "interface" problematic.  That has been
	addressed.

	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj
	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node.h
	* src/libopenvrml/openvrml/node_impl_util.h
	* src/libopenvrml/openvrml/script.cpp
	* src/libopenvrml/openvrml/script.h
	* src/libopenvrml/openvrml/vrml97_grammar.h
	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml/openvrml/x3d_cad_geometry.cpp
	* src/libopenvrml/openvrml/x3d_core.cpp
	* src/libopenvrml/openvrml/x3d_dis.cpp
	* src/libopenvrml/openvrml/x3d_environmental_effects.cpp
	* src/libopenvrml/openvrml/x3d_event_utilities.cpp
	* src/libopenvrml/openvrml/x3d_geometry2d.cpp
	* src/libopenvrml/openvrml/x3d_geospatial.cpp
	* src/libopenvrml/openvrml/x3d_grouping.cpp
	* src/libopenvrml/openvrml/x3d_hanim.cpp
	* src/libopenvrml/openvrml/x3d_interpolation.cpp
	* src/libopenvrml/openvrml/x3d_key_device_sensor.cpp
	* src/libopenvrml/openvrml/x3d_networking.cpp
	* src/libopenvrml/openvrml/x3d_nurbs.cpp
	* src/libopenvrml/openvrml/x3d_rendering.cpp
	* src/libopenvrml/openvrml/x3d_shape.cpp
	* src/libopenvrml/openvrml/x3d_texturing.cpp
	* src/libopenvrml/openvrml/x3d_vrml_grammar.h

2007-12-07 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/x3d_vrml_grammar.h
	(x3d_vrml_grammar<ErrorHandler,Actions>::definition<ScannerT>::definition(const
	x3d_vrml_grammar &)): Call set_component_level when parsing the
	component level.

2007-12-06 Braden McDaniel  <braden@endoframe.com>

	Added Visual C++ 9.0 project files.

	* ide-projects/Makefile.am
	* ide-projects/Windows/VisualC9_0/OpenVRML/OpenVRML.sln
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml-config.h
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml/openvrml.rc
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.vcproj
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl-config.h
	* ide-projects/Windows/VisualC9_0/OpenVRML/openvrml-gl/openvrml-gl.rc
	* ide-projects/Windows/VisualC9_0/OpenVRML/sdl-viewer/sdl-viewer.vcproj

2007-12-06 Braden McDaniel  <braden@endoframe.com>

	Replaced holdout occurrence of boost::recursive_mutex in
	openvrml::event_emitter with openvrml::read_write_mutex.

	* src/libopenvrml/openvrml/event.h
	(openvrml::event_emitter): Removed boost::recursive_mutex mutex_;
	added read_write_mutexes listeners_mutex_ and last_time_mutex_.
	Removed listeners accessor and mutator; removed last_time mutator.
	Added template member functions add, remove, and emit_event.
	(openvrml::event_emitter::add<FieldValue>(field_value_listener<FieldValue>&)):
	Added function.  Moved listener addition logic here.
	(openvrml::event_emitter::remove<FieldValue>(field_value_listener<FieldValue>&)):
	Added function.  Moved listener removal logic here.
	(openvrml::event_emitter::emit_event<FieldValue>(double)): Added
	function.  Moved listener iteration logic here.
	(openvrml::field_value_emitter<FieldValue>::emit_event(double)):
	Delegate to event_emitter::emit_event<FieldValue>.
	(openvrml::field_value_emitter<FieldValue>::add(field_value_listener<FieldValue>&)):
	Delegate to event_emitter::add<FieldValue>.
	(openvrml::field_value_emitter<FieldValue>::remove(field_value_listener<FieldValue>&)):
	Delegate to event_emitter::remove<FieldValue>.
	* src/libopenvrml/openvrml/event.cpp
	(openvrml::event_emitter::mutex() const): Removed function.
	(openvrml::event_emitter::last_time() const): Lock the
	last_time_mutex_.
	(openvrml::event_emitter::listeners()): Removed function.
	(openvrml::event_emitter::listeners() const): Removed function.
	(openvrml::event_emitter::last_time(double)): Removed function.

2007-12-06 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/basetypes.cpp
	(openvrml::operator>>(std::istream & in, rotation & rot)): Removed
	stray unused variables.

2007-12-05 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/node.h: Removed unnecessary inclusion
	of <boost/thread/recursive_mutex.hpp>.

2007-12-05 Braden McDaniel  <braden@endoframe.com>

	Leverage the base type parsers in the stream insertion operator
	implementations.

	* src/libopenvrml/openvrml/basetypes.cpp
	(openvrml::operator>>(std::istream &, color &)): Use color_p.
	(openvrml::operator>>(std::istream &, color_rgba &)): Use
	color_rgba_p.
	(openvrml::operator>>(std::istream &, vec2f &)): Use vec2f_p.
	(openvrml::operator>>(std::istream &, vec2d &)): Use vec2d_p.
	(openvrml::operator>>(std::istream &, vec3f &)): Use vec3f_p.
	(openvrml::operator>>(std::istream &, vec3d &)): Use vec3d_p.
	(openvrml::operator>>(std::istream &, rotation &)): Use
	rotation_parser.
	(openvrml::operator>>(std::istream &, image &)): Use image_p.

2007-12-04 Braden McDaniel  <braden@endoframe.com>

	Replaced ANTLR-based parsers with Spirit-based ones.

	* README: Removed references to ANTLR.
	* THANKS: Removed references to ANTLR.
	* configure.ac: No longer need to check for ANTLR.
	* doc/index.doc: Added a starting point for documentation for the
	new parsers.
	* examples/Makefile.am: Added pretty-print example.
	* examples/pretty_print.cpp: Added.
	* lib/Makefile.am: Removed ANTLR C++ support library.
	* lib/antlr: Removed ANTLR C++ support library.
	* m4/antlr.m4: Removed.
	* src/Makefile.am
	(openvrml_include_HEADERS): Added headers for vrml97_grammar and
	x3d_vrml_grammar.
	(noinst_HEADERS): Removed references to ANTLR-generated files.
	(libopenvrml_libopenvrml_la_CPPFLAGS): Define
	BOOST_SPIRIT_CLOSURE_LIMIT and PHOENIX_LIMIT to 6.
	(libopenvrml_libopenvrml_la_SOURCES): Added vrml97_grammar.cpp.
	(libopenvrml_libopenvrml_la_LIBADD): Removed reference to
	libantlr.la.
	(EXTRA_DIST): Removed references to ANTLR grammars and
	ANTLR-generated files.
	(MAINTAINERCLEANFILES): Don't need this anymore.
	* src/libopenvrml/openvrml/Vrml97Parser.g: Removed.
	* src/libopenvrml/openvrml/Vrml97TokenTypes.txt: Removed.
	* src/libopenvrml/openvrml/X3DVrmlParser.g: Removed.
	* src/libopenvrml/openvrml/X3DVrmlTokenTypes.txt: Removed.
	* src/libopenvrml/openvrml/basetypes.cpp
	(vrml97_space_p): Moved to vrml97_grammar.h.
	(intensity_p): Moved to vrml97_grammar.h.
	(openvrml::operator>>(std::istream &, vec2f &)): Use
	openvrml::float_p instead of boost::spirit::real_p.
	(openvrml::operator>>(std::istream &, vec3f &)): Use
	openvrml::float_p instead of boost::spirit::real_p.
	(openvrml::operator>>(std::istream &, rotation &)): Use
	openvrml::float_p instead of boost::spirit::real_p.
	(openvrml::operator>>(std::istream &, mat4f &)): Use
	openvrml::float_p instead of boost::spirit::real_p.
	(openvrml::operator>>(std::istream &, quatf &)): Use
	openvrml::float_p instead of boost::spirit::real_p.
	(openvrml::image::image()): Moved to basetypes.h as inline.
	(openvrml::image::image(size_t, size_t, size_t): Moved to
	basetypes.h as inline.
	(openvrml::image::swap(image &)): Moved to basetypes.h as inline.
	(int32_p): Moved to vrml97_grammar.h.
	* src/libopenvrml/openvrml/basetypes.h
	(openvrml::image::image()): Moved from basetypes.cpp to be inline.
	(openvrml::image::image(size_t, size_t, size_t): Moved from
	basetypes.cpp to be inline.
	(openvrml::image::swap(image &)): Moved from basetypes.cpp to be
	inline.
	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::browser::externproto_node_metatype): Moved to be a
	member of openvrml::browser.
	(openvrml::browser::externproto_node_type): Moved to be a member
	of openvrml::browser.
	(openvrml::externproto_node): Moved to be a member of openvrml.
	(openvrml::profile(const std::string &)): Added function; get the
	node types corresponding to a profile.
	(openvrml::add_component(node_type_decls &, const std::string &,
	size_t)): Add the node types corresponding to a component level to
	node_type_decls map.
	(openvrml::browser::vrml97_parse_actions): Semantic actions for
	constructing a scene from VRML97.
	(openvrml::browser::x3d_vrml_parse_actions): Semantic actions for
	constructing a scene from X3D-VRML.
	(openvrml::browser::parse_vrml(std::istream &, const std::string&,
	const std::string &, const openvrml::scene &,
	std::vector<boost::intrusive_ptr<openvrml::node> > &,
	std::map<std::string, std::string> &)): Moved to be a member of
	openvrml::browser; use the Spirit parsers instead of the ANTLR
	ones.
	(openvrml::browser::root_scene_loader::operator()() const):
	browser::set_world can no longer throw antlr::ANTLRException.
	(component::add_type_desc(openvrml::node_type_decls &, const
	std::string &, const openvrml::node_interface_set &)): Added
	function; insert an entry into a node_type_decls map.
	(component::add_to_node_type_desc_map(openvrml::node_type_decls &,
	size_t)): Add the node types corresponding to a level of the
	component to a node_type_decls map.
	(vrml97_component::do_add_to_scope(const openvrml::browser &,
	openvrml::scope &, size_t)): Construct node_interface_sets from
	the member node_interface arrays.
	(vrml97_component::do_add_to_node_type_desc_map(openvrml::node_type_decls&,
	size_t)): Add the node types corresponding to a level of the
	component to a node_type_decls map.
	(x3d_core_component::do_add_to_scope(const openvrml::browser &,
	openvrml::scope &, size_t)): Construct node_interface_sets from
	the member node_interface arrays.
	(x3d_core_component::do_add_to_node_type_desc_map(openvrml::node_type_decls&,
	size_t)): Add the node types corresponding to a level of the
	component to a node_type_decls map.
	(x3d_time_component::do_add_to_scope(const openvrml::browser &,
	openvrml::scope &, size_t)): Construct node_interface_sets from
	the member node_interface arrays.
	(x3d_time_component::do_add_to_node_type_desc_map(openvrml::node_type_decls&,
	size_t)): Add the node types corresponding to a level of the
	component to a node_type_decls map.
	(x3d_networking_component::do_add_to_scope(const
	openvrml::browser&, openvrml::scope &, size_t)): Construct
	node_interface_sets from the member node_interface arrays.
	(x3d_networking_component::do_add_to_node_type_desc_map(openvrml::node_type_decls&,
	size_t)): Add the node types corresponding to a level of the
	component to a node_type_decls map.
	(x3d_grouping_component::do_add_to_scope(const openvrml::browser&,
	openvrml::scope &, size_t)): Construct node_interface_sets from
	the member node_interface arrays.
	(x3d_grouping_component::do_add_to_node_type_desc_map(openvrml::node_type_decls&,
	size_t)): Add the node types corresponding to a level of the
	component to a node_type_decls map.
	(x3d_rendering_component::do_add_to_scope(const
	openvrml::browser&, openvrml::scope &, size_t)): Construct
	node_interface_sets from the member node_interface arrays.
	(x3d_rendering_component::do_add_to_node_type_desc_map(openvrml::node_type_decls&,
	size_t)): Add the node types corresponding to a level of the
	component to a node_type_decls map.
	(x3d_shape_component::do_add_to_scope(const openvrml::browser&,
	openvrml::scope &, size_t)): Construct node_interface_sets from
	the member node_interface arrays.
	(x3d_shape_component::do_add_to_node_type_desc_map(openvrml::node_type_decls&,
	size_t)): Add the node types corresponding to a level of the
	component to a node_type_decls map.
	(x3d_geometry3d_component::do_add_to_scope(const
	openvrml::browser&, openvrml::scope &, size_t)): Construct
	node_interface_sets from the member node_interface arrays.
	(x3d_geometry3d_component::do_add_to_node_type_desc_map(openvrml::node_type_decls&,
	size_t)): Add the node types corresponding to a level of the
	component to a node_type_decls map.
	(x3d_geometry2d_component::do_add_to_scope(const
	openvrml::browser&, openvrml::scope &, size_t)): Construct
	node_interface_sets from the member node_interface arrays.
	(x3d_geometry2d_component::do_add_to_node_type_desc_map(openvrml::node_type_decls&,
	size_t)): Add the node types corresponding to a level of the
	component to a node_type_decls map.
	(x3d_text_component::do_add_to_scope(const openvrml::browser&,
	openvrml::scope &, size_t)): Construct node_interface_sets from
	the member node_interface arrays.
	(x3d_text_component::do_add_to_node_type_desc_map(openvrml::node_type_decls&,
	size_t)): Add the node types corresponding to a level of the
	component to a node_type_decls map.
	(x3d_sound_component::do_add_to_scope(const openvrml::browser&,
	openvrml::scope &, size_t)): Construct node_interface_sets from
	the member node_interface arrays.
	(x3d_sound_component::do_add_to_node_type_desc_map(openvrml::node_type_decls&,
	size_t)): Add the node types corresponding to a level of the
	component to a node_type_decls map.
	(x3d_lighting_component::do_add_to_scope(const openvrml::browser&,
	openvrml::scope &, size_t)): Construct node_interface_sets from
	the member node_interface arrays.
	(x3d_lighting_component::do_add_to_node_type_desc_map(openvrml::node_type_decls&,
	size_t)): Add the node types corresponding to a level of the
	component to a node_type_decls map.
	(x3d_texturing_component::do_add_to_scope(const
	openvrml::browser&, openvrml::scope &, size_t)): Construct
	node_interface_sets from the member node_interface arrays.
	(x3d_texturing_component::do_add_to_node_type_desc_map(openvrml::node_type_decls&,
	size_t)): Add the node types corresponding to a level of the
	component to a node_type_decls map.
	(x3d_interpolation_component::do_add_to_scope(const
	openvrml::browser&, openvrml::scope &, size_t)): Construct
	node_interface_sets from the member node_interface arrays.
	(x3d_interpolation_component::do_add_to_node_type_desc_map(openvrml::node_type_decls&,
	size_t)): Add the node types corresponding to a level of the
	component to a node_type_decls map.
	(x3d_pointing_device_sensor_component::do_add_to_scope(const
	openvrml::browser&, openvrml::scope &, size_t)): Construct
	node_interface_sets from the member node_interface arrays.
	(x3d_pointing_device_sensor_component::do_add_to_node_type_desc_map(openvrml::node_type_decls&,
	size_t)): Add the node types corresponding to a level of the
	component to a node_type_decls map.
	(x3d_key_device_sensor_component::do_add_to_scope(const
	openvrml::browser&, openvrml::scope &, size_t)): Construct
	node_interface_sets from the member node_interface arrays.
	(x3d_key_device_sensor_component::do_add_to_node_type_desc_map(openvrml::node_type_decls&,
	size_t)): Add the node types corresponding to a level of the
	component to a node_type_decls map.
	(x3d_environmental_sensor_component::do_add_to_scope(const
	openvrml::browser&, openvrml::scope &, size_t)): Construct
	node_interface_sets from the member node_interface arrays.
	(x3d_environmental_sensor_component::do_add_to_node_type_desc_map(openvrml::node_type_decls&,
	size_t)): Add the node types corresponding to a level of the
	component to a node_type_decls map.
	(x3d_navigation_component::do_add_to_scope(const
	openvrml::browser&, openvrml::scope &, size_t)): Construct
	node_interface_sets from the member node_interface arrays.
	(x3d_navigation_component::do_add_to_node_type_desc_map(openvrml::node_type_decls&,
	size_t)): Add the node types corresponding to a level of the
	component to a node_type_decls map.
	(x3d_environmental_effects_component::do_add_to_scope(const
	openvrml::browser&, openvrml::scope &, size_t)): Construct
	node_interface_sets from the member node_interface arrays.
	(x3d_environmental_effects_component::do_add_to_node_type_desc_map(openvrml::node_type_decls&,
	size_t)): Add the node types corresponding to a level of the
	component to a node_type_decls map.
	(x3d_cad_geometry_component::do_add_to_scope(const
	openvrml::browser&, openvrml::scope &, size_t)): Construct
	node_interface_sets from the member node_interface arrays.
	(x3d_cad_geometry_component::do_add_to_node_type_desc_map(openvrml::node_type_decls&,
	size_t)): Add the node types corresponding to a level of the
	component to a node_type_decls map.
	(x3d_geospatial_component::do_add_to_scope(const
	openvrml::browser&, openvrml::scope &, size_t)): Construct
	node_interface_sets from the member node_interface arrays.
	(x3d_geospatial_component::do_add_to_node_type_desc_map(openvrml::node_type_decls&,
	size_t)): Add the node types corresponding to a level of the
	component to a node_type_decls map.
	(x3d_hanim_component::do_add_to_scope(const openvrml::browser&,
	openvrml::scope &, size_t)): Construct node_interface_sets from
	the member node_interface arrays.
	(x3d_hanim_component::do_add_to_node_type_desc_map(openvrml::node_type_decls&,
	size_t)): Add the node types corresponding to a level of the
	component to a node_type_decls map.
	(x3d_nurbs_component::do_add_to_scope(const openvrml::browser&,
	openvrml::scope &, size_t)): Construct node_interface_sets from
	the member node_interface arrays.
	(x3d_nurbs_component::do_add_to_node_type_desc_map(openvrml::node_type_decls&,
	size_t)): Add the node types corresponding to a level of the
	component to a node_type_decls map.
	(x3d_dis_component::do_add_to_scope(const openvrml::browser&,
	openvrml::scope &, size_t)): Construct node_interface_sets from
	the member node_interface arrays.
	(x3d_dis_component::do_add_to_node_type_desc_map(openvrml::node_type_decls&,
	size_t)): Add the node types corresponding to a level of the
	component to a node_type_decls map.
	(profile::create_node_type_desc_map()): Create a node_type_decls
	map corresponding to the profile.
	* src/libopenvrml/openvrml/browser.h
	(openvrml::profile(const std::string &)): Added function.
	(openvrml::add_component(node_type_decls &, const std::string &,
	size_t)): Added function.
	(openvrml::browser): Made parse_vrml function a private member.
	* src/libopenvrml/openvrml/node.cpp
	(openvrml::node_interface::node_interface(type_id,
	field_value::type_id, const std::string &)): Moved definition to
	node.h as inline.
	(openvrml::find_interface(const node_interface_set &, const
	std::string &)): Moved definition to node.h as inline.
	* src/libopenvrml/openvrml/node.h
	(openvrml::node_interface): Added default constructor.
	* src/libopenvrml/openvrml/vrml97_grammar.cpp: Doc-comments for
	vrml97_grammar and associated classes.
	* src/libopenvrml/openvrml/vrml97_grammar.h: VRML97 Spirit grammar
	and associated classes.
	* src/libopenvrml/openvrml/x3d_vrml_grammar.h: X3D-VRML Spirit
	grammar and associated classes.
	* tests/Makefile.am
	(AM_CPPFLAGS): Added flags for compiling Spirit grammars.
	(TESTS_ENVIRONMENT): Set BOOST_TEST_REPORT_LEVEL=no.
	(check_PROGRAMS): Added browser-parse-vrml.
	(parse_vrml97_LDADD): No longer needs libtest-openvrml.
	(parse_x3dvrml_LDADD): No longer needs libtest-openvrml.
	* tests/browser_parse_vrml.cpp: Added file.  Load test data into
	an openvrml::browser instance to test the semantic actions
	particular to openvrml::browser.
	* tests/parse_vrml97.cpp: Modified to parse a file using the
	default (null) semantic actions.
	* tests/parse_x3dvrml.cpp: Modified to parse a file using the
	default (null) semantic actions.
	* tests/testsuite.at: Added various tests.
	* tests/vrml97/bad/exposedfield-in-script.wrl: Ensure an
	exposedField in a Script fails.
	* tests/vrml97/bad/is-outside-proto.wrl: Ensure an occurrence of
	IS outside a PROTO definition fails.
	* tests/vrml97/bad/is-value-type-mismatch.wrl: Ensure an IS
	statement whose types don't match fails.
	* tests/vrml97/bad/route-from-field.wrl: Ensure an attempt to use
	ROUTE with a field identifier fails.
	* tests/vrml97/bad/route-sfint32-to-sfbool.wrl: Ensure a ROUTE
	whose types don't match fails.
	* tests/vrml97/bad/route-to-field.wrl: Ensure an attempt to ROUTE
	to a field fails.
	* tests/vrml97/bad/unrecognized-field.wrl: Ensure an unrecognized
	field identifier fails.
	* tests/vrml97/bad/value-for-eventin-in-proto.wrl: Ensure an
	attempt to provide a value for an eventIn in a PROTO fails.
	* tests/vrml97/good/minimal.wrl: A minimal VRML97 world.
	* tests/x3dv/good/deprecated-eventin.x3dv: Ensure a deprecation
	warning is emitted for "eventIn".
	* tests/x3dv/good/deprecated-eventout.x3dv: Ensure a deprecation
	warning is emitted for "eventOut".
	* tests/x3dv/good/deprecated-exposedfield.x3dv: Ensure a
	deprecation warning is emitted for "exposedField".
	* tests/x3dv/good/deprecated-field.x3dv: Ensure a deprecation
	warning is emitted for "field".

2007-12-03 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp
	(uri::resolve_against(const uri &) const): Initialize the path to
	"/" if it is empty.

2007-12-03 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp: Some minor code cleanup.

2007-12-03 Braden McDaniel  <braden@endoframe.com>

	Prefer Phoenix forms to Spirit actors.

	* src/libopenvrml/openvrml/basetypes.cpp
	(openvrml::operator>>(std::istream &, color &)): Use Phoenix
	instead of actors.
	(openvrml::operator>>(std::istream &, color_rgba &)): Use Phoenix
	instead of actors.
	(openvrml::operator>>(std::istream &, vec2f &)): Use Phoenix
	instead of actors.
	(openvrml::operator>>(std::istream &, vec2d &)): Use Phoenix
	instead of actors.
	(openvrml::operator>>(std::istream &, vec3f &)): Use Phoenix
	instead of actors.
	(openvrml::operator>>(std::istream &, vec3d &)): Use Phoenix
	instead of actors.
	(openvrml::operator>>(std::istream &, rotation &)): Use Phoenix
	instead of actors.
	(openvrml::operator>>(std::istream &, mat4f &)): Use Phoenix
	instead of actors.
	(openvrml::operator>>(std::istream &, quatf &)): Use Phoenix
	instead of actors.
	(openvrml::operator>>(std::istream &, image &)): Use Phoenix
	instead of actors.

2007-11-30 Braden McDaniel  <braden@endoframe.com>

	* src/Makefile.am (openvrml_xembed_openvrml_xembed_LDFLAGS):
	GL_LIBS should be sufficient.

2007-11-30 Braden McDaniel  <braden@endoframe.com>

	* README: Removed obsolete documentation for
	HAVE_APPLE_OPENGL_FRAMEWORK preprocessor symbol.

2007-11-30 Braden McDaniel  <braden@endoframe.com>

	* src/Makefile.am (openvrml_xembed_openvrml_xembed_LDFLAGS):
	Explicitly add GLU_LIBS here because libtool will not propagate
	the -dylib_file flag needed by Mac OS X 10.5.

2007-11-30 Braden McDaniel  <braden@endoframe.com>

	Use AX_CHECK_GLU to establish GL_CFLAGS, GL_LIBS when configuring
	gtkglext.

	* lib/gtkglext/Makefile.am (ACLOCAL_AMFLAGS): Look in openvrml's
	macro subdirectory.
	* lib/gtkglext/configure.in: Replaced OpenGL detection for X11 with
	AX_CHECK_GLU.

2007-11-30 Braden McDaniel  <braden@endoframe.com>

	Updated AX_CHECK_GL and AX_CHECK_GLU macros to provide more robust
	support for Mac OS X; particularly Mac OS X 10.5.

	* README: Removed documentation for --with-apple-opengl-framework.
	AX_CHECK_GL no longer provides this option.
	* m4/acx_pthread.m4: Updated to latest ACX_PTHREAD.
	* m4/ax_check_gl.m4: Updated to AX_CHECK_GL 2.0.  Includes changes
	to provide the proper linker flags when building with X11 on Mac
	OS X 10.5.
	* m4/ax_check_glu.m4: Updated to AX_CHECK_GLU 2.1.  Includes
	changes to accommodate building on Mac OS X 10.5.
	* m4/ax_lang_compiler_ms.m4: Added license information.
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp: Replaced uses of
	HAVE_APPLE_OPENGL_FRAMEWORK.

2007-11-30 Braden McDaniel  <braden@endoframe.com>

	* examples/Makefile.am (all-local): Depend on sdl-viewer.

2007-11-11 Braden McDaniel  <braden@endoframe.com>

	Updates for 0.16.7 release.

	* NEWS
	* README
	* configure.ac
	* doc/Doxyfile
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml/openvrml.rc
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml/openvrml.vcproj
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml-gl/openvrml-gl.rc
	* mozilla-plugin/configure.ac
	* src/Makefile.am: Updated libopenvrml libtool library version to
	7:6:1; updated libopenvrml-gl libtool library version to 6:8:0.

2007-11-11 Braden McDaniel  <braden@endoframe.com>

	Removed unnecessary preprocessor definitions.

	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml/openvrml.vcproj
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml-gl/openvrml-gl.vcproj
	* ide-projects/Windows/VisualC8_0/OpenVRML/sdl-viewer/sdl-viewer.vcproj

2007-11-11 Braden McDaniel  <braden@endoframe.com>

	Removed unnecessary WIN32 preprocessor definitions.

	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml/openvrml.vcproj
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml-gl/openvrml-gl.vcproj
	* ide-projects/Windows/VisualC8_0/OpenVRML/sdl-viewer/sdl-viewer.vcproj

2007-11-11 Braden McDaniel  <braden@endoframe.com>

	Quell some compiler/linker warnings.

	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml/openvrml.vcproj:
	Define _SCL_SECURE_NO_WARNINGS for the Release configuration to
	suppress warnings when using C++ standard library functions.
	Suppress the default libraries libcmt and libcmtd in the Release
	and Debug configurations, respectively.

2007-11-11 Braden McDaniel  <braden@endoframe.com>

	Don't define NO_STATIC_CONSTS for antlr.  The Microsoft compiler
	bug that necessitated this appears to have been fixed in cl
	14.00.50727.762.

	* ide-projects/Windows/VisualC8_0/OpenVRML/antlr/antlr.vcproj
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml/openvrml.vcproj

2007-11-11 Braden McDaniel  <braden@endoframe.com>

	Use floating point literals to quell compiler warnings.

	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	(get_spine_length(const std::vector<openvrml::vec3f> &)): Use
	floating point literals to quell compiler warnings.
	(get_cross_section_length(const std::vector<openvrml::vec2f> &)):
	Use floating point literals to quell compiler warnings.

2007-11-11 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/basetypes.h: Applied OPENVRML_API to
	friend declarations of operator<<.

2007-11-11 Braden McDaniel  <braden@endoframe.com>

	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml/openvrml.vcproj:
	Updated FreeType dependency to 2.3.5.

2007-11-11 Braden McDaniel  <braden@endoframe.com>

	Removed MFC dependency from resource scripts.

	* ide-projects/Makefile.am (VISUALC8_0_FILES): Removed references
	to resource.h files.
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml/openvrml.rc:
	Removed dependency on afxres.h.
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml/openvrml.vcproj:
	Removed reference to resource.h.
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml/resource.h:
	Removed.
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml-gl/openvrml-gl.rc
	Removed dependency on afxres.h.
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml-gl/openvrml-gl.vcproj
	Removed reference to resource.h.
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml-gl/resource.h:
	Removed.

2007-11-10 Braden McDaniel  <braden@endoframe.com>

	Build with libpng using the Visual C++ project files.

	* ide-projects/Windows/VisualC8_0/OpenVRML/OpenVRML.sln
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml/openvrml.vcproj
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml-gl/openvrml-gl.vcproj

2007-11-09 Braden McDaniel  <braden@endoframe.com>

	Prefer xulrunner-js and xulrunner-plugin pkg-config module names.

	* configure.ac
	* mozilla-plugin/configure.ac

2007-11-09 Braden McDaniel  <braden@endoframe.com>

	Removed completely unnecessary rpath from the Mozilla plug-in.

	* mozilla-plugin/configure.ac: Removed mozlibdir substitution.
	* mozilla-plugin/src/Makefile.am (openvrml_la_LDFLAGS): Removed
	rpath.

2007-11-09 Braden McDaniel  <braden@endoframe.com>

	Avoid including <mozilla-config.h>.  This file resides outside the
	paths specified in the pkg-config metadata.

	* mozilla-plugin/configure.ac: Set MOZ_X11 based on the value of
	no_x (as set by AC_PATH_X).  Removed mozincludedir substitution.
	* mozilla-plugin/src/Makefile.am (AM_CPPFLAGS): Removed
	-I$(mozincludedir).
	* mozilla-plugin/src/openvrml.cpp: Removed inclusion of
	<mozilla-config.h>.

2007-11-04 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Made GRE_PATH precious.

2007-11-04 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Get GRE_PATH from JS_LIBS rather than from
	pkg-config output.  This is resilient to providing JS_LIBS at
	configure time in situations where pkg-config metadata may
	unavaiable or otherwise nonfunctional.

2007-10-25 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp
	(uri::swap(uri &)): Swapping std::string invalidates iterators;
	see 21.3,5 in the C++ spec.  Copy the iterator offsets to
	temporary variables in order to recreate them.  This fixes a
	failure with Release builds using the Microsoft compiler.

2007-10-25 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::scene::get_resource(const std::vector<std::string> &)
	const): Catch invalid_url exception.

2007-10-22 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/node.cpp: Doc-comment fixes.

2007-10-19 Braden McDaniel  <braden@endoframe.com>

	Moved parse test input to persistent files (instead of files
	generated by the test machinery).

	* tests/Makefile.am (EXTRA_DIST): Add test files to the
	distribution.
	* tests/testsuite.at: Refer to the test files rather than using
	AT_DATA.
	* tests/vrml97/bad/proto-eventin-conflict.wrl
	* tests/vrml97/bad/proto-eventout-conflict.wrl
	* tests/vrml97/bad/unrecognized-node.wrl
	* tests/vrml97/bad/use-def-in-different-proto-default-value.wrl
	* tests/vrml97/good/def-use-in-proto-default-value.wrl
	* tests/vrml97/good/line-number.wrl
	* tests/vrml97/good/proto-containment-2-deep.wrl
	* tests/vrml97/good/proto-containment-trivial.wrl
	* tests/vrml97/good/proto-field-is-proto.wrl
	* tests/vrml97/good/proto-impl-exposedfield-event-is.wrl
	* tests/vrml97/good/proto-in-proto-default-value.wrl
	* tests/vrml97/good/route-referencing-current-node.wrl
	* tests/vrml97/good/self-referential-script-in-proto.wrl
	* tests/vrml97/good/self-referential-script.wrl
	* tests/vrml97/good/unimplemented-externproto.wrl
	* tests/vrml97/good/unrecognized-externproto.wrl
	* tests/x3dv/bad/unsupported-component-level.x3dv
	* tests/x3dv/good/core+core2.x3dv
	* tests/x3dv/good/minimal-full.x3dv
	* tests/x3dv/good/minimal-immersive.x3dv
	* tests/x3dv/good/minimal-interactive.x3dv
	* tests/x3dv/good/minimal-interchange.x3dv
	* tests/x3dv/good/minimal-mpeg4.x3dv
	* tests/x3dv/good/minimal.x3dv
	* tests/x3dv/good/x3d+vrml97-component.x3dv

2007-10-13 Braden McDaniel  <braden@endoframe.com>

	* doc/Makefile.am (DOCUMENTED_SOURCE_FILES): Added
	read_write_mutex source files.

2007-10-11 Braden McDaniel  <braden@endoframe.com>

	Improved resiliency of create_file_url to getcwd failures.

	* src/libopenvrml/openvrml/browser.cpp
	(create_file_url(const uri &)): Throw std::runtime_error if getcwd
	fails with an error other than ERANGE, EFAULT, or EINVAL.
	Assertion will fail in case of the latter two errors.
	(openvrml::scene::get_resource(const std::vector<std::string> &)
	const): Catch an exception thrown from create_file_url.

2007-10-11 Braden McDaniel  <braden@endoframe.com>

	* examples/sdl_viewer.cpp (sdl_viewer::run()):
	Initialize the SDL_Event struct.

2007-10-11 Braden McDaniel  <braden@endoframe.com>

	Made the scope parent pointer nonconst.

	* src/libopenvrml/openvrml/Vrml97Parser.g
	* src/libopenvrml/openvrml/scope.cpp
	* src/libopenvrml/openvrml/scope.h

2007-10-10 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/basetypes.h
	(openvrml::int32): Use boost::int32_t;

2007-10-10 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/basetypes.h
	(openvrml::image): Since unsigned long is quite probably larger
	than 4 bytes on 64-bit platforms, use openvrml::int32 in pixel
	accessor and mutator functions.
	* src/libopenvrml/openvrml/basetypes.cpp: Doc-comment updates.

2007-10-10 Braden McDaniel  <braden@endoframe.com>

	* tests/node_interface_set.cpp
	(find_exposedfield_matching_eventin): We want to test
	openvrml::find_interface here, not
	openvrml::node_interface_set::find.

2007-10-10 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/private.h: Added overload of std::operator<< to
	make BOOST_SPIRIT_DEBUG happy.

2007-10-10 Braden McDaniel  <braden@endoframe.com>

	Let libtool handle the dependency relationship between
	libopenvrml-gl and libopenvrml so clients can just refer to the
	former.

	* examples/Makefile.am (LDADD): Removed reference to
	libopenvrml.la.
	* src/Makefile.am
	(libopenvrml_gl_libopenvrml_gl_la_LIBADD): Depend on
	libopenvrml.la.
	(openvrml_xembed_openvrml_xembed_LDADD): Remove reference to
	libopenvrml.la.

2007-10-07 Braden McDaniel  <braden@endoframe.com>

	* examples/Makefile.am (AM_LDFLAGS): On Mac OS X, it seems we
	can't always rely on the dependency to be propagated via
	libopenvrml-gl.la; add GLU_LIBS here.

2007-10-07 Braden McDaniel  <braden@endoframe.com>

	* lib/gtkglext/configure.in: Add X_CFLAGS to CFLAGS before
	checking for GLX types.

2007-10-06 Braden McDaniel  <braden@endoframe.com>

	Made the build less recursive.

	* configure.ac: Removed references to obsolete makefiles.
	* lib/Makefile.am: Moved libantlr build rules here.
	* lib/antlr/GNUmakefile.am: Removed file.
	* src/Makefile.am: Moved build rules for libopenvrml,
	libopenvrml-gl, openvrml-xembed, and openvrml-player here.
	* src/libopenvrml/Makefile.am: Removed file.
	* src/libopenvrml-gl/Makefile.am: Removed file.
	* src/openvrml-player/Makefile.am: Removed file.
	* src/openvrml-xembed/Makefile.am: Removed file.

2007-10-06 Braden McDaniel  <braden@endoframe.com>

	Test fixes for Boost 1.34.1.

	* tests/Makefile.am
	* tests/browser.cpp
	* tests/color.cpp
	* tests/image.cpp
	* tests/mat4f.cpp
	* tests/node_interface_set.cpp
	* tests/node_metatype_id.cpp
	* tests/rotation.cpp

2007-09-26 Braden McDaniel  <braden@endoframe.com>

	Doc-comment fixes and improvements.

	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/read_write_mutex.cpp
	* src/libopenvrml/openvrml/x3d_environmental_effects.cpp

2007-09-26 Braden McDaniel  <braden@endoframe.com>

	* src/openvrml-xembed/gtkvrmlbrowser.cpp
	(resource_fetcher): Removed obsolete request_channel_mutex_
	member.

2007-09-20 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Use the FREETYPE_CFLAGS shell variable when
	testing whether FreeType needs const in callback function
	signatures.

2007-09-04 Braden McDaniel  <braden@endoframe.com>

	If two requests for the same resource are made, it is possible
	that the one picked from the uninitialized_plugin_streambuf_map_
	for the purpose of calling set_get_url_result will be one for
	which that has already been called.

	This change introduces the requested_plugin_streambuf_map_, which
	is a holding area for streambufs for which set_get_url_result has
	not yet been called.

	* src/openvrml-xembed/gtkvrmlbrowser.cpp
	(resource_fetcher::do_get_resource(const std::string &)): Insert
	the new plugin_streambuf into the requested_plugin_streambuf_map_
	instead of the uninitialized_plugin_streambuf_map_.
	* src/openvrml-xembed/main.cpp
	(openvrml_xembed::command_istream_reader::operator()() const): Get
	the plugin_streambuf from the requested_plugin_streambuf_map_ when
	handling the get-url-result command.
	* src/openvrml-xembed/plugin_streambuf.cpp
	(openvrml_xembed::plugin_streambuf::set_get_url_result(int)):
	Erase the plugin_streambuf from the
	requested_plugin_streambuf_map_ and, if the result code indicates
	success, insert it in the uninitialized_plugin_streambuf_map_.
	(openvrml_xembed::plugin_streambuf::init(size_t, const
	std::string&, const std::string &)): Changes for parity with
	change to
	openvrml_xembed::uninitialized_plugin_streambuf_map::erase.
	(openvrml_xembed::plugin_streambuf::fail()): Changes for parity
	with change to
	openvrml_xembed::uninitialized_plugin_streambuf_map::erase.
	(openvrml_xembed::requested_plugin_streambuf_map::find(const
	std::string &) const): Added function.  Find a plugin_streambuf
	given a URL.
	(openvrml_xembed::requested_plugin_streambuf_map::insert(const
	std::string &, const boost::shared_ptr<plugin_streambuf> &)):
	Added function.  Insert a plugin_streambuf into the map.
	(openvrml_xembed::requested_plugin_streambuf_map::map_entry_matches_streambuf):
	Predicate used in
	openvrml_xembed::requested_plugin_streambuf_map::erase.
	(openvrml_xembed::requested_plugin_streambuf_map::erase(const
	plugin_streambuf &)): Erase a plugin_streambuf from the map.
	(openvrml_xembed::requested_plugin_streambuf_map_): Map instance.
	(openvrml_xembed::uninitialized_plugin_streambuf_map::map_entry_matches_streambuf):
	Predicate used in
	openvrml_xembed::uninitialized_plugin_streambuf_map::erase.
	(openvrml_xembed::uninitialized_plugin_streambuf_map::erase(const
	plugin_streambuf &)): Changed to take a reference to a
	plugin_streambuf (rather than a URL).
	* src/openvrml-xembed/plugin_streambuf.h
	(openvrml_xembed::requested_plugin_streambuf_map): A map to hold
	plugin_streambuf instances for which
	plugin_streambuf::set_get_url_result has not yet been called.

2007-09-04 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/vrml97node.cpp
	(image_texture_node::update_texture()): Catch any exception thrown
	in the process of creating the image stream.

2007-09-02 Braden McDaniel  <braden@endoframe.com>

	Changes to facilitate setting openvrml-player's location entry
	after the world has been loaded.

	Significantly, access to the GIOChannel used by the
	GtkVrmlBrowser (i.e., the request channel) needed to be made
	thread-safe.  Accordingly, all access to the request channel now
	goes through the function openvrml_xembed::write_request_chars.

	* doc/openvrml-xembed.texi: Documented browser-event and world-url
	requests; and add-browser-event-listener,
	remove-browser-event-listener, and get-world-url commands.
	* src/openvrml-player/Makefile.am (AM_CPPFLAGS): -I flags for
	libopenvrml headers.  player.cpp now uses
	openvrml::browser_event::type_id enumerants.
	* src/openvrml-player/player.cpp
	(main(int, char *[])): Factored subprocess spawning to
	spawn_openvrml_xembed; made location_entry a global variable.
	(get_openvrml_xembed_cmd(gint &, gchar ** &)): Get the program
	name--and any user-supplied arguments--for openvrml-xembed.  The
	result is an argument vector to accommodate any user-supplied
	arguments in the OPENVRML_XEMBED environment variable.
	(spawn_openvrml_xembed(GdkNativeWindow, gint &, gint &)): Spawn
	the openvrml-xembed subprocess.
	(set_locationentry_text(const gchar *)): Set the text for the
	location text entry.
	(openvrml_player_request_data_available(GIOChannel *,
	GIOCondition, gpointer)): Added support for browser-event and
	world-url requests.
	* src/openvrml-xembed/Makefile.am (noinst_HEADERS): Added
	request_channel.h.
	* src/openvrml-xembed/gtkvrmlbrowser.cpp
	(resource_fetcher): Removed request_channel_ member; removed
	constructor definition (use compiler-generated default
	constructor).  Removed write_request_chars member function.
	(redraw_listener): Renamed browser_listener class.
	(event_func_listener): openvrml::browser_listener implementation
	for handling listeners registered with
	gtk_vrml_browser_add_listener.
	(GtkGLViewer): Added friend functions
	gtk_vrml_browser_get_world_url, gtk_vrml_browser_add_listener, and
	gtk_vrml_browser_remove_listener.  Added member
	event_func_listener_map_.
	(gtk_vrml_browser_new()): Removed GIOChannel argument.
	(gtk_vrml_browser_get_world_url(GtkVrmlBrowser *)): Get the URL of
	the currentl loaded world.
	(gtk_vrml_browser_add_listener(GtkVrmlBrowser *,
	GtkVrmlBrowserEventFunc, gpointer)): Add a browser event callback.
	(gtk_vrml_browser_remove_listener(GtkVrmlBrowser *, gulong)):
	Remove a browser event callback.
	(resource_fetcher::do_get_resource(const std::string &)): Send
	request using openvrml_xembed::write_request_chars.
	* src/openvrml-xembed/gtkvrmlbrowser.h
	(GtkVrmlBrowserEvent): Added enumeration.
	(GtkVrmlBrowserEventFunc): Type of callback function used with
	gtk_vrml_browser_add_listener.
	(gtk_vrml_browser_new()): Removed GIOChannel argument.
	(gtk_vrml_browser_get_world_url(GtkVrmlBrowser *)): Added
	function.
	(gtk_vrml_browser_add_listener(GtkVrmlBrowser *,
	GtkVrmlBrowserEventFunc, gpointer)): Added function.
	(gtk_vrml_browser_remove_listener(GtkVrmlBrowser *, gulong)):
	Added function.
	* src/openvrml-xembed/main.cpp
	(event_listener_id_map): Maps a listener identifier from the host
	application (i.e., from the add-browser-event-listener command) to
	the corresponding listener identifier gotten from the
	GtkVrmlBrowser.
	(command_istream_reader::operator()() const): Handle
	add-browser-event-listener, remove-browser-event-listener, and
	get-world-url commands.
	(openvrml_xembed_browser_event_func(GtkVrmlBrowser *,
	GtkVrmlBrowserEvent, gpointer)): GtkVrmlBrowser event listener
	callback function.  Sends browser-event via the request channel.
	(openvrml_xembed::write_request_chars(const gchar *, gssize,
	gsize*)): Lock the request_channel's mutex and write a request to
	be consumed by the host application.
	* src/openvrml-xembed/request_channel.h: Added file.  Declaration
	of openvrml_xembed::write_request_chars.

2007-07-29 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/node.h: Add find_interface to the std
	namespace so ADL will work with openvrml::node_interface_set.

2007-07-12 Braden McDaniel  <braden@endoframe.com>

	Updates for 0.16.6 release.

	* NEWS
	* README
	* configure.ac
	* doc/Doxyfile
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml/openvrml.rc
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml/openvrml.vcproj
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml-gl/openvrml-gl.rc
	* mozilla-plugin/configure.ac
	* src/libopenvrml/Makefile.am: Updated libtool library version
	to 7:5:1.
	* src/libopenvrml-gl/Makefile.am: Updated libtool library
	version to 6:7:0.

2007-07-12 Braden McDaniel  <braden@endoframe.com>

	Quell some warnings from gcc.

	* lib/gtkglext/gdk/gdkglpixmap.c
	* lib/gtkglext/gdk/gdkglwindow.c
	* lib/gtkglext/gdk/x11/gdkglcontext-x11.c
	* lib/gtkglext/gdk/x11/gdkglpixmap-x11.c
	* lib/gtkglext/gdk/x11/gdkglwindow-x11.c
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	* src/openvrml-player/filechooserdialog.cpp
	* src/openvrml-player/player.cpp

2007-07-11 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp: Doc-comment fix.

2007-07-11 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp
	(create_file_url(const uri &)): Quell type conversion warning.

2007-07-11 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::scene::get_resource(const std::vector<std::string> &)
	const): Emit the message in an exception thrown from
	resource_fetcher::get_resource to browser::err.

2007-07-11 Braden McDaniel  <braden@endoframe.com>

	* tests/node_interface_set.cpp: Changes to build with Boost 1.34.0.
	From Simon Barner <barner@users.sourceforge.net>

2007-07-10 Braden McDaniel  <braden@endoframe.com>

	* examples/sdl_viewer.cpp (sdl_viewer::run()): Don't call
	SDL_WaitEvent before calling SDL_PollEvent; it doesn't seem to be
	doing anything and could be deleterious.

2007-07-10 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/script.cpp
	(openvrml::script_node::create_script()): Treat the "ecmascript"
	scheme as JavaScript.

2007-07-10 Braden McDaniel  <braden@endoframe.com>

	Define JS_THREADSAFE when compiling against newer libmozjs.  This
	is required when building against the libmozjs included with
	Firefox 2.0.

	* configure.ac: The pkg-config metadata file for libmozjs doesn't
	include -DJS_THREADSAFE in Cflags.  Inspect mozilla-config.h to
	see if JS_THREADSAFE is defined there; and if so, add
	-DJS_THREADSAFE to JS_CFLAGS.
	* src/libopenvrml/openvrml/script.cpp
	(js_::script::activate(double, const std::string &, size_t, const
	openvrml::field_value *[])): When compiling with JS_THREADSAFE,
	call JS_SetContextThread on entering this function and
	JS_ClearContextThread on leaving it.

2007-07-09 Braden McDaniel  <braden@endoframe.com>

	* README: Added documentation for --with-libjs.

2007-07-09 Braden McDaniel  <braden@endoframe.com>

	Doc-comment fixes.

	* src/libopenvrml/openvrml/field_value.cpp
	* src/libopenvrml/openvrml/node.cpp

2007-07-01 Braden McDaniel  <braden@endoframe.com>

	* lib/antlr/GNUmakefile.am (EXTRA_DIST): Updates for ANTLR 2.7.7.

2007-07-01 Braden McDaniel  <braden@endoframe.com>

	* openvrml.pc.in: Added BOOST_LIB_SUFFIX to -lboost_thread.

2007-06-30 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Fixed comparison of with_libjs shell variable.

2007-06-30 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml-gl/openvrml/gl/viewer.cpp: Check to see whether
	HAVE_WINDOWS_H and HAVE_APPLE_OPENGL_FRAMEWORK are defined.

2007-06-30 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	(trackball(float, float, float, float)): Initialize rotation.

2007-06-30 Braden McDaniel  <braden@endoframe.com>

	Expose common attributes of lighting nodes via
	openvrml::light_node.

	* src/libopenvrml/openvrml/node.cpp
	(openvrml::light_node::ambient_intensity() const): Added function.
	(openvrml::light_node::intensity() const): Added function.
	(openvrml::light_node::on() const): Added function.
	(openvrml::light_node::color() const): Added function.
	* src/libopenvrml/openvrml/node.h
	(openvrml::light_node): Added member functions ambient_intensity,
	do_ambient_intensity, intensity, do_intensity, on, do_on, color,
	do_color.
	* src/libopenvrml/openvrml/vrml97node.cpp
	(abstract_light_node): Removed functions ambient_intensity,
	intensity, on, color.  Added virtual functions
	do_ambient_intensity, do_intensity, do_on, do_color.

2007-06-30 Braden McDaniel  <braden@endoframe.com>

	automake no longer requires that M4 macros be explicitly
	listed (in EXTRA_DIST) in order to be packaged.

	* Makefile.am
	* configure.ac
	* m4/COPYING: Removed; a copy of the GPL is now in the package
	root directory.
	* m4/Makefile.am: Removed.

2007-06-21 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Added option --with-libjs to enable use of libjs
	built from the stand-alone SpiderMonkey distribution.

2007-06-21 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/vrml97node.cpp: Wrap include of
	jpeglib.h in extern "C"; the MacPorts variant of the libjpeg
	header doesn't do this.

2007-06-06 Braden McDaniel  <braden@endoframe.com>

	Made constructors of mf* types taking a FieldValue::value_type
	inline.  This should facilitate elision of a copy of the argument.

	* src/libopenvrml/openvrml/field_value.cpp
	* src/libopenvrml/openvrml/field_value.h

2007-06-02 Braden McDaniel  <braden@endoframe.com>

	Updates for 0.16.5 release.

	* NEWS: Updated for 0.16.5 release.
	* README: Updated for 0.16.5 release.
	* configure.ac: Updated for 0.16.5 release.
	* doc/Doxyfile: Updated for 0.16.5 release.
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml/openvrml.rc:
	Updated for 0.16.5 release.
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml/openvrml.vcproj:
	Updated for 0.16.5 release.
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml-gl/openvrml-gl.rc:
	Updated for 0.16.5 release.
	* mozilla-plugin/configure.ac: Updated for 0.16.5 release.
	* src/libopenvrml/Makefile.am (LIBRARY_VERSION): Updated libtool
	library version number.
	* src/libopenvrml-gl/Makefile.am (LIBRARY_VERSION): Updated
	libtool library version number.

2007-06-01 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Upgrade to/require ANTLR 2.7.7.

2007-06-01 Braden McDaniel  <braden@endoframe.com>

	Locking fixes for loading inline scenes.

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::browser::set_world(resource_istream &)): Lock the
	scene_mutex_ with a read-write lock; promote the lock only when
	resetting scene_.
	(openvrml::scene::load(resource_istream &)): Release the locks
	before calling scene_loaded.

2007-06-01 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::browser::set_world(resource_istream &)): Sending TRUE
	to the newly-active Viewpoint's set_bind is handled in during
	initialization of the viewpoint_node implementation's metatype; we
	don't need to do it again.

2007-06-01 Braden McDaniel  <braden@endoframe.com>

	Ensure that scene pointers for the active viewpoint_node and the
	active navigation_info_node point to scenes that are either the
	browser's root_scene or one of its descendants.

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::browser::active_viewpoint(viewpoint_node &)): Validate
	that the argument viewpoint_node's scene is (a descendant of) the
	browser's root_scene.
	(openvrml::browser::active_navigation_info(navigation_info_node&)):
	Validate that the argument navigation_info_node's scene is (a
	descendant of) the browser's root_scene.

2007-06-01 Braden McDaniel  <braden@endoframe.com>

	Removed node-wide recursive mutex.

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::externproto_node::set_proto_node(proto_node_type &)):
	Removed lock.
	* src/libopenvrml/openvrml/node.cpp
	(openvrml::node::scene() const): Moved definition from node.h;
	acquire a read lock of the scene_mutex_.
	(openvrml::node::initialize(openvrml::scene &, double)): Acquire a
	read lock of the scene_mutex_; promote it to a write lock when
	actually setting the scene_.
	(openvrml::node::shutdown(double)): Acquire a read lock of the
	scene_mutex_; promote it to a write lock when actually setting the
	scene_.
	(openvrml::node::modified(bool)): Acquire a write lock of the
	modified_mutex_.
	(openvrml::node::modified() const): Acquire a read lock of the
	modified_mutex_.
	(openvrml::node::print(std::ostream &, size_t) const): Removed
	lock.
	(openvrml::appearance_node::render_appearance(viewer &,
	rendering_context)): Removed lock.
	(openvrml::bounded_volume_node::bounding_volume() const): Acquire
	a write lock of the bounding_volume_dirty_mutex_.
	(openvrml::bounded_volume_node::bounding_volume_dirty(bool)):
	Acquire a write lock of the bounding_volume_dirty_mutex_.
	(openvrml::bounded_volume_node::bounding_volume_dirty() const):
	Acquire a read lock of the bounding_volume_dirty_mutex_.
	(openvrml::child_node::relocate()): Removed lock.
	(openvrml::child_node::render_child(viewer &, rendering_context)):
	Removed lock.
	(openvrml::geometry_node::render_geometry(viewer &,
	rendering_context)): Lock the geometry_reference_mutex_.
	(openvrml::geometry_node::emissive() const): Removed lock.
	(openvrml::texture_node::render_texture(viewer &)): Lock the
	texture_reference_mutex_.
	* src/libopenvrml/openvrml/node.h
	(openvrml::node): Removed mutex_ and its accessor; changed scope_
	to be const; added scene_mutex_ and modified_mutex_.
	(openvrml::node::scene() const): Moved to be out-of-line in
	node.cpp.
	(openvrml::bounded_volume_node): Added
	bounding_volume_dirty_mutex_.
	(openvrml::geometry_node): Added geometry_reference_mutex_.
	(openvrml::texture_node): Added texture_reference_mutex_.
	* src/libopenvrml/openvrml/read_write_mutex.cpp
	(openvrml::read_write_mutex::scoped_read_write_lock::scoped_read_write_lock(read_write_mutex&)):
	Added constructor.
	(openvrml::read_write_mutex::scoped_read_write_lock::~scoped_read_write_lock()):
	Added destructor.
	(openvrml::read_write_mutex::scoped_read_write_lock::promote()):
	Added function to promote the lock to a write lock.
	(openvrml::read_write_mutex::scoped_read_write_lock::demote()):
	Added function to demote a promted lock back to a read lock.
	* src/libopenvrml/openvrml/read_write_mutex.h
	(openvrml::read_write_mutex): Added scoped_read_write_lock, a lock
	that is constructed as a read lock and can be promoted to a write
	lock.
	* src/libopenvrml/openvrml/vrml97node.cpp
	(background_node): Added read_write_mutexes to protect the
	images--front_mutex_, back_mutex_, left_mutex_, right_mutex_,
	top_mutex_, bottom_mutex_.
	(image_texture_node): Added image_mutex_.
	(background_metatype::do_render(viewer &) const): Acquire read
	locks of all the image mutexes before calling
	viewer::insert_background.
	(image_stream_listener): Replaced node_mutex_--a reference to the
	node-wide recursive mutex--with image_mutex_, a reference to the
	mutex associated with the image.
	(image_stream_listener::image_stream_listener(const std::string &,
	openvrml::image &, openvrml::node &,
	openvrml::read_write_mutex&)): Pass the read_write_mutex
	associated with the image instead of the node-wide recursive
	mutex.
	(openvrml_png_info_callback(png_structp, png_infop)): Acquire a
	write lock of the image_mutex_.
	(openvrml_png_row_callback(png_structp, png_bytep, png_uint_32,
	int)): Acquire a write lock of the image_mutex_.
	(image_stream_listener::jpeg_reader::do_read(const
	std::vector<unsigned char> &)): Acquire a write lock of the
	image_mutex_.
	(image_stream_listener::jpeg_reader::output_scanlines()): Removed
	lock.
	(update_texture(background_node &, openvrml::read_write_mutex &,
	const openvrml::mfstring &, openvrml::image &)): Pass the
	read_write_mutex associated with the image instead of the
	node-wide recursive mutex.
	(background_node::update_textures()): Pass the read_write_mutexes
	associated with the images instead of the node-wide recursive
	mutex.

2007-05-31 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.h
	(openvrml::browser): Changed default_viewpoint_ to be an
	intrusive_ptr<viewpoint_node>; changed default_navigation_info_ to
	be an intrusive_ptr<navigation_info_node>.

2007-05-31 Braden McDaniel  <braden@endoframe.com>

	Ensure indices into coordinate, normal, and color data are valid
	before using them in the renderer.

	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	(ShellData): Changed texAxes to be an array reference.
	(ShellData::ShellData): Changed texAxes to be an array reference.
	(insertShellConvex(ShellData *)): Ensure indices are valid before
	using them.
	(openvrml::gl::viewer::do_insert_shell(unsigned int, const
	std::vector<vec3f> &, const std::vector<int32> &, const
	std::vector<color> &, const std::vector<int32> &, const
	std::vector<vec3f> &, const std::vector<int32> &, const
	std::vector<vec2f> &, const std::vector<int32> &)): Initialize
	texAxes to { 0, 1 }.

2007-05-31 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::scene::url() const): Ensure the scene's URL is relative
	before trying to resolve it against that of the parent scene.

2007-05-25 Braden McDaniel  <braden@endoframe.com>

	Protect browser::load_root_scene_thread_ with a read-write mutex.

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::browser::~browser()): Lock the
	load_root_scene_thread_mutex_ for reading.
	(openvrml::browser::load_url(const std::vector<std::string> &,
	const std::vector<std::string> &)): Lock the
	load_root_scene_thread_mutex_.
	* src/libopenvrml/openvrml/browser.h
	(openvrml::browser): Added member load_root_scene_thread_mutex_.

2007-05-21 Braden McDaniel  <braden@endoframe.com>

	* src/openvrml-player/player.cpp
	(openvrml_player_request_data_available(GIOChannel *,
	GIOCondition, gpointer)): Fall out of the loop if we get a
	linefeed even if there is additional input; any additional input
	would be associated with an additional request.

2007-05-21 Braden McDaniel  <braden@endoframe.com>

	* tests/Makefile.am: Applied BOOST_LIB_SUFFIX to uses of
	-lboost_unit_test_framework.

2007-05-21 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Added check to ensure
	libboost_thread$BOOST_LIB_SUFFIX is usable.

2007-05-20 Braden McDaniel  <braden@endoframe.com>

	Replaced the browser-wide recursive mutex with several read-write
	mutexes.

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::browser::browser(resource_fetcher &, std::ostream &,
	std::ostream &)): Changed positions of fetcher_ and frame_rate_ in
	the member initializer list to match the declaration order.
	(openvrml::browser::~browser()): Lock the scene_mutex_ for
	reading.
	(openvrml::browser::root_scene() const): Lock the scene_mutex_ for
	reading.
	(openvrml::browser::find_node(const node &) const): Lock the
	scene_mutex_ for reading.
	(openvrml::browser::active_viewpoint() const): Lock the
	active_viewpoint_mutex_ for reading.
	(openvrml::browser::active_viewpoint(viewpoint_node &)): Lock the
	active_viewpoint_mutex_ for writing.
	(openvrml::browser::reset_default_viewpoint()): Lock the
	active_viewpoint_mutex_ for writing.
	(openvrml::browser::active_navigation_info() const): Lock the
	active_navigation_info_mutex_ for reading.
	(openvrml::browser::active_navigation_info(navigation_info_node&)):
	Lock the active_navigation_info_mutex_ for writing.
	(openvrml::browser::reset_default_navigation_info()): Lock the
	active_navigation_info_mutex_ for writing.
	(openvrml::browser::add_viewpoint(viewpoint_node &)): Lock the
	viewpoint_list_mutex_ for writing.
	(openvrml::browser::remove_viewpoint(viewpoint_node &)): Lock the
	viewpoint_list_mutex_ for writing.
	(openvrml::browser::viewer(openvrml::viewer *)): Lock the
	viewer_mutex_ for writing.
	(openvrml::browser::viewer()): Lock the viewer_mutex_ for reading.
	(openvrml::browser::current_speed()): Lock the
	active_navigation_info_mutex_ for reading.
	(openvrml::browser::world_url() const): Lock the scene_mutex_ for
	reading.
	(openvrml::browser::set_world(resource_istream &)): Lock the
	scene_mutex_ and the active_viewpoint_mutex_ for writing.
	(openvrml::browser::replace_world(const
	std::vector<boost::intrusive_ptr<node> > &)): Lock the
	scene_mutex_ for reading.
	(openvrml::browser::root_scene_loader::operator()() const): Lock
	the browser::scene_mutex_ for reading while getting the
	resource_istream.
	(openvrml::browser::create_vrml_from_stream(std::istream &, const
	std::string &)): Lock the scene_mutex_ for reading.
	(openvrml::browser::create_vrml_from_url(const
	std::vector<std::string> &, const boost::intrusive_ptr<node> &,
	const std::string &)): Lock the scene_mutex_ for reading.
	(openvrml::browser::frame_rate() const): Lock the
	frame_rate_mutex_ for reading.
	(openvrml::browser::sensitive_event(node *, double, bool, bool,
	const double (&)[3])): Don't need to lock the browser here.
	(openvrml::browser::update(double)): Lock the timers_mutex_ and
	the scripts_mutex_ for reading.
	(openvrml::browser::render()): Lock the scene_mutex_ and the
	active_viewpoint_mutex_ for reading.  Lock the
	scoped_lights_mutex_ for reading while iterating over the
	scoped_lights_ list.  Lock the frame_rate_mutex_ for writing.
	(openvrml::browser::delta(double)): Lock the delta_time_mutex_ for
	writing.
	(openvrml::browser::delta() const): Lock the delta_time_mutex_ for
	reading.
	(openvrml::browser::add_scoped_light(scoped_light_node &)): Lock
	the scoped_lights_mutex_ for writing.
	(openvrml::browser::remove_scoped_light(scoped_light_node &)):
	Lock the scoped_lights_mutex_ for writing.
	(openvrml::browser::add_script(script_node &)): Lock the
	scripts_mutex_ for writing.
	(openvrml::browser::remove_script(script_node &)): Lock the
	scripts_mutex_ for writing.
	(openvrml::browser::add_time_dependent(time_dependent_node &)):
	Lock the timers_mutex_ for writing.
	(openvrml::browser::remove_time_dependent(time_dependent_node &)):
	Lock the timers_mutex_ for writing.
	* src/libopenvrml/openvrml/browser.h
	(openvrml::browser): Removed mutex_; added scene_mutex_,
	active_viewpoint_mutex_, active_navigation_info_mutex_,
	viewpoint_list_mutex_, scoped_lights_mutex_, scripts_mutex_,
	timers_mutex_, delta_time_mutex_, viewer_mutex_, and
	frame_rate_mutex_.  Made frame_rate_ private rather than
	protected.  Changed viewpoints accessor to return a copy of the
	list (rather than a const reference).

2007-05-18 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/read_write_mutex.h
	(openvrml::read_write_mutex): Apply OPENVRML_API to
	read_write_mutex.

2007-05-17 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.h
	(openvrml::browser): Changed null_node_metatype_ and
	null_node_type_ from auto_ptrs to scoped_ptrs.

2007-05-17 Braden McDaniel  <braden@endoframe.com>

	* doc/doxygen-header: Style sheet fixes.

2007-05-15 Braden McDaniel  <braden@endoframe.com>

	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml/openvrml.vcproj:
	Added read_write_mutex.{cpp,h} to the project.

2007-05-15 Braden McDaniel  <braden@endoframe.com>

	Added a read/write mutex.  Hopefully Boost will have a read/write
	mutex before too long; if/when that happens, this one can probably
	go away.  openvrml::read_write_mutex simply follows the
	implementation described by Butenhof using the Boost thread
	primitives.

	* src/libopenvrml/Makefile.am
	(openvrml_include_HEADERS): Added openvrml/read_write_mutex.h.
	(libopenvrml_la_SOURCES): Added openvrml/read_write_mutex.cpp.
	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::browser::node_metatype_map::operator=(const
	node_metatype_map &)): Use read and write locks.
	(openvrml::browser::node_metatype_map::init(viewpoint_node *,
	double)): Use a read lock.
	(openvrml::browser::node_metatype_map::insert(const std::string &,
	const boost::shared_ptr<openvrml::node_metatype> &)): Use a write
	lock.
	(openvrml::browser::node_metatype_map::remove(const
	std::string&)): Use a write lock.
	(openvrml::browser::node_metatype_map::find(const std::string &)
	const): Use a read lock.
	(openvrml::browser::node_metatype_map::node_metatype_ids(const
	openvrml::node_metatype &) const): Use a read lock.
	(openvrml::browser::node_metatype_map::render(openvrml::viewer&)):
	Use a read lock.
	(openvrml::browser::node_metatype_map::shutdown(double)): Use a
	read lock.
	(openvrml::browser::set_world(resource_istream &)): Only grab the
	browser-wide mutex for as long as necessary.  This needs more
	attention; but this change is a start.
	(openvrml::browser::root_scene_loader::operator()() const): Grab
	the browser-wide recursive mutex.
	(openvrml::browser::add_listener(browser_listener &)): Acquire a
	write lock of the listeners_mutex_.
	(openvrml::browser::remove_listener(browser_listener &)): Acquire
	a write lock of the listeners_mutex_.
	(openvrml::browser::modified(bool)): Acquire a write lock of the
	modified_mutex_.
	(openvrml::browser::modified()): Acquire a read lock of the
	modified_mutex_.
	(openvrml::scene::load(resource_istream &)): Acquire write locks.
	(openvrml::scene::initialize(double)): Acquire a read lock.
	(openvrml::scene::meta(const std::string &, const std::string &)):
	Aquire a write lock.
	(openvrml::scene::meta_keys() const): Acquire a read lock.
	(openvrml::scene::nodes() const): Acquire a read lock.
	(openvrml::scene::nodes(const
	std::vector<boost::intrusive_ptr<node> > &)): Acquire a write
	lock.
	(openvrml::scene::root_scope() const): Acquire a read lock.
	(openvrml::scene::url() const): Acquire a read lock.
	(openvrml::scene::render(openvrml::viewer &, rendering_context)):
	Aquire a read lock.
	(openvrml::scene::shutdown(double)): Aquire a read lock.
	* src/libopenvrml/openvrml/browser.h
	(openvrml::browser::node_metatype_map): Changed mutex_ to be a
	read_write_mutex.
	(openvrml::browser): Added member listeners_mutex_ to protect
	listeners_.
	(openvrml::scene): Changed nodes_mutex_, url_mutex_, and
	meta_mutex_ to be read_write_mutexes.
	* src/libopenvrml/openvrml/read_write_mutex.cpp
	(openvrml::read_write_mutex::scoped_read_lock::scoped_read_lock(read_write_mutex&)):
	Acquire a lock for reading.
	(openvrml::read_write_mutex::scoped_read_lock::~scoped_read_lock()):
	Release a read lock.
	(openvrml::read_write_mutex::scoped_write_lock::scoped_write_lock(read_write_mutex&)):
	Acquire a lock for writing.
	(openvrml::read_write_mutex::scoped_write_lock::~scoped_write_lock()):
	Release a write lock.
	(openvrml::read_write_mutex::read_write_mutex()): Construct a
	read/write mutex.
	* src/libopenvrml/openvrml/read_write_mutex.h
	(openvrml::read_write_mutex): Added class.
	* src/openvrml-xembed/gtkvrmlbrowser.cpp
	(GtkGLViewer): Changed browser_initialized_mutex_ to an
	openvrml::read_write_mutex.
	(GtkGLViewer::load_url::operator()() const): Acquire a write lock.
	(gtk_vrml_browser_set_world(GtkVrmlBrowser *,
	openvrml::resource_istream &)): Acquire a write lock.
	(gtk_vrml_browser_expose_event(GtkWidget *, GdkEventExpose *,
	gpointer)): Acquire a read lock.
	(gtk_vrml_browser_motion_notify_event(GtkWidget *,
	GdkEventMotion*, gpointer)): Acquire a read lock.
	(browser_listener::do_browser_changed(const
	openvrml::browser_event &)): Acquire a write lock.
	* src/openvrml-xembed/plugin_streambuf.cpp
	(openvrml_xembed::uninitialized_plugin_streambuf_map::find(const
	std::string &) const): Acquire a read lock.
	(openvrml_xembed::uninitialized_plugin_streambuf_map::insert(const
	std::string &, const boost::shared_ptr<plugin_streambuf> &)):
	Acquire a write lock.
	(openvrml_xembed::uninitialized_plugin_streambuf_map::erase(const
	std::string &)): Acquire a write lock.
	(openvrml_xembed::uninitialized_plugin_streambuf_map::size()
	const): Acquire a read lock.
	(openvrml_xembed::uninitialized_plugin_streambuf_map::empty()
	const): Acquire a read lock.
	(openvrml_xembed::uninitialized_plugin_streambuf_map::front()
	const): Acquire a read lock.
	(openvrml_xembed::plugin_streambuf_map::find(size_t) const):
	Acquire a read lock.
	(openvrml_xembed::plugin_streambuf_map::insert(size_t, const
	boost::shared_ptr<plugin_streambuf> &)): Acquire a write lock.
	(openvrml_xembed::plugin_streambuf_map::erase(size_t)): Acquire a
	write lock.
	* src/openvrml-xembed/plugin_streambuf.h
	(openvrml_xembed::uninitialized_plugin_streambuf_map): Changed
	mutex_ to an openvrml::read_write_mutex.
	(openvrml_xembed::plugin_streambuf_map): Changed mutex_ to an
	openvrml::read_write_mutex.

2007-05-14 Braden McDaniel  <braden@endoframe.com>

	Moved implementation of create_vrml_from_url to openvrml::scene.
	This allows the spawned thread to be a member of the
	scene::stream_reader_threads_ thread group; and it means that
	relative URLs in Script nodes in inline worlds should now resolve
	properly.  browser::create_vrml_from_url now simply delegates to
	scene::create_vrml_from_url on the root scene.

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::browser::vrml_from_url_creator): Moved to
	openvrml::scene::vrml_from_url_creator.
	(openvrml::browser::create_vrml_from_url(const
	std::vector<std::string> &, const boost::intrusive_ptr<node> &,
	const std::string &)): Delegate to
	openvrml::scene::create_vrml_from_url.
	(openvrml::scene::vrml_from_url_creator): Moved from
	openvrml::browser::vrml_from_url_creator.
	(openvrml::scene::create_vrml_from_url(const
	std::vector<std::string> &, const boost::intrusive_ptr<node> &,
	const std::string &)): Create the thread as a member of the
	stream_reader_threads_ group.
	* src/libopenvrml/openvrml/browser.h
	(openvrml::browser): Removed vrml_from_url_creator declaration.
	(openvrml::scene): Added vrml_from_url_creator declaration; added
	create_vrml_from_url member function.
	* src/libopenvrml/openvrml/script.cpp
	(js_::Browser::createVrmlFromURL(JSContext *, JSObject *, uintN,
	jsval *, jsval *)): Call openvrml::scene::create_vrml_from_url
	rather than openvrml::browser::create_vrml_from_url.

2007-05-14 Braden McDaniel  <braden@endoframe.com>

	Visual C++ 8.0 project file updates.

	* ide-projects/Windows/VisualC8_0/OpenVRML/OpenVRML.sln: Removed
	sdl-viewer dependency on antlr.  openvrml's dependency on antlr
	should be sufficient.
	* ide-projects/Windows/VisualC8_0/OpenVRML/antlr/antlr.vcproj:
	Added TokenRefCount.{cpp,hpp} to the project.  Define
	NO_STATIC_CONSTS; otherwise, static const integers defined in the
	class definition confuse the linker.
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml/openvrml.vcproj:
	Define NO_STATIC_CONSTS for antlr.  Added gdi32.lib, advapi32.lib,
	shell32.lib as additional dependencies--Visual C++ Express seems
	to need these, though the professional version does not.  Upgraded
	FreeType dependency to version 2.3.4. Made "Whole Program
	Optimization" a project default for the Release configuration.
	Ignore default libraries libcmtd.lib and libcmt.lib for Debug and
	Release configurations, respectively; boost_thread is probably
	pulling these in.
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml-gl/openvrml-gl.vcproj:
	Made "Whole Program Optimization" a project default for the
	Release configuration.
	* ide-projects/Windows/VisualC8_0/OpenVRML/sdl-viewer/sdl-viewer.vcproj:
	Ignore msvcrt.lib in the Debug configuration; SDL pulls this in.

2007-05-13 Braden McDaniel  <braden@endoframe.com>

	Moved read_stream to be a member of openvrml::scene.  We need to
	hang a thread group for these threads somewhere so we can join
	them; and the scene would seem to be a reasonable place.

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::read_stream(std::auto_ptr<resource_istream>,
	std::auto_ptr<stream_listener>)): Removed.
	(openvrml::scene::~scene()): Join any stream reader threads.
	(openvrml::scene::read_stream(std::auto_ptr<resource_istream>,
	std::auto_ptr<stream_listener>)): Read a stream.
	* src/libopenvrml/openvrml/browser.h
	(openvrml::read_stream(std::auto_ptr<resource_istream>,
	std::auto_ptr<stream_listener>)): Removed.
	(openvrml::scene): Added members stream_reader_threads_ and
	read_stream.
	* src/libopenvrml/openvrml/vrml97node.cpp
	(update_texture(background_node &, boost::recursive_mutex &, const
	openvrml::mfstring &, openvrml::image &)): Call read_stream on the
	scene.
	(image_texture_node::update_texture()): Call read_stream on the
	scene.

2007-05-12 Braden McDaniel  <braden@endoframe.com>

	In order to be thread-safe, scene::nodes and
	grouping_node::children must return a copy of the vector rather
	than a const reference.

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::scene::nodes() const): Return the vector of nodes as a
	copy.  As a consequence of this, the function could throw
	std::bad_alloc.
	* src/libopenvrml/openvrml/browser.h
	(openvrml::scene): Changed nodes accessor to return a copy of the
	node vector.
	* src/libopenvrml/openvrml/node.cpp
	(openvrml::grouping_node::children() const): Return the vector of
	nodes as a copy.  As a consequence of this, the function could
	throw std::bad_alloc.
	* src/libopenvrml/openvrml/node.h
	(openvrml::grouping_node): Changed children and do_children
	members to return the node vector by copy (rather than by const
	reference).
	* src/libopenvrml/openvrml/vrml97node.cpp
	(grouping_node_base): Changed do_children member to return the
	node vector by copy.
	(inline_node): Changed do_children member to return the node
	vector by copy.
	(lod_node): Changed do_children member to return the node vector
	by copy.
	(switch_node): Changed do_children member to return the node
	vector by copy.
	* src/libopenvrml/openvrml/x3d_cad_geometry.cpp
	(cad_face_node): Changed do_children member to return the node
	vector by copy.
	* src/libopenvrml/openvrml/x3d_grouping.cpp
	(static_group_node): Changed do_children member to return the node
	vector by copy.

2007-05-11 Braden McDaniel  <braden@endoframe.com>

	* doc/index.doc: Fixed reference.

2007-05-11 Braden McDaniel  <braden@endoframe.com>

	Protect the plugin_streambuf_map with a mutex.

	* src/openvrml-xembed/main.cpp
	(openvrml_xembed::command_istream_reader::operator()() const):
	plugin_streambuf_map::find now returns a
	shared_ptr<plugin_streambuf>. plugin_streambuf_map::erase now
	takes a stream id.
	* src/openvrml-xembed/plugin_streambuf.cpp
	(openvrml_xembed::plugin_streambuf::init(size_t, const
	std::string&, const std::string &)): Modified to use new
	plugin_streambuf_map interface.
	(openvrml_xembed::plugin_streambuf_map): Removed.
	(openvrml_xembed::plugin_streambuf_map::find(size_t) const): Added
	function.
	(openvrml_xembed::plugin_streambuf_map::insert(size_t, const
	boost::shared_ptr<plugin_streambuf> &)): Added function.
	(openvrml_xembed::plugin_streambuf_map::erase(size_t)): Added
	function.
	* src/openvrml-xembed/plugin_streambuf.h
	(openvrml_xembed::uninitialized_plugin_streambuf_map): Inherit
	boost::noncopyable.
	(openvrml_xembed::plugin_streambuf_map): Rather than just use a
	std::map directly, protect it with a mutex.

2007-05-05 Braden McDaniel  <braden@endoframe.com>

	* src/openvrml-player/player.cpp
	(main(int, char *[])): Pass GNOME_PARAM_APP_DATADIR to
	gnome_program_init.

2007-04-30 Braden McDaniel  <braden@endoframe.com>

	Updates for 0.16.4 release.

	* NEWS: Updated for 0.16.4 release.
	* README: Updated for 0.16.4 release.
	* configure.ac: Updated for 0.16.4 release.
	* doc/Doxyfile: Updated for 0.16.4 release.
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml/openvrml.rc:
	Updated for 0.16.4 release.
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml/openvrml.vcproj:
	Updated for 0.16.4 release.
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml-gl/openvrml-gl.rc:
	Updated for 0.16.4 release.
	* mozilla-plugin/configure.ac: Updated for 0.16.4 release.
	* src/libopenvrml/Makefile.am (LIBRARY_VERSION): Updated libtool
	library version number.
	* src/libopenvrml-gl/Makefile.am (LIBRARY_VERSION): Updated
	libtool library version number.

2007-04-29 Braden McDaniel  <braden@endoframe.com>

	* README: Added mention of the XEmbed control and OpenVRML Player
	to "License terms".

2007-04-29 Braden McDaniel  <braden@endoframe.com>

	* README: Documented --disable-player configure option.

2007-04-29 Braden McDaniel  <braden@endoframe.com>

	* README: Added /src/openvrml-player to package directory layout.

2007-04-29 Braden McDaniel  <braden@endoframe.com>

	Turned off "Enable Minimal Rebuild" in the Debug configuration; it
	seems to trigger compiler error C1073.

	* ide-projects/Windows/VisualC8_0/OpenVRML/antlr/antlr.vcproj
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml/openvrml.vcproj

2007-04-28 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Require libgnome 2.14.  openvrml-player uses
	GNOME_PARAM_GOPTION_CONTEXT, which was introduced in libgnome
	2.14.

2007-04-28 Braden McDaniel  <braden@endoframe.com>

	* src/openvrml-xembed/Makefile.am
	(AM_LDFLAGS): Culled redundant/unnecessary flags.

2007-04-28 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/vrml97node.cpp
	(char32_t): Ensure char32_t is 4 bytes even if wchar_t is not.

2007-04-27 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::browser::~browser()): Check to make sure we have a root
	scene thread before joining it.

2007-04-27 Braden McDaniel  <braden@endoframe.com>

	gtk_vrml_browser_load_url needs to spawn a new thread.  Otherwise
	we can hold up the main event loop and deadlock.

	* src/openvrml-xembed/gtkvrmlbrowser.cpp
	(resource_fetcher): Added thread_group_ for threads spawned from
	gtk_vrml_browser_load_url; added create_thread wrapper for
	boost::thread::thread_group::create_thread.
	(GtkGLViewer): Added member load_url, a thread function object.
	(GtkGLViewer::load_url): Thread function object called by thread
	spawned from gtk_vrml_browser_load_url.
	(gtk_vrml_browser_load_url(GtkVrmlBrowser *, const gchar **, const
	gchar **): Delegate to a new thread.
	(resource_fetcher::~resource_fetcher()): Join all threads in the
	thread group.
	(resource_fetcher::create_thread(const boost::function0<void> &)):
	Create a new thread.

2007-04-26 Braden McDaniel  <braden@endoframe.com>

	* lib/gtkglext/configure.in: Calls to AM_PATH_GLIB_2_0 and
	AM_PATH_GTK_2_0 aren't doing anything useful; actual dependency
	checking and definition of substitution variables happens using
	pkg-config.

2007-04-22 Braden McDaniel  <braden@endoframe.com>

	Ensure that only one thread at a time writes a request to the
	request channel.

	* src/openvrml-xembed/gtkvrmlbrowser.cpp
	(browser): Added member request_channel_mutex_ to protect
	request_channel_.  Added member function write_request_chars.
	(browser::do_get_resource(const std::string &)): Store a reference
	to the browser in the plugin_resource_istream so that the
	thread-safe function browser::write_request_chars can be called.
	(browser::write_request_chars(const gcharr *, gssize, gsize *)):
	Lock the request_channel_mutex_ while writing to the
	request_channel_.

2007-04-22 Braden McDaniel  <braden@endoframe.com>

	* src/openvrml-xembed/gtkvrmlbrowser.cpp
	(resource_fetcher::~resource_fetcher()): Added destructor
	definition; openvrml::resource_fetcher::~resource_fetcher is
	declared with OPENVRML_NOTHROW.

2007-04-18 Braden McDaniel  <braden@endoframe.com>

	Doc-comment improvements.

	* src/libopenvrml/openvrml/x3d_dis.cpp
	* src/libopenvrml/openvrml/x3d_geometry2d.cpp
	* src/libopenvrml/openvrml/x3d_geospatial.cpp

2007-04-17 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/script.cpp: Added doc-comments for
	openvrml::script_node::set_metadata_listener_,
	openvrml::script_node::metadata_, and
	openvrml::script_node::metadata_changed_emitter_.

2007-04-17 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/node_impl_util.cpp: Added doc-comment
	for openvrml::node_impl_util::abstract_node::self_t.

2007-04-16 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/bounding_volume.h
	(bounding_sphere): Changed parameter name to match doc-comment.

2007-04-16 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::scene::load_url(const std::vector<std::string> &, const
	std::vector<std::string> &)): Doc-comment fixes.

2007-04-16 Braden McDaniel  <braden@endoframe.com>

	IndexedQuadSet seems to offer a superset of QuadSet's
	functionality (to the extent that it's not clear why the latter
	exists as a distinct node).  Changed names used in the
	implementation to reflect that it supports IndexedQuadSet.

	* src/libopenvrml/openvrml/browser.cpp
	(x3d_cad_geometry_component::do_add_to_scope(const
	openvrml::browser &, openvrml::scope &, size_t)): Changed URN for
	QuadSet to "urn:X-openvrml:node:IndexedQuadSet".
	* src/libopenvrml/openvrml/x3d_cad_geometry.cpp: Renamed
	quad_set_node to indexed_quad_set_node; renamed quad_set_metatype
	to indexed_quad_set_metatype.

2007-04-16 Braden McDaniel  <braden@endoframe.com>

	* examples/sdl_viewer.cpp
	(browser::do_get_resource(const std::string &)): Use the MIME type
	strings exported by libopenvrml.

2007-04-16 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/viewer.cpp: Doc-comment improvements.

2007-04-15 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/vrml97node.cpp: Doc-comment
	improvements; use "class" when documenting friend classes.

2007-04-15 Braden McDaniel  <braden@endoframe.com>

	* src/openvrml-player/player.cpp
	(main(int, char *[])): Set the request_channel encoding to none.

2007-04-08 Braden McDaniel  <braden@endoframe.com>

	* src/openvrml-player/player.cpp
	(openvrml_player_request_data_available(GIOChannel *,
	GIOCondition, gpointer)): Clear the request_line buffer.

2007-04-01 Braden McDaniel  <braden@endoframe.com>

	Replaced *Url exposedField implementations with a class template.
	This incurs some runtime expense in terms of bloating
	background_node instances a bit; but since there shouldn't be too
	many of those, this is probably worth the code savings.

	* src/libopenvrml/openvrml/vrml97node.cpp
	(background_node::back_url_exposedfield): Removed class.
	(background_node::bottom_url_exposedfield): Removed class.
	(background_node::front_url_exposedfield): Removed class.
	(background_node::left_url_exposedfield): Removed class.
	(background_node::right_url_exposedfield): Removed class.
	(background_node::top_url_exposedfield): Removed class.
	(background_node::texture_url_exposedfield): Added template.
	(background_node): Use instances of texture_url_exposedfield for
	types of back_url_, bottom_url_, front_url_, left_url_,
	right_url_, and top_url_.
	(background_metatype::do_create_type(const std::string &, const
	node_interface_set &) const): Use instances of
	texture_url_exposedfield for types of back_url_, bottom_url_,
	front_url_, left_url_, right_url_, and top_url_.

2007-03-25 Braden McDaniel  <braden@endoframe.com>

	Don't send destroy-stream for requested streams for which
	new-stream was never sent.

	* src/openvrml-player/player.cpp
	(openvrml_player_curl_source_callback(gpointer)): Only send
	destroy-stream for streams that have been initialized; otherwise,
	send get-url-result with a value indicating failure.
	(openvrml_player_request_data_available(GIOChannel *,
	GIOCondition, gpointer)): Don't send a successful get-url-result
	immediately after dispatching the get-url request.
	(openvrml_player_curl_write(void *, size_t, size_t, void *)): If
	the stream hasn't been initialized yet, send a value for
	get-url-result indicating success.

2007-03-15 Braden McDaniel  <braden@endoframe.com>

	Prefer GLib's g_assert to assert everywhere except bounded_buffer.

	* src/openvrml-xembed/bounded_buffer.h: Include <cassert>.
	* src/openvrml-xembed/command_istream.cpp: Don't include <cassert>.
	* src/openvrml-xembed/gtkvrmlbrowser.cpp
	(gtk_vrml_browser_timeout_callback(gpointer)): Use g_assert
	instead of assert.
	* src/openvrml-xembed/main.cpp
	(openvrml_xembed::command_istream_reader::operator() const): Use
	g_assert instead of assert.
	* src/openvrml-xembed/plugin_streambuf.cpp
	(openvrml_xembed::plugin_streambuf::set_get_url_result(int)): Use
	g_assert instead of assert.

2007-03-15 Braden McDaniel  <braden@endoframe.com>

	* src/openvrml-player/player.cpp
	(openvrml_player_curl_write(void *, size_t, size_t, void *)):
	Moved "data" pointer back outside the "for" loop.

2007-03-15 Braden McDaniel  <braden@endoframe.com>

	* src/openvrml-player/player.cpp
	(openvrml_player_curl_write(void *, size_t, size_t, void *)):
	Check result of curl_easy_getinfo with
	OPENVRML_PLAYER_CURL_EASY_RETURN_VAL_IF_ERROR.

2007-03-13 Braden McDaniel  <braden@endoframe.com>

	* src/openvrml-player/player.cpp
	(openvrml_player_request_data_available(GIOChannel *,
	GIOCondition, gpointer)): Set CURLOPT_FAILONERROR to "true" for
	easy handles.

2007-03-13 Braden McDaniel  <braden@endoframe.com>

	* src/openvrml-player/player.cpp
	(main(int, char *[])): Call g_set_application_name.

2007-03-13 Braden McDaniel  <braden@endoframe.com>

	Use GLib-style return-if-fail macros for most of libcurl error
	handling.

	* src/openvrml-player/player.cpp
	(OPENVRML_PLAYER_CURL_EASY_RETURN_VAL_IF_ERROR): Added macro.
	(OPENVRML_PLAYER_CURL_MULTI_RETURN_IF_ERROR): Added macro.
	(OPENVRML_PLAYER_CULR_MULTI_RETURN_VAL_IF_ERROR): Added macro.
	(reset_fds(CURLSource &)): Check result of curl_multi_fdset with
	OPENVRML_PLAYER_CURL_MULTI_RETURN_IF_ERROR.
	(openvrml_player_curl_source_callback(gpointer)): Check result of
	curl_multi_remove_handle with
	OPENVRML_PLAYER_CURL_MULTI_RETURN_VAL_IF_ERROR.
	(openvrml_player_request_data_available(GIOChannel *,
	GIOCondition, gpointer)): Check result of curl_easy_setopt with
	OPENVRML_PLAYER_CURL_EASY_RETURN_VAL_IF_ERROR; check result of
	curl_multi_add_handle with
	OPENVRML_PLAYER_CURL_MULTI_RETURN_VAL_IF_ERROR.

2007-03-12 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/vrml97node.cpp
	(openvrml_jpeg_fill_input_buffer(j_decompress_ptr)): Guard against
	the possibility that this function is called when the number of
	bytes in the backtrack buffer should remain zero.

2007-03-06 Braden McDaniel  <braden@endoframe.com>

	* doc/Doxyfile: Set SHOW_INCLUDE_FILES to YES; required to show
	what header file a class is defined in.

2007-03-06 Braden McDaniel  <braden@endoframe.com>

	Doc-comment improvements.

	* src/libopenvrml/openvrml/basetypes.cpp
	* src/libopenvrml/openvrml/basetypes.h
	* src/libopenvrml/openvrml/bounding_volume.cpp
	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/event.cpp
	* src/libopenvrml/openvrml/event.h
	* src/libopenvrml/openvrml/exposedfield.cpp
	* src/libopenvrml/openvrml/field_value.cpp
	* src/libopenvrml/openvrml/frustum.cpp
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node.h
	* src/libopenvrml/openvrml/node_impl_util.cpp
	* src/libopenvrml/openvrml/rendering_context.cpp
	* src/libopenvrml/openvrml/scope.cpp
	* src/libopenvrml/openvrml/script.cpp
	* src/libopenvrml/openvrml/viewer.cpp
	* src/libopenvrml/openvrml/viewer.h
	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp

2007-03-05 Braden McDaniel  <braden@endoframe.com>

	Join the thread spawned by browser::load_url in browser's
	destructor.

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::browser::~browser()): Join the thread that loads the
	root scene.
	(openvrml::browser::load_url(const std::vector<std::string> &,
	const std::vector<std::string> &)): First, join any thread already
	loading a root scene.
	* src/libopenvrml/openvrml/browser.h
	(openvrml::browser): Added member load_root_scene_thread.

2007-03-05 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/configure.ac: Added back mozincludedir
	substitution, which apparently got stomped on at some point.  Its
	loss was disguised by mozilla-xpcom.pc adding flags for this
	directory; but as of firefox 1.5.0.10, mozilla-plugin.pc no longer
	depends on mozilla-xpcom.pc.

2007-02-24 Braden McDaniel  <braden@endoframe.com>

	Fixed problem reading JPEG images when input is suspended.

	* src/libopenvrml/openvrml/vrml97node.cpp
	(jpeg_reader): Replaced read_state enumeration with a bool--there
	are only two possible states.  Added members bytes_in_buffer and
	bytes_in_backtrack_buffer to track the number of unread bytes in
	the respective buffers.
	(openvrml_jpeg_fill_input_buffer(j_decompress_ptr)): Reimplemented
	in terms of the boolean "reading" state; fixed reading from the
	backtrack buffer for I/O suspension.

2007-02-24 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp
	(create_file_url(const uri &)): If the relative URI begins with
	"/", it is a relative URI that consists of an absolute path;
	prepend "file://" and return.

2007-02-13 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/vrml97node.cpp
	(image_stream_listener::jpeg_reader::do_read(const
	std::vector<unsigned char> &)): Define the scoped_lock before the
	call to setjmp; otherwise, a longjmp call from libjpeg code will
	prevent the destructor from running (and freeing the mutex).

2007-02-12 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Fixed FreeType const test to use pkg-config to get
	the compiler flags.

2007-02-11 Braden McDaniel  <braden@endoframe.com>

	openvrml-xembed isn't openvrml-player anymore.  Renamed namespace
	accordingly.

	* src/openvrml-xembed/bounded_buffer.h
	* src/openvrml-xembed/command_istream.cpp
	* src/openvrml-xembed/command_istream.h
	* src/openvrml-xembed/gtkvrmlbrowser.cpp
	* src/openvrml-xembed/main.cpp
	* src/openvrml-xembed/plugin_streambuf.cpp
	* src/openvrml-xembed/plugin_streambuf.h

2007-02-11 Braden McDaniel  <braden@endoframe.com>

	* src/openvrml-xembed/gtkvrmlbrowser.cpp
	(browser_listener::do_browser_changed(const
	openvrml::browser_event &)): Set redrawNeeded to false to ensure
	that the call to post_redraw triggers a redraw.

2007-02-09 Braden McDaniel  <braden@endoframe.com>

	Set the location entry text once a file has been selected.

	* src/openvrml-player/player.cpp
	(main(int, char *[])): Connect
	openvrml_player_on_filechooserdialog_response to the file chooser
	dialog's "response" signal.
	(openvrml_player_on_filechooserdialog_response(GtkDialog *, gint,
	gpointer)): Added function; set the location entry text once a
	file has been selected.

2007-02-09 Braden McDaniel  <braden@endoframe.com>

	* src/openvrml-player/player.cpp
	(main(int, char *[])): Use ScopeGuard to manage libcurl clean up.

2007-02-09 Braden McDaniel  <braden@endoframe.com>

	* src/openvrml-player/player.cpp: Added comments; applied
	G_GNUC_INTERNAL to 'extern "C"' functions that libglade doesn't
	need to be visible.

2007-02-09 Braden McDaniel  <braden@endoframe.com>

	Use Glade XML to manage the OpenvrmlPlayerFileChooserDialog.

	* src/openvrml-player/openvrml-player.glade
	(imagemenuitemopen): openvrml_player_file_open_activated now takes
	the dialog as its argument.
	(filechooserdialog): Added OpenvrmlPlayerFileChooserDialog.
	* src/openvrml-player/player.cpp
	(main(int, char *[])): Register OpenvrmlPlayerFileChooserDialog
	with libglade; set the file chooser dialog's parent window.
	(openvrml_player_on_file_open_activated(OpenvrmlPlayerFileChooserDialog*)):
	Now takes the dialog as its argument; just run the dialog (rather
	than creating it).
	(openvrml_player_build_file_chooser_dialog(GladeXML *, GType,
	GladeWidgetInfo *)): Added function; function to create an
	OpenvrmlPlayerFileChooserDialog for libglade.

2007-02-09 Braden McDaniel  <braden@endoframe.com>

	Moved file chooser dialog into its own widget implementation.

	* src/openvrml-player/Makefile.am
	(openvrml_player_SOURCES): Added filechooserdialog.cpp.
	(noinst_HEADERS): Added filechooserdialog.h.
	* src/openvrml-player/filechooserdialog.cpp: File chooser dialog
	implementation.
	* src/openvrml-player/filechooserdialog.h: File chooser dialog
	interface.
	* src/openvrml-player/player.cpp
	(openvrml_player_on_file_open_activated(GtkWindow *)): Use
	OpenvrmlPlayerFileChooserDialog instead of GtkFileChooserDialog.

2007-02-08 Braden McDaniel  <braden@endoframe.com>

	Don't bother with Glade XML for creating the GtkFileChooserDialog;
	doing this entirely in C++ is less code and easier to get right.

	* src/openvrml-player/openvrml-player.glade
	(filechooserdialog): Removed.
	* src/openvrml-player/player.cpp
	(load_url(const gchar *)): Added helper function to send a
	load-url command.
	(openvrml_player_on_file_open_activated(GtkWindow *)): Added
	callback to open a file chooser dialog.
	(openvrml_player_on_locationentry_activated(GtkEntry *)): Delegate
	to load_url.

2007-02-06 Braden McDaniel  <braden@endoframe.com>

	Load worlds from the location bar.

	* src/openvrml-player/openvrml-player.glade
	(locationentry): Added "activate" signal handler
	openvrml_player_on_locationentry_activate.
	(socket): Set "can-focus" and "has-focus" properties to "True".
	* src/openvrml-player/player.cpp
	(openvrml_player_on_locationentry_activated(GtkEntry *)): Added
	function; send "load-url" with the given text.

2007-02-05 Braden McDaniel  <braden@endoframe.com>

	* src/openvrml-player/player.cpp
	(reset_fds(CURLSource &)): Don't bail early if curl_multi_fdset
	returns -1; we need to call g_source_remove_poll on outstanding
	file descriptors in this case.

2007-02-05 Braden McDaniel  <braden@endoframe.com>

	* src/openvrml-xembed/main.cpp
	(main(int, char *[])): Moved global variables used for option
	parsing inside main.

2007-02-05 Braden McDaniel  <braden@endoframe.com>

	* src/openvrml-xembed/main.cpp
	(main(int, char *[])): Dismiss the error_guard when returning from
	main prematurely (but without a GError).

2007-02-04 Braden McDaniel  <braden@endoframe.com>

	Changed the name of openvrml-gtkplug to openvrml-xembed.

	* README: Changed references to openvrml-gtkplug to
	openvrml-xembed.
	* configure.ac: Changed references to openvrml-gtkplug to
	openvrml-xembed.
	* doc/Makefile.am: Refer to openvrml-xembed.texi instead of
	openvrml-gtkplug.texi.
	* doc/openvrml-gtkplug.texi: Removed file.
	* doc/openvrml-xembed.texi: Added file.
	* mozilla-plugin/src/openvrml.cpp: Changed references to
	openvrml-gtkplug to openvrml-xembed.
	* src/Makefile.am (SUBDIRS): Added openvrml-xembed; removed
	openvrml-gtkplug.
	* src/openvrml-gtkplug/Makefile.am: Removed file.
	* src/openvrml-gtkplug/bounded_buffer.h: Removed file.
	* src/openvrml-gtkplug/command_istream.cpp: Removed file.
	* src/openvrml-gtkplug/command_istream.h: Removed file.
	* src/openvrml-gtkplug/gtkvrmlbrowser.cpp: Removed file.
	* src/openvrml-gtkplug/gtkvrmlbrowser.h: Removed file.
	* src/openvrml-gtkplug/main.cpp: Removed file.
	* src/openvrml-gtkplug/plugin_streambuf.cpp: Removed file.
	* src/openvrml-gtkplug/plugin_streambuf.h: Removed file.
	* src/openvrml-player/player.cpp: Changed references to
	openvrml-gtkplug to openvrml-xembed.
	* src/openvrml-xembed/Makefile.am: Added file.
	* src/openvrml-xembed/bounded_buffer.h: Added file.
	* src/openvrml-xembed/command_istream.cpp: Added file.
	* src/openvrml-xembed/command_istream.h: Added file.
	* src/openvrml-xembed/gtkvrmlbrowser.cpp: Added file.
	* src/openvrml-xembed/gtkvrmlbrowser.h: Added file.
	* src/openvrml-xembed/main.cpp: Added file.
	* src/openvrml-xembed/plugin_streambuf.cpp: Added file.
	* src/openvrml-xembed/plugin_streambuf.h: Added file.

2007-02-04 Braden McDaniel  <braden@endoframe.com>

	* src/openvrml-gtkplug/gtkvrmlbrowser.cpp
	(gtk_vrml_browser_init(GtkVrmlBrowser *)): Use g_object_connect to
	set up GtkVrmlBrowser event handlers.

2007-02-04 Braden McDaniel  <braden@endoframe.com>

	Allow the GtkVrmlBrowser widget to take focus.

	* src/openvrml-gtkplug/gtkvrmlbrowser.cpp
	(gtk_vrml_browser_init(GtkVrmlBrowser *)): Added
	GDK_FOCUS_CHANGE_MASK to the event mask; set the widget's
	can-focus property to "true".
	(gtk_vrml_browser_button_press_event(GtkWidget *, GdkEventButton*,
	gpointer)): Grab the focus.

2007-02-04 Braden McDaniel  <braden@endoframe.com>

	Factored GladeXML creation out of main.

	* src/openvrml-player/player.cpp
	(main(int, char *[])): Factored GladeXML creation out of main.
	(xml_new(GnomeProgram &)): Moved GladeXML creation to here.

2007-02-04 Braden McDaniel  <braden@endoframe.com>

	Use pkg-config to check for FreeType.

	* configure.ac: Use pkg-config to check for FreeType; add
	freetype2 to OPENVRML_PKG_REQUIRES if Text node rendering is
	enabled.
	* openvrml.pc.in: Removed FREETYPE_LIBS from Libs; this is now
	covered by Requires.

2007-02-03 Braden McDaniel  <braden@endoframe.com>

	Fixed PROTO eventIn and eventOut lookup functions to try the
	"set_" prefix and "_changed" suffix (respectively) when looking up
	event_listener and event_emitter objects.

	* src/libopenvrml/openvrml/browser.cpp
	(proto_node::do_event_listener(const std::string &)): Prepend
	"set_" to the eventIn name if the passed value is not found in the
	eventIn map.
	(proto_node::do_event_emitter(const std::string &)): Append
	"_changed" to the eventOut name if the passed value is not found
	in the eventOut map.

2007-02-03 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Require GLib >= 2.6 since openvrml-gtkplug and
	openvrml-player use GOption.

2007-01-23 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Fail if pkg-config doesn't find libglade-2.0,
	libgnomeui-2.0, or libcurl when openvrml-player is configured to
	be built.

2007-01-23 Braden McDaniel  <braden@endoframe.com>

	openvrml-player needs libgnomeui; not just libgnome.

	* configure.ac: Check for libgnomeui; export GNOMEUI_CFLAGS and
	GNOMEUI_LIBS.
	* src/openvrml-player/Makefile.am
	(AM_CXXFLAGS): Use GNOMEUI_CFLAGS.
	(AM_LDFLAGS): Use GNOMEUI_LIBS.
	* src/openvrml-player/player.cpp
	(main(int, char *[])): Call gnome_program_init with
	LIBGNOMEUI_MODULE.

2007-01-23 Braden McDaniel  <braden@endoframe.com>

	Added openvrml-player, a stand-alone container for
	openvrml-gtkplug; libcurl is used for resource fetching.

	* configure.ac: Output src/openvrml-player/Makefile; check for
	libglade, libgnome, and libcurl; allow building openvrml-player to
	be disabled.
	* src/Makefile.am (SUBDIRS): Added openvrml-player.
	* src/openvrml-player/Makefile.am: Makefile for openvrml-player.
	* src/openvrml-player/openvrml-player.glade: libglade XML input.
	* src/openvrml-player/player.cpp: Stand-alone container for
	openvrml-gtkplug; libcurl is used for resource fetching.

2007-01-23 Braden McDaniel  <braden@endoframe.com>

	Added load-url command to openvrml-gtkplug; this facilitates
	loading a new world into an existing component instance.

	* doc/openvrml-gtkplug.texi: Added description of load-url
	command.
	* src/openvrml-gtkplug/main.cpp
	(command_istream_reader::operator()() const): Call
	gtk_vrml_browser_load_url in response to a 'load-url' command.

2007-01-22 Braden McDaniel  <braden@endoframe.com>

	Because of the way rendering is currently intertwined with the
	core runtime, we can't safely do much while the browser is loading
	a new world.  So, use an openvrml::browser_event::initialized
	event to trigger making the widget usable again.

	* src/openvrml-gtkplug/gtkvrmlbrowser.cpp
	(browser_listener): Added implementation of
	openvrml::browser_listener to respond to browser events.
	(GtkGLViewer): Granted friendship to browser_listener; granted
	friendship to gtk_vrml_browser_motion_notify_event.  Added members
	browser_listener_, browser_initialized_, and
	browser_initialized_mutex_.
	(gtk_vrml_browser_load_url(GtkVrmlBrowser *, const gchar **, const
	gchar **)): Set browser_initialized_ to false before loading a new
	world.
	(gtk_vrml_browser_set_world(GtkVrmlBrowser *,
	openvrml::resource_istream &)): Set browser_initialized_ to false
	before loading a new world.
	(gtk_vrml_browser_expose_event(GtkWidget *, GdkEventExpose *,
	gpointer)): Don't redraw if browser_initialized_ is false.
	(gtk_vrml_browser_motion_notify_event(GtkWidget *,
	GdkEventMotion*, gpointer)): If browser_initialized_ is false,
	bail.
	(browser_listener::browser_listener(GtkGLViewer &)): Added
	constructor definition.
	(browser_listener::do_browser_changed(const
	openvrml::browser_event &)): Added function definition.
	(GtkGLViewer::GtkGLViewer(GIOChannel &, GtkVrmlBrowser &)):
	Initialize browser_listener_ and browser_initialized_. Add
	browser_listener_ to the browser.
	(GtkGLViewer::~GtkGLViewer()): Remove browser_listener_ from the
	browser.

2007-01-22 Braden McDaniel  <braden@endoframe.com>

	Separated specification of the view frustum from specification of
	the viewpoint.  The former needs to happen before the background
	is rendered; the latter needs to happen after it.

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::browser::render()): Render the node_metatypes after
	setting the view frustum.
	* src/libopenvrml/openvrml/viewer.cpp
	(openvrml::viewer::set_frustum(float, float, float)): Added
	function definition.
	(openvrml::viewer::set_viewpoint(const vec3f &, const rotation &
	orientation, float, float)): Removed field_of_view parameter.
	* src/libopenvrml/openvrml/viewer.h
	(openvrml::viewer): Added member functions set_frustum and
	do_set_frustum.  Removed field_of_view parameter from set_viewpoint
	and do_set_viewpoint.
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	(openvrml::gl::viewer::do_set_frustum(float, float, float)): Added
	function.
	(openvrml::gl::viewer::do_set_viewpoint(const vec3f &, const
	openvrml::rotation &, float, float)): Removed fieldOfView
	parameter; moved specification of the view frustum to
	do_set_frustum.
	* src/libopenvrml-gl/openvrml/gl/viewer.h
	(openvrml::gl::viewer): Added member function do_set_frustum;
	removed fieldOfView parameter from do_set_viewpoint.

2007-01-22 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	(openvrml::gl::viewer::insert_background(const
	std::vector<float>&, const std::vector<color> &, const
	std::vector<float> &, const std::vector<color> &, const image &,
	const image &, const image &, const image &, const image &, const
	image &)): Enabled #if 0'd code to put the background in a display
	list.  So far, it seems harmless.

2007-01-22 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/vrml97node.cpp
	(viewpoint_node::viewpoint_node(const node_type &, const
	boost::shared_ptr<openvrml::scope> &)): Reordered
	user_view_transform_ initialization to match declaration order.

2007-01-21 Braden McDaniel  <braden@endoframe.com>

	Moved definition of USE_STENCIL_SHAPE out of the header.

	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	* src/libopenvrml-gl/openvrml/gl/viewer.h

2007-01-21 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml-gl/openvrml/gl/viewer.cpp: Improved comments.

2007-01-16 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/basetypes.cpp
	(openvrml::make_rotation(const vec3f &, const vec3f &)): Normalize
	the rotation axis.

2007-01-16 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	(compute_scp_y_axis(const
	std::vector<openvrml::vec3f>::const_iterator &, const
	std::vector<openvrml::vec3f>::const_iterator &, const
	std::vector<openvrml::vec3f>::const_iterator &, const
	openvrml::vec3f &)): Fixed for the last point of a closed spine.

2007-01-15 Braden McDaniel  <braden@endoframe.com>

	Rewrote/refactored Extrusion coordinate generation for correctness
	and readability.

	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	(get_spine_length(const std::vector<openvrml::vec3f> &)): Added
	function; get the length of an extrusion spine.
	(get_cross_section_length(const std::vector<openvrml::vec2f> &)):
	Added function; get the length of an extrusion cross-section.
	(compute_scp_y_axis(const
	std::vector<openvrml::vec3f>::const_iterator &, const
	std::vector<openvrml::vec3f>::const_iterator &, const
	std::vector<openvrml::vec3f>::const_iterator &, const
	openvrml::vec3f &)): Added function; compute the y-axis of an
	extrusion spine-aligned cross-section plane at a given point.
	(compute_scp_z_axis(const
	std::vector<openvrml::vec3f>::const_iterator &, const
	std::vector<openvrml::vec3f>::const_iterator &, const
	std::vector<openvrml::vec3f>::const_iterator &, const
	openvrml::vec3f &)): Added function; compute the z-axis of an
	extrusion spine-aligned cross-section plane at a given point.
	(check_spine_points_collinear(const std::vector<openvrml::vec3f &,
	openvrml::vec3f &, openvrml::vec3f &, openvrml::vec3f &)): Added
	function; determine if extrusion spine points are collinear.
	(compute_extrusion_coords_(const std::vector<openvrml::vec2f> &,
	const std::vector<openvrml::vec3f> &, const
	std::vector<openvrml::vec2f> &, const
	std::vector<openvrml::rotation> &, std::vector<openvrml::vec3f> &,
	std::vector<openvrml::vec2f> &)): Refactored for correctness and
	readability.

2007-01-15 Braden McDaniel  <braden@endoframe.com>

	Initialize mat4f instances with make_mat4f.

	* src/libopenvrml/openvrml/browser.cpp
	(default_viewpoint::default_viewpoint(const
	openvrml::null_node_type &)): Initialize userViewTransform using
	openvrml::make_mat4f.
	* src/libopenvrml/openvrml/vrml97node.cpp
	(cylinder_sensor_node::cylinder_sensor_node(const
	openvrml::node_type &, const
	boost::shared_ptr<openvrml::scope>&)): Initialize activationMatrix
	and modelview with make_mat4f.
	(plane_sensor_node::plane_sensor_node(const openvrml::node_type &,
	const boost::shared_ptr<openvrml::scope> &)): Initialize
	activationMatrix and modelview with make_mat4f.
	(sphere_sensor_node::sphere_sensor_node(const
	openvrml::node_type&, const boost::shared_ptr<openvrml::scope>&)):
	Initialize modelview with make_mat4f.
	(transform_node::transform_node(const openvrml::node_type &, const
	boost::shared_ptr<openvrml::scope> &)): Initialize transform_ with
	make_mat4f.
	(viewpoint_node::viewpoint_node(const openvrml::node_type &, const
	boost::shared_ptr<openvrml::scope> &)): Initialize
	parent_transform, final_transformation, and user_view_transform_
	with make_mat4f.

2007-01-09 Braden McDaniel  <braden@endoframe.com>

	Removed dead code.

	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	(computeExtrusion(const std::vector<openvrml::rotation> &, const
	std::vector<openvrml::vec2f> &, const std::vector<openvrml::vec2f>
	&, const std::vector<openvrml::vec3f> &,
	std::vector<openvrml::vec3f> &, std::vector<openvrml::vec2f> &,
	std::vector<openvrml::int32> &)): Removed unused function.

2007-01-09 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml-gl/openvrml/gl/viewer.cpp: Updated
	floating-point "near equal" comparison for parity with
	libopenvrml.

2007-01-09 Braden McDaniel  <braden@endoframe.com>

	Assert that rotation components are not NaN.

	* src/libopenvrml/openvrml/basetypes.cpp
	(openvrml::rotation::rotation(const float (&)[4])): Assert that
	rotation components are not NaN.
	(openvrml::rotation::rotation(float, float, float, float)): Assert
	that rotation components are not NaN.
	(openvrml::rotation::rotation(const vec3f &, float)): Assert
	that rotation components are not NaN.

2007-01-03 Braden McDaniel  <braden@endoframe.com>

	* src/openvrml-gtkplug/main.cpp
	(main(int, char *[])): Call gdk_threads_init.

2007-01-03 Braden McDaniel  <braden@endoframe.com>

	* src/openvrml-gtkplug/gtkvrmlbrowser.cpp
	(resource_fetcher::do_get_resource(const std::string &)): Dismiss
	the error_guard.

2007-01-03 Braden McDaniel  <braden@endoframe.com>

	* src/openvrml-gtkplug/gtkvrmlbrowser.cpp: Use scope_guard from
	boost::multi_index.

2007-01-03 Braden McDaniel  <braden@endoframe.com>

	* src/openvrml-gtkplug/gtkvrmlbrowser.cpp
	(GtkGLViewer::GtkGLViewer(GIOChannel &, GtkVrmlBrowser &)): Since
	stdout is used to communicate with the host process, send all
	browser output to stderr.

2007-01-03 Braden McDaniel  <braden@endoframe.com>

	* src/openvrml-gtkplug/gtkvrmlbrowser.cpp
	(resource_fetcher::do_get_resource(const std::string &)): Check
	the return status given by g_io_channel_write_chars and
	g_io_channel_flush; set badbit and bail if there's a problem.

2007-01-03 Braden McDaniel  <braden@endoframe.com>

	Factored command and request channel shutdown into separate
	functions.

	* src/openvrml-gtkplug/main.cpp
	(command_channel_shutdown(GIOChannel *)): Added function to shut
	down the command channel.
	(request_channel_shutdown(GIOChannel *)): Added function to shut
	down the request channel.
	(main(int, char *[])): Use scope_guard to remove any returned
	GError; use scope_guard to call shutdown functions for the command
	and request channels.

2007-01-03 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::browser::root_scene_loader::operator()() const): Don't
	lock the browser-wide mutex here.

2007-01-03 Braden McDaniel  <braden@endoframe.com>

	On second thought, retaining copies in the guard_impl is really
	the only safe thing to do (in the event someone wants to invoke
	make_guard with temporaries). The case where this is not desirable
	can be solved by using boost::ref in the call to make_guard.

	* mozilla-plugin/src/openvrml.cpp
	(plugin_instance::set_window(NPWindow &)): Use boost::ref instead
	of explicitly giving a reference template parameter to make_guard.
	* src/libopenvrml/private.h
	(openvrml_::scope_guard_impl1): Store a copy to the callback
	function parameter.
	(openvrml_::scope_guard_impl3): Store a copy to the callback
	function parameter.
	(openvrml_::obj_scope_guard_impl1): Store a copy to the callback
	function parameter.

2007-01-03 Braden McDaniel  <braden@endoframe.com>

	* m4/jdk.m4: Removed obsolete commented-out macro.

2007-01-01 Braden McDaniel  <braden@endoframe.com>

	Factored platform-specific code in text_node::update_face into its
	own function.

	* src/libopenvrml/openvrml/vrml97node.cpp
	(get_font_filename(const std::vector<std::string> &, const
	std::string &, const unsigned_char_string &, std::vector<char> &,
	FT_Long &)): Get the font file name and face index.  This code was
	factored out of text_node::update_face.
	(text_node::update_face()): Factored platform-specifc code to get
	the font filename to get_font_filaname.

2007-01-01 Braden McDaniel  <braden@endoframe.com>

	ScopeGuard as initially described by Alexandrescu and Marginean
	copies the callback function parameters to the guard
	implementation.  This means that the callback is called with the
	values given when make_guard gets called--not whatever the values
	might be when execution in the scope completes.

	This changes OpenVRML's implementation of ScopeGuard to keep const
	references to the parameters in the guard implementation. Also,
	use of boost::multi_index::detail::scope_guard (where use of
	OpenVRML's ScopeGuard implementation is inconvenient) now
	explicitly gives a reference template parameter to the
	instantiation of make_guard to circumvent this problem.

	* mozilla-plugin/src/openvrml.cpp
	(plugin_instance::set_window(NPWindow &)): Explicitly give a
	reference template parameter to make_guard so that the guard
	implementation stores a reference to the callback parameter
	argument.
	* src/libopenvrml/private.h
	(openvrml_::scope_guard_impl1): Store a reference to the callback
	function parameter.
	(openvrml_::scope_guard_impl3): Store a reference to the callback
	function parameter.
	(openvrml_::obj_scope_guard_impl1): Store a reference to the
	callback function parameter.
	* src/libopenvrml/openvrml/vrml97node.cpp: Removed references to
	boost::multi_index::detail; that ScopeGuard implementation is not
	used here.

2007-01-01 Braden McDaniel  <braden@endoframe.com>

	Fixed SFRotation axis normalization checks in the Script node
	JavaScript binding.

	* src/libopenvrml/openvrml/script.cpp
	(normalized(const openvrml::vec3f &)): Added convenience function.
	(SFRotation::initObject(JSContext *, JSObject *, const
	jsdouble (&)[4])): Fixed check to see if axis is normalized.
	(SFRotation::setProperty(JSContext *, JSObject *, jsval, jsval*)):
	Fixed check to see if axis is normalized.
	(SFRotation::setAxis(JSContext *, JSObject *, uintN, jsval *,
	jsval *)): Fixed check to see if axis is normalized.

2007-01-01 Braden McDaniel  <braden@endoframe.com>

	* doc/doxygen-footer: Added Google Analytics tracking scripts.

2006-12-30 Braden McDaniel  <braden@endoframe.com>

	Updates for the 0.16.3 release.

	* NEWS: Updated for 0.16.3 release.
	* README: Updated for 0.16.3 release.
	* configure.ac: Updated for 0.16.3 release.
	* doc/Doxyfile: Updated for 0.16.3 release.
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml/openvrml.rc:
	Updated for 0.16.3 release.
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml/openvrml.vcproj:
	Updated for 0.16.3 release.
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml-gl/openvrml-gl.rc:
	Updated for 0.16.3 release.
	* mozilla-plugin/configure.ac: Updated for 0.16.3 release.
	* src/libopenvrml/Makefile.am: Updated libtool library version number.
	* src/libopenvrml-gl/Makefile.am: Updated libtool library version
	number.

2006-12-28 Braden McDaniel  <braden@endoframe.com>

	Microsoft cl 14.00.50727.762 (Visual C++ 8.0 SP1) is consistent in
	its lack of support for function try blocks.  The previous
	release (14.00.50727.42) was hit-or-miss.  This changes code that
	the newer compiler complains about.

	* src/libopenvrml/openvrml/browser.cpp
	(externproto_node_metatype::load_proto::operator()() const):
	Removed function try block.
	(openvrml::browser::root_scene_loader::operator()() const):
	Removed function try block.
	(openvrml::browser::vrml_from_url_creator::operator()() const):
	Removed function try block.
	* src/libopenvrml/openvrml/vrml97node.cpp
	(inline_node::load_inline_scene::operator()() const): Removed
	function try block.

2006-12-28 Braden McDaniel  <braden@endoframe.com>

	Fixed position of attribute applied to OpenGL callback functions.

	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	(OPENVRML_GL_CALLBACK_): Define as CALLBACK for _WIN32.
	(TessCB): Fixed position of attribute.

2006-12-15 Braden McDaniel  <braden@endoframe.com>

	Removed quit_flag silliness in openvrml-gtkplug.  Made the
	"producer" thread--command_channel_loop--spawn (and join) the
	"consumer" thread, command_istream_reader.  "quit" is propagated
	up from the consumer, to the producer, to the main thread.

	* src/openvrml-gtkplug/Makefile.am
	(noinst_HEADERS): Removed reference to flag.h.
	(openvrml_gtkplug_SOURCES): Removed reference to flag.cpp.
	* src/openvrml-gtkplug/main.cpp
	(quit_flag): Removed.
	(openvrml_player::command_istream_reader::command_istream_reader(command_istream&,
	GtkVrmlBrowser &, GMainLoop &)): Construct using a reference to
	the command_channel_loop's GMainLoop.
	(openvrml_player::command_istream_reader::operator()() const):
	Instead of setting the quit_flag, call g_main_loop_quit on the
	command_channel_loop.
	(openvrml_player::command_istream_reader::command_channel_loop_):
	Added member.
	(openvrml_player_command_channel_loop_quit(gpointer)): Removed
	function.
	(request_channel): Removed; we don't need this to be global
	anymore.  Replaced with a local variable in main.
	(command_channel_loop::command_channel_loop(GIOChannel &,
	command_istream &, GtkVrmlBrowser &)): Construct using a reference
	to the GtkVrmlBrowser widget; we need to propagate this to the
	consumer thread, command_istream_reader.
	(command_channel_loop::operator()() const): Removed idle source
	for quit event; instead, spawn the command_istream_reader thread
	here and join it with the main loop completes.  Then, call
	gtk_main_quit from here.
	(command_channel_loop::vrml_browser_): Added member.
	(main(int, char *[])): Made request_channel a local variable; pass
	vrml_browser to the command_channel_loop; don't create the
	command_istream_reader thread here (it's now spawned from the
	command_channel_loop thread);
	* src/openvrml-gtkplug/flag.cpp: Removed file.
	* src/openvrml-gtkplug/flag.h: Removed file.

2006-12-15 Braden McDaniel  <braden@endoframe.com>

	* src/openvrml-gtkplug/gtkvrmlbrowser.h
	(gtk_vrml_browser_load_url(GtkVrmlBrowser *, const gchar **, const
	gchar **)): Fixed use of char that should be gchar.

2006-12-10 Braden McDaniel  <braden@endoframe.com>

	The Apple OpenGL framework seems to deviate from the GLU spec with
	respect to the type signature of the GLU tesselator callback
	function.  Even though Apple's glu.h header appears consistent
	with the specification, the compiler is quite insistent that the
	type signature of this callback is something other than what is
	reflected there.

	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	(TessCB): Made declaration conditional based on
	HAVE_APPLE_OPENGL_FRAMEWORK.

2006-12-10 Braden McDaniel  <braden@endoframe.com>

	Apple's gcc 4.0.1 on PPC seems to have some problem with classes
	defined inside a function definition.

	* src/libopenvrml/openvrml/node.cpp
	(self_ref_node::do_event_listener(const std::string &)): Moved
	dummy_listener to the unnamed namespace.
	(self_ref_node::do_event_emitter(const std::string &)): Moved
	dummy_emitter to the unnamed namespace.

2006-12-09 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml-gl/openvrml/gl/viewer.cpp: Don't need to include
	<openvrml/vrml97node.h>.

2006-12-05 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/openvrml.cpp
	(NPP_GetMIMEDescription()): Include MIME description for
	model/x3d+vrml.

2006-12-05 Braden McDaniel  <braden@endoframe.com>

	Set ios_base::badbit (instead of failbit) when stream construction
	does not produce a readable stream.

	* examples/sdl_viewer.cpp
	(resource_fetcher::do_get_resource(const std::string &): Set
	ios_base::badbit instead of failbit.
	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::resource_fetcher::do_get_resource(const std::string &): In the
	example code in the doc-comment, set ios_base::badbit instead of
	failbit.
	* src/openvrml-gtkplug/gtkvrmlbrowser.cpp
	(resource_fetcher::do_get_resource(const std::string &)): Set
	ios_base::badbit instead of failbit.

2006-12-05 Braden McDaniel  <braden@endoframe.com>

	Pass ios_base::binary when opening arbitrary (i.e., possibly not
	text) files.  Windows requires this.

	* examples/sdl_viewer.cpp
	(resource_fetcher::do_get_resource(const std::string &): Pass the
	ios_base::binary flag when opening the filebuf.
	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::resource_fetcher::do_get_resource(const std::string &):
	In the example in the doc-comment, pass the ios_base::binary flag
	when opening the filebuf.

2006-12-05 Braden McDaniel  <braden@endoframe.com>

	Fixed relative URI resolution on Windows.

	* examples/sdl_viewer.cpp
	(resource_fetcher::do_get_resource(const std::string &): On
	Windows, start the system path on the second character of the URI
	path; the first character is a leading slash.
	* src/libopenvrml/openvrml/browser.cpp
	(create_file_url(const uri &)): Ensure the URI path begins with a
	slash on Windows--_getcwd gets a path that starts with a drive
	letter.

2006-12-04 Braden McDaniel  <braden@endoframe.com>

	Call g_thread_init to initialize GLib's thread support for
	openvrml-gtkplug.  Create the GMainLoop for the command reader
	loop in the command reader thread instead of the main thread.

	* configure.ac: Incorporate gthread-2.0 flags into GTK_*
	variables.
	* src/openvrml-gtkplug/main.cpp
	(command_channel_loop::command_channel_loop(GIOChannel &,
	command_istream &)): Construct with a GIOChannel and a
	command_istream.
	(command_channel_loop::operator()() const): Create the GMainLoop
	and its GMainContext here.
	(command_channel_loop::main_loop_): Removed.
	(command_channel_loop::command_channel_): Added.
	(command_channel_loop::command_in_): Added.
	(main(int, char *[])): Call g_thread_init.  Moved creation of the
	command reader GMainLoop and GMainContext to the command reader
	thread.

2006-12-02 Braden McDaniel  <braden@endoframe.com>

	Mark any uninitialized plugin_streambufs as failed when quitting
	openvrml-gtkplug so that reader threads will not continue to block
	on them (creating a deadlock).

	* src/openvrml-gtkplug/gtkvrmlbrowser.cpp
	(resource_fetcher::do_get_resource(const std::string &)): Fixed
	comment to be more host-agnostic (i.e., removed reference to
	NPN_GetURL).
	* src/openvrml-gtkplug/main.cpp
	(openvrml_player::command_istream_reader::operator()() const):
	Mark any remaining uninitialized plugin_streambufs as failed.
	* src/openvrml-gtkplug/plugin_streambuf.cpp
	(openvrml_player::plugin_streambuf::init(size_t, const
	std::string&, const std::string &)): Assert validity of arguments;
	changed name of condition variable.
	(openvrml_player::plugin_streambuf::fail()): Added function; used
	to indicate that a stream will not be initialized.
	(openvrml_player::plugin_streambuf::url() const): Changed name of
	condition variable.
	(openvrml_player::plugin_streambuf::type() const): Changed name of
	condition variable.
	(openvrml_player::plugin_streambuf::underflow()): Changed name of
	condition variable.
	(openvrml_player::uninitialized_plugin_streambuf_map::empty()
	const): Added function.
	* src/openvrml-gtkplug/plugin_streambuf.h
	(openvrml_player::plugin_streambuf): Changed
	streambuf_initialized_ condition variable to
	streambuf_initialized_or_failed_; added fail member function.
	(openvrml_player::uninitialized_plugin_streambuf_map): Added empty
	member function.

2006-11-30 Braden McDaniel  <braden@endoframe.com>

	While the Mozilla plug-in needs to be able to send an initial
	stream to openvrml-gtkplug, it seems likely that most clients will
	want to start openvrml-gtkplug without having it expect an initial
	stream.  Added --initial-stream argument to openvrml-gtkplug to
	enable the old default behavior.

	* doc/openvrml-gtkplug.texi: Documented --initial-stream option.
	* mozilla-plugin/src/openvrml.cpp
	(plugin_instance::set_window(NPWindow &)): Pass --initial-stream
	when starting the openvrml-gtkplug child process.
	* src/openvrml-gtkplug/main.cpp:
	(options): Added entry for --initial-stream.
	(main(int, char *[])): Only start the thread to read the initial
	stream if --initial-stream was passed.

2006-11-29 Braden McDaniel  <braden@endoframe.com>

	Updates for the 0.16.2 release.

	* NEWS: Updated for 0.16.2 release.
	* README: Updated for 0.16.2 release.
	* configure.ac: Updated for 0.16.2 release.
	* doc/Doxyfile: Updated for 0.16.2 release.
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml/openvrml.rc:
	Updated for 0.16.2 release.
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml/openvrml.vcproj:
	Updated for 0.16.2 release.
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml-gl/openvrml-gl.rc:
	Updated for 0.16.2 release.
	* mozilla-plugin/configure.ac: Updated for 0.16.2 release.
	* src/libopenvrml/Makefile.am: Updated libtool library version number.

2006-11-28 Braden McDaniel  <braden@endoframe.com>

	* README: Updated description to note X3D functionality.

2006-11-28 Braden McDaniel  <braden@endoframe.com>

	* README: Removed zlib from dependencies list; as of 0.16 OpenVRML
	does not directly require zlib.

2006-11-28 Braden McDaniel  <braden@endoframe.com>

	Removed "offset" argument from openvrml-gtkplug's "write" command.

	* doc/openvrml-gtkplug.texi: Removed "offset" argument from the
	"write" command.
	* mozilla-plugin/src/openvrml.cpp
	(NPP_Write(NPP, NPStream *, int32, int32, int32, void *)): Don't
	write the offset to the command stream.
	* src/openvrml-gtkplug/main.cpp
	(openvrml_player::command_istream_reader::operator() const): Don't
	read the offset from the command stream.

2006-11-24 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/openvrml.cpp
	(plugin_instance::set_window(NPWindow &)): Removed unreachable
	return statement.

2006-11-24 Braden McDaniel  <braden@endoframe.com>

	Removed RPM spec file.  This file is now maintained as part of
	Fedora Extras.

	* Makefile.am
	* configure.ac
	* openvrml.spec.in: Removed file.

2006-11-22 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/openvrml.cpp
	(plugin_instance::set_window(NPWindow &)): Check that the
	request_channel is nonzero after creating a new one.

2006-11-21 Braden McDaniel  <braden@endoframe.com>

	Assert normalization of vectors by directly checking that the
	length is 1.0, rather than asserting that the vector is equal to
	the normalized version of itself.  The latter mechanism introduces
	too much error.

	* src/libopenvrml/openvrml/basetypes.cpp
	(openvrml::make_rotation(const float (&)[4])): Assert that
	the length of the vector is 1.0.
	(openvrml::make_rotation(float, float, float, float)): Assert
	that the length of the vector is 1.0.
	(openvrml::make_rotation(const vec3f &, float)): Assert that
	the length of the vector is 1.0.
	(openvrml::rotation::axis(const vec3f &)): Assert that the length
	of the vector is 1.0.

2006-11-21 Braden McDaniel  <braden@endoframe.com>

	Factored creation of openvrml::resource_istreams to a dedicated
	abstract factory, openvrml::resource_fetcher.  This allows the
	code associated with resource fetching to live at least as long as
	the browser instance, which it needs to do if there are any
	outstanding fetches happening when the browser instance is
	destroyed.

	* doc/index.doc: Updates to reflect addition of
	openvrml::resource_fetcher.
	* examples/sdl_viewer.cpp: Inherit openvrml::resource_fetcher to
	implement do_get_resource instead of openvrml::browser.
	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::resource_fetcher::~resource_fetcher()): Destructor.
	(openvrml::resource_fetcher::get_resource(const std::string &)):
	Delegate to do_get_resource.
	(openvrml::browser::browser(resource_fetcher &, std::ostream &,
	std::ostream &)): Initialize openvrml::browser::fetcher_.
	(openvrml::browser::get_resource(const std::string &)): Removed
	function.
	(openvrml::scene::get_resource(const std::vector<std::string> &)
	const): Delegate instead to browser::fetcher_.
	* src/libopenvrml/openvrml/browser.h
	(openvrml::resource_fetcher): Added class.
	(openvrml::browser): Granted friendship to openvrml::scene so that
	it can access browser::fetcher_; added browser::fetcher_ member;
	changed constructor to take an openvrml::resource_fetcher
	reference; removed browser::get_resource and
	browser::do_get_resource members.
	* src/openvrml-gtkplug/gtkvrmlbrowser.cpp
	(browser): Removed class.
	(resource_fetcher): Added class.
	(GtkGLViewer): Added concrete resource_fetcher member; changed
	browser_ member to be an openvrml::browser.
	(GtkGLViewer::GtkGLViewer(GIOChannel &, GtkVrmlBrowser &)):
	Initialize fetcher_ with the GIOChannel; initialize browser_ with
	fetcher_.
	* tests/Makefile.am
	(noinst_HEADERS): Changed test_browser.h to
	test_resource_fetcher.h.
	(libtest_openvrml_la_SOURCES): Changed test_browser.cpp to
	test_resource_fetcher.cpp.
	* tests/browser.cpp: Use test_resource_fetcher instead of
	test_browser.
	* tests/parse_anchor.cpp: Use test_resource_fetcher instead of
	test_browser.
	* tests/parse_vrml97.cpp: Use test_resource_fetcher instead of
	test_browser.
	* tests/parse_x3dvrml.cpp: Use test_resource_fetcher instead of
	test_browser.
	* tests/test_browser.cpp: Removed file.
	* tests/test_browser.h: Removed file.
	* tests/test_resource_fetcher.cpp: Added file.
	* tests/test_resource_fetcher.h: Added file.

2006-11-19 Braden McDaniel  <braden@endoframe.com>

	* m4/antlr.m4: Use AC_CHECK_PROGS to check for antlr-java as well.

2006-11-18 Braden McDaniel  <braden@endoframe.com>

	Report accurate line and column number information in parser error
	messages.

	* src/libopenvrml/openvrml/Vrml97Parser.g
	(Vrml97Scanner::col_): Use int instead of size_t; col_ should be
	initialized to -1.
	(Vrml97Scanner::Vrml97Scanner(std::istream &)): Initialize col_ to
	-1 instead of 0; it will get incremented to 0 when we get the
	first character of a line.
	(Vrml97Scanner::nextToken()): Set the line and column information
	before scanning the rest of the token; that way this information
	points to the beginning of the token instead of past the end of
	it.
	(Vrml97Scanner::getNextChar()): Reset the column count to -1
	instead of 0.
	(Vrml97Parser::consume()): Overridden from antlr::Parser; store
	the previous token so that reportError and reportWarning can
	report accurate line and column information.
	(Vrml97Parser::reportError(const antlr::RecognitionException &)):
	Report error information in a consistent format rather than rely
	on antlr::Exception::toString.
	(Vrml97Parser::reportError(const std::string & s)): Use
	last_token_ to report line and column information.
	(Vrml97Parser::reportWarning(const std::string & s)): Use
	last_token_ to report line and column information.
	(Vrml97Parser::last_token_): Used to record the previously matched
	token for the purpose of reporting line and column information.
	* src/libopenvrml/openvrml/X3DVrmlParser.g
	(X3DVrmlParser::consume()): Overridden from antlr::Parser; store
	the previous token so that reportError and reportWarning can
	report accurate line and column information.
	(X3DVrmlParser::reportError(const antlr::RecognitionException &)):
	Report error information in a consistent format rather than rely
	on antlr::Exception::toString.
	(X3DVrmlParser::reportError(const std::string & s)): Use
	last_token_ to report line and column information.
	(X3DVrmlParser::reportWarning(const std::string & s)): Use
	last_token_ to report line and column information.
	(X3DVrmlParser::last_token_): Used to record the previously
	matched token for the purpose of reporting line and column
	information.
	* tests/testsuite.at: Updated test expected results to reflect
	accurate line and column number information.

2006-11-17 Braden McDaniel  <braden@endoframe.com>

	* tests/testsuite.at: Added tests to ensure PROTOs in default
	field values of PROTOs are parsed correctly.

2006-11-17 Braden McDaniel  <braden@endoframe.com>

	Write parser error and warning messages using
	openvrml::browser::err rather than use the libantlr default (which
	writes directly to std::cerr).

	* src/libopenvrml/openvrml/Vrml97Parser.g
	(Vrml97Parser::Vrml97Parser(openvrml::browser &,
	antlr::TokenStream &, const std::string &)): Construct with an
	openvrml::browser; call antlr::Parser::setFilename instead of
	adding a member variable for the uri.
	(Vrml97Parser::reportError(const antlr::RecognitionException &)):
	Overridden from antlr::Parser; send the error message to
	openvrml::browser::err.
	(Vrml97Parser::reportError(const std::string &)):
	Overridden from antlr::Parser; send the error message to
	openvrml::browser::err.
	(Vrml97Parser::reportWarning(const std::string &)):
	Overridden from antlr::Parser; send the warning message to
	openvrml::browser::err.
	(Vrml97Parser::browser_): Added a pointer to the browser.
	(vrmlScene): Use getFilename.
	(nodeStatement): Use getFilename.
	(proto): Use getFilename.
	(protoInterfaceDeclaration): Use getFilename.
	(protoNodeStatement): Use getFilename.
	(externproto): Use getFilename.
	(externInterfaceDeclaration): Use getFilename.
	(routeStatement): Use getFilename.
	(protoRouteStatement): Use getFilename.
	(node): Use getFilename.
	(nodeBodyElement): Use getFilename.
	(scriptInterfaceDeclaration): Use getFilename.
	(scriptFieldInterfaceDeclaration): Use getFilename.
	(protoNode): Use getFilename.
	(protoNodeBodyElement): Use getFilename.
	(protoScriptInterfaceDeclaration): Use getFilename.
	(protoScriptFieldInterfaceDeclaration): Use getFilename.
	* src/libopenvrml/openvrml/X3DVrmlParser.g
	(X3DVrmlParser::X3DVrmlParser(openvrml::browser &,
	antlr::TokenStream &, const std::string &)): Construct with an
	openvrml::browser; call antlr::Parser::setFilename instead of
	adding a member variable for the uri.
	(X3DVrmlParser::reportError(const antlr::RecognitionException &)):
	Overridden from antlr::Parser; send the error message to
	openvrml::browser::err.
	(X3DVrmlParser::reportError(const std::string &)):
	Overridden from antlr::Parser; send the error message to
	openvrml::browser::err.
	(X3DVrmlParser::reportWarning(const std::string &)):
	Overridden from antlr::Parser; send the warning message to
	openvrml::browser::err.
	(X3DVrmlParser::browser_): Added a pointer to the browser.
	(vrmlScene): Use getFilename.
	(componentStatement): Use getFilename.
	* src/libopenvrml/openvrml/browser.cpp
	(parse_vrml(std::istream &, const std::string &, const
	std::string&, const openvrml::scene &,
	std::vector<boost::intrusive_ptr<openvrml::node> > &,
	std::map<std::string, std::string> &)): Pass the browser to the
	parser constructor.
	(openvrml::browser::root_scene_loader::operator()() const): Catch
	openvrml::invalid_vrml and print an error message.

2006-11-16 Braden McDaniel  <braden@endoframe.com>

	* m4/antlr.m4: Use AC_CHECK_PROG instead of AC_PATH_PROG so that
	ANTLR can be set to an invocation of the java runtime including
	arguments.

2006-11-16 Braden McDaniel  <braden@endoframe.com>

	* doc/openvrml-gtkplug.texi: Fixed direntry.

2006-11-16 Braden McDaniel  <braden@endoframe.com>

	* lib/gtkglext/configure.in: Don't fail configure if
	BASE_DEPENDENCIES aren't found. Seriously.

2006-11-08 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/viewer.cpp
	(openvrml::viewer::remove_object(object_t)): Removed erroneously
	added recursive call.

2006-11-04 Braden McDaniel  <braden@endoframe.com>

	Quelled warnings from gtkglext.

	* lib/gtkglext/gdk/x11/gdkglcontext-x11.c
	(_gdk_gl_context_destroy): Quelled type-punning warnings triggered
	by strict aliasing rules.
	(_gdk_gl_context_set_gl_drawable): Quelled type-punning warnings
	triggered by strict aliasing rules.
	(gdk_gl_context_hash): Delegate to g_direct_hash to avoid warning
	about converting a pointer to an unsigned int (likely to be
	triggered on 64-bit platforms).

2006-11-04 Braden McDaniel  <braden@endoframe.com>

	* lib/antlr/src/String.cpp
	(antlr::operator+(const std::string &, size_t)): %lu, not %ul.

2006-11-03 Braden McDaniel  <braden@endoframe.com>

	Quell warnings from libantlr.

	* lib/antlr/antlr/BaseAST.hpp
	(antlr::BaseAST::setText(const std::string &)): Commented out
	unused argument declaration.
	(antlr::BaseAST::setType(int)): Commented out argument unused
	declaration.
	* lib/antlr/antlr/CharScanner.hpp
	(antlr::CharScanner::recover(const RecognitionException &, const
	BitSet &)): Commented out unused argument declaration.
	* lib/antlr/antlr/Parser.hpp
	(antlr::Parser::recover(const RecognitionException &, const
	BitSet&)): Commented out unused argument declaration.
	* lib/antlr/src/String.cpp
	(antlr::operator+(const std::string &, size_t)): Use %ul when
	printing size_t.

2006-11-03 Braden McDaniel  <braden@endoframe.com>

	Updated Antlr support library to 2.7.6.

	* configure.ac: Require Antlr 2.7.6 to build the parser.
	* lib/antlr/GNUmakefile.am (libantlr_la_SOURCES): Added
	TokenRefCount.cpp.

2006-10-30 Braden McDaniel  <braden@endoframe.com>

	Applied nonvirtual interface pattern to openvrml::viewer.

	* src/libopenvrml/openvrml/viewer.cpp
	* src/libopenvrml/openvrml/viewer.h
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	* src/libopenvrml-gl/openvrml/gl/viewer.h

2006-10-28 Braden McDaniel  <braden@endoframe.com>

	Updates for the 0.16.1 release.

	* NEWS: Updated for 0.16.1 release.
	* README: Updated for 0.16.1 release.
	* configure.ac: Updated for 0.16.1 release.
	* doc/Doxyfile: Updated for 0.16.1 release.
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml/openvrml.rc:
	Updated for 0.16.1 release.
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml/openvrml.vcproj:
	Updated for 0.16.1 release.
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml-gl/openvrml-gl.rc:
	Updated for 0.16.1 release.
	* mozilla-plugin/configure.ac: Updated for 0.16.1 release.
	* src/libopenvrml/Makefile.am: Updated libtool library version to
	7:0:1.
	* src/libopenvrml-gl/Makefile.am: Updated libtool library version
	to 6:3:0.

2006-10-28 Braden McDaniel  <braden@endoframe.com>

	* openvrml.spec.in: Improvements for conformance to Fedora Extras
	packaging guidelines.

2006-10-27 Braden McDaniel  <braden@endoframe.com>

	* Makefile.am: Pass --enable-gtk-doc in DISTCHECK_CONFIGURE_FLAGS
	so that distcheck will succeed.

2006-10-27 Braden McDaniel  <braden@endoframe.com>

	* openvrml.spec.in: Fixed file name for openvrml-gtkplug texinfo.

2006-10-27 Braden McDaniel  <braden@endoframe.com>

	* lib/gtkglext/docs/reference/gtkglext/Makefile.am: Suppress
	installation of the GtkGLExt documentation.

2006-10-27 Braden McDaniel  <braden@endoframe.com>

	* openvrml.spec.in: Removed obsolete references to openvrml.xpt
	and openvrml.idl by the mozilla-plugin package.

2006-10-25 Braden McDaniel  <braden@endoframe.com>

	* doc/index.doc: Documentation improvements.

2006-10-25 Braden McDaniel  <braden@endoframe.com>

	Quelled warnings from gcc.

	* mozilla-plugin/src/openvrml.cpp
	(plugin_instance::set_window(NPWindow &)): Suppress unused
	variable warning.
	(plugin_instance::get_name(const NPVariant *, uint32_t,
	NPVariant*)): Quelled unused variable warnings.
	(plugin_instance::get_version(const NPVariant *, uint32_t,
	NPVariant*)): Quelled unused variable warnings.

2006-10-25 Braden McDaniel  <braden@endoframe.com>

	* doc/openvrml-gtkplug.texi: Fixed URL reference to the patch
	manager.

2006-10-25 Braden McDaniel  <braden@endoframe.com>

	* README: Marked --enable-script-node-java configure option as
	unsupported.

2006-10-25 Braden McDaniel  <braden@endoframe.com>

	* README: Updated package directory layout to reflect update to
	Visual C++ 8.0 project files.

2006-10-25 Braden McDaniel  <braden@endoframe.com>

	Accommodate building against Firefox development headers.

	* configure.ac: First look for firefox-js; fall back to
	mozilla-js.
	* openvrml.spec.in: Depend on firefox instead of mozilla.
	* mozilla-plugin/configure.ac: First look for firefox-plugin; fall
	back to mozilla-plugin.

2006-10-23 Braden McDaniel  <braden@endoframe.com>

	Moved the URI grammar to private.h so that it can be used by
	multiple implementation files.

	* src/libopenvrml/private.h: Moved URI grammar to here.
	* src/libopenvrml/openvrml/browser.cpp: Removed URI grammar (moved
	to private.h).  Removed openvrml::node_metatype_id
	implementation (moved to node.cpp).
	* src/libopenvrml/openvrml/node.cpp: Moved
	openvrml::node_metatype_id implementation to here.

2006-10-18 Braden McDaniel  <braden@endoframe.com>

	Fixed some residual uses of the openvrml::mat4f constructor.

	* src/libopenvrml/openvrml/vrml97node.cpp
	(viewpoint_node::do_relocate()): Use make_mat4f instead of mat4f's
	default constructor.
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	(openvrml::gl::viewer::reset_user_navigation()): Use make_mat4f
	instead of mat4f's default constructor.

2006-10-12 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/openvrml.cpp
	(NPP_SetWindow(NPP, NPWindow *)): Catch std::runtime_error.
	(plugin_instance::set_window(NPWindow &)): Throw
	std::runtime_error in response to failures from GLib functions.

2006-10-12 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/openvrml.cpp
	(plugin_instance::set_window(NPWindow &)): Improved exception
	safety with ScopeGuard.

2006-10-10 Braden McDaniel  <braden@endoframe.com>

	* lib/gtkglext/configure.in: Build against X11 if we are building
	under Cygwin with Cygwin X11.

2006-10-10 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	(OPENVRML_GL_CALLBACK_): Don't apply __stdcall__ attribute if
	we're building with Cygwin X11's glu.h.

2006-10-09 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Removed XPIDL, XPIDLFLAGS precious variables.

2006-10-08 Braden McDaniel  <braden@endoframe.com>

	Use the npruntime extensions to NPAPI to make the plug-in
	scriptable instead of XPCOM.

	* mozilla-plugin/configure.ac: Removed XPCOM-related checks.
	* mozilla-plugin/src/Makefile.am: Removed references to
	openvrml.idl and files generated from it.
	* mozilla-plugin/src/openvrml.cpp
	(script_callback_map): A singleton to map NPIdentifiers to
	functions.
	(plugin_instance::scriptablePeer): Removed member.
	(plugin_instance::npobj): Added member; the NPObject associated
	with the plug-in instance.
	(plugin_instance::get_name(const NPVariant *, uint32_t,
	NPVariant*)): Browser.getName() implementation.
	(plugin_instance::get_version(const NPVariant *, uint32_t,
	NPVariant*)): Browser.getVersion() implementation.
	(ScriptablePeer): Removed class.
	(NP_Initialize(NPNetscapeFuncs *, NPPluginFuncs *)): Initialize
	mozillaFuncs with the npruntime API function pointers.  Removed
	initialization of the console_service pointer to the Mozilla XPCOM
	console service.
	(NPP_GetValue(NPP, NPPVariable, void *)): Removed support for
	NPPVpluginScriptableInstance and NPPVpluginScriptableIID.  Added
	support for NPPVpluginScriptableNPObject.
	(printerr(const char *)): Write to stderr rather than the
	JavaScript console.
	(NPN_ReleaseVariantValue(NPVariant *)): Added npruntime function.
	(NPN_GetStringIdentifier(const NPUTF8 *)): Added npruntime
	function.
	(NPN_GetStringIdentifiers(const NPUTF8 **, int32_t,
	NPIdentifier*)): Added npruntime function.
	(NPN_GetIntIdentifier(int32_t)): Added npruntime function.
	(NPN_IdentifierIsString(NPIdentifier *)): Added npruntime
	function.
	(NPN_UTF8FromIdentifier(NPIdentifier)): Added npruntime function.
	(NPN_IntFromIdentifier(NPIdentifier)): Added npruntime function.
	(NPN_CreateObject(NPP, NPClass *)): Added npruntime function.
	(NPN_RetainObject(NPObject *)): Added npruntime function.
	(NPN_ReleaseObject(NPObject *)): Added npruntime function.
	(NPN_Invoke(NPP, NPObject *, NPIdentifier, const NPVariant *,
	uint32_t, NPVariant *)): Added npruntime function.
	(NPN_InvokeDefault(NPP, NPObject *, const NPVariant *, uint32_t,
	NPVariant *)): Added npruntime function.
	(NPN_Evaluate(NPP, NPObject *, NPString *, NPVariant *)): Added
	npruntime function.
	(NPN_GetProperty(NPP, NPObject *, NPIdentifier, NPVariant *)):
	Added npruntime function.
	(NPN_SetProperty(NPP, NPObject *, NPIdentifier, const
	NPVariant*)): Added npruntime function.
	(NPN_RemoveProperty(NPP, NPObject *, NPIdentifier)): Added
	npruntime function.
	(NPN_HasProperty(NPP, NPObject *, NPIdentifier)): Added npruntime
	function.
	(NPN_HasMethod(NPP, NPObject *, NPIdentifier)): Added npruntime
	function.
	(NPN_SetException(NPObject *, const NPUTF8 *)): Added npruntime
	function.
	(script_callback_map::instance_): Singleton instance.
	(script_callback_map::script_callback_map()): Initialize the map
	with pointers to the script method implementations.
	(script_callback_map::instance()): Get the instance.
	(OpenVRMLNPObject): NPObject corresponding to the plug-in
	instance.
	(openvrmlnpobject_allocate(NPP, NPClass *)): "allocate" callback
	function for the plug-in's NPObject.
	(openvrmlnpobject_deallocate(NPObject *)): "deallocate" callback
	function for the plug-in's NPObject.
	(openvrmlnpobject_invalidate(NPObject *)): "invalidate" callback
	function for the plug-in's NPObject.
	(openvrmlnpobject_hasMethod(NPObject *, NPIdentifier)):
	"hasMethod" callback function for the plug-in's NPObject.
	(openvrmlnpobject_invoke(NPObject *, NPIdentifier, const
	NPVariant*, uint32_t, NPVariant *)): "invoke" callback function
	for the plug-in's NPObject.
	(openvrmlnpobject_invokeDefault(NPObject *, const NPVariant *,
	uint32_t, NPVariant *)): "invokeDefault" callback function for the
	plug-in's NPObject.
	(openvrmlnpobject_getProperty(NPObject *, NPIdentifier,
	NPVariant*)): "getProperty" callback function for the plug-in's
	NPObject.
	(openvrmlnpobject_setProperty(NPObject *, NPIdentifier, const
	NPVariant *)): "setProperty" callback function for the plug-in's
	NPObject.
	(openvrmlnpobject_removeProperty(NPObject *, NPIdentifier)):
	"removeProperty" callback function for the plug-in's NPObject.
	(npclass): NPClass object for the plug-in's NPObject.
	(plugin_instance::plugin_instance(NPP)): Initialize the plug-in
	instance's NPObject pointer.
	(plugin_instance::~plugin_instance()): Call NPN_ReleaseObject on
	the plug-in instance's NPObject.
	(plugin_instance::get_name(const NPVariant *, uint32_t,
	NPVariant*)): Return the VRML browser name.
	(plugin_instance::get_version(const NPVariant *, uint32_t,
	NPVariant *)): Return the VRML browser version.
	* mozilla-plugin/src/openvrml.idl: Removed file.

2006-10-05 Braden McDaniel  <braden@endoframe.com>

	* openvrml.spec.in: Added openvrml-gtkplug info.

2006-10-04 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Fixed usage of AC_PATH_PROG when checking for Rez.

2006-10-04 Braden McDaniel  <braden@endoframe.com>

	Only recurse into lib/gtkglext if building openvrml-gtkplug.

	* configure.ac: Added gtkglext_subdir substitution.
	* lib/Makefile.am: Add gtkglext to SUBDIRS as a configure
	substitution.  We don't want to recurse there if we aren't
	building openvrml-gtkplug.

2006-10-04 Braden McDaniel  <braden@endoframe.com>

	* README: Updated package layout description to reflect
	openvrml-gtkplug.

2006-10-04 Braden McDaniel  <braden@endoframe.com>

	Added info documentation for openvrml-gtkplug.

	* doc/Makefile.am: Added openvrml-gtkplug.texi.
	* doc/fdl.texi: GNU Free Documentation license.
	* doc/openvrml-gtkplug.texi: Texinfo documentation for
	openvrml-gtkplug.

2006-10-03 Braden McDaniel  <braden@endoframe.com>

	* lib/gtkglext/configure.in: Don't die if we don't find all of
	GtkGLExt's dependencies; we might not care (i.e., if the user
	isn't building openvrml-gtkplug).

2006-10-02 Braden McDaniel  <braden@endoframe.com>

	* src/openvrml-gtkplug/main.cpp
	(main(int, char *[])): Added --version option.

2006-10-02 Braden McDaniel  <braden@endoframe.com>

	* README: Added documentation for --disable-gtkplug configure
	option.

2006-10-01 Braden McDaniel  <braden@endoframe.com>

	Link openvrml-gtkplug using OPENVRML_RPATH (that is, an rpath to
	the directory where libmozjs resides).

	* src/openvrml-gtkplug/Makefile.am
	(AM_LDFLAGS): Use instead of openvrml_gtkplug_LDFLAGS; added
	OPENVRML_RPATH.
	(LDADD): Use instead of openvrml_gtkplug_LDADD.

2006-10-01 Braden McDaniel  <braden@endoframe.com>

	Build/package the GtkPlug application separately from the Mozilla
	plug-in.  The Mozilla plug-in is just one possible client for this
	application.

	* README: Changed OPENVRML_PLAYER variable to OPENVRML_GTKPLUG.
	* configure.ac: Output makefile for openvrml-gtkplug; check for
	GTK+; added --disable-gtkplug option; added lib/gtkglext
	subpackage.
	* openvrml.spec.in: Added openvrml-gtkplug package.
	* lib/Makefile.am (SUBDIRS): Added gtkglext.
	* lib/gtkglext/AUTHORS: Added file.
	* lib/gtkglext/COPYING: Added file.
	* lib/gtkglext/COPYING.LIB: Added file.
	* lib/gtkglext/ChangeLog: Added file.
	* lib/gtkglext/ChangeLog.pre-1-0: Added file.
	* lib/gtkglext/INSTALL: Added file.
	* lib/gtkglext/Makefile.am: Added file.
	* lib/gtkglext/NEWS: Added file.
	* lib/gtkglext/README: Added file.
	* lib/gtkglext/README.win32: Added file.
	* lib/gtkglext/TODO: Added file.
	* lib/gtkglext/configure.in: Added file.
	* lib/gtkglext/gdkglext-uninstalled.pc.in: Added file.
	* lib/gtkglext/gdkglext.pc.in: Added file.
	* lib/gtkglext/gtkglext-uninstalled.pc.in: Added file.
	* lib/gtkglext/gtkglext.nsi.in: Added file.
	* lib/gtkglext/gtkglext.pc.in: Added file.
	* lib/gtkglext/gtkglext.spec.in: Added file.
	* lib/gtkglext/setup-gtkglext.sh: Added file.
	* lib/gtkglext/docs/Makefile.am: Added file.
	* lib/gtkglext/docs/reference/Makefile.am: Added file.
	* lib/gtkglext/docs/reference/gtkglext/Makefile.am: Added file.
	* lib/gtkglext/docs/reference/gtkglext/building.sgml: Added file.
	* lib/gtkglext/docs/reference/gtkglext/gtkglext-docs.sgml: Added
	file.
	* lib/gtkglext/docs/reference/gtkglext/gtkglext-overrides.sgml:
	Added file.
	* lib/gtkglext/docs/reference/gtkglext/gtkglext-sections.txt:
	Added file.
	* lib/gtkglext/docs/reference/gtkglext/gtkglext.types: Added file.
	* lib/gtkglext/docs/reference/gtkglext/running.sgml: Added file.
	* lib/gtkglext/docs/reference/gtkglext/version.xml.in: Added file.
	* lib/gtkglext/docs/reference/gtkglext/tmpl/gdkgl.sgml: Added
	file.
	* lib/gtkglext/docs/reference/gtkglext/tmpl/gdkglconfig.sgml:
	Added file.
	* lib/gtkglext/docs/reference/gtkglext/tmpl/gdkglcontext.sgml:
	Added file.
	* lib/gtkglext/docs/reference/gtkglext/tmpl/gdkgldefs.sgml: Added
	file.
	* lib/gtkglext/docs/reference/gtkglext/tmpl/gdkgldrawable.sgml:
	Added file.
	* lib/gtkglext/docs/reference/gtkglext/tmpl/gdkglfont.sgml: Added
	file.
	* lib/gtkglext/docs/reference/gtkglext/tmpl/gdkglinit.sgml: Added
	file.
	* lib/gtkglext/docs/reference/gtkglext/tmpl/gdkglpixmap.sgml:
	Added file.
	* lib/gtkglext/docs/reference/gtkglext/tmpl/gdkglquery.sgml: Added
	file.
	* lib/gtkglext/docs/reference/gtkglext/tmpl/gdkglshapes.sgml:
	Added file.
	* lib/gtkglext/docs/reference/gtkglext/tmpl/gdkgltokens.sgml:
	Added file.
	* lib/gtkglext/docs/reference/gtkglext/tmpl/gdkglversion.sgml:
	Added file.
	* lib/gtkglext/docs/reference/gtkglext/tmpl/gdkglwindow.sgml:
	Added file.
	* lib/gtkglext/docs/reference/gtkglext/tmpl/gdkglx.sgml: Added
	file.
	* lib/gtkglext/docs/reference/gtkglext/tmpl/gtkgl.sgml: Added
	file.
	* lib/gtkglext/docs/reference/gtkglext/tmpl/gtkgldefs.sgml: Added
	file.
	* lib/gtkglext/docs/reference/gtkglext/tmpl/gtkglext-unused.sgml:
	Added file.
	* lib/gtkglext/docs/reference/gtkglext/tmpl/gtkglinit.sgml: Added
	file.
	* lib/gtkglext/docs/reference/gtkglext/tmpl/gtkglversion.sgml:
	Added file.
	* lib/gtkglext/docs/reference/gtkglext/tmpl/gtkglwidget.sgml:
	Added file.
	* lib/gtkglext/examples/Makefile.am: Added file.
	* lib/gtkglext/examples/Makefile.mingw: Added file.
	* lib/gtkglext/examples/Makefile.msc: Added file.
	* lib/gtkglext/examples/alien.lwo: Added file.
	* lib/gtkglext/examples/button.c: Added file.
	* lib/gtkglext/examples/color.c: Added file.
	* lib/gtkglext/examples/coolwave.c: Added file.
	* lib/gtkglext/examples/coolwave2.c: Added file.
	* lib/gtkglext/examples/font-pangoft2-tex.c: Added file.
	* lib/gtkglext/examples/font-pangoft2.c: Added file.
	* lib/gtkglext/examples/font.c: Added file.
	* lib/gtkglext/examples/gears.c: Added file.
	* lib/gtkglext/examples/girl.rgb: Added file.
	* lib/gtkglext/examples/glxinfo.c: Added file.
	* lib/gtkglext/examples/logo-g.c: Added file.
	* lib/gtkglext/examples/logo-k.c: Added file.
	* lib/gtkglext/examples/logo-model.c: Added file.
	* lib/gtkglext/examples/logo-model.h: Added file.
	* lib/gtkglext/examples/logo-t.c: Added file.
	* lib/gtkglext/examples/logo.c: Added file.
	* lib/gtkglext/examples/low-level.c: Added file.
	* lib/gtkglext/examples/lw.c: Added file.
	* lib/gtkglext/examples/lw.h: Added file.
	* lib/gtkglext/examples/multiarb.c: Added file.
	* lib/gtkglext/examples/penguin.lwo: Added file.
	* lib/gtkglext/examples/pixmap-mixed.c: Added file.
	* lib/gtkglext/examples/pixmap.c: Added file.
	* lib/gtkglext/examples/readtex.c: Added file.
	* lib/gtkglext/examples/readtex.h: Added file.
	* lib/gtkglext/examples/reflect.rgb: Added file.
	* lib/gtkglext/examples/rotating-square.c: Added file.
	* lib/gtkglext/examples/scribble-gl.c: Added file.
	* lib/gtkglext/examples/shapes.c: Added file.
	* lib/gtkglext/examples/share-lists.c: Added file.
	* lib/gtkglext/examples/simple-mixed.c: Added file.
	* lib/gtkglext/examples/simple-pbuffer-sgix.c: Added file.
	* lib/gtkglext/examples/simple.c: Added file.
	* lib/gtkglext/examples/template.c: Added file.
	* lib/gtkglext/examples/trackball.c: Added file.
	* lib/gtkglext/examples/trackball.h: Added file.
	* lib/gtkglext/examples/viewlw.c: Added file.
	* lib/gtkglext/examples/wglinfo.c: Added file.
	* lib/gtkglext/examples/glade/Makefile.am: Added file.
	* lib/gtkglext/examples/glade/README: Added file.
	* lib/gtkglext/examples/glade/share-lists.c: Added file.
	* lib/gtkglext/examples/glade/share-lists.glade: Added file.
	* lib/gtkglext/examples/glade/simple.c: Added file.
	* lib/gtkglext/examples/glade/simple.glade: Added file.
	* lib/gtkglext/gdk/Makefile.am: Added file.
	* lib/gtkglext/gdk/gdkgl.h: Added file.
	* lib/gtkglext/gdk/gdkglconfig.c: Added file.
	* lib/gtkglext/gdk/gdkglconfig.h: Added file.
	* lib/gtkglext/gdk/gdkglcontext.c: Added file.
	* lib/gtkglext/gdk/gdkglcontext.h: Added file.
	* lib/gtkglext/gdk/gdkgldebug.h: Added file.
	* lib/gtkglext/gdk/gdkgldefs.h: Added file.
	* lib/gtkglext/gdk/gdkgldrawable.c: Added file.
	* lib/gtkglext/gdk/gdkgldrawable.h: Added file.
	* lib/gtkglext/gdk/gdkglenumtypes.c: Added file.
	* lib/gtkglext/gdk/gdkglenumtypes.h: Added file.
	* lib/gtkglext/gdk/gdkglext-gtk20.def: Added file.
	* lib/gtkglext/gdk/gdkglext.def: Added file.
	* lib/gtkglext/gdk/gdkglfont.h: Added file.
	* lib/gtkglext/gdk/gdkglglext.c: Added file.
	* lib/gtkglext/gdk/gdkglglext.h: Added file.
	* lib/gtkglext/gdk/gdkglinit.c: Added file.
	* lib/gtkglext/gdk/gdkglinit.h: Added file.
	* lib/gtkglext/gdk/gdkglpixmap.c: Added file.
	* lib/gtkglext/gdk/gdkglpixmap.h: Added file.
	* lib/gtkglext/gdk/gdkglprivate.h: Added file.
	* lib/gtkglext/gdk/gdkglquery.c: Added file.
	* lib/gtkglext/gdk/gdkglquery.h: Added file.
	* lib/gtkglext/gdk/gdkglshapes.c: Added file.
	* lib/gtkglext/gdk/gdkglshapes.h: Added file.
	* lib/gtkglext/gdk/gdkgltokens.h: Added file.
	* lib/gtkglext/gdk/gdkgltypes.h: Added file.
	* lib/gtkglext/gdk/gdkglversion.c: Added file.
	* lib/gtkglext/gdk/gdkglversion.h.in: Added file.
	* lib/gtkglext/gdk/gdkglwindow.c: Added file.
	* lib/gtkglext/gdk/gdkglwindow.h: Added file.
	* lib/gtkglext/gdk/glext/Makefile.am: Added file.
	* lib/gtkglext/gdk/glext/README: Added file.
	* lib/gtkglext/gdk/glext/common-header.h: Added file.
	* lib/gtkglext/gdk/glext/gen-gdkglglext-c.pl: Added file.
	* lib/gtkglext/gdk/glext/gen-gdkglglext-h.pl: Added file.
	* lib/gtkglext/gdk/glext/gen-gdkglglxext-c.pl: Added file.
	* lib/gtkglext/gdk/glext/gen-gdkglglxext-h.pl: Added file.
	* lib/gtkglext/gdk/glext/gen-gdkglwglext-c.pl: Added file.
	* lib/gtkglext/gdk/glext/gen-gdkglwglext-h.pl: Added file.
	* lib/gtkglext/gdk/glext/glext-extra.h: Added file.
	* lib/gtkglext/gdk/glext/glext.h: Added file.
	* lib/gtkglext/gdk/glext/glxext-extra.h: Added file.
	* lib/gtkglext/gdk/glext/glxext.h: Added file.
	* lib/gtkglext/gdk/glext/list-ext.pl: Added file.
	* lib/gtkglext/gdk/glext/wglext-extra.h: Added file.
	* lib/gtkglext/gdk/glext/wglext.h: Added file.
	* lib/gtkglext/gdk/win32/Makefile.am: Added file.
	* lib/gtkglext/gdk/win32/gdkglconfig-win32.c: Added file.
	* lib/gtkglext/gdk/win32/gdkglconfig-win32.h: Added file.
	* lib/gtkglext/gdk/win32/gdkglcontext-win32.c: Added file.
	* lib/gtkglext/gdk/win32/gdkglcontext-win32.h: Added file.
	* lib/gtkglext/gdk/win32/gdkgldrawable-win32.c: Added file.
	* lib/gtkglext/gdk/win32/gdkglfont-win32.c: Added file.
	* lib/gtkglext/gdk/win32/gdkglpixmap-win32.c: Added file.
	* lib/gtkglext/gdk/win32/gdkglpixmap-win32.h: Added file.
	* lib/gtkglext/gdk/win32/gdkglprivate-win32.h: Added file.
	* lib/gtkglext/gdk/win32/gdkglquery-win32.c: Added file.
	* lib/gtkglext/gdk/win32/gdkglwglext.c: Added file.
	* lib/gtkglext/gdk/win32/gdkglwglext.h: Added file.
	* lib/gtkglext/gdk/win32/gdkglwin32.h: Added file.
	* lib/gtkglext/gdk/win32/gdkglwindow-win32.c: Added file.
	* lib/gtkglext/gdk/win32/gdkglwindow-win32.h: Added file.
	* lib/gtkglext/gdk/x11/Makefile.am: Added file.
	* lib/gtkglext/gdk/x11/gdkglconfig-x11.c: Added file.
	* lib/gtkglext/gdk/x11/gdkglconfig-x11.h: Added file.
	* lib/gtkglext/gdk/x11/gdkglcontext-x11.c: Added file.
	* lib/gtkglext/gdk/x11/gdkglcontext-x11.h: Added file.
	* lib/gtkglext/gdk/x11/gdkgldrawable-x11.c: Added file.
	* lib/gtkglext/gdk/x11/gdkglfont-x11.c: Added file.
	* lib/gtkglext/gdk/x11/gdkglglxext.c: Added file.
	* lib/gtkglext/gdk/x11/gdkglglxext.h: Added file.
	* lib/gtkglext/gdk/x11/gdkgloverlay-x11.c: Added file.
	* lib/gtkglext/gdk/x11/gdkgloverlay-x11.h: Added file.
	* lib/gtkglext/gdk/x11/gdkglpixmap-x11.c: Added file.
	* lib/gtkglext/gdk/x11/gdkglpixmap-x11.h: Added file.
	* lib/gtkglext/gdk/x11/gdkglprivate-x11.h: Added file.
	* lib/gtkglext/gdk/x11/gdkglquery-x11.c: Added file.
	* lib/gtkglext/gdk/x11/gdkglwindow-x11.c: Added file.
	* lib/gtkglext/gdk/x11/gdkglwindow-x11.h: Added file.
	* lib/gtkglext/gdk/x11/gdkglx.h: Added file.
	* lib/gtkglext/gtk/Makefile.am: Added file.
	* lib/gtkglext/gtk/gtkgl.h: Added file.
	* lib/gtkglext/gtk/gtkgldebug.h: Added file.
	* lib/gtkglext/gtk/gtkgldefs.h: Added file.
	* lib/gtkglext/gtk/gtkglext.def: Added file.
	* lib/gtkglext/gtk/gtkglinit.c: Added file.
	* lib/gtkglext/gtk/gtkglinit.h: Added file.
	* lib/gtkglext/gtk/gtkglprivate.h: Added file.
	* lib/gtkglext/gtk/gtkglversion.c: Added file.
	* lib/gtkglext/gtk/gtkglversion.h.in: Added file.
	* lib/gtkglext/gtk/gtkglwidget.c: Added file.
	* lib/gtkglext/gtk/gtkglwidget.h: Added file.
	* lib/gtkglext/m4macros/Makefile.am: Added file.
	* lib/gtkglext/m4macros/gtkglext.m4: Added file.
	* mozilla-plugin/Makefile.am (SUBDIRS): Removed reference to lib
	subdirectory.
	* mozilla-plugin/configure.ac: Removed references to lib/gtkglext
	subpackage; removed references to openvrml-player.
	* mozilla-plugin/lib/Makefile.am: Removed file.
	* mozilla-plugin/lib/gtkglext/AUTHORS: Removed file.
	* mozilla-plugin/lib/gtkglext/COPYING: Removed file.
	* mozilla-plugin/lib/gtkglext/COPYING.LIB: Removed file.
	* mozilla-plugin/lib/gtkglext/ChangeLog: Removed file.
	* mozilla-plugin/lib/gtkglext/ChangeLog.pre-1-0: Removed file.
	* mozilla-plugin/lib/gtkglext/INSTALL: Removed file.
	* mozilla-plugin/lib/gtkglext/Makefile.am: Removed file.
	* mozilla-plugin/lib/gtkglext/NEWS: Removed file.
	* mozilla-plugin/lib/gtkglext/README: Removed file.
	* mozilla-plugin/lib/gtkglext/README.win32: Removed file.
	* mozilla-plugin/lib/gtkglext/TODO: Removed file.
	* mozilla-plugin/lib/gtkglext/autogen.sh: Removed file.
	* mozilla-plugin/lib/gtkglext/configure.in: Removed file.
	* mozilla-plugin/lib/gtkglext/gdkglext-uninstalled.pc.in: Removed
	file.
	* mozilla-plugin/lib/gtkglext/gdkglext.pc.in: Removed file.
	* mozilla-plugin/lib/gtkglext/gtkglext-uninstalled.pc.in: Removed
	file.
	* mozilla-plugin/lib/gtkglext/gtkglext.nsi.in: Removed file.
	* mozilla-plugin/lib/gtkglext/gtkglext.pc.in: Removed file.
	* mozilla-plugin/lib/gtkglext/gtkglext.spec.in: Removed file.
	* mozilla-plugin/lib/gtkglext/make-copyright.sh: Removed file.
	* mozilla-plugin/lib/gtkglext/setup-gtkglext.sh: Removed file.
	* mozilla-plugin/lib/gtkglext/docs/Makefile.am: Removed file.
	* mozilla-plugin/lib/gtkglext/docs/reference/Makefile.am: Removed
	file.
	* mozilla-plugin/lib/gtkglext/docs/reference/gtkglext/Makefile.am:
	Removed file.
	* mozilla-plugin/lib/gtkglext/docs/reference/gtkglext/building.sgml:
	Removed file.
	* mozilla-plugin/lib/gtkglext/docs/reference/gtkglext/gtkglext-decl-list.txt:
	Removed file.
	* mozilla-plugin/lib/gtkglext/docs/reference/gtkglext/gtkglext-decl.txt:
	Removed file.
	* mozilla-plugin/lib/gtkglext/docs/reference/gtkglext/gtkglext-docs.sgml:
	Removed file.
	* mozilla-plugin/lib/gtkglext/docs/reference/gtkglext/gtkglext-sections.txt:
	Removed file.
	* mozilla-plugin/lib/gtkglext/docs/reference/gtkglext/gtkglext-undocumented.txt:
	Removed file.
	* mozilla-plugin/lib/gtkglext/docs/reference/gtkglext/gtkglext.types:
	Removed file.
	* mozilla-plugin/lib/gtkglext/docs/reference/gtkglext/running.sgml:
	Removed file.
	* mozilla-plugin/lib/gtkglext/docs/reference/gtkglext/version.xml.in:
	Removed file.
	* mozilla-plugin/lib/gtkglext/docs/reference/gtkglext/tmpl/gdkgl.sgml:
	Removed file.
	* mozilla-plugin/lib/gtkglext/docs/reference/gtkglext/tmpl/gdkglconfig.sgml:
	Removed file.
	* mozilla-plugin/lib/gtkglext/docs/reference/gtkglext/tmpl/gdkglcontext.sgml:
	Removed file.
	* mozilla-plugin/lib/gtkglext/docs/reference/gtkglext/tmpl/gdkgldefs.sgml:
	Removed file.
	* mozilla-plugin/lib/gtkglext/docs/reference/gtkglext/tmpl/gdkgldrawable.sgml:
	Removed file.
	* mozilla-plugin/lib/gtkglext/docs/reference/gtkglext/tmpl/gdkglfont.sgml:
	Removed file.
	* mozilla-plugin/lib/gtkglext/docs/reference/gtkglext/tmpl/gdkglinit.sgml:
	Removed file.
	* mozilla-plugin/lib/gtkglext/docs/reference/gtkglext/tmpl/gdkglpixmap.sgml:
	Removed file.
	* mozilla-plugin/lib/gtkglext/docs/reference/gtkglext/tmpl/gdkglquery.sgml:
	Removed file.
	* mozilla-plugin/lib/gtkglext/docs/reference/gtkglext/tmpl/gdkglshapes.sgml:
	Removed file.
	* mozilla-plugin/lib/gtkglext/docs/reference/gtkglext/tmpl/gdkgltokens.sgml:
	Removed file.
	* mozilla-plugin/lib/gtkglext/docs/reference/gtkglext/tmpl/gdkglversion.sgml:
	Removed file.
	* mozilla-plugin/lib/gtkglext/docs/reference/gtkglext/tmpl/gdkglwindow.sgml:
	Removed file.
	* mozilla-plugin/lib/gtkglext/docs/reference/gtkglext/tmpl/gdkglx.sgml:
	Removed file.
	* mozilla-plugin/lib/gtkglext/docs/reference/gtkglext/tmpl/gtkgl.sgml:
	Removed file.
	* mozilla-plugin/lib/gtkglext/docs/reference/gtkglext/tmpl/gtkgldefs.sgml:
	Removed file.
	* mozilla-plugin/lib/gtkglext/docs/reference/gtkglext/tmpl/gtkglext-unused.sgml:
	Removed file.
	* mozilla-plugin/lib/gtkglext/docs/reference/gtkglext/tmpl/gtkglinit.sgml:
	Removed file.
	* mozilla-plugin/lib/gtkglext/docs/reference/gtkglext/tmpl/gtkglversion.sgml:
	Removed file.
	* mozilla-plugin/lib/gtkglext/docs/reference/gtkglext/tmpl/gtkglwidget.sgml:
	Removed file.
	* mozilla-plugin/lib/gtkglext/examples/Makefile.am: Removed file.
	* mozilla-plugin/lib/gtkglext/examples/Makefile.mingw: Removed
	file.
	* mozilla-plugin/lib/gtkglext/examples/Makefile.msc: Removed file.
	* mozilla-plugin/lib/gtkglext/examples/alien.lwo: Removed file.
	* mozilla-plugin/lib/gtkglext/examples/button.c: Removed file.
	* mozilla-plugin/lib/gtkglext/examples/color.c: Removed file.
	* mozilla-plugin/lib/gtkglext/examples/coolwave.c: Removed file.
	* mozilla-plugin/lib/gtkglext/examples/coolwave2.c: Removed file.
	* mozilla-plugin/lib/gtkglext/examples/font-pangoft2-tex.c:
	Removed file.
	* mozilla-plugin/lib/gtkglext/examples/font-pangoft2.c: Removed
	file.
	* mozilla-plugin/lib/gtkglext/examples/font.c: Removed file.
	* mozilla-plugin/lib/gtkglext/examples/gears.c: Removed file.
	* mozilla-plugin/lib/gtkglext/examples/girl.rgb: Removed file.
	* mozilla-plugin/lib/gtkglext/examples/glxinfo.c: Removed file.
	* mozilla-plugin/lib/gtkglext/examples/logo-g.c: Removed file.
	* mozilla-plugin/lib/gtkglext/examples/logo-k.c: Removed file.
	* mozilla-plugin/lib/gtkglext/examples/logo-model.c: Removed file.
	* mozilla-plugin/lib/gtkglext/examples/logo-model.h: Removed file.
	* mozilla-plugin/lib/gtkglext/examples/logo-t.c: Removed file.
	* mozilla-plugin/lib/gtkglext/examples/logo.c: Removed file.
	* mozilla-plugin/lib/gtkglext/examples/low-level.c: Removed file.
	* mozilla-plugin/lib/gtkglext/examples/lw.c: Removed file.
	* mozilla-plugin/lib/gtkglext/examples/lw.h: Removed file.
	* mozilla-plugin/lib/gtkglext/examples/multiarb.c: Removed file.
	* mozilla-plugin/lib/gtkglext/examples/penguin.lwo: Removed file.
	* mozilla-plugin/lib/gtkglext/examples/pixmap-mixed.c: Removed
	file.
	* mozilla-plugin/lib/gtkglext/examples/pixmap.c: Removed file.
	* mozilla-plugin/lib/gtkglext/examples/readtex.c: Removed file.
	* mozilla-plugin/lib/gtkglext/examples/readtex.h: Removed file.
	* mozilla-plugin/lib/gtkglext/examples/reflect.rgb: Removed file.
	* mozilla-plugin/lib/gtkglext/examples/rotating-square.c: Removed
	file.
	* mozilla-plugin/lib/gtkglext/examples/scribble-gl.c: Removed
	file.
	* mozilla-plugin/lib/gtkglext/examples/shapes.c: Removed file.
	* mozilla-plugin/lib/gtkglext/examples/share-lists.c: Removed
	file.
	* mozilla-plugin/lib/gtkglext/examples/simple-mixed.c: Removed
	file.
	* mozilla-plugin/lib/gtkglext/examples/simple-pbuffer-sgix.c:
	Removed file.
	* mozilla-plugin/lib/gtkglext/examples/simple.c: Removed file.
	* mozilla-plugin/lib/gtkglext/examples/template.c: Removed file.
	* mozilla-plugin/lib/gtkglext/examples/trackball.c: Removed file.
	* mozilla-plugin/lib/gtkglext/examples/trackball.h: Removed file.
	* mozilla-plugin/lib/gtkglext/examples/viewlw.c: Removed file.
	* mozilla-plugin/lib/gtkglext/examples/wglinfo.c: Removed file.
	* mozilla-plugin/lib/gtkglext/examples/glade/Makefile.am: Removed
	file.
	* mozilla-plugin/lib/gtkglext/examples/glade/README: Removed file.
	* mozilla-plugin/lib/gtkglext/examples/glade/share-lists.c:
	Removed file.
	* mozilla-plugin/lib/gtkglext/examples/glade/share-lists.glade:
	Removed file.
	* mozilla-plugin/lib/gtkglext/examples/glade/simple.c: Removed
	file.
	* mozilla-plugin/lib/gtkglext/examples/glade/simple.glade: Removed
	file.
	* mozilla-plugin/lib/gtkglext/gdk/Makefile.am: Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/gdkgl.h: Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/gdkglconfig.c: Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/gdkglconfig.h: Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/gdkglcontext.c: Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/gdkglcontext.h: Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/gdkgldebug.h: Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/gdkgldefs.h: Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/gdkgldrawable.c: Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/gdkgldrawable.h: Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/gdkglext-gtk20.def: Removed
	file.
	* mozilla-plugin/lib/gtkglext/gdk/gdkglext.def: Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/gdkglfont.h: Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/gdkglglext.c: Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/gdkglglext.h: Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/gdkglinit.c: Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/gdkglinit.h: Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/gdkglpixmap.c: Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/gdkglpixmap.h: Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/gdkglprivate.h: Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/gdkglquery.c: Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/gdkglquery.h: Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/gdkglshapes.c: Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/gdkglshapes.h: Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/gdkgltokens.h: Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/gdkgltypes.h: Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/gdkglversion.c: Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/gdkglversion.h.in: Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/gdkglwindow.c: Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/gdkglwindow.h: Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/gen-def-file.sh: Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/glext/Makefile.am: Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/glext/README: Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/glext/common-header.h: Removed
	file.
	* mozilla-plugin/lib/gtkglext/gdk/glext/gen-gdkglglext-c.pl:
	Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/glext/gen-gdkglglext-h.pl:
	Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/glext/gen-gdkglglxext-c.pl:
	Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/glext/gen-gdkglglxext-h.pl:
	Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/glext/gen-gdkglwglext-c.pl:
	Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/glext/gen-gdkglwglext-h.pl:
	Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/glext/glext-extra.h: Removed
	file.
	* mozilla-plugin/lib/gtkglext/gdk/glext/glext.h: Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/glext/glxext-extra.h: Removed
	file.
	* mozilla-plugin/lib/gtkglext/gdk/glext/glxext.h: Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/glext/list-ext.pl: Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/glext/wglext-extra.h: Removed
	file.
	* mozilla-plugin/lib/gtkglext/gdk/glext/wglext.h: Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/win32/Makefile.am: Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/win32/gdkglconfig-win32.c:
	Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/win32/gdkglconfig-win32.h:
	Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/win32/gdkglcontext-win32.c:
	Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/win32/gdkglcontext-win32.h:
	Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/win32/gdkgldrawable-win32.c:
	Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/win32/gdkglfont-win32.c: Removed
	file.
	* mozilla-plugin/lib/gtkglext/gdk/win32/gdkglpixmap-win32.c:
	Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/win32/gdkglpixmap-win32.h:
	Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/win32/gdkglprivate-win32.h:
	Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/win32/gdkglquery-win32.c:
	Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/win32/gdkglwglext.c: Removed
	file.
	* mozilla-plugin/lib/gtkglext/gdk/win32/gdkglwglext.h: Removed
	file.
	* mozilla-plugin/lib/gtkglext/gdk/win32/gdkglwin32.h: Removed
	file.
	* mozilla-plugin/lib/gtkglext/gdk/win32/gdkglwindow-win32.c:
	Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/win32/gdkglwindow-win32.h:
	Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/x11/Makefile.am: Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/x11/gdkglconfig-x11.c: Removed
	file.
	* mozilla-plugin/lib/gtkglext/gdk/x11/gdkglconfig-x11.h: Removed
	file.
	* mozilla-plugin/lib/gtkglext/gdk/x11/gdkglcontext-x11.c: Removed
	file.
	* mozilla-plugin/lib/gtkglext/gdk/x11/gdkglcontext-x11.h: Removed
	file.
	* mozilla-plugin/lib/gtkglext/gdk/x11/gdkgldrawable-x11.c: Removed
	file.
	* mozilla-plugin/lib/gtkglext/gdk/x11/gdkglfont-x11.c: Removed
	file.
	* mozilla-plugin/lib/gtkglext/gdk/x11/gdkglglxext.c: Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/x11/gdkglglxext.h: Removed file.
	* mozilla-plugin/lib/gtkglext/gdk/x11/gdkgloverlay-x11.c: Removed
	file.
	* mozilla-plugin/lib/gtkglext/gdk/x11/gdkgloverlay-x11.h: Removed
	file.
	* mozilla-plugin/lib/gtkglext/gdk/x11/gdkglpixmap-x11.c: Removed
	file.
	* mozilla-plugin/lib/gtkglext/gdk/x11/gdkglpixmap-x11.h: Removed
	file.
	* mozilla-plugin/lib/gtkglext/gdk/x11/gdkglprivate-x11.h: Removed
	file.
	* mozilla-plugin/lib/gtkglext/gdk/x11/gdkglquery-x11.c: Removed
	file.
	* mozilla-plugin/lib/gtkglext/gdk/x11/gdkglwindow-x11.c: Removed
	file.
	* mozilla-plugin/lib/gtkglext/gdk/x11/gdkglwindow-x11.h: Removed
	file.
	* mozilla-plugin/lib/gtkglext/gdk/x11/gdkglx.h: Removed file.
	* mozilla-plugin/lib/gtkglext/gtk/Makefile.am: Removed file.
	* mozilla-plugin/lib/gtkglext/gtk/gen-def-file.sh: Removed file.
	* mozilla-plugin/lib/gtkglext/gtk/gtkgl.h: Removed file.
	* mozilla-plugin/lib/gtkglext/gtk/gtkgldebug.h: Removed file.
	* mozilla-plugin/lib/gtkglext/gtk/gtkgldefs.h: Removed file.
	* mozilla-plugin/lib/gtkglext/gtk/gtkglext.def: Removed file.
	* mozilla-plugin/lib/gtkglext/gtk/gtkglinit.c: Removed file.
	* mozilla-plugin/lib/gtkglext/gtk/gtkglinit.h: Removed file.
	* mozilla-plugin/lib/gtkglext/gtk/gtkglprivate.h: Removed file.
	* mozilla-plugin/lib/gtkglext/gtk/gtkglversion.c: Removed file.
	* mozilla-plugin/lib/gtkglext/gtk/gtkglversion.h.in: Removed file.
	* mozilla-plugin/lib/gtkglext/gtk/gtkglwidget.c: Removed file.
	* mozilla-plugin/lib/gtkglext/gtk/gtkglwidget.h: Removed file.
	* mozilla-plugin/lib/gtkglext/m4macros/Makefile.am: Removed file.
	* mozilla-plugin/lib/gtkglext/m4macros/gtkglext.m4: Removed file.
	* mozilla-plugin/src/Makefile.am (SUBDIRS): Removed
	openvrml-player.
	* mozilla-plugin/src/openvrml.cpp
	(PluginInstance::SetWindow(NPWindow &)): Changed use of
	OPENVRML_PLAYER environment variable to OPENVRML_GTKPLUG; call
	openvrml-gtkplug instead of openvrml-player.
	* mozilla-plugin/src/openvrml-player/Makefile.am: Removed file.
	* mozilla-plugin/src/openvrml-player/bounded_buffer.h: Removed
	file.
	* mozilla-plugin/src/openvrml-player/command_istream.cpp: Removed
	file.
	* mozilla-plugin/src/openvrml-player/command_istream.h: Removed
	file.
	* mozilla-plugin/src/openvrml-player/flag.cpp: Removed file.
	* mozilla-plugin/src/openvrml-player/flag.h: Removed file.
	* mozilla-plugin/src/openvrml-player/gtkvrmlbrowser.cpp: Removed
	file.
	* mozilla-plugin/src/openvrml-player/gtkvrmlbrowser.h: Removed
	file.
	* mozilla-plugin/src/openvrml-player/player.cpp: Removed file.
	* mozilla-plugin/src/openvrml-player/plugin_streambuf.cpp: Removed
	file.
	* mozilla-plugin/src/openvrml-player/plugin_streambuf.h: Removed
	file.
	* src/Makefile.am (SUBDIRS): Added openvrml-gtkplug.

2006-09-27 Braden McDaniel  <braden@endoframe.com>

	* ide-projects/Makefile.am (VISUALC8_0_FILES): Fixed name of
	libopenvrml-gl resource header.

2006-09-26 Braden McDaniel  <braden@endoframe.com>

	Put DLLs, EXEs in a common directory.

	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml/openvrml.vcproj
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml-gl/openvrml-gl.vcproj
	* ide-projects/Windows/VisualC8_0/OpenVRML/sdl-viewer/sdl-viewer.vcproj

2006-09-26 Braden McDaniel  <braden@endoframe.com>

	Made the GtkSocket id a required argument to openvrml-player
	rather than an option.

	* mozilla-plugin/src/openvrml.cpp
	(PluginInstance::SetWindow(NPWindow &)): Add the socket id as an
	argument rather than an option.
	* mozilla-plugin/src/openvrml-player/player.cpp
	(main(int, char *[])): No longer expect an optional URL argument;
	instead, expect a required GtkSocket id argument (i.e., an
	integer).

2006-09-22 Braden McDaniel  <braden@endoframe.com>

	Removed static library configurations from the Visual C++ project
	files.

	* ide-projects/Windows/VisualC8_0/OpenVRML/OpenVRML.sln
	* ide-projects/Windows/VisualC8_0/OpenVRML/antlr/antlr.vcproj
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml/openvrml.vcproj
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml-gl/openvrml-gl.vcproj
	* ide-projects/Windows/VisualC8_0/OpenVRML/sdl-viewer/sdl-viewer.vcproj

2006-09-21 Braden McDaniel  <braden@endoframe.com>

	* m4/ov_cxx_visibility.m4: Cache the test result.

2006-09-21 Braden McDaniel  <braden@endoframe.com>

	Clean up of breakage from Windows font support check-in.

	* configure.ac: Check to see whether FreeType function callback
	signatures need const.
	* src/libopenvrml/openvrml/vrml97node.cpp
	(text_node::update_face()): Use
	boost::ignore_unused_variable_warning to quell warnings about
	scope_guard variables.  Use unsigned_char_string instead of
	obsoleted FcChar8_string type.  Revert face_index to an int; the
	fontconfig API doesn't like FT_Long.
	(moveTo_(const FT_Vector *, void *)): Use OPENVRML_FT_CONST macro
	in function signature.
	(lineTo_(const FT_Vector *, void *)): Use OPENVRML_FT_CONST macro
	in function signature.
	(conicTo_(const FT_Vector *, const FT_Vector *, void *)): Use
	OPENVRML_FT_CONST macro in function signature.
	(cubicTo_(const FT_Vector *, const FT_Vector *, const FT_Vector *,
	void *)): Use OPENVRML_FT_CONST macro in function signature.

2006-09-19 Braden McDaniel  <braden@endoframe.com>

	* ide-projects/Makefile.am (VISUALC8_0_FILES): Added config
	headers and resource scripts to the distribution.

2006-09-19 Braden McDaniel  <braden@endoframe.com>

	Removed Visual C++ 7.1 project files.

	* ide-projects/Makefile.am (VISUALC7_1_FILES): Removed.
	(EXTRA_DIST): Removed reference to VISUALC7_1_FILES.
	* ide-projects/Windows/VisualC7_1/OpenVRML/OpenVRML.sln: Removed
	file.
	* ide-projects/Windows/VisualC7_1/OpenVRML/antlr/antlr.vcproj:
	Removed file.
	* ide-projects/Windows/VisualC7_1/OpenVRML/openvrml/openvrml-config.h:
	Removed file.
	* ide-projects/Windows/VisualC7_1/OpenVRML/openvrml/openvrml.vcproj:
	Removed file.
	* ide-projects/Windows/VisualC7_1/OpenVRML/openvrml-gl/openvrml-gl-config.h:
	Removed file.
	* ide-projects/Windows/VisualC7_1/OpenVRML/openvrml-gl/openvrml-gl.vcproj:
	Removed file.
	* ide-projects/Windows/VisualC7_1/OpenVRML/sdl-viewer/sdl-viewer.vcproj:
	Removed file.
	* ide-projects/Windows/VisualC7_1/OpenVRML/test-openvrml/test-openvrml.vcproj:
	Removed file.

2006-09-19 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/basetypes.h: Changed declaration of
	openvrml::mat4f from class to struct for consistency with
	definition.

2006-09-19 Braden McDaniel  <braden@endoframe.com>

	Removed unnecessary declarations of openvrml::mat4f.

	* src/libopenvrml/openvrml/bounding_volume.h: Removed spurious
	declaration of openvrml::mat4f.
	* src/libopenvrml/openvrml/rendering_context.h: Removed spurious
	declaration of openvrml::mat4f.

2006-09-19 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/vrml97node.cpp
	(text_node::update_face()): Initial implementation of font
	discovery and resolution for Windows.  The current code pays no
	attention to the FontStyle specification; but it should reliably
	pick a font such that text is rendered.

2006-09-06 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/basetypes.h: Added missing applications
	of OPENVRML_API.

2006-09-02 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/vrml97node.cpp: Doc-comment fixes.

2006-08-31 Braden McDaniel  <braden@endoframe.com>

	* examples/sdl_viewer.cpp (main(int, char **)): Allocate a console
	and direct stdout and stderr to it on Windows.

2006-08-31 Braden McDaniel  <braden@endoframe.com>

	Updated test programs to use make_* functions to create
	fundamental types.

	* tests/color.cpp
	(stream_extraction_without_commas()): Use openvrml::make_color
	instead of openvrml::color constructor.
	(stream_extraction_with_commas()): Use openvrml::make_color
	instead of openvrml::color constructor.
	* tests/mat4f.cpp
	(stream_insertion()): Use openvrml::make_mat4f instead of
	openvrml::mat4f constructor.
	(stream_extraction_numbers_only()): Use openvrml::make_mat4f
	instead of openvrml::mat4f constructor.
	(stream_extraction_numbers_with_commas()): Use
	openvrml::make_mat4f instead of openvrml::mat4f constructor.

2006-08-31 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	(trackball(float, float, float, float): Added missing "using
	openvrml::make_vec3f".
	(computeExtrusion_(const std::vector<openvrml::rotation> &, const
	std::vector<openvrml::vec2f> &, const
	std::vector<openvrml::vec2f>&, const
	std::vector<openvrml::vec3f>&, std::vector<openvrml::vec3f> &,
	std::vector<openvrml::vec2f> &)): Added missing "using
	openvrml::make_vec3f".

2006-08-31 Braden McDaniel  <braden@endoframe.com>

	Made openvrml::color, openvrml::color_rgba, openvrml::vec2f,
	openvrml::vec2d, openvrml::vec3f, openvrml::vec3d,
	openvrml::rotation, openvrml::mat4f, and openvrml::quatf
	POD-structs.  This allows safe usage of these types in C APIs.

	* src/libopenvrml/openvrml/Vrml97Parser.g (rotationValue): Use
	construction functions instead of constructors.
	* src/libopenvrml/openvrml/basetypes.cpp
	(openvrml::color::color()): Removed constructor; use
	openvrml::make_color() instead.
	(openvrml::color::color(const float (&)[3])): Removed constructor;
	use openvrml::make_color(const float (&)[3]) instead.
	(openvrml::color::color(float, float, float)): Removed
	constructor; use openvrml::make_color(float, float, float)
	instead.
	(openvrml::make_color()): Added function.
	(openvrml::make_color(const float (&)[3])): Added function.
	(openvrml::make_color(float, float, float)): Added function.
	(openvrml::color_rgba::color_rgba()): Removed constructor; use
	openvrml::make_color_rgba() instead.
	(openvrml::color_rgba::color_rgba(const float (&)[4])): Removed
	constructor; use openvrml::make_color_rgba(const float (&)[4])
	instead.
	(openvrml::color_rgba::color_rgba(float, float, float, float)):
	Removed constructor; use openvrml::make_color_rgba(float, float,
	float, float) instead.
	(openvrml::make_color_rgba()): Added function.
	(openvrml::make_color_rgba(const float (&)[4])): Added function.
	(openvrml::make_color_rgba(float, float, float, float)): Added
	function.
	(openvrml::vec2f::vec2f()): Removed constructor; use
	openvrml::make_vec2f() instead.
	(openvrml::vec2f::vec2f(const float (&)[2])): Removed constructor;
	use openvrml::make_vec2f(const float (&)[2]) instead.
	(openvrml::vec2f::vec2f(float, float)): Removed constructor; use
	openvrml::make_vec2f(float, float) instead.
	(openvrml::vec2f::operator-()): Use make_vec2f instead of
	constructor.
	(openvrml::make_vec2f()): Added function.
	(openvrml::make_vec2f(const float (&)[2])): Added function.
	(openvrml::make_vec2f(float, float)): Added function.
	(openvrml::vec2d::vec2d()): Removed constructor; use
	openvrml::make_vec2d() instead.
	(openvrml::vec2d::vec2d(const double (&)[2])): Removed
	constructor; use openvrml::make_vec2d(const double (&)[2])
	instead.
	(openvrml::vec2d::vec2d(double, double)): Removed constructor; use
	openvrml::make_vec2d(double, double) instead.
	(openvrml::vec2d::operator-()): Use make_vec2d instead of
	constructor.
	(openvrml::make_vec2d()): Added function.
	(openvrml::make_vec2d(const double (&)[2])): Added function.
	(openvrml::make_vec2d(double, double)): Added function.
	(openvrml::vec3f::vec3f()): Removed constructor; use
	openvrml::make_vec3f() instead.
	(openvrml::vec3f::vec3f(const float (&)[3])): Removed constructor;
	use openvrml::make_vec3f(const float (&)[3]) instead.
	(openvrml::vec3f::vec3f(float, float, float)): Removed
	constructor; use openvrml::make_vec3f(float, float, float)
	instead.
	(openvrml::vec3f::operator-()): Use make_vec3f instead of
	constructor.
	(openvrml::make_vec3f()): Added function.
	(openvrml::make_vec3f(const float (&)[3])): Added function.
	(openvrml::make_vec3f(float, float, float)): Added function.
	(openvrml::vec3d::vec3d()): Removed constructor; use
	openvrml::make_vec3d() instead.
	(openvrml::vec3d::vec3d(const double (&)[3])): Removed
	constructor; use openvrml::make_vec3d(const double (&)[3])
	instead.
	(openvrml::vec3d::vec3d(double, double, double)): Removed
	constructor; use openvrml::make_vec3d(double, double, double)
	instead.
	(openvrml::vec3d::operator-()): Use make_vec3d instead of
	constructor.
	(openvrml::make_vec3d()): Added function.
	(openvrml::make_vec3d(const double (&)[3])): Added function.
	(openvrml::make_vec3d(double, double, double)): Added function.
	(openvrml::rotation::rotation()): Removed constructor; use
	openvrml::make_rotation() instead.
	(openvrml::rotation::rotation(const float (&)[4])): Removed
	constructor; use openvrml::make_rotation(const float (&)[4])
	instead.
	(openvrml::rotation::rotation(float, float, float, float)):
	Removed constructor; use openvrml::make_rotation(float, float,
	float, float) instead.
	(openvrml::rotation::rotation(const vec3f &, float)): Removed
	constructor; use openvrml::make_rotation(const vec3f &, float)
	instead.
	(openvrml::rotation::rotation(const vec3f &, const vec3f &)):
	Removed constructor; use openvrml::make_rotation(const vec3f &,
	const vec3f &) instead.
	(openvrml::rotation::rotation(const quatf &)): Removed
	constructor; use openvrml::make_rotation(const quatf &) instead.
	(openvrml::rotation::operator*=(const rotation &)): Use
	make_rotation, make_quatf instead of constructors.
	(openvrml::rotation::slerp(const rotation &, float)): Use
	make_rotation, make_quatf instead of constructors.
	(openvrml::make_rotation()): Added function.
	(openvrml::make_rotation(const float (&)[4])): Added function.
	(openvrml::make_rotation(float, float, float, float)): Added
	function.
	(openvrml::make_rotation(const vec3f &, float)): Added function.
	(openvrml::make_rotation(const vec3f &, const vec3f &)): Added
	function.
	(openvrml::rotation::rotation(const quatf &)): Removed
	constructor; use openvrml::make_rotation(const quatf &) instead.
	(is_normalized::operator()() const): Use make_vec3f instead of
	constructor.
	(openvrml::mat4f::rotation(const openvrml::rotation &)): Removed
	function; use openvrml::make_rotation_mat4f(const rotation &)
	instead.
	(openvrml::mat4f::rotation(const quatf &)): Removed function; use
	openvrml::make_rotation_mat4f(const quatf &) instead.
	(openvrml::mat4f::scale(float)): Removed function; use
	openvrml::make_scale_mat4f(float) instead.
	(openvrml::mat4f::scale(const vec3f &)): Removed function; use
	openvrml::make_scale_mat4f(const vec3f &) instead.
	(openvrml::mat4f::translation(const vec3f &)): Removed function;
	use openvrml::make_translation_mat4f(const vec3f &) instead.
	(openvrml::mat4f::transformation(const vec3f &, const
	openvrml::rotation &, const vec3f &, const openvrml::rotation &,
	const vec3f &)): Removed function; use
	openvrml::make_transformation_mat4f(const vec3f &, const
	openvrml::rotation &, const vec3f &, const openvrml::rotation &,
	const vec3f &) instead.
	(openvrml::mat4f::mat4f()): Removed constructor; use
	openvrml::make_mat4f() instead.
	(openvrml::mat4f::mat4f(float, float, float, float, float, float,
	float, float, float, float, float, float, float, float, float,
	float)): Removed constructor; use openvrml::make_mat4f(float,
	float, float, float, float, float, float, float, float, float,
	float, float, float, float, float, float) instead.
	(openvrml::mat4f::mat4f(const float[])): Removed constructor; use
	openvrml::make_mat4f(const float[]) instead.
	(openvrml::mat4f::mat4f(const float (&)[4][4])): Removed
	constructor; use openvrml::make_mat4f(const float (&)[4][4])
	instead.
	(openvrml::mat4f::transformation(vec3f &, openvrml::rotation &,
	vec3f &)): Use make_vec3f, make_quatf, and make_rotation instead
	of constructors.
	(openvrml::mat4f::transpose() const): Use aggregate initializer
	instead of constructor.
	(openvrml::make_rotation_mat4f(const openvrml::rotation &)): Added
	function.
	(openvrml::make_rotation_mat4f(const quatf &)): Added function.
	(openvrml::make_scale_mat4f(float)): Added function.
	(openvrml::make_scale_mat4f(const vec3f &)): Added function.
	(openvrml::make_translation_mat4f(const vec3f &)): Added function.
	(openvrml::make_transformation_mat4f(const vec3f &, const
	openvrml::rotation &, const vec3f &, const openvrml::rotation &,
	const vec3f &)): Added function.
	(openvrml::make_mat4f()): Added function.
	(openvrml::make_mat4f(float, float, float, float, float, float,
	float, float, float, float, float, float, float, float, float,
	float)): Added function.
	(openvrml::make_mat4f(const float[])): Added function.
	(openvrml::make_mat4f(const float (&)[4][4])): Added function.
	(openvrml::quatf::quatf()): Removed constructor; use
	openvrml::make_quatf() instead.
	(openvrml::quatf::quatf(float, float, float, float)): Removed
	constructor; use openvrml::make_quatf(float, float, float, float)
	instead.
	(openvrml::quatf::quatf(const float (&)[4])): Removed constructor;
	use openvrml::make_quatf(const float (&)[4]) instead.
	(openvrml::quatf::quatf(const mat4f &)): Removed constructor; use
	openvrml::make_quatf(const mat4f &) instead.
	(openvrml::quatf::quatf(const rotation &)): Removed constructor;
	use openvrml::make_quatf(const rotation &) instead.
	(openvrml::quatf::operator*=(const quatf &)): Use make_quatf
	instead of constructor.
	(openvrml::quatf::conjugate() const): Use aggregate initializer
	instead of constructor.
	(openvrml::quatf::normalize() const): Use aggregate initializer
	instead of constructor.
	(openvrml::make_quatf()): Added function.
	(openvrml::make_quatf(float, float, float, float)): Added
	function.
	(openvrml::make_quatf(const float (&)[4])): Added function.
	(openvrml::make_quatf(const mat4f &)): Added function.
	(openvrml::make_quatf(const rotation &)): Added function.
	* src/libopenvrml/openvrml/basetypes.h
	(openvrml::color): Changed to struct; removed unnecessary friend
	declaration for operator>>; removed constructor declarations.
	(openvrml::make_color()): Added function declaration.
	(openvrml::make_color(const float (&)[3])): Added function
	declaration.
	(openvrml::make_color(float, float, float)): Added function
	declaration.
	(openvrml::color_rgba): Changed to struct; removed unnecessary
	friend declaration for operator>>; removed constructor
	declarations.
	(openvrml::make_color_rgba()): Added function declaration.
	(openvrml::make_color_rgba(const float (&)[4])): Added function
	declaration.
	(openvrml::make_color_rgba(float, float, float, float)): Added
	function declaration.
	(openvrml::vec2f): Changed to struct; removed unnecessary friend
	declaration for operator>>; removed constructor declarations.
	(openvrml::make_vec2f()): Added function declaration.
	(openvrml::make_vec2f(const float (&)[2])): Added function
	declaration.
	(openvrml::make_vec2f(float, float)): Added function declaration.
	(openvrml::vec2d): Changed to struct; removed unnecessary friend
	declaration for operator>>; removed constructor declarations.
	(openvrml::make_vec2d()): Added function declaration.
	(openvrml::make_vec2d(const double (&)[2])): Added function
	declaration.
	(openvrml::make_vec2d(double, double)): Added function
	declaration.
	(openvrml::vec3f): Changed to struct; removed unnecessary friend
	declaration for operator>>; removed constructor declarations.
	(openvrml::make_vec3f()): Added function declaration.
	(openvrml::make_vec3f(const float (&)[3])): Added function
	declaration.
	(openvrml::make_vec3f(float, float, float)): Added function
	declaration.
	(openvrml::vec3d): Changed to struct; removed unnecessary friend
	declaration for operator>>; removed constructor declarations.
	(openvrml::make_vec3d()): Added function declaration.
	(openvrml::make_vec3d(const double (&)[3])): Added function
	declaration.
	(openvrml::make_vec3d(double, double, double)): Added function
	declaration.
	(openvrml::rotation): Changed to struct; removed constructor
	declarations.
	(openvrml::make_rotation()): Added function declaration.
	(openvrml::make_rotation(const float (&)[4])): Added function
	declaration.
	(openvrml::make_rotation(float, float, float, float)): Added
	function declaration.
	(openvrml::make_rotation(const vec3f &, float)): Added function
	declaration.
	(openvrml::make_rotation(const vec3f &, const vec3f &)): Added
	function declaration.
	(openvrml::make_rotation(const quatf &)): Added function
	declaration.
	(openvrml::rotation::axis()) const): Use make_vec3f instead of
	constructor.
	(openvrml::mat4f): Changed to struct; changed static creation
	functions to be nonmembers; removed constructor declarations.
	(openvrml::make_mat4f()): Added function declaration.
	(openvrml::make_mat4f(float, float, float, float, float, float,
	float, float, float, float, float, float, float, float, float,
	float)): Added function declaration.
	(openvrml::make_mat4f(const float[])): Added function declaration.
	(openvrml::make_mat4f(const float (&)[4][4])): Added function
	declaration.
	(openvrml::make_rotation_mat4f(const rotation &)): Added function
	declaration.
	(openvrml::make_rotation_mat4f(const quatf &)): Added function
	declaration.
	(openvrml::make_scale_mat4f(float)): Added function declaration.
	(openvrml::make_scale_mat4f(const vec3f &)): Added function
	declaration.
	(openvrml::make_translation_mat4f(const vec3f &)): Added function
	declaration.
	(openvrml::make_transformation_mat4f(const vec3f &, const rotation
	&, const vec3f &, const rotation &, const vec3f &)): Added
	function declaration.
	(openvrml::quatf): Changed to struct; removed unnecessary friend
	declaration for operator>>; removed constructor declarations.
	(openvrml::make_quatf()): Added function declaration.
	(openvrml::make_quatf(float, float, float, float)): Added function
	declaration.
	(openvrml::make_quatf(const float (&)[4])): Added function
	declaration.
	(openvrml::make_quatf(const rotation &)): Added function
	declaration.
	(openvrml::make_quatf(const mat4f &)): Added function declaration.
	* src/libopenvrml/openvrml/bounding_volume.cpp
	(openvrml::bounding_sphere::do_extend(const bounding_sphere &)):
	Use make_vec3f instead of constructor.
	(openvrml::bounding_sphere::do_maximize()): Use make_vec3f instead
	of constructor.
	(openvrml::bounding_sphere::do_ortho_transform(const mat4f &)):
	Use make_vec3f instead of constructor.
	(openvrml::bounding_sphere::do_transform(const mat4f &)): Use
	make_vec3f instead of constructor.
	* src/libopenvrml/openvrml/browser.cpp
	(default_viewpoint::transformation() const): Use make_vec3f,
	make_rotation instead of constructors.
	(openvrml::browser::render()): Use make_color, make_vec3f instead
	of constructors.
	* src/libopenvrml/openvrml/script.cpp
	(js_::SFColor::initObject(JSContext *, JSObject *, const
	jsdouble (&)[3])): Use openvrml::make_color instead of
	openvrml::color constructor.
	(js_::SFRotation::initObject(JSContext *, JSObject *, const
	jsdouble (&)[4])): Use openvrml::make_vec3f and
	openvrml::make_rotation instead of openvrml::vec3f and
	openvrml::rotation constructors.
	(js_::SFRotation::setProperty(JSContext *, JSObject *, jsval,
	jsval *)): Use openvrml::make_rotation instead of
	openvrml::rotation constructor.
	(js_::SFRotation::multVec(JSContext *, JSObject *, uintN, jsval *,
	jsval *)): Use openvrml::make_rotation_mat4f instead of
	openvrml::mat4f::rotation.
	(js_::sfvec2_jsobject<SFVec2>::initObject(JSContext *, JSObject *,
	const jsdouble (&)[2])): Use aggregate initializer instead of
	constructor.
	(js_::sfvec3_jsobject<SFVec3>::initObject(JSContext *, JSObject *,
	const jsdouble (&)[3])): Use aggregate initializer instead of
	constructor.
	(js_::VrmlMatrix::initObject(JSContext *, JSObject *, const
	jsdouble (&)[16])): Use openvrml::make_mat4f instead of
	openvrml::mat4f constructor.
	(js_::VrmlMatrix::setTransform(JSContext *, JSObject *, uintN,
	jsval *, jsval *)): Use openvrml::make_rotation and
	openvrml::make_vec3f instead of openvrml::rotation and
	openvrml::vec3f constructors; use
	openvrml::make_transformation_mat4f instead of
	openvrml::mat4f::transformation.
	* src/libopenvrml/openvrml/vrml97node.cpp
	(abstract_light_node<Derived>::abstract_light_node(const
	openvrml::node_type &, const boost::shared_ptr<openvrml::scope> &
	scope)): Use openvrml::make_color instead of openvrml::color
	constructor.
	(grouping_node_base<Derived>::grouping_node_base(const
	openvrml::node_type &, const boost::shared_ptr<openvrml::scope>
	&)): Use openvrml::make_vec3f instead of openvrml::vec3f
	constructor.
	(set_unlit_material(openvrml::viewer &)): Use openvrml::make_color
	instead of openvrml::color constructor.
	(appearance_node::do_render_appearance(openvrml::viewer &,
	rendering_context)): Use openvrml::make_color and
	openvrml::make_vec2f instead of openvrml::color and
	openvrml::vec2f constructors.
	(background_node::background_node(const openvrml::node_type &,
	const boost::shared_ptr<openvrml::scope> &)): Use
	openvrml::make_color instead of openvrml::color constructor.
	(billboard_node::billboard_to_matrix(const billboard_node &, const
	openvrml::mat4f &)): Use openvrml::make_vec3f instead of
	openvrml::vec3f constructor; use openvrml::make_rotation_mat4f
	instead of openvrml::mat4f::rotation.
	(billboard_node::billboard_node(const openvrml::node_type &, const
	boost::shared_ptr<openvrml::scope> &)): Use openvrml::make_vec3f
	instead of openvrml::vec3f constructor.
	(cylinder_sensor_node::do_activate(double, bool, bool, const
	double (&)[3])): Use openvrml::make_vec3f and
	openvrml::make_rotation instead of openvrml::vec3f and
	openvrml::rotation constructors.
	(directional_light_node::directional_light_node(const
	openvrml::node_type &, const boost::shared_ptr<openvrml::scope>
	&)): Use openvrml::make_vec3f instead of openvrml::vec3f
	constructor.
	(extrusionDefaultCrossSection_): Use openvrml::make_vec2f instead
	of openvrml::vec2f constructor.
	(extrusionDefaultScale_): Use openvrml::make_vec2f instead of
	openvrml::vec2f constructor.
	(extrusionDefaultOrientation_): Use openvrml::make_rotation
	instead of openvrml::rotation constructor.
	(extrusionDefaultSpine_): Use openvrml::make_vec3f instead of
	openvrml::vec3f constructor.
	(fog_node::fog_node(const openvrml::node_type &, const
	boost::shared_ptr<openvrml::scope> &)): Use openvrml::make_color
	instead of openvrml::color constructor.
	(material_node::material_node(const openvrml::node_type &, const
	boost::shared_ptr<openvrml::scope> &)): Use openvrml::make_color
	instead of openvrml::color constructor.
	(orientation_interpolator_node::set_fraction_listener::do_process_event(const
	sffloat &, double)): Use openvrml::make_rotation instead of
	openvrml::rotation constructor.
	(plane_sensor_node::plane_sensor_node(const openvrml::node_type &,
	const boost::shared_ptr<openvrml::scope> &)): Use
	openvrml::make_vec2f and openvrml::make_vec3f instead of
	openvrml::vec2f and openvrml::vec3f constructors.
	(plane_sensor_node::do_activate(double, bool, bool, const
	double (&)[3])): Use openvrml::make_vec3f instead of
	openvrml::vec3f constructor.
	(point_light_node::point_light_node(const openvrml::node_type &,
	const boost::shared_ptr<openvrml::scope> &)): Use
	openvrml::make_vec3f instead of openvrml::vec3f constructor.
	(proximity_sensor_node::proximity_sensor_node(const
	openvrml::node_type &, const
	boost::shared_ptr<openvrml::scope>&)): Use openvrml::make_vec3f
	instead of openvrml::vec3f constructor.
	(proximity_sensor_node::do_render_child(openvrml::viewer &,
	rendering_context)): Use openvrml::make_vec3f instead of
	openvrml::vec3f constructor.
	(shape_node::shape_node(const openvrml::node_type &, const
	boost::shared_ptr<openvrml::scope> &)): Use openvrml::make_vec3f
	instead of openvrml::vec3f constructor.
	(shape_node::do_render_child(openvrml::viewer &,
	rendering_context)): Use openvrml::make_color instead of
	openvrml::color constructor.
	(sound_node::sound_node(const openvrml::node_type &, const
	boost::shared_ptr<openvrml::scope> &)): Use openvrml::make_vec3f
	instead of openvrml::vec3f constructor.
	(sphere_sensor_node::sphere_sensor_node(const
	openvrml::node_type&, const boost::shared_ptr<openvrml::scope>&)):
	Use openvrml::make_rotation instead of openvrml::rotation
	constructor.
	(sphere_sensor_node::do_activate(double, bool, bool, const
	double (&p)[3])): Use openvrml::make_vec3f and
	openvrml::make_rotation instead of openvrml::vec3f and
	openvrml::rotation constructors.
	(spot_light_node::spot_light_node(const openvrml::node_type &,
	const boost::shared_ptr<openvrml::scope>&)): Use
	openvrml::make_vec3f instead of openvrml::vec3f constructor.
	(moveTo_(FT_Vector *, void *)): Use openvrml::make_vec2f instead
	of openvrml::vec2f constructor.
	(lineTo_(FT_Vector *, void *)): Use openvrml::make_vec2f instead
	of openvrml::vec2f constructor.
	(conic_(FT_Vector *, FT_Vector *, void *)): Use
	openvrml::make_vec2f instead of openvrml::vec2f constructor.
	(cubic_(FT_Vector *, FT_Vector *, FT_Vector *, void *)): Use
	openvrml::make_vec2f instead of openvrml::vec2f constructor.
	(text_node::update_geometry()): Use openvrml::make_vec2f and
	openvrml::make_vec3f instead of openvrml::vec2f and
	openvrml::vec3f constructors.
	(texture_transform_node::texture_transform_node(const
	openvrml::node_type &, const
	boost::shared_ptr<openvrml::scope>&)): Use openvrml::make_vec2f
	instead of openvrml::vec2f constructor.
	(transform_node::scale_exposedfield::scale_exposedfield(transform_node&)):
	Use openvrml::make_vec3f instead of openvrml::vec3f constructor.
	(transform_node::update_transform()): Use
	openvrml::make_transformation_mat4f instead of
	openvrml::mat4f::transformation.
	(viewpoint_node::position_exposedfield::position_exposedfield(viewpoint_node&)):
	Use openvrml::make_vec3f instead of openvrml::vec3f constructor.
	(viewpoint_node::update_final_transformation() const): Use
	openvrml::make_vec3f and openvrml::make_rotation instead of
	openvrml::vec3f and openvrml::rotation constructors; use
	openvrml::make_transformation_mat4f instead of
	openvrml::mat4f::transformation.
	(visibility_sensor_node::visibility_sensor_node(const
	openvrml::node_type &, const
	boost::shared_ptr<openvrml::scope>&)): Use openvrml::make_vec3f
	instead of openvrml::vec3f constructor.
	* src/libopenvrml/openvrml/x3d_dis.cpp
	(espdu_transform_node::espdu_transform_node(const
	openvrml::node_type &, const boost::shared_ptr<openvrml::scope&)):
	Use openvrml::make_vec3f instead of openvrml::vec3f constructor.
	(receiver_pdu_node::receiver_pdu_node(const openvrml::node_type &,
	const boost::shared_ptr<openvrml::scope> &)): Use
	openvrml::make_vec3f instead of openvrml::vec3f constructor.
	(signal_pdu_node::signal_pdu_node(const openvrml::node_type &,
	const boost::shared_ptr<openvrml::scope> &)): Use
	openvrml::make_vec3f instead of openvrml::vec3f constructor.
	(transmitter_pdu_node::transmitter_pdu_node(const
	openvrml::node_type &, const
	boost::shared_ptr<openvrml::scope>&)): Use openvrml::make_vec3f
	instead of openvrml::vec3f constructor.
	* src/libopenvrml/openvrml/x3d_geometry2d.cpp
	(rectangle2d_node::rectangle2d_node(const openvrml::node_type &,
	const boost::shared_ptr<openvrml::scope> &)): Use
	openvrml::make_vec2f instead of openvrml::vec2f constructor.
	* src/libopenvrml/openvrml/x3d_geospatial.cpp
	(geo_location_node::geo_location_node(const openvrml::node_type &,
	const boost::shared_ptr<openvrml::scope> &)): Use
	openvrml::make_vec3f instead of openvrml::vec3f constructor.
	(geo_lod_node::geo_lod_node(const openvrml::node_type &, const
	boost::shared_ptr<openvrml::scope> &)): Use openvrml::make_vec3f
	instead of openvrml::vec3f constructor.
	(geo_viewpoint_node::geo_viewpoint_node(const
	openvrml::node_type&, const boost::shared_ptr<openvrml::scope>&)):
	Use openvrml::make_vec3d instead of openvrml::vec3d constructor.
	* src/libopenvrml/openvrml/x3d_grouping.cpp
	(static_group_node::static_group_node(const openvrml::node_type &,
	const boost::shared_ptr<openvrml::scope> &)): Use
	openvrml::make_vec3f instead of openvrml::vec3f constructor.
	* src/libopenvrml/openvrml/x3d_hanim.cpp
	(hanim_humanoid_node::hanim_humanoid_node(const
	openvrml::node_type &, const
	boost::shared_ptr<openvrml::scope>&)): Use openvrml::make_vec3f
	instead of openvrml::vec3f constructor.
	(hanim_joint_node::hanim_joint_node(const openvrml::node_type &,
	const boost::shared_ptr<openvrml::scope> &)): Use
	openvrml::make_vec3f instead of openvrml::vec3f constructor.
	(hanim_segment_node::hanim_segment_node(const
	openvrml::node_type&, const boost::shared_ptr<openvrml::scope>&)):
	Use openvrml::make_vec3f instead of openvrml::vec3f constructor.
	(hanim_site_node::hanim_site_node(const openvrml::node_type &,
	const boost::shared_ptr<openvrml::scope> &)): Use
	openvrml::make_vec3f instead of openvrml::vec3f constructor.
	* src/libopenvrml/openvrml/x3d_nurbs.cpp
	(nurbs_set_node::nurbs_set_node(const openvrml::node_type &,
	const boost::shared_ptr<openvrml::scope> &)): Use
	openvrml::make_vec3f instead of openvrml::vec3f constructor.
	* src/libopenvrml/openvrml/x3d_shape.cpp
	(fill_properties_node::fill_properties_node(const
	openvrml::node_type &, const
	boost::shared_ptr<openvrml::scope>&)): Use openvrml::make_color
	instead of openvrml::color constructor.
	* src/libopenvrml/openvrml/x3d_texturing.cpp
	(multi_texture_node::multi_texture_properties_node(const
	openvrml::node_type &, const
	boost::shared_ptr<openvrml::scope>&)): Use openvrml::make_color
	instead of openvrml::color constructor.
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	(trackball(float, float, float, float)): Use openvrml::make_vec3f
	instead of openvrml::vec3f constructor.
	(openvrml::gl::viewer::insert_elevation_grid(unsigned int, const
	std::vector<float> &, int32, int32, float, float, const
	std::vector<color> &, const std::vector<vec3f> &, const
	std::vector<vec2f> &)): Use openvrml::make_vec3f instead of
	openvrml::vec3f constructor.
	(computeExtrusion_(const std::vector<openvrml::rotation> &, const
	std::vector<openvrml::vec2f> &, const
	std::vector<openvrml::vec2f>&, const
	std::vector<openvrml::vec3f>&, std::vector<openvrml::vec3f> &,
	std::vector<openvrml::vec2f> &)): Use openvrml::make_rotation and
	openvrml::make_vec3f instead of openvrml::rotation and
	openvrml::vec3f constructors; use openvrml::make_rotation_mat4f
	instead of openvrml::mat4f::rotation.
	(openvrml::gl::viewer::rotate(const openvrml::rotation &)): Use
	openvrml::make_rotation_mat4f instead of
	openvrml::mat4f::rotation; use openvrml::make_translation_mat4f
	instead of openvrml::mat4f::translation.
	(openvrml::gl::viewer::step(float, float, float)): Use
	openvrml::make_translation_mat4f instead of
	openvrml::mat4f::translation.
	(openvrml::gl::viewer::zoom(float)): Use openvrml::make_vec3f
	instead of openvrml::vec3f constructor.

2006-08-31 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml-gl/openvrml/gl/viewer.cpp: Explicitly qualify
	definitions from the global scope rather than enclose them in
	namespace blocks, consistent with the rest of OpenVRML.

2006-08-28 Braden McDaniel  <braden@endoframe.com>

	Visual C++ 8.0 project file improvements.

	* ide-projects/Windows/VisualC8_0/OpenVRML/OpenVRML.sln
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml/openvrml.rc
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml/openvrml.vcproj
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml/resource.h
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml-gl/openvrml-gl.rc
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml-gl/openvrml-gl.vcproj
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml-gl/resource.h

2006-08-27 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/field_value.cpp
	(openvrml::sfvec2d::do_assign(const field_value &)): Removed code
	to convert from sfvec2f.

2006-08-23 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/event.cpp
	(openvrml::event_emitter::event_emitter(const field_value &)):
	Initialize last_time_ to 0.0.

2006-08-23 Braden McDaniel  <braden@endoframe.com>

	Overloaded stream extraction operators for the fundamental types.

	* src/libopenvrml/openvrml/basetypes.cpp
	(vrml97_space_parser): Added a Spirit character parser to treat
	comma as a whitespace character.
	(vrml97_space_p): Instance of vrml97_space_parser.
	(intensity_parser): Added a Spirit parser (used with
	boost::spirit::functor_parser) to parse floating point values
	between 0.0 and 1.0 (e.g., color component values).
	(intensity_p): Instance of intensity_parser.
	(openvrml::operator>>(std::istream &, color &)): Added stream
	extraction operator for openvrml::color.
	(openvrml::operator>>(std::istream &, color_rgba &)): Added stream
	extraction operator for openvrml::color_rgba.
	(openvrml::operator>>(std::istream &, vec2f &)): Added stream
	extraction operator for openvrml::vec2f.
	(openvrml::operator>>(std::istream &, vec2d &)): Added stream
	extraction operator for openvrml::vec2d.
	(openvrml::operator>>(std::istream &, vec3f &)): Added stream
	extraction operator for openvrml::vec3f.
	(openvrml::operator>>(std::istream &, vec3d &)): Added stream
	extraction operator for openvrml::vec3d.
	(is_normalized): Function object to validate the axis component of
	a rotation.
	(openvrml::operator>>(std::istream &, rotation &)): Added stream
	extraction operator for openvrml::rotation.
	(openvrml::operator>>(std::istream &, mat4f &)): Added stream
	extraction operator for openvrml::mat4f.
	(openvrml::operator>>(std::istream &, quatf &)): Added stream
	extraction operator for openvrml::quatf.
	(set_pixel): Semantic action to set a pixel when parsing an image.
	(resize_image): Semantic action to resize an image given pixel
	dimensions and the number of components.
	(int32_parser): A Spirit functor parser to parse VRML97-style
	integers.
	(int32_p): An instance of int32_parser.
	(openvrml::operator>>(std::istream &, image &)): Added stream
	extraction operator for openvrml::image.
	* src/libopenvrml/openvrml/basetypes.h
	(openvrml::operator>>(std::istream &, color &)): Added function
	declaration.
	(openvrml::color): Made operator>> a friend.
	(openvrml::operator>>(std::istream &, color_rgba &)): Added
	function declaration.
	(openvrml::color_rgba): Made operator>> a friend.
	(openvrml::operator>>(std::istream &, vec2f &)): Added function
	declaration.
	(openvrml::vec2f): Made operator>> a friend.
	(openvrml::operator>>(std::istream &, vec2d &)): Added function
	declaration.
	(openvrml::vec2d): Made operator>> a friend.
	(openvrml::operator>>(std::istream &, vec3f &)): Added function
	declaration.
	(openvrml::vec3f): Made operator>> a friend.
	(openvrml::operator>>(std::istream &, vec3d &)): Added function
	declaration.
	(openvrml::vec3d): Made operator>> a friend.
	(openvrml::operator>>(std::istream &, rotation &)): Added function
	declaration.
	(openvrml::operator>>(std::istream &, mat4f &)): Added function
	declaration.
	(openvrml::operator>>(std::istream &, quatf &)): Added function
	declaration.
	(openvrml::quatf): Made operator>> a friend.
	(openvrml::operator>>(std::istream &, image &)): Added function
	declaration.
	* tests/Makefile.am: Added color, image, mat4f, and rotation
	tests.
	* tests/color.cpp: Added file; a test suite for openvrml::color.
	* tests/image.cpp: Added file; a test suite for openvrml::image.
	* tests/mat4f.cpp: Added file; a test suite for openvrml::mat4f.
	* tests/rotation.cpp: Added file; a test suite for
	openvrml::rotation.

2006-08-18 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp
	(uri::uri()): Initialize begin and end iterators for the various
	URI parts to the beginning of the string.
	(uri::uri(const std::string &)): Initialize begin and end
	iterators for the various URI parts to the beginning of the
	string.

2006-08-17 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/vrml97node.cpp
	(update_texture(background_node &, boost::recursive_mutex &, const
	openvrml::mfstring &, openvrml::image &)): Removed
	function-try-block; this still seems to confuse Microsoft cl
	14.00.50727.42.

2006-08-16 Braden McDaniel  <braden@endoframe.com>

	Replaced static_casts with boost::polymorphic_downcast.

	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml/openvrml/x3d_grouping.cpp

2006-08-14 Braden McDaniel  <braden@endoframe.com>

	* openvrml.spec.in: Depend on libXmu/libXmu-devel.

2006-08-12 Braden McDaniel  <braden@endoframe.com>

	Updated version, NEWS for 0.16.0.

	* NEWS
	* README
	* configure.ac
	* doc/Doxyfile
	* mozilla-plugin/configure.ac

2006-08-12 Braden McDaniel  <braden@endoframe.com>

	* README: 512 MB just isn't enough anymore.  Upped prerequisite to
	768 MB.

2006-08-11 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Fixed test for antlr such that configure does not
	fail if antlr isn't found at all.

2006-08-10 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp: Include <direct.h> on
	Windows.

2006-08-10 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Fixed --disable-examples.  (Removed lingering
	reference to lookat.)

2006-08-10 Braden McDaniel  <braden@endoframe.com>

	* openvrml.spec.in: Package openvrml-config.h, openvrml-common.h,
	openvrml-gl-config.h, and openrml-gl-common.h.

2006-08-10 Braden McDaniel  <braden@endoframe.com>

	Fixes to generate API documentation properly.

	* doc/Makefile.am (DOXYGEN_OUTPUT_FILES): Avoid redundantly
	listing files with wild cards.
	(CUSTOMIZED_IMAGES): Added variable to list customized images for
	the doxygen-generated documentation.
	(EXTRA_DIST): Refer to DOXYGEN_OUTPUT_FILES and CUSTOMIZED_IMAGES
	rather than manual in order to avoid pulling in the CVS
	subdirectory.
	(.PHONY): List html-local
	(html-local): Run doxygen here.
	(install-data-local): Made installdirs-local a prerequisite.
	Removed html as a prerequisite; since html-local is now phony, we
	don't want to regenerate the documentation as part of install.
	(dist-hook): Removed.

2006-08-10 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/Makefile.am: Qualify antlr-generated sources
	with $(srcdir) to prevent touch from creating the files in the
	builddir.

2006-08-08 Braden McDaniel  <braden@endoframe.com>

	Updated libtool library version numbers.

	* src/libopenvrml/Makefile.am (LIBRARY_VERSION): Updated to 6:0:0.
	* src/libopenvrml-gl/Makefile.am (LIBRARY_VERSION): Updated to
	6:2:0.

2006-08-08 Braden McDaniel  <braden@endoframe.com>

	* doc/index.doc: Documentation improvements.

2006-08-08 Braden McDaniel  <braden@endoframe.com>

	* doc/index.doc: Added the beginnings of a user guide.

2006-08-06 Braden McDaniel  <braden@endoframe.com>

	* doc/Makefile.am: Remove doxygen-generated files in a loop;
	otherwise, rm may complain of too many arguments.

2006-08-06 Braden McDaniel  <braden@endoframe.com>

	Doc-comment improvements.

	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/script.cpp

2006-08-06 Braden McDaniel  <braden@endoframe.com>

	Merged changes from 0.15.10 release.

	* NEWS: Added record of 0.15.0 release.

2006-08-05 Braden McDaniel  <braden@endoframe.com>

	* doc/Makefile.am: Remove doxygen-generated files before running
	doxygen.  Doxygen does not necessarily work well if output files
	from a previous run are present.

2006-08-05 Braden McDaniel  <braden@endoframe.com>

	Doc-comment improvements.

	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node.h

2006-08-05 Braden McDaniel  <braden@endoframe.com>

	Doc-comment improvements.

	* src/libopenvrml/openvrml/basetypes.cpp
	* src/libopenvrml/openvrml/browser.cpp

2006-08-05 Braden McDaniel  <braden@endoframe.com>

	Increased buffer sizes to something a little more
	reasonable (16kB).

	* mozilla-plugin/src/openvrml-player/command_istream.h
	(openvrml_player::command_streambuf::source_buffer_): Changed
	buffer size to 16384.
	* mozilla-plugin/src/openvrml-player/plugin_streambuf.h
	(openvrml_player::plugin_streambuf::buf_): Changed buffer size to
	16384.

2006-08-04 Braden McDaniel  <braden@endoframe.com>

	Removed use of @defgroup and @ingroup in doc-comments.

	* src/libopenvrml/openvrml/basetypes.cpp
	* src/libopenvrml/openvrml/field_value.cpp
	* src/libopenvrml/openvrml/node.cpp

2006-08-04 Braden McDaniel  <braden@endoframe.com>

	Set the plugin_resource_istream initial state to invalid if the
	Web browser's get-url function fails.  This means that the child
	process blocks until the Web browser has informed it of the
	validity of the get-url operation.

	* mozilla-plugin/src/openvrml.cpp
	(request_data_available): Write the result of NPN_GetURL to the
	command channel.
	* mozilla-plugin/src/openvrml-player/gtkvrmlbrowser.cpp
	(browser::do_get_resource(const
	std::string&)::plugin_resource_istream::plugin_resource_istream(const
	std::string &, GIOChannel *)): Set the failbit if the Web
	browser's get-url function failed.
	* mozilla-plugin/src/openvrml-player/player.cpp
	(openvrml_player::command_istream_reader::operator()()): Handle
	get-url-result command.
	* mozilla-plugin/src/openvrml-player/plugin_streambuf.cpp
	(openvrml_player::plugin_streambuf::set_get_url_result(int)): Set
	the result of the get-url operation (from the get-url-result
	command).
	(openvrml_player::plugin_streambuf::get_url_result() const): Get
	the result code from the Web browser's get-url operation (via the
	get-url-result command).
	* mozilla-plugin/src/openvrml-player/plugin_streambuf.h
	(openvrml_player::plugin_streambuf): Added get_url_result_ and
	received_get_url_result_ members; added set_get_url_result(int)
	and get_url_result() member functions.

2006-08-03 Braden McDaniel  <braden@endoframe.com>

	Reverted plugin_streambuf to use bounded_buffer now that EOF can
	be set on bounded_buffer.

	* mozilla-plugin/src/openvrml-player/player.cpp
	(openvrml_player::command_istream_reader::operator()() const):
	Changed to call bounded_buffer::set_eof.
	* mozilla-plugin/src/openvrml-player/plugin_streambuf.cpp
	(openvrml_player::plugin_streambuf::npstream_buffer::npstream_buffer()):
	Removed function.
	(openvrml_player::plugin_streambuf::npstream_buffer::put(const
	char_type &)): Removed function.
	(openvrml_player::plugin_streambuf::npstream_buffer::get()):
	Removed function.
	(openvrml_player::plugin_streambuf::npstream_buffer::buffered()
	const): Removed function.
	(openvrml_player::plugin_streambuf::npstream_buffer::set_npstream_destroyed()):
	Removed function.
	(openvrml_player::plugin_streambuf::npstream_buffer::npstream_destroyed()
	const): Removed function.
	(openvrml_player::plugin_streambuf::plugin_streambuf()): Changed
	to call bounded_buffer::eof.
	* mozilla-plugin/src/openvrml-player/plugin_streambuf.h
	(openvrml_player::plugin_streambuf::npstream_buffer): Removed
	class definition.
	(openvrml_player::plugin_streambuf::buf_): Changed to use
	bounded_buffer.

2006-08-03 Braden McDaniel  <braden@endoframe.com>

	Changed bounded_buffer to allow setting EOF.

	* mozilla-plugin/src/openvrml-player/bounded_buffer.h
	(openvrml_player::bounded_buffer::buffer_not_empty_or_eof_):
	Changed member name from buffer_not_empty_ to signify that EOF is
	a condition of which waiting threads will be notified.
	(openvrml_player::bounded_buffer::eof_): Added member.
	(openvrml_player::bounded_buffer::char_type): Added member type.
	(openvrml_player::bounded_buffer::traits_type): Added member type.
	(openvrml_player::bounded_buffer::int_type): Added member type.
	(openvrml_player::bounded_buffer::set_eof()): Added member to set
	EOF state.
	(openvrml_player::bounded_buffer::eof()): Added EOF state
	accessor.
	(openvrml_player::bounded_buffer::bounded_buffer()): Initialize
	eof_ to false.
	(openvrml_player::bounded_buffer::get()): Only wait if set_eof has
	not been called.  Return int_type to accommodate returning EOF.
	* mozilla-plugin/src/openvrml-player/command_istream.cpp
	(openvrml_player::command_streambuf::command_streambuf()):
	Initialize c_ to null.
	(openvrml_player::command_streambuf::underflow()): Now that
	bounded_buffer::get can actually return EOF, handle it correctly.
	(command_data_available(GIOChannel *, GIOCondition, gpointer)):
	Call source_buffer_.set_eof rather than trying to put an EOF
	character into the stream.

2006-08-03 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/openvrml-player/Makefile.am
	* mozilla-plugin/src/openvrml-player/bounded_buffer.h
	* mozilla-plugin/src/openvrml-player/command_istream.cpp
	* mozilla-plugin/src/openvrml-player/command_istream.h

2006-08-02 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/script.cpp: Doc-comment improvements.

2006-08-02 Braden McDaniel  <braden@endoframe.com>

	Check whether the stream has been destroyed in
	plugin_streambuf::data_available.  The streambuf should be treated
	as having data available once it has been "destroyed" by the Web
	browser so that EOF can be gotten from it.

	* mozilla-plugin/src/openvrml-player/player.cpp
	(openvrml_player::command_istream_reader::operator()()): Removed
	attempt to put an EOF character into the stream; this won't work.
	Changed npstream_destroyed call to set_npstream_destroyed.
	* mozilla-plugin/src/openvrml-player/plugin_streambuf.cpp
	(openvrml_player::plugin_streambuf::npstream_buffer::put(const
	char_type &)): Call buffer_not_empty_or_eof_.notify_all instead of
	notify_one.
	(openvrml_player::plugin_streambuf::npstream_buffer::set_npstream_destroyed()):
	Changed name from npstream_destroyed; call
	buffer_not_empty_or_eof_.notify_all instead of notify_one.
	(openvrml_player::plugin_streambuf::npstream_buffer::npstream_destroyed()
	const): Added accessor function.
	(openvrml_player::plugin_streambuf::data_available() const):
	return true if the stream has been destroyed.
	* mozilla-plugin/src/openvrml-player/plugin_streambuf.h
	(openvrml_player::plugin_streambuf::npstream_buffer): Added
	accessor to check whether the stream has been destroyed.

2006-08-01 Braden McDaniel  <braden@endoframe.com>

	Changed fequal, fless_equal, and fgreater_equal to be instances of
	types that have a template operator().

	* src/libopenvrml/private.h
	* src/libopenvrml/openvrml/Vrml97Parser.g
	* src/libopenvrml/openvrml/basetypes.cpp
	* src/libopenvrml/openvrml/bounding_volume.cpp
	* src/libopenvrml/openvrml/vrml97node.cpp

2006-07-30 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/script.cpp
	(js_::Browser::createVrmlFromURL(JSContext *, JSObject *, uintN,
	jsval *, jsval *)): Quelled unused variable warning from gcc.

2006-07-28 Braden McDaniel  <braden@endoframe.com>

	Added test to confirm that EXTERNPROTOs can be loaded in
	browser::create_vrml_from_stream.

	* tests/Makefile.am (browser_LDADD): Added -lboost_filesystem.
	* tests/browser.cpp
	(create_vrml_from_stream_with_externproto()): Test to check that
	EXTERNPROTOs can be loaded in browser::create_vrml_from_stream.
	(create_vrml_from_url()): Use scope_guard to remove the test file.
	(init_unit_test_suite(int, char *[])): Added
	create_vrml_from_stream_with_externproto to the test suite.

2006-07-28 Braden McDaniel  <braden@endoframe.com>

	Require that all threads loading EXTERNPROTO implementations are
	joined before destroying the browser.  (Otherwise, we deadlock.)

	* src/libopenvrml/openvrml/Vrml97Parser.g
	(externproto): Pass browser::load_proto_thread_group_ to the
	externproto_node_metatype constructor.
	* src/libopenvrml/openvrml/browser.cpp
	(externproto_node_metatype::load_proto_thread_): Changed to a raw
	pointer.  The thread is now owned by
	browser::load_proto_thread_group_.
	(externproto_node_metatype::externproto_node_metatype(const
	openvrml::node_metatype_id &, const openvrml::scene &, const
	std::vector<std::string> &, boost::thread_group &)): Pass the
	thread_group that owns the load_proto threads; that is,
	browser::load_proto_thread_group_.
	(openvrml::browser::~browser()): Join all the
	load_proto_thread_group_ threads.
	(openvrml::browser::set_world(resource_istream &)): Join all the
	load_proto_thread_group_ threads when clearing the current scene.
	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::browser): Added load_proto_thread_group_ member.

2006-07-26 Braden McDaniel  <braden@endoframe.com>

	Avoid redundantly parsing the string in uri's copy constructor and
	assignment operator.

	* src/libopenvrml/openvrml/browser.cpp
	(uri::uri(const uri &)): Initialize the iterators using std::distance.
	(uri::operator=(const uri &)): Delegate to uri::swap.
	(uri::swap(uri &)): Added swap semantics.

2006-07-26 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Fail if the user attempts to build the Mozilla
	plug-in without building the GL renderer.

2006-07-26 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Fail if libGLU cannot be found and building the GL
	renderer is enabled.

2006-07-26 Braden McDaniel  <braden@endoframe.com>

	* openvrml.spec.in: Updates for Fedora Core 5.

2006-07-26 Braden McDaniel  <braden@endoframe.com>

	More fixes to support EXTERNPROTOs in
	browser::create_vrml_from_stream.  This includes fixes to the uri
	class such that it can be copied reliably.  (The default copy
	semantics resulted in a bunch of invalid iterators.)

	* src/libopenvrml/openvrml/Vrml97Parser.g
	(externproto): If browser::world_url is empty, resolve relative
	URIs against the current working directory (i.e., call
	create_file_url).
	* src/libopenvrml/openvrml/browser.cpp
	(uri::uri(const uri &)): Defined copy constructor.
	(uri::operator=(const uri &)): Defined assignment operator.
	(create_file_url(const uri &)): Changed semantics to no longer
	check whether the URL actually refers to a valid resource;
	instead, the function simply composes a file URL.
	(externproto_node_metatype::load_proto::operator()()): If
	browser::world_url is empty, resolve relative URIs against the
	current working directory (i.e., call create_file_url).

2006-07-25 Braden McDaniel  <braden@endoframe.com>

	When processing a stream from browser::create_vrml_from_stream,
	resolve EXTERNPROTO URLs relative to the browser::world_url.

	* src/libopenvrml/openvrml/Vrml97Parser.g
	(externproto): Check to see if the URI used to instantiate the
	parser is an anonymous stream (i.e., from
	browser::create_vrml_from_stream) identifier.  If it is, resolve
	relative URLs against browser::world_url instead.
	* src/libopenvrml/openvrml/browser.cpp
	(anonymous_stream_id(const uri &)): Check to see whether a uri is
	an anonymous stream identifier (i.e., from
	browser::create_vrml_from_stream).
	(openvrml::browser::create_vrml_from_stream(std::istream &, const
	std::string &)): Use anonymous_stream_id_prefix_ when constructing
	the stream identifier.

2006-07-25 Braden McDaniel  <braden@endoframe.com>

	Changes to tests for parity with the change from node_class to
	node_metatype.

	* tests/Makefile.am
	* tests/node_class_id.cpp: Removed file.
	* tests/node_metatype_id.cpp: Added file.

2006-07-25 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp: Doc-comment improvements.

2006-07-25 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp
	(create_file_url(const uri &)): Removed invalid assertion.
	From Andrew Grieve <sgrieve@users.sourceforge.net>

2006-07-25 Braden McDaniel  <braden@endoframe.com>

	Doc-comment improvements.

	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/node_impl_util.cpp

2006-07-24 Braden McDaniel  <braden@endoframe.com>

	Doc-comment improvements.

	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/event.cpp
	* src/libopenvrml/openvrml/field_value.cpp
	* src/libopenvrml/openvrml/field_value.h
	* src/libopenvrml/openvrml/node.cpp

2006-07-24 Braden McDaniel  <braden@endoframe.com>

	Doc-comment improvements.

	* src/libopenvrml/openvrml/exposedfield.cpp
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node_impl_util.cpp

2006-07-24 Braden McDaniel  <braden@endoframe.com>

	* doc/doxygen-header: Style sheet updates for doxygen 1.4.7.

2006-07-24 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/openvrml-player/plugin_streambuf.cpp
	(openvrml_player::plugin_streambuf::underflow()): Fixes for
	char_type/int_type consistency.

2006-07-24 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/node.cpp: Doc-comment improvements.

2006-07-24 Braden McDaniel  <braden@endoframe.com>

	Changed uninitialized_plugin_streambuf_map to use a std::multimap
	since the map may need to contain more than one request for the
	same resource.

	* mozilla-plugin/src/openvrml-player/gtkvrmlbrowser.cpp
	(browser::do_get_resource(const
	std::string&)::plugin_resource_istream::plugin_resource_istream(const
	std:string &, GIOChannel *)):
	uninitialized_plugin_streambuf_map::insert no longer returns a
	value.
	* mozilla-plugin/src/openvrml-player/player.cpp
	(main(int, char *[])): uninitialized_plugin_streambuf_map::insert
	no longer returns a value.
	* mozilla-plugin/src/openvrml-player/plugin_streambuf.cpp
	(openvrml_player::uninitialized_plugin_streambuf_map::insert(const
	std::string &, const boost::shared_ptr<plugin_streambuf> &)): For
	std::multimap, insert necessarily succeeds or throws.
	(openvrml_player::uninitialized_plugin_streambuf_map::erase(const
	std::string &)): Erase only the first matching element.
	* mozilla-plugin/src/openvrml-player/plugin_streambuf.h
	(openvrml_player::uninitialized_plugin_streambuf_map::map_t):
	Changed to a std::multimap.
	(openvrml_player::uninitialized_plugin_streambuf_map::insert(const
	std::string &, const boost::shared_ptr<plugin_streambuf> &)):
	Don't return a value.

2006-07-24 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp
	(stream_reader::operator()() const): Call
	stream_listener::data_available only if the data vector is not
	empty.

2006-07-24 Braden McDaniel  <braden@endoframe.com>

	* doc/Makefile.am (dist-hook): Made html-local a prerequisite.

2006-07-24 Braden McDaniel  <braden@endoframe.com>

	Replace use of the bounded_buffer template with an implementation
	specific to the plugin_streambuf; we need a way to signal that the
	stream has been destroyed and this requires access to the
	condition variable associated with the bounded buffer.

	* mozilla-plugin/src/openvrml-player/player.cpp
	(openvrml_player::command_istream_reader::operator()() const):
	Call npstream_destroyed on the npstream_buffer.
	* mozilla-plugin/src/openvrml-player/plugin_streambuf.cpp
	(openvrml_player::plugin_streambuf::npstream_buffer::npstream_buffer()):
	Construct.
	(openvrml_player::plugin_streambuf::npstream_buffer::put(const
	char_type &)): Insert a character into the buffer.
	(openvrml_player::plugin_streambuf::npstream_buffer::get()): Get a
	character from the buffer.
	(openvrml_player::plugin_streambuf::npstream_buffer::buffered()
	const): Return the number of characters currently in the buffer.
	(openvrml_player::plugin_streambuf::npstream_buffer::npstream_destroyed()):
	Called to indicate that the associated stream from the Web browser
	has been destroyed.
	(openvrml_player::plugin_streambuf::plugin_streambuf(const std::string &)):
	Initialize i_; remove initialization of npstream_destroyed_.
	(openvrml_player::plugin_streambuf::npstream_destroyed(): Removed.
	* mozilla-plugin/src/openvrml-player/plugin_streambuf.h
	(openvrml_player::plugin_streambuf::npstream_buffer): Added class.
	(openvrml_player::plugin_streambuf::buf_): Changed to be an
	npstream_buffer.
	(openvrml_player::plugin_streambuf::i_): Added int_type
	representation of the current byte.
	(openvrml_player::plugin_streambuf::npstream_destroyed_): Removed.
	(openvrml_player::plugin_streambuf::npstream_destroyed()): Removed.

2006-07-24 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/openvrml-player/gtkvrmlbrowser.cpp
	(gtk_vrml_browser_load_url(GtkVrmlBrowser *, const gchar **, const
	gchar **)): Check for pointers to null in the url and parameter
	lists.

2006-07-24 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/x3d_key_device_sensor.h: Added
	copyright statement.

2006-07-23 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/openvrml.cpp
	(request_data_available(GIOChannel *, GIOCondition, gpointer)):
	Made arguments const.

2006-07-23 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/openvrml.cpp
	(PluginInstance::SetWindow(NPWindow &)): Use g_malloc0 to
	zero-initialize the allocated memory for openvrml_player_cmd_argv.

2006-07-23 Braden McDaniel  <braden@endoframe.com>

	Backed out change to set the plugin_resource_istream initial state
	to invalid if the Web browser's get-url function fails.  The
	attempted solution deadlocks.

	* mozilla-plugin/src/openvrml.cpp
	* mozilla-plugin/src/openvrml-player/gtkvrmlbrowser.cpp
	* mozilla-plugin/src/openvrml-player/player.cpp
	* mozilla-plugin/src/openvrml-player/plugin_streambuf.cpp
	* mozilla-plugin/src/openvrml-player/plugin_streambuf.h

2006-07-09 Braden McDaniel  <braden@endoframe.com>

	Swallow the openvrml::no_alternative_url exception when loading
	Background node textures.

	* src/libopenvrml/openvrml/vrml97node.cpp
	(update_texture(background_node &, boost::recursive_mutex &, const
	openvrml::mfstring &, openvrml::image)): Added function; called by
	background_node::update_textures; swallow the
	openvrml::no_alternative_url exception.
	(background_node::update_textures()): Delegate to update_texture.

2006-07-08 Braden McDaniel  <braden@endoframe.com>

	Use a more compact representation for the command_streambuf.

	* mozilla-plugin/src/openvrml-player/command_istream.cpp
	(openvrml_player::command_streambuf::underflow()): Apply
	traits_type::to_char_type and traits_type::to_int_type
	consistently.
	* mozilla-plugin/src/openvrml-player/command_istream.h
	(openvrml_player::command_streambuf): Changed source_buffer_ to be
	a bounded_buffer of char_type instead of int_type.

2006-06-07 Braden McDaniel  <braden@endoframe.com>

	Provide an error handler for libjpeg; the default one calls exit.
	Instead, print the error message using openvrml::browser::err.

	* src/libopenvrml/openvrml/vrml97node.cpp
	(openvrml_jpeg_error_exit): Added callback to handle the error
	without calling exit.
	(openvrml_jpeg_output_message): Added callback to print the error
	message using openvrml::browser::err.
	(image_stream_listener): Added uri_ member; made
	openvrml_jpeg_error_exit and openvrml_jpeg_output_message friends.
	(image_stream_listener::jpeg_reader): Moved error_mgr from private
	to public.
	(image_stream_listener::jpeg_reader::error_mgr): Added
	stream_listener member.
	(image_stream_listener::jpeg_reader::jpeg_reader(image_stream_listener&)):
	Set error_exit and output_message callbacks for the error_mgr;
	initialize error_mgr_'s image_stream_listener pointer.
	(image_stream_listener::image_stream_listener(const std::string &,
	openvrml::image &, openvrml::node &, boost::recursive_mutex &)):
	Construct using the stream URI.
	(background_node::update_textures()): Construct
	image_stream_listener with the stream URI.
	(image_texture_node::update_textures()): Construct
	image_stream_listener with the stream URI.

2006-05-19 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.h
	(openvrml::browser): Added OPENVRML_API to friend declaration of
	operator==(const node_type &, const node_type &).

2006-05-19 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml-gl/openvrml/gl/viewer.h
	(openvrml::gl::viewer::modelview_matrix_stack): Added missing
	OPENVRML_LOCAL.

2006-05-19 Braden McDaniel  <braden@endoframe.com>

	Microsoft Visual Studio project file updates.

	* ide-projects/Windows/VisualC7_1/OpenVRML/openvrml/openvrml.vcproj
	* ide-projects/Windows/VisualC7_1/OpenVRML/openvrml-gl/openvrml-gl.vcproj
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml/openvrml.vcproj
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml-gl/openvrml-gl.vcproj
	* ide-projects/Windows/VisualC8_0/OpenVRML/sdl-viewer/sdl-viewer.vcproj

2006-05-19 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/node.h
	(node_metatype_id): The Microsoft compiler wants OPENVRML_API in
	the friend declaration.

2006-05-18 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/openvrml.cpp
	(PluginInstance::SetWindow(NPWindow &)): Set the command channel
	encoding to null (i.e., no encoding).

2006-05-18 Braden McDaniel  <braden@endoframe.com>

	Implemented Browser.createVrmlFromURL() in the Script node
	JavaScript binding.

	* src/libopenvrml/openvrml/script.cpp
	(js_::script): Granted friendship to
	js_::Browser::createVrmlFromUrl.
	(js_::Browser::createVrmlFromURL(JSContext *, JSObject *, uintN,
	jsval *, jsval *)): Delegate to
	openvrml::browser::create_vrml_from_url.

2006-05-18 Braden McDaniel  <braden@endoframe.com>

	Renamed "node_class" to "node_metatype".

	* src/libopenvrml/openvrml/Vrml97Parser.g
	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/browser.h
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node.h
	* src/libopenvrml/openvrml/node_impl_util.cpp
	* src/libopenvrml/openvrml/node_impl_util.h
	* src/libopenvrml/openvrml/script.cpp
	* src/libopenvrml/openvrml/script.h
	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml/openvrml/vrml97node.h
	* src/libopenvrml/openvrml/x3d_cad_geometry.cpp
	* src/libopenvrml/openvrml/x3d_cad_geometry.h
	* src/libopenvrml/openvrml/x3d_core.cpp
	* src/libopenvrml/openvrml/x3d_core.h
	* src/libopenvrml/openvrml/x3d_dis.cpp
	* src/libopenvrml/openvrml/x3d_dis.h
	* src/libopenvrml/openvrml/x3d_environmental_effects.cpp
	* src/libopenvrml/openvrml/x3d_environmental_effects.h
	* src/libopenvrml/openvrml/x3d_event_utilities.cpp
	* src/libopenvrml/openvrml/x3d_event_utilities.h
	* src/libopenvrml/openvrml/x3d_geometry2d.cpp
	* src/libopenvrml/openvrml/x3d_geometry2d.h
	* src/libopenvrml/openvrml/x3d_geospatial.cpp
	* src/libopenvrml/openvrml/x3d_geospatial.h
	* src/libopenvrml/openvrml/x3d_grouping.cpp
	* src/libopenvrml/openvrml/x3d_grouping.h
	* src/libopenvrml/openvrml/x3d_hanim.cpp
	* src/libopenvrml/openvrml/x3d_hanim.h
	* src/libopenvrml/openvrml/x3d_interpolation.cpp
	* src/libopenvrml/openvrml/x3d_interpolation.h
	* src/libopenvrml/openvrml/x3d_key_device_sensor.cpp
	* src/libopenvrml/openvrml/x3d_key_device_sensor.h
	* src/libopenvrml/openvrml/x3d_networking.cpp
	* src/libopenvrml/openvrml/x3d_networking.h
	* src/libopenvrml/openvrml/x3d_nurbs.cpp
	* src/libopenvrml/openvrml/x3d_nurbs.h
	* src/libopenvrml/openvrml/x3d_rendering.cpp
	* src/libopenvrml/openvrml/x3d_rendering.h
	* src/libopenvrml/openvrml/x3d_shape.cpp
	* src/libopenvrml/openvrml/x3d_shape.h
	* src/libopenvrml/openvrml/x3d_texturing.cpp
	* src/libopenvrml/openvrml/x3d_texturing.h

2006-05-17 Braden McDaniel  <braden@endoframe.com>

	Added support for creating scene graphs with CADGeomentry
	component nodes.
	From Andrew Grieve <sgrieve@users.sourceforge.net>

	* src/libopenvrml/Makefile.am
	(openvrml_include_HEADERS): Added openvrml/x3d_cad_geometry.h.
	(openvrml_la_SOURCES): Added openvrml/x3d_cad_geometry.cpp.
	* src/libopenvrml/openvrml/browser.cpp
	(register_node_classes(openvrml::browser &)): Register the
	CADGeometry profile node implementations.
	(x3d_cad_geometry_component): Added class correponding to the X3D
	CADGeometry component.
	(x3d_cad_geometry_component::id): Component id.
	(x3d_cad_geometry_component::support_level() const): The supported
	component level.
	(x3d_cad_geometry_component::do_add_to_scope(const
	openvrml::browser &, openvrml::scope &, size_t) const): Add the
	node_types defined for the CADGeometry component to the scope.
	(component_registry::component_registry()): Register
	x3d_cad_geometry_component.
	* src/libopenvrml/openvrml/vrml97node.cpp
	(cad_layer_class): Added node_class for CADLayer nodes.
	(cad_assembly_class): Added node_class for CADAssembly nodes.
	(register_vrml97_node_classes(openvrml::browser &)): Register
	cad_layer_class and cad_assembly_class.
	(cad_layer_node): Added CADLayer node instance class.
	(cad_assembly_node): Added CADAssembly node instance class.
	* src/libopenvrml/openvrml/x3d_cad_geometry.cpp: Added file;
	implementations of X3D CADGeometry component nodes.
	* src/libopenvrml/openvrml/x3d_cad_geometry.h: Added file; expose
	node_class registration function.

2006-05-16 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::scene::load(resource_istream &)): Clear the nodes_ and
	meta_ members before calling parse_vrml.
	From Andrew Grieve <sgrieve@users.sourceforge.net>

2006-05-16 Braden McDaniel  <braden@endoframe.com>

	Consolidated JavaScript SFVec2f/SFVec2d and SFVec3d/SFVec3d method
	implementations in templates.

	* src/libopenvrml/openvrml/script.cpp
	(js_::sfvec2_jsobject<SFVec2>): Added class template for
	implementing SFVec2f/SFVec2d methods.
	(js_::SFVec2f): Moved bulk of logic to sfvec2_jsobject template.
	(js_::SFVec2d): Moved bulk of logic to sfvec2_jsobject template.
	(js_::sfvec3_jsobject<SFVec3>): Added class template for
	implementing SFVec3f/SFVec3d methods.
	(js_::SFVec3f): Moved bulk of logic to sfvec3_jsobject template.
	(js_::SFVec3d): Moved bulk of logic to sfvec3_jsobject template.

2006-05-16 Braden McDaniel  <braden@endoframe.com>

	Use JS_ConvertArguments to convert/check argument values.

	* src/libopenvrml/openvrml/script.cpp
	(SFColor::initClass(JSContext *, JSObject *)): Call initObject
	with the default color values.
	(SFColor::construct(JSContext *, JSObject *, uintN, jsval *,
	jsval*)): Convert the arguments with JS_ConvertArguments; pass the
	jsdouble array to initObject.
	(SFColor::initObject(JSContext *, JSObject *, const
	jsdouble(&)[3])): Just check that the jsdouble values are within
	the acceptable range.
	(SFColor::setProperty(JSContext *, JSObject *, jsval, jsval *)):
	Report errors and bail if the index or value is out of range.
	(SFColor::setHSV(JSContext *, JSObject *, uintN, jsval *,
	jsval*)): Convert the arguments with JS_ConvertArguments; report
	an error and bail if the arguments are not within the acceptable
	ranges.
	(SFImage::initClass(JSContext *, JSObject *)): Changed call to
	initObject.
	(SFImage::construct(JSContext *, JSObject *, uintN, jsval *,
	jsval*)): Convert the arguments with JS_ConvertArguments; confirm
	that the fourth argument is an MFInt32; changed call to
	initObject.
	(SFImage::initObject(JSContext *, JSObject *, uint32, uint32,
	uint32, JSObject *)): Removed argument conversion; changed call to
	initObject.
	(SFNode::construct(JSContext *, JSObject *, uintN, jsval *,
	jsval*)): Convert arguments with JS_ConvertArguments; changed call
	to initObject.
	(SFNode::initObject(JSContext *, JSObject *, JSString *)): Removed
	argc assertion.
	(SFRotation::initClass(JSContext *, JSObject *)): Changed call to
	initObject.
	(SFRotation::construct(JSContext *, JSObject *, uintN, jsval *,
	jsval*)): Moved argument checking/conversion logic here from
	initObject; changed call to initObject.
	(SFRotation::initObject(JSContext *, JSObject *, const
	jsdouble(&)[4])): Print an error message and bail if the axis
	component is not normalized.
	(SFRotation::setProperty(JSContext *, JSObject *, jsval, jsval*)):
	Print an error message and bail if the resulting axis is not
	normalized.
	(SFRotation::multiply(JSContext *, JSObject *, uintN, jsval *,
	jsval *)): Use JS_ConvertArguments to convert arguments.
	(SFRotation::multVec(JSContext *, JSObject *, uintN, jsval *,
	jsval *)): Use JS_ConvertArguments to convert arguments.
	(SFRotation::setAxis(JSContext *, JSObject *, uintN, jsval *,
	jsval *)): Use JS_ConvertArguments to convert arguments.
	(SFRotation::slerp(JSContext *, JSObject *, uintN, jsval *,
	jsval*)): Use JS_ConvertArguments to convert arguments.
	(SFVec2f::initClass(JSContext *, JSObject *)): Changed call to
	initObject.
	(SFVec2f::constructor(JSContext *, JSObject *, uintN, jsval *,
	jsval *)): Use JS_ConvertArguments to convert arguments.
	(SFVec2f::initObject(JSContext *, JSObject *, const
	jsdouble(&)[2])): Moved argument conversion to constructor.
	(SFVec2f::add(JSContext *, JSObject *, uintN, jsval *, jsval *)):
	Convert arguments with JS_ConvertArguments.
	(SFVec2f::divide(JSContext *, JSObject *, uintN, jsval *,
	jsval*)): Convert arguments with JS_ConvertArguments.
	(SFVec2f::dot(JSContext *, JSObject *, uintN, jsval *, jsval *)):
	Convert arguments with JS_ConvertArguments.
	(SFVec2f::multiply(JSContext *, JSObject *, uintN, jsval *,
	jsval*)): Convert arguments with JS_ConvertArguments.
	(SFVec2f::subtract(JSContext *, JSObject *, uintN, jsval *,
	jsval*)): Convert arguments with JS_ConvertArguments.
	(SFVec2d::initClass(JSContext *, JSObject *)): Changed call to
	initObject.
	(SFVec2d::constructor(JSContext *, JSObject *, uintN, jsval *,
	jsval *)): Use JS_ConvertArguments to convert arguments.
	(SFVec2d::initObject(JSContext *, JSObject *, const
	jsdouble(&)[2])): Moved argument conversion to constructor.
	(SFVec2d::add(JSContext *, JSObject *, uintN, jsval *, jsval *)):
	Convert arguments with JS_ConvertArguments.
	(SFVec2d::divide(JSContext *, JSObject *, uintN, jsval *,
	jsval*)): Convert arguments with JS_ConvertArguments.
	(SFVec2d::dot(JSContext *, JSObject *, uintN, jsval *, jsval *)):
	Convert arguments with JS_ConvertArguments.
	(SFVec2d::multiply(JSContext *, JSObject *, uintN, jsval *,
	jsval*)): Convert arguments with JS_ConvertArguments.
	(SFVec2d::subtract(JSContext *, JSObject *, uintN, jsval *,
	jsval*)): Convert arguments with JS_ConvertArguments.
	(SFVec3f::initClass(JSContext *, JSObject *)): Changed call to
	initObject.
	(SFVec3f::constructor(JSContext *, JSObject *, uintN, jsval *,
	jsval *)): Use JS_ConvertArguments to convert arguments.
	(SFVec3f::initObject(JSContext *, JSObject *, const
	jsdouble(&)[3])): Moved argument conversion to constructor.
	(SFVec3f::add(JSContext *, JSObject *, uintN, jsval *, jsval *)):
	Convert arguments with JS_ConvertArguments.
	(SFVec3f::cross(JSContext *, JSObject *, uintN, jsval *, jsval*)):
	Convert arguments with JS_ConvertArguments.
	(SFVec3f::divide(JSContext *, JSObject *, uintN, jsval *,
	jsval*)): Convert arguments with JS_ConvertArguments.
	(SFVec3f::dot(JSContext *, JSObject *, uintN, jsval *, jsval *)):
	Convert arguments with JS_ConvertArguments.
	(SFVec3f::multiply(JSContext *, JSObject *, uintN, jsval *,
	jsval*)): Convert arguments with JS_ConvertArguments.
	(SFVec3f::subtract(JSContext *, JSObject *, uintN, jsval *,
	jsval*)): Convert arguments with JS_ConvertArguments.
	(SFVec3d::initClass(JSContext *, JSObject *)): Changed call to
	initObject.
	(SFVec3d::constructor(JSContext *, JSObject *, uintN, jsval *,
	jsval *)): Use JS_ConvertArguments to convert arguments.
	(SFVec3d::initObject(JSContext *, JSObject *, const
	jsdouble(&)[3])): Moved argument conversion to constructor.
	(SFVec3d::add(JSContext *, JSObject *, uintN, jsval *, jsval *)):
	Convert arguments with JS_ConvertArguments.
	(SFVec3d::cross(JSContext *, JSObject *, uintN, jsval *, jsval*)):
	Convert arguments with JS_ConvertArguments.
	(SFVec3d::divide(JSContext *, JSObject *, uintN, jsval *,
	jsval*)): Convert arguments with JS_ConvertArguments.
	(SFVec3d::dot(JSContext *, JSObject *, uintN, jsval *, jsval *)):
	Convert arguments with JS_ConvertArguments.
	(SFVec3d::multiply(JSContext *, JSObject *, uintN, jsval *,
	jsval*)): Convert arguments with JS_ConvertArguments.
	(SFVec3d::subtract(JSContext *, JSObject *, uintN, jsval *,
	jsval*)): Convert arguments with JS_ConvertArguments.
	(VrmlMatrix::initClass(JSContext *, JSObject *)): Changed call to
	initObject.
	(VrmlMatrix::construct(JSContext *, JSObject *, uintN, jsval *,
	jsval *)): Convert arguments with JS_ConvertArguments; changed
	call to initObject.
	(VrmlMatrix::initObject(JSContext *, JSObject *, const
	jsdouble(&)[16])): Moved argument conversion to constructor.
	(VrmlMatrix::setTransform(JSContext *, JSObject *, uintN, jsval *,
	jsval *)): Convert arguments with JS_ConvertArguments.
	(VrmlMatrix::getTransform(JSContext *, JSObject *, uintN, jsval *,
	jsval *)): Convert arguments with JS_ConvertArguments.
	(VrmlMatrix::multLeft(JSContext *, JSObject *, uintN, jsval *,
	jsval *)): Convert arguments with JS_ConvertArguments.
	(VrmlMatrix::multRight(JSContext *, JSObject *, uintN, jsval *,
	jsval *)): Convert arguments with JS_ConvertArguments.
	(VrmlMatrix::multVecMatrix(JSContext *, JSObject *, uintN, jsval*,
	jsval *)): Convert arguments with JS_ConvertArguments.
	(VrmlMatrix::multMatrixVec(JSContext *, JSObject *, uintN, jsval*,
	jsval *)): Convert arguments with JS_ConvertArguments.

2006-05-15 Braden McDaniel  <braden@endoframe.com>

	Set the plugin_resource_istream initial state to invalid if the
	Web browser's get-url function fails.  This means that the child
	process blocks until the Web browser has informed it of the
	validity of the get-url operation.

	* mozilla-plugin/src/openvrml.cpp
	(request_data_available): Write the result of NPN_GetURL to the
	command channel.
	* mozilla-plugin/src/openvrml-player/gtkvrmlbrowser.cpp
	(browser::do_get_resource(const
	std::string&)::plugin_resource_istream::plugin_resource_istream(const
	std::string &, GIOChannel *)): Set the failbit if the Web
	browser's get-url function failed.
	* mozilla-plugin/src/openvrml-player/player.cpp
	(openvrml_player::command_istream_reader::operator()()): Handle
	get-url-result command.
	* mozilla-plugin/src/openvrml-player/plugin_streambuf.cpp
	(openvrml_player::plugin_streambuf::set_get_url_result(int)): Set
	the result of the get-url operation (from the get-url-result
	command).
	(openvrml_player::plugin_streambuf::get_url_result() const): Get
	the result code from the Web browser's get-url operation (via the
	get-url-result command).
	* mozilla-plugin/src/openvrml-player/plugin_streambuf.h
	(openvrml_player::plugin_streambuf): Added get_url_result_ and
	received_get_url_result_ members; added set_get_url_result(int)
	and get_url_result() member functions.

2006-05-15 Braden McDaniel  <braden@endoframe.com>

	Fixes such that failure to launch the subprocess will not crash
	the Web browser.

	* mozilla-plugin/src/openvrml.cpp
	(PluginInstance::SetWindow(NPWindow &)): Ensure
	openvrml_player_cmd_argv is null-terminated.  And ensure its
	contents are allocated in the free store, since this memory will
	be freed.  Also, only create the IO channels if executing the
	child process succeeded.
	(PluginInstance::WriteCommand(const std::string &)): Bail if we do
	not have a valid command_channel.

2006-05-15 Braden McDaniel  <braden@endoframe.com>

	Remove the request channel (input) watch when destroying the
	plug-in instance; otherwise we get a stray call to the watch
	callback and an (apparently spurious) assertion in glib.

	* mozilla-plugin/src/openvrml.cpp
	(PluginInstance): Added request_channel_watch_id member.
	(PluginInstance::PluginInstance()): Initialize
	request_channel_watch_id to 0.
	(PluginInstance::~PluginInstance()): Remove the request channel
	watch callback.
	(PluginInstance::SetWindow(NPWindow &)): Store the watch id in the
	instance.

2006-05-14 Braden McDaniel  <braden@endoframe.com>

	Simplified assertions to guarantee that the rotation axis is a
	normalized vector.  This also accommodates the notion that a
	vector of length 0 is considered normalized as far as OpenVRML is
	concerned; that is, calling vec3f::normalize for such a vector
	returns an identical vector.  The VRML97 specification does not
	make clear that attempting to normalize such a vector should be an
	error (in, e.g., the ECMAScript binding).

	* src/libopenvrml/openvrml/basetypes.cpp
	(openvrml::rotation::rotation(const float (&)[4]): Simplified
	assertion.
	(openvrml::rotation::rotation(float, float, float, float):
	Simplified assertion.
	(openvrml::rotation::rotation(const vec3f &, float): Simplified
	assertion.
	(openvrml::rotation::axis(const vec3f &): Simplified assertion.

2006-05-13 Braden McDaniel  <braden@endoframe.com>

	* models/rotation_toy.wrl: Normalize the rotation axis.

2006-05-12 Braden McDaniel  <braden@endoframe.com>

	If a thread other than the rendering thread destroys the scene, we
	will run into problems if we try to call OpenGL functions without
	first changing the GL context to the current thread.  Rather than
	do that, we probably want just to refactor display list and
	texture object cleanup such that it is encapsulated in the
	renderer and always handled by the rendering thread.  For now,
	though, we will just punt and leak the display list and texture
	objects.

	* src/libopenvrml/openvrml/node.cpp
	(openvrml::geometry_node::~geometry_node()): Removed code to clean
	up the renderer object.
	(openvrml::texture_node::~texture_node()): Removed code to clean
	up the renderer object.

2006-05-12 Braden McDaniel  <braden@endoframe.com>

	Make a copy of the URI passed to the root_scene_loader, since it
	very well may go away.

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::browser::root_scene_loader): Changed url_ member to a
	const value from a pointer.
	(openvrml::browser::root_scene_loader::root_scene_loader(browser
	&, const std::vector<std::string> &)): Make a copy of the URI
	vector; note that std::bad_alloc may be thrown.
	(openvrml::browser::root_scene_loader::operator()): url_ member is
	no longer a pointer.
	(openvrml::browser::load_url(const std::vector<std::string> &,
	const std::vector<std::string> &)): Added std::bad_alloc to
	exception specification.
	* src/libopenvrml/openvrml/browser.h
	(openvrml::browser::load_url(const std::vector<std::string> &,
	const std::vector<std::string> &)): Added std::bad_alloc to
	exception specification.

2006-05-12 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/basetypes.cpp
	(rgb_to_hsv(const float *, float *)): Removed "inline"; changed
	argument names for clarity.
	(hsv_to_rgb(float, float, float, float *)): Removed "inline";
	changed argument names for clarity.

2006-05-12 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/basetypes.cpp
	(rgb_to_hsv(const float *, float *)): Assert validity of input
	parameter.
	(hsv_to_rgb(float, float, float, float *)): Assert validity of
	input parameters.

2006-05-08 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/script.cpp
	(js_::Browser::loadURL(JSContext *, JSObject *, uintN, jsval *,
	jsval *)): Accommodate calls using 0 or 1 argument; handle any
	exceptions.

2006-05-08 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::browser::load_url(const std::vector<std::string> &,
	const std::vector<std::string> &)): Changed exception
	specification to throw boost::thread_resource_error.
	* src/libopenvrml/openvrml/browser.h (openvrml::browser): Changed
	exception specification of load_url member function to throw
	boost::thread_resource_error.

2006-05-06 Braden McDaniel  <braden@endoframe.com>

	Accommodate building against Boost libraries that have a
	configuration-specific suffix.

	* README
	* configure.ac: Added AC_ARG_VAR BOOST_LIB_SUFFIX.
	* src/libopenvrml/Makefile.am: Append BOOST_LIB_SUFFIX to
	boost_thread.

2006-05-06 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Added missing comma.
	* m4/antlr.m4: Check to ensure JAVA is set; direct stdout and
	stderr output from antlr to /dev/null.

2006-04-27 Braden McDaniel  <braden@endoframe.com>

	Ensure the version of antlr that gets used to generate code is the
	same as the version of libantlr that is included with OpenVRML.

	* configure.ac: Check for antlr 2.7.4.
	* m4/antlr.m4 (OV_PROG_ANTLR): Allow specification of a particular
	version of antlr.

2006-04-27 Braden McDaniel  <braden@endoframe.com>

	* m4/jdk.m4 (OV_PROG_JAVA): Added AC_ARG_VAR JAVAFLAGS.

2006-04-21 Braden McDaniel  <braden@endoframe.com>

	Incremented Rendering and Lighting component support levels to 4
	and 3, respectively.  These levels to not indicate any additional
	node support.

	* src/libopenvrml/openvrml/browser.cpp
	(x3d_rendering_component::support_level() const): Return 4.
	(x3d_lighting_component::support_level() const): Return 3.

2006-04-21 Braden McDaniel  <braden@endoframe.com>

	Added support for creating scene graphs with the level 3 nodes of
	the EnvironmentalEffects component.
	From Andrew Grieve <sgrieve@users.sourceforge.net>

	* src/libopenvrml/Makefile.am
	(openvrml_include_HEADERS): Added
	openvrml/x3d_environmental_effects.h.
	(libopenvrml_la_SOURCES): Added
	openvrml/x3d_environmental_effects.cpp.
	* src/libopenvrml/openvrml/browser.cpp
	(register_node_classes(openvrml::browser &)): Register
	EnvironmentalEffects node_classes.
	(x3d_environmental_effects_component::support_level() const):
	Return 3.
	(x3d_environmental_effects_component::do_add_to_scope(const
	openvrml::browser&, openvrml::scope &, size_t) const): Add the
	level 3 node types to the scope.
	* src/libopenvrml/openvrml/x3d_environmental_effects.cpp: Added
	file; EnvironmentalEffects component node implementations that
	aren't VRML97 nodes.
	* src/libopenvrml/openvrml/x3d_environmental_effects.h: Added
	file; expose node_class registration function.

2006-04-21 Braden McDaniel  <braden@endoframe.com>

	Added support for creating scene graphs with the level 3 nodes of
	the Interpolation component.
	From Andrew Grieve <sgrieve@users.sourceforge.net>

	* src/libopenvrml/Makefile.am
	(openvrml_include_HEADERS): Added openvrml/x3d_interpolation.h.
	(libopenvrml_la_SOURCES): Added openvrml/x3d_interpolation.cpp.
	* src/libopenvrml/openvrml/browser.cpp
	(register_node_classes(openvrml::browser &)): Register
	Interpolation node_classes.
	(x3d_interpolation_component::support_level() const): Return 3.
	(x3d_interpolation_component::do_add_to_scope(const
	openvrml::browser&, openvrml::scope &, size_t) const): Add the
	level 3 node types to the scope.
	* src/libopenvrml/openvrml/x3d_interpolation.cpp: Added file;
	Interpolation component node implementations that aren't VRML97
	nodes.
	* src/libopenvrml/openvrml/x3d_interpolation.h: Added file; expose
	node_class registration function.

2006-04-20 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp
	(register_node_classes(openvrml::browser &)): Register Grouping
	node_classes.

2006-04-20 Braden McDaniel  <braden@endoframe.com>

	Added support for creating scene graphs with the level 3 nodes of
	the Grouping component.
	From Andrew Grieve <sgrieve@users.sourceforge.net>

	* src/libopenvrml/Makefile.am
	(openvrml_include_HEADERS): Added openvrml/x3d_grouping.h.
	(libopenvrml_la_SOURCES): Added openvrml/x3d_grouping.cpp.
	* src/libopenvrml/openvrml/browser.cpp
	(x3d_grouping_component::support_level() const): Return 3.
	(x3d_grouping_component::do_add_to_scope(const openvrml::browser&,
	openvrml::scope &, size_t) const): Add the level 3 node types to
	the scope.
	* src/libopenvrml/openvrml/x3d_grouping.cpp: Added file; Grouping
	component node implementations that aren't VRML97 nodes.
	* src/libopenvrml/openvrml/x3d_grouping.h: Added file; expose
	node_class registration function.

2006-04-19 Braden McDaniel  <braden@endoframe.com>

	Added support for creating scene graphs with the level 3 nodes of
	the Shape component.
	From Andrew Grieve <sgrieve@users.sourceforge.net>

	* src/libopenvrml/openvrml/browser.cpp
	(x3d_shape_component::support_level() const): Return 3.
	(x3d_shape_component::do_add_to_scope(const openvrml::browser &,
	openvrml::scope &, size_t) const): Add the level 3 node types to
	the scope.
	* src/libopenvrml/openvrml/x3d_shape.cpp: Added level 2 node
	implementations.

2006-04-18 Braden McDaniel  <braden@endoframe.com>

	Added support for creating scene graphs with the level 2 nodes of
	the Geometry2D component.
	From Andrew Grieve <sgrieve@users.sourceforge.net>

	* src/libopenvrml/openvrml/browser.cpp
	(x3d_geometry2d_component::support_level() const): Return 2.
	(x3d_geometry2d_component::do_add_to_scope(const
	openvrml::browser&, openvrml::scope &, size_t) const): Add the
	level 2 node types to the scope.
	* src/libopenvrml/openvrml/x3d_geometry2d.cpp: Added level 2 node
	implementations.

2006-04-18 Braden McDaniel  <braden@endoframe.com>

	Applied exception specification macros.

	* src/libopenvrml/openvrml/x3d_geospatial.cpp
	* src/libopenvrml/openvrml/x3d_nurbs.cpp

2006-04-17 Braden McDaniel  <braden@endoframe.com>

	* tests/testsuite.at: Added test to check that we can safely
	import a component level that's already been imported via the
	profile.

2006-04-17 Braden McDaniel  <braden@endoframe.com>

	Allow components to be added redundantly.  This is necessary in
	the current design, where importing component X level 2 imports
	level 1 as well; and level 1 may already have been imported as
	part of the profile.

	* src/libopenvrml/openvrml/Vrml97Parser.g
	(proto): Changes for parity with change to
	openvrml::scope::add_type.
	(externproto): Changes for parity with change to
	openvrml::scope::add_type.
	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::operator==(const node_class_id &, const
	node_class_id&)): Added function.
	(openvrml::operator!=(const node_class_id &, const
	node_class_id&)): Added function.
	(openvrml::browser::node_class_map::node_class_ids(const
	openvrml::node_class &) const): Added function; get the node_class
	identifiers associated with a node_class in the map (i.e., the
	keys).
	(component::add_scope_entry(const openvrml::browser &, const
	char*, const openvrml::node_interface_set &, const char *,
	openvrml::scope &) const): Accommodate failure to add a node_type
	to the scope.
	* src/libopenvrml/openvrml/browser.h:
	(openvrml::browser): Grant friendship to node_type's operator==.
	(openvrml::browser::node_class_map): Added member function:
	node_class_ids(const openvrml::node_class &) const
	* src/libopenvrml/openvrml/node.cpp
	(openvrml::operator==(const node_type &, const node_type &)):
	Equality for node_type.
	(openvrml::operator!=(const node_type &, const node_type &)):
	Inequality for node_type.
	* src/libopenvrml/openvrml/node.h
	(openvrml::node_class_id): Grant friendship to operator==.
	(openvrml::operator==(const node_class_id &, const node_class_id
	&)): Equality for node_class_id.
	(openvrml::operator!=(const node_class_id &, const node_class_id
	&)): Inequality for node_class_id.
	(openvrml::operator==(const node_type &, const node_type &)):
	Equality for node_type.
	(openvrml::operator!=(const node_type &, const node_type &)):
	Inequality for node_type.
	* src/libopenvrml/openvrml/scope.cpp
	(openvrml::scope::add_type(const boost::shared_ptr<node_type> &)):
	Changed to return
	std::pair<boost::shared_ptr<openvrml::node_type>, bool> instead of
	bool.
	* src/libopenvrml/openvrml/scope.h
	(openvrml::scope::add_type(const boost::shared_ptr<node_type> &)):
	Changed to return
	std::pair<boost::shared_ptr<openvrml::node_type>, bool> instead of
	bool.

2006-04-16 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/node.cpp
	(openvrml::node_class::node_class(const node_class_id &,
	openvrml::browser &)): Must explicitly qualify openvrml::browser
	here.

2006-04-16 Braden McDaniel  <braden@endoframe.com>

	Added node_class::id accessor; node_class must now be constructed
	with an id.

	* src/libopenvrml/openvrml/Vrml97Parser.g
	(proto): Construct proto_node_class with a node_class id; moved
	code to construct the id to path(const scope &).
	(externproto): Construct externproto_node_class with a node_class
	id; add the externproto_node_class to the browser's node_class map
	using this id regardless (instead of only if the alternative URI
	list is empty).
	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::proto_node_class::proto_node_class(const node_class_id
	&, openvrml::browser &, const node_interface_set &, const
	default_value_map_t & const is_map_t &, const routes_t &)):
	Construct node_class with an id.
	(externproto_node_class::externproto_node_class(const
	openvrml::node_class_id &, const openvrml::scene &, const
	std::vector<std::string> &)): Construct node_class with an id.
	(openvrml::null_node_class::null_node_class(openvrml::browser &)):
	Construct node_class with an id.
	* src/libopenvrml/openvrml/browser.h
	(openvrml::node_class_id): Removed; moved to node.h.
	* src/libopenvrml/openvrml/node.cpp
	(openvrml::node_class::node_class(const node_class_id &,
	browser&): Initialize node_class::id_.
	(openvrml::node_class::id() const): Added id accessor.
	* src/libopenvrml/openvrml/node.h
	(openvrml::node_class_id): Moved from browser.h.
	(openvrml::node_class): Added member id_ and id accessor.
	* src/libopenvrml/openvrml/scope.cpp
	(openvrml::path(const scope &)): Added function; construct the
	path to a scope.
	* src/libopenvrml/openvrml/scope.h
	(openvrml::path(const scope &)): Added function declaration.
	* src/libopenvrml/openvrml/script.cpp
	(openvrml::script_node_class::script_node_class(openvrml::browser&)):
	Pass identifier to node_class constructor.
	* src/libopenvrml/openvrml/vrml97node.cpp
	(anchor_class): Added id member.
	(appearance_class): Added id member.
	(audio_clip_class): Added id member.
	(background_class): Added id member.
	(billboard_class): Added id member.
	(box_class): Added id member.
	(collision_class): Added id member.
	(color_class): Added id member.
	(color_interpolator_class): Added id member.
	(cone_class): Added id member.
	(coordinate_class): Added id member.
	(coordinate_interpolator_class): Added id member.
	(cylinder_class): Added id member.
	(cylinder_sensor_class): Added id member.
	(directional_light_class): Added id member.
	(elevation_grid_class): Added id member.
	(extrusion_class): Added id member.
	(fog_class): Added id member.
	(font_style_class): Added id member.
	(group_class): Added id member.
	(image_texture_class): Added id member.
	(indexed_face_set_class): Added id member.
	(indexed_line_set_class): Added id member.
	(inline_class): Added id member.
	(lod_class): Added id member.
	(material_class): Added id member.
	(movie_texture_class): Added id member.
	(navigation_info_class): Added id member.
	(normal_class): Added id member.
	(normal_interpolator_class): Added id member.
	(orientation_interpolator_class): Added id member.
	(pixed_texture_class): Added id member.
	(plane_sensor_class): Added id member.
	(point_light_class): Added id member.
	(point_set_class): Added id member.
	(position_interpolator_class): Added id member.
	(proximity_sensor_class): Added id member.
	(scalar_interpolator_class): Added id member.
	(shape_class): Added id member.
	(sound_class): Added id member.
	(sphere_class): Added id member.
	(sphere_sensor_class): Added id member.
	(spot_light_class): Added id member.
	(switch_class): Added id member.
	(text_class): Added id member.
	(texture_coordinate_class): Added id member.
	(texture_transform_class): Added id member.
	(time_sensor_class): Added id member.
	(touch_sensor_class): Added id member.
	(transform_class): Added id member.
	(visibility_sensor_class): Added id member.
	(world_info_class): Added id member.
	(register_vrml97_node_classes(openvrml::browser &)): Add the
	node_classes using the id member of the concrete node_classes.
	(anchor_class::id): node_class identifier used when registering an
	instance with the browser and constructing the base node_class.
	(anchor_class::anchor_class(openvrml::browser &)): Pass the id to
	the base node_class.
	(appearance_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(appearance_class::appearance_class(openvrml::browser &)): Pass
	the id to the base node_class.
	(audio_clip_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(audio_clip_class::audio_clip_class(openvrml::browser &)): Pass
	the id to the base node_class.
	(background_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(background_class::background_class(openvrml::browser &)): Pass
	the id to the base node_class.
	(billboard_class::id): node_class identifier used when registering
	an instance with the browser and constructing the base node_class.
	(billboard_class::billboard_class(openvrml::browser &)): Pass the
	id to the base node_class.
	(collision_class::id): node_class identifier used when registering
	an instance with the browser and constructing the base node_class.
	(collision_class::collision_class(openvrml::browser &)): Pass the
	id to the base node_class.
	(color_class::id): node_class identifier used when registering an
	instance with the browser and constructing the base node_class.
	(color_class::color_class(openvrml::browser &)): Pass the id to
	the base node_class.
	(color_interpolator_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(color_interpolator_class::color_interpolator_class(openvrml::browser&)):
	Pass the id to the base node_class.
	(cone_class::id): node_class identifier used when registering an
	instance with the browser and constructing the base node_class.
	(cone_class::cone_class(openvrml::browser &)): Pass the id to the
	base node_class.
	(coordinate_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(coordinate_class::coordinate_class(openvrml::browser &)): Pass
	the id to the base node_class.
	(coordinate_interpolator_class::id): node_class identifier used
	when registering an instance with the browser and constructing the
	base node_class.
	(coordinate_interpolator_class::coordinate_interpolator_class(openvrml::browser&)):
	Pass the id to the base node_class.
	(cylinder_class::id): node_class identifier used when registering
	an instance with the browser and constructing the base node_class.
	(cylinder_class::cylinder_class(openvrml::browser &)): Pass the id
	to the base node_class.
	(cylinder_sensor_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(cylinder_sensor_class::cylinder_sensor_class(openvrml::browser&)):
	Pass the id to the base node_class.
	(directional_light_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(directional_light_class::directional_light_class(openvrml::browser&)):
	Pass the id to the base node_class.
	(elevation_grid_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(elevation_grid_class::elevation_grid_class(openvrml::browser &)):
	Pass the id to the base node_class.
	(extrusion_class::id): node_class identifier used when registering
	an instance with the browser and constructing the base node_class.
	(extrusion_class::extrusion_class(openvrml::browser &)): Pass the
	id to the base node_class.
	(fog_class::id): node_class identifier used when registering an
	instance with the browser and constructing the base node_class.
	(fog_class::fog_class(openvrml::browser &)): Pass the id to the
	base node_class.
	(font_style_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(font_style_class::font_style_class(openvrml::browser &)): Pass
	the id to the base node_class.
	(group_class::id): node_class identifier used when registering an
	instance with the browser and constructing the base node_class.
	(group_class::group_class(openvrml::browser &)): Pass the id to
	the base node_class.
	(image_texture_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(image_texture_class::image_texture_class(openvrml::browser &)):
	Pass the id to the base node_class.
	(indexed_face_set_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(indexed_face_set_class::indexed_face_set_class(openvrml::browser&)):
	Pass the id to the base node_class.
	(indexed_line_set_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(indexed_line_set_class::indexed_line_set_class(openvrml::browser&)):
	Pass the id to the base node_class.
	(inline_class::id): node_class identifier used when registering an
	instance with the browser and constructing the base node_class.
	(inline_class::inline_class(openvrml::browser &)): Pass the id to
	the base node_class.
	(lod_class::id): node_class identifier used when registering an
	instance with the browser and constructing the base node_class.
	(lod_class::lod_class(openvrml::browser &)): Pass the id to the
	base node_class.
	(material_class::id): node_class identifier used when registering
	an instance with the browser and constructing the base node_class.
	(material_class::material_class(openvrml::browser &)): Pass the id
	to the base node_class.
	(movie_texture_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(movie_texture_class::movie_texture_class(openvrml::browser &)):
	Pass the id to the base node_class.
	(navigation_info_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(navigation_info_class::navigation_info_class(openvrml::browser&)):
	Pass the id to the base node_class.
	(normal_class::id): node_class identifier used when registering an
	instance with the browser and constructing the base node_class.
	(normal_class::normal_class(openvrml::browser &)): Pass the id to
	the base node_class.
	(normal_interpolator_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(normal_interpolator_class::normal_interpolator_class(openvrml::browser&)):
	Pass the id to the base node_class.
	(orientation_interpolator_class::id): node_class identifier used
	when registering an instance with the browser and constructing the
	base node_class.
	(orientation_interpolator_class::orientation_interpolator_class(openvrml::browser&)):
	Pass the id to the base node_class.
	(pixel_texture_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(pixel_texture_class::pixel_texture_class(openvrml::browser &)):
	Pass the id to the base node_class.
	(plane_sensor_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(plane_sensor_class::plane_sensor_class(openvrml::browser &)):
	Pass the id to the base node_class.
	(point_light_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(point_light_class::point_light_class(openvrml::browser &)): Pass
	the id to the base node_class.
	(position_interpolator_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(position_interpolator_class::position_interpolator_class(openvrml::browser&)):
	Pass the id to the base node_class.
	(proximity_sensor_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(proximity_sensor_class::proximity_sensor_class(openvrml::browser
	&)): Pass the id to the base node_class.
	(scalar_interpolator_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(scalar_interpolator_class::scalar_interpolator_class(openvrml::browser&)):
	Pass the id to the base node_class.
	(shape_class::id): node_class identifier used when registering an
	instance with the browser and constructing the base node_class.
	(shape_class::shape_class(openvrml::browser &)): Pass the id to
	the base node_class.
	(sound_class::id): node_class identifier used when registering an
	instance with the browser and constructing the base node_class.
	(sound_class::sound_class(openvrml::browser &)): Pass the id to
	the base node_class.
	(sphere_class::id): node_class identifier used when registering an
	instance with the browser and constructing the base node_class.
	(sphere_class::sphere_class(openvrml::browser &)): Pass the id to
	the base node_class.
	(sphere_sensor_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(sphere_sensor_class::sphere_sensor_class(openvrml::browser &)):
	Pass the id to the base node_class.
	(spot_light_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(spot_light_class::spot_light_class(openvrml::browser &)): Pass
	the id to the base node_class.
	(switch_class::id): node_class identifier used when registering an
	instance with the browser and constructing the base node_class.
	(switch_class::switch_class(openvrml::browser &)): Pass the id to
	the base node_class.
	(text_class::id): node_class identifier used when registering an
	instance with the browser and constructing the base node_class.
	(text_class::text_class(openvrml::browser &)): Pass the id to the
	base node_class.
	(texture_coordinate_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(texture_coordinate_class::texture_coordinate_class(openvrml::browser&)):
	Pass the id to the base node_class.
	(texture_transform_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(texture_transform_class::texture_coordinate_class(openvrml::browser&)):
	Pass the id to the base node_class.
	(time_sensor_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(time_sensor_class::time_sensor_class(openvrml::browser &)): Pass
	the id to the base node_class.
	(touch_sensor_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(touch_sensor_class::touch_sensor_class(openvrml::browser &)):
	Pass the id to the base node_class.
	(transform_class::id): node_class identifier used when registering
	an instance with the browser and constructing the base node_class.
	(transform_class::transform_class(openvrml::browser &)): Pass the
	id to the base node_class.
	(viewpoint_class::id): node_class identifier used when registering
	an instance with the browser and constructing the base node_class.
	(viewpoint_class::viewpoint_class(openvrml::browser &)): Pass the
	id to the base node_class.
	(visibility_sensor_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(visibility_sensor_class::visibility_sensor_class(openvrml::browser&)):
	Pass the id to the base node_class.
	(world_info_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(world_info_class::world_info_class(openvrml::browser &)): Pass
	the id to the base node_class.
	* src/libopenvrml/openvrml/x3d_core.cpp
	(metadata_double_class): Added id member.
	(metadata_float_class): Added id member.
	(metadata_integer_class): Added id member.
	(metadata_set_class): Added id member.
	(metadata_string_class): Added id member.
	(register_core_node_classes(openvrml::browser &)): Add the
	node_classes using the id member of the concrete node_classes.
	(metadata_double_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(metadata_double_class::metadata_double_class(openvrml::browser
	&)): Pass the id to the base node_class.
	(metadata_float_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(metadata_float_class::metadata_float_class(openvrml::browser &)):
	Pass the id to the base node_class.
	(metadata_integer_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(metadata_integer_class::metadata_integer_class(openvrml::browser&)):
	Pass the id to the base node_class.
	(metadata_set_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(metadata_set_class::metadata_set_class(openvrml::browser &)):
	Pass the id to the base node_class.
	(metadata_string_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(metadata_string_class::metadata_string_class(openvrml::browser&)):
	Pass the id to the base node_class.
	* src/libopenvrml/openvrml/x3d_dis.cpp
	(espdu_transform_class): Added id member.
	(receiver_pdu_class): Added id member.
	(signal_pdu_class): Added id member.
	(transmitter_pdu_class): Added id member.
	(register_dis_node_classes(openvrml::browser &)): Add the
	node_classes using the id member of the concrete node_classes.
	(espdu_transform_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(espdu_transform_class::espdu_transform_class(openvrml::browser&)):
	Pass the id to the base node_class.
	(receiver_pdu_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(receiver_pdu_class::receiver_pdu_class(openvrml::browser &)):
	Pass the id to the base node_class.
	(signal_pdu_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(signal_pdu_class::signal_pdu_class(openvrml::browser &)):
	Pass the id to the base node_class.
	(transmitter_pdu_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(transmitter_pdu_class::transmitter_pdu_class(openvrml::browser &)):
	Pass the id to the base node_class.
	* src/libopenvrml/openvrml/x3d_event_utilities.cpp
	(boolean_filter_class): Added id member.
	(boolean_sequencer_class): Added id member.
	(boolean_toggle_class): Added id member.
	(boolean_trigger_class): Added id member.
	(integer_sequencer_class): Added id member.
	(integer_trigger_class): Added id member.
	(time_trigger_class): Added id member.
	(register_event_utilities_node_classes(openvrml::browser &)): Add
	the node_classes using the id member of the concrete node_classes.
	(boolean_filter_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(boolean_filter_class::boolean_filter_class(openvrml::browser &)):
	Pass the id to the base node_class.
	(boolean_sequencer_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(boolean_sequencer_class::boolean_sequencer_class(openvrml::browser &)):
	Pass the id to the base node_class.
	(boolean_toggle_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(boolean_toggle_class::boolean_toggle_class(openvrml::browser &)):
	Pass the id to the base node_class.
	(boolean_trigger_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(boolean_trigger_class::boolean_trigger_class(openvrml::browser &)):
	Pass the id to the base node_class.
	(integer_sequencer_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(integer_sequencer_class::integer_sequencer_class(openvrml::browser &)):
	Pass the id to the base node_class.
	(integer_trigger_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(integer_trigger_class::integer_trigger_class(openvrml::browser &)):
	Pass the id to the base node_class.
	(time_trigger_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(time_trigger_class::time_trigger_class(openvrml::browser &)):
	Pass the id to the base node_class.
	* src/libopenvrml/openvrml/x3d_geometry2d.cpp
	(polyline2d_class): Added id member.
	(polypoint2d_class): Added id member.
	(rectangle2d_class): Added id member.
	(triangle_set2d_class): Added id member.
	(register_geometry2d_node_classes(openvrml::browser &)): Add the
	node_classes using the id member of the concrete node_classes.
	(polyline2d_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(polyline2d_class::polyline2d_class(openvrml::browser &)): Pass
	the id to the base node_class.
	(polypoint2d_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(polypoint2d_class::polypoint2d_class(openvrml::browser &)): Pass
	the id to the base node_class.
	(rectangle2d_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(rectangle2d_class::rectangle2d_class(openvrml::browser &)): Pass
	the id to the base node_class.
	(triangle_set2d_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(triangle_set2d_class::triangle_set2d_class(openvrml::browser &)):
	Pass the id to the base node_class.
	* src/libopenvrml/openvrml/x3d_geospatial.cpp
	(geo_coordinate_class): Added id member.
	(geo_elevation_grid_class): Added id member.
	(geo_location_class): Added id member.
	(geo_lod_class): Added id member.
	(geo_metadata_class): Added id member.
	(geo_origin_class): Added id member.
	(geo_position_interpolator_class): Added id member.
	(geo_touch_sensor_class): Added id member.
	(geo_viewpoint_class): Added id member.
	(register_geospatial_node_classes(openvrml::browser &)): Add the
	node_classes using the id member of the concrete node_classes.
	(geo_coordinate_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(geo_coordinate_class::geo_coordinate_class(openvrml::browser &)):
	Pass the id to the base node_class.
	(geo_elevation_grid_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(geo_elevation_grid_class::geo_elevation_grid_class(openvrml::browser&)):
	Pass the id to the base node_class.
	(geo_location_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(geo_location_class::geo_location_class(openvrml::browser &)):
	Pass the id to the base node_class.
	(geo_lod_class::id): node_class identifier used when registering
	an instance with the browser and constructing the base node_class.
	(geo_lod_class::geo_lod_class(openvrml::browser &)): Pass the id
	to the base node_class.
	(geo_metadata_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(geo_metadata_class::geo_metadata_class(openvrml::browser &)):
	Pass the id to the base node_class.
	(geo_origin_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(geo_origin_class::geo_origin_class(openvrml::browser &)): Pass
	the id to the base node_class.
	(geo_position_interpolator_class::id): node_class identifier used
	when registering an instance with the browser and constructing the
	base node_class.
	(geo_position_interpolator_class::geo_position_interpolator_class(openvrml::browser&)):
	Pass the id to the base node_class.
	(geo_touch_sensor_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(geo_touch_sensor_class::geo_touch_sensor_class(openvrml::browser&)):
	Pass the id to the base node_class.
	(geo_viewpoint_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(geo_viewpoint_class::geo_viewpoint_class(openvrml::browser &)):
	Pass the id to the base node_class.
	* src/libopenvrml/openvrml/x3d_hanim.cpp
	(hanim_displacer_class): Added id member.
	(hanim_humanoid_class): Added id member.
	(hanim_joint_class): Added id member.
	(hanim_segment_class): Added id member.
	(hanim_site_class): Added id member.
	(register_hanim_node_classes(openvrml::browser &)): Add the
	node_classes using the id member of the concrete node_classes.
	(hanim_displacer_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(hanim_displacer_class::hanim_displacer_class(openvrml::browser&)):
	Pass the id to the base node_class.
	(hanim_humanoid_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(hanim_humanoid_class::hanim_humanoid_class(openvrml::browser &)):
	Pass the id to the base node_class.
	(hanim_joint_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(hanim_joint_class::hanim_joint_class(openvrml::browser &)):
	Pass the id to the base node_class.
	(hanim_segment_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(hanim_segment_class::hanim_segment_class(openvrml::browser &)):
	Pass the id to the base node_class.
	(hanim_site_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(hanim_site_class::hanim_site_class(openvrml::browser &)):
	Pass the id to the base node_class.
	* src/libopenvrml/openvrml/x3d_key_device_sensor.cpp
	(key_sensor_class): Added id member.
	(string_sensor_class): Added id member.
	(register_key_device_sensor_node_classes(openvrml::browser &)):
	Add the node_classes using the id member of the concrete
	node_classes.
	(key_sensor_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(key_sensor_class::key_sensor_class(openvrml::browser &)): Pass
	the id to the base node_class.
	(string_sensor_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(string_sensor_class::string_sensor_class(openvrml::browser &)):
	Pass the id to the base node_class.
	* src/libopenvrml/openvrml/x3d_networking.cpp
	(load_sensor_class): Added id member.
	(register_networking_node_classes(openvrml::browser &)): Add the
	node_classes using the id member of the concrete node_classes.
	(load_sensor_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(load_sensor_class::load_sensor_class(openvrml::browser &)):
	Pass the id to the base node_class.
	* src/libopenvrml/openvrml/x3d_nurbs.cpp
	(contour2d_class): Added id member.
	(contour_polyline2d_class): Added id member.
	(coordinate_double_class): Added id member.
	(nurbs_curve_class): Added id member.
	(nurbs_curve2d_class): Added id member.
	(nurbs_orientation_interpolator_class): Added id member.
	(nurbs_patch_surface_class): Added id member.
	(nurbs_position_interpolator_class): Added id member.
	(nurbs_set_class): Added id member.
	(nurbs_surface_interpolator_class): Added id member.
	(nurbs_swept_surface_class): Added id member.
	(nurbs_swung_surface_class): Added id member.
	(nurbs_texture_coordinate_class): Added id member.
	(nurbs_trimmed_surface_class): Added id member.
	(register_nurbs_node_classes(openvrml::browser &)): Add the
	node_classes using the id member of the concrete node_classes.
	(contour2d_class::id): node_class identifier used when registering
	an instance with the browser and constructing the base node_class.
	(contour2d_class::contour2d_class(openvrml::browser &)): Pass the
	id to the base node_class.
	(contour_polyline2d_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(contour_polyline2d_class::contour_polyline2d_class(openvrml::browser&)):
	Pass the id to the base node_class.
	(coordinate_double_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(coordinate_double_class::coordinate_double_class(openvrml::browser&)):
	Pass the id to the base node_class.
	(nurbs_curve_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(nurbs_curve_class::nurbs_curve_class(openvrml::browser &)): Pass
	the id to the base node_class.
	(nurbs_curve2d_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(nurbs_curve2d_class::nurbs_curve2d_class(openvrml::browser &)):
	Pass the id to the base node_class.
	(nurbs_orientation_interpolator_class::id): node_class identifier
	used when registering an instance with the browser and
	constructing the base node_class.
	(nurbs_orientation_interpolator_class::nurbs_orientation_interpolator_class(openvrml::browser&)):
	Pass the id to the base node_class.
	(nurbs_patch_surface_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(nurbs_patch_surface_class::nurbs_patch_surface_class(openvrml::browser&)):
	Pass the id to the base node_class.
	(nurbs_position_interpolator_class::id): node_class identifier
	used when registering an instance with the browser and
	constructing the base node_class.
	(nurbs_position_interpolator_class::nurbs_position_interpolator_class(openvrml::browser&)):
	Pass the id to the base node_class.
	(nurbs_set_class::id): node_class identifier used when registering
	an instance with the browser and constructing the base node_class.
	(nurbs_set_class::nurbs_set_class(openvrml::browser &)): Pass the
	id to the base node_class.
	(nurbs_surface_interpolator_class::id): node_class identifier used
	when registering an instance with the browser and constructing the
	base node_class.
	(nurbs_surface_interpolator_class::nurbs_surface_interpolator_class(openvrml::browser&)):
	Pass the id to the base node_class.
	(nurbs_swept_surface_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(nurbs_swept_surface_class::nurbs_swept_surface_class(openvrml::browser&)):
	Pass the id to the base node_class.
	(nurbs_swung_surface_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(nurbs_swung_surface_class::nurbs_swung_surface_class(openvrml::browser&)):
	Pass the id to the base node_class.
	(nurbs_texture_coordinate_class::id): node_class identifier used
	when registering an instance with the browser and constructing the
	base node_class.
	(nurbs_texture_coordinate_class::nurbs_texture_coordinate_class(openvrml::browser&)):
	Pass the id to the base node_class.
	(nurbs_trimmed_surface_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(nurbs_trimmed_surface_class::nurbs_trimmed_surface_class(openvrml::browser&)):
	Pass the id to the base node_class.
	* src/libopenvrml/openvrml/x3d_rendering.cpp
	(color_rgba_class): Added id member.
	(indexed_triangle_fan_set_class): Added id member.
	(indexed_triangle_set_class): Added id member.
	(indexed_triangle_strip_set_class): Added id member.
	(triangle_fan_set_class): Added id member.
	(triangle_set_class): Added id member.
	(triangle_strip_set_class): Added id member.
	(register_rendering_node_classes(openvrml::browser &)): Add the
	node_classes using the id member of the concrete node_classes.
	(color_rgba_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(color_rgba_class::color_rgba_class(openvrml::browser &)): Pass
	the id to the base node_class.
	(indexed_triangle_fan_set_class::id): node_class identifier used
	when registering an instance with the browser and constructing the
	base node_class.
	(indexed_triangle_fan_set_class::indexed_triangle_fan_set_class(openvrml::browser&)):
	Pass the id to the base node_class.
	(indexed_triangle_set_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(indexed_triangle_set_class::indexed_triangle_set_class(openvrml::browser&)):
	Pass the id to the base node_class.
	(indexed_triangle_strip_set_class::id): node_class identifier used
	when registering an instance with the browser and constructing the
	base node_class.
	(indexed_triangle_strip_set_class::indexed_triangle_strip_set_class(openvrml::browser&)):
	Pass the id to the base node_class.
	(triangle_fan_set_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(triangle_fan_set_class::triangle_fan_set_class(openvrml::browser&)):
	Pass the id to the base node_class.
	(triangle_set_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(triangle_set_class::triangle_set_class(openvrml::browser &)):
	Pass the id to the base node_class.
	(triangle_strip_set_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(triangle_strip_set_class::triangle_strip_set_class(openvrml::browser&)):
	Pass the id to the base node_class.
	* src/libopenvrml/openvrml/x3d_shape.cpp
	(line_properties_class): Added id member.
	(register_shape_node_classes(openvrml::browser &)): Add the
	node_classes using the id member of the concrete node_classes.
	(line_properties_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(line_properties_class::line_properties_class(openvrml::browser&)):
	Pass the id to the base node_class.
	* src/libopenvrml/openvrml/x3d_texturing.cpp
	(multi_texture_class): Added id member.
	(multi_texture_coordinate_class): Added id member.
	(multi_texture_transform_class): Added id member.
	(texture_coordinate_generator_class): Added id member.
	(register_texturing_node_classes(openvrml::browser &)): Add the
	node_classes using the id member of the concrete node_classes.
	(multi_texture_class::id): node_class identifier used when
	registering an instance with the browser and constructing the base
	node_class.
	(multi_texture_class::multi_texture_class(openvrml::browser &)):
	Pass the id to the base node_class.
	(multi_texture_coordinate_class::id): node_class identifier used
	when registering an instance with the browser and constructing the
	base node_class.
	(multi_texture_coordinate_class::multi_texture_coordinate_class(openvrml::browser&)):
	Pass the id to the base node_class.
	(multi_texture_transform_class::id): node_class identifier used
	when registering an instance with the browser and constructing the
	base node_class.
	(multi_texture_transform_class::multi_texture_transform_class(openvrml::browser&)):
	Pass the id to the base node_class.
	(texture_coordinate_generator_class::id): node_class identifier used
	when registering an instance with the browser and constructing the
	base node_class.
	(texture_coordinate_generator_class::texture_coordinate_generator_class(openvrml::browser&)):
	Pass the id to the base node_class.

2006-04-13 Braden McDaniel  <braden@endoframe.com>

	Made openvrml::browser::out() and openvrml::browser::err() const.

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::browser::out(const std::string & str) const): Made
	function const.
	(openvrml::browser::err(const std::string & str) const): Made
	function const.
	* src/libopenvrml/openvrml/browser.h
	(openvrml::browser): Changed out_ and err_ from references to
	pointers; made out() and err() const.

2006-04-12 Braden McDaniel  <braden@endoframe.com>

	Emit an error when a requested component level is not supported.

	* src/libopenvrml/openvrml/X3DVrmlParser.g
	(componentStatement): Catch std::invalid_argument thrown from
	component::add_to_scope.
	* src/libopenvrml/openvrml/browser.cpp
	(component): Added pure virtual function support_level.  Made
	add_to_scope nonvirtual; delegate to pure virtual do_add_to_scope.
	(component::add_to_scope(const openvrml::browser &,
	openvrml::scope &, size_t) const): Check that the requested level
	is supported before delegating to do_add_to_scope.
	(vrml97_component): Override support_level and do_add_to_scope.
	(vrml97_component::do_add_to_scope(const openvrml::browser &,
	openvrml::scope &, size_t) const): Moved
	vrml97_component::add_to_scope to here.
	(x3d_core_component): Override support_level and do_add_to_scope.
	(x3d_core_component::do_add_to_scope(const openvrml::browser &,
	openvrml::scope &, size_t) const): Moved
	x3d_core_component::add_to_scope to here.
	(x3d_time_component): Override support_level and do_add_to_scope.
	(x3d_time_component::do_add_to_scope(const openvrml::browser &,
	openvrml::scope &, size_t) const): Moved
	x3d_time_component::add_to_scope to here.
	(x3d_networking_component): Override support_level and
	do_add_to_scope.
	(x3d_networking_component::do_add_to_scope(const
	openvrml::browser&, openvrml::scope &, size_t) const): Moved
	x3d_networking_component::add_to_scope to here.
	(x3d_grouping_component): Override support_level and
	do_add_to_scope.
	(x3d_grouping_component::do_add_to_scope(const openvrml::browser&,
	openvrml::scope &, size_t) const): Moved
	x3d_grouping_component::add_to_scope to here.
	(x3d_rendering_component): Override support_level and
	do_add_to_scope.
	(x3d_rendering_component::do_add_to_scope(const
	openvrml::browser&, openvrml::scope &, size_t) const): Moved
	x3d_rendering_component::add_to_scope to here.
	(x3d_shape_component): Override support_level and do_add_to_scope.
	(x3d_shape_component::do_add_to_scope(const openvrml::browser &,
	openvrml::scope &, size_t) const): Moved
	x3d_shape_component::add_to_scope to here.
	(x3d_geometry3d_component): Override support_level and
	do_add_to_scope.
	(x3d_geometry3d_component::do_add_to_scope(const
	openvrml::browser&, openvrml::scope &, size_t) const): Moved
	x3d_geometry3d_component::add_to_scope to here.
	(x3d_geometry2d_component): Override support_level and
	do_add_to_scope.
	(x3d_geometry2d_component::do_add_to_scope(const
	openvrml::browser&, openvrml::scope &, size_t) const): Moved
	x3d_geometry2d_component::add_to_scope to here.
	(x3d_text_component): Override support_level and do_add_to_scope.
	(x3d_text_component::do_add_to_scope(const openvrml::browser &,
	openvrml::scope &, size_t) const): Moved
	x3d_text_component::add_to_scope to here.
	(x3d_sound_component): Override support_level and do_add_to_scope.
	(x3d_sound_component::do_add_to_scope(const openvrml::browser &,
	openvrml::scope &, size_t) const): Moved
	x3d_sound_component::add_to_scope to here.
	(x3d_lighting_component): Override support_level and
	do_add_to_scope.
	(x3d_lighting_component::do_add_to_scope(const openvrml::browser&,
	openvrml::scope &, size_t) const): Moved
	x3d_lighting_component::add_to_scope to here.
	(x3d_texturing_component): Override support_level and
	do_add_to_scope.
	(x3d_texturing_component::do_add_to_scope(const
	openvrml::browser&, openvrml::scope &, size_t) const): Moved
	x3d_texturing_component::add_to_scope to here.
	(x3d_interpolation_component): Override support_level and
	do_add_to_scope.
	(x3d_interpolation_component::do_add_to_scope(const
	openvrml::browser &, openvrml::scope &, size_t) const): Moved
	x3d_interpolation_component::add_to_scope to here.
	(x3d_pointing_device_sensor_component): Override support_level and
	do_add_to_scope.
	(x3d_pointing_device_sensor_component::do_add_to_scope(const
	openvrml::browser &, openvrml::scope &, size_t) const): Moved
	x3d_pointing_device_sensor_component::add_to_scope to here.
	(x3d_key_device_sensor_component): Override support_level and
	do_add_to_scope.
	(x3d_key_device_sensor_component::do_add_to_scope(const
	openvrml::browser &, openvrml::scope &, size_t) const): Moved
	x3d_key_device_sensor_component::add_to_scope to here.
	(x3d_environmental_sensor_component): Override support_level and
	do_add_to_scope.
	(x3d_environmental_sensor_component::do_add_to_scope(const
	openvrml::browser &, openvrml::scope &, size_t) const): Moved
	x3d_environmental_sensor_component::add_to_scope to here.
	(x3d_navigation_component): Override support_level and
	do_add_to_scope.
	(x3d_navigation_component::do_add_to_scope(const
	openvrml::browser&, openvrml::scope &, size_t) const): Moved
	x3d_navigation_component::add_to_scope to here.
	(x3d_environmental_effects_component): Override support_level and
	do_add_to_scope.
	(x3d_environmental_effects_component::do_add_to_scope(const
	openvrml::browser &, openvrml::scope &, size_t) const): Moved
	x3d_environmental_effects_component::add_to_scope to here.
	(x3d_geospatial_component): Override support_level and
	do_add_to_scope.
	(x3d_geospatial_component::do_add_to_scope(const
	openvrml::browser&, openvrml::scope &, size_t) const): Moved
	x3d_geospatial_component::add_to_scope to here.
	(x3d_hanim_component): Override support_level and do_add_to_scope.
	(x3d_hanim_component::do_add_to_scope(const openvrml::browser &,
	openvrml::scope &, size_t) const): Moved
	x3d_hanim_component::add_to_scope to here.
	(x3d_nurbs_component): Override support_level and do_add_to_scope.
	(x3d_nurbs_component::do_add_to_scope(const openvrml::browser &,
	openvrml::scope &, size_t) const): Moved
	x3d_nurbs_component::add_to_scope to here.
	(x3d_dis_component): Override support_level and do_add_to_scope.
	(x3d_dis_component::do_add_to_scope(const openvrml::browser &,
	openvrml::scope &, size_t) const): Moved
	x3d_dis_component::add_to_scope to here.
	(x3d_event_utilities_component): Override support_level and
	do_add_to_scope.
	(x3d_event_utilities_component::do_add_to_scope(const
	openvrml::browser &, openvrml::scope &, size_t) const): Moved
	x3d_utilities_component::add_to_scope to here.
	* tests/testsuite.at: Added test to confirm that an error is emitted
	when an unsupported component level is encountered.

2006-04-11 Braden McDaniel  <braden@endoframe.com>

	Added support for constructing X3D Full profile scenes.
	From Andrew Grieve <sgrieve@users.sourceforge.net>

	* src/libopenvrml/Makefile.am
	(openvrml_include_HEADERS): Added x3d_dis.h, x3d_geospatial.h,
	x3d_hanim.h, and x3d_nurbs.h.
	(libopenvrml_la_SOURCES): Added x3d_dis.cpp, x3d_geospatial.cpp,
	x3d_hanim.cpp, and x3d_nurbs.cpp.
	* src/libopenvrml/openvrml/browser.cpp
	(x3d_full_profile): Added class corresponding to the X3D Full
	profile.
	(profile_registry::profile_registry()): Add x3d_full_profile to
	the registry.
	(register_node_classes): Register DIS, Geospatial, H-Anim, and
	NURBS node_classes.
	(x3d_geospatial_component): Added class corresponding to the X3D
	Geospatial component.
	(x3d_geospatial_component::id): Component id.
	(x3d_geospatial_component::add_to_scope(const openvrml::browser &,
	openvrml::scope &, int) const): Added definitions of X3D
	Geospatial nodes.
	(x3d_hanim_component): Added class corresponding to the X3D H-Anim
	component.
	(x3d_hanim_component::id): Component id.
	(x3d_hanim_component::add_to_scope(const openvrml::browser &,
	openvrml::scope &, int) const): Added definitions of X3D H-Anim
	nodes.
	(x3d_nurbs_component): Added class corresponding to the X3D NURBS
	component.
	(x3d_nurbs_component::id): Component id.
	(x3d_nurbs_component::add_to_scope(const openvrml::browser &,
	openvrml::scope &, int) const): Added definitions of X3D NURBS
	nodes.
	(x3d_dis_component): Added class corresponding to the X3D DIS
	component.
	(x3d_dis_component::id): Component id.
	(x3d_dis_component::add_to_scope(const openvrml::browser &,
	openvrml::scope &, int) const): Added definitions of X3D DIS
	nodes.
	(component_registry::component_registry()): Add
	x3d_geospatial_component, x3d_hanim_component,
	x3d_nurbs_component, and x3d_dis_component to the registry.
	(x3d_full_profile::id): Profile id.
	(x3d_full_profile::x3d_full_profile()): Construct the Full
	profile.
	* src/libopenvrml/openvrml/x3d_dis.cpp: Added file;
	DIS component node implementations.
	* src/libopenvrml/openvrml/x3d_dis.h: Added file; expose
	node_class registration function.
	* src/libopenvrml/openvrml/x3d_geospatial.cpp: Added file;
	Geospatial component node implementations.
	* src/libopenvrml/openvrml/x3d_geospatial.h: Added file; expose
	node_class registration function.
	* src/libopenvrml/openvrml/x3d_hanim.cpp: Added file; H-Anim
	component node implementations.
	* src/libopenvrml/openvrml/x3d_hanim.h: Added file; expose
	node_class registration function.
	* src/libopenvrml/openvrml/x3d_nurbs.cpp: Added file; NURBS
	component node implementations.
	* src/libopenvrml/openvrml/x3d_nurbs.h: Added file; expose
	node_class registration function.
	* tests/testsuite.at: Added test of minimal X3D Full world.

2006-04-09 Braden McDaniel  <braden@endoframe.com>

	Fixed linking for test programs.

	* tests/Makefile.am
	(LDADD): Removed.
	(node_interface_set_LDADD): Added libopenvrml.la.
	(node_class_id_LDADD): Added libopenvrml.la.

2006-04-05 Braden McDaniel  <braden@endoframe.com>

	Fixed resolution of relative URIs in Inline nodes to be resolved
	against the URI of the containing scene.

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::scene::load_scene): Removed struct.
	(openvrml::scene::load(const std::vector<std::string> &)): Removed
	function.
	(openvrml::scene::load(resource_istream &)): Call scene_loaded.
	(openvrml::scene::url() const): Return an empty string if
	this->url_ is empty.
	* src/libopenvrml/openvrml/browser.h
	(openvrml::scene): Removed load_scene struct declaration; removed
	load(const std::vector<std::string> &) function.
	* src/libopenvrml/openvrml/vrml97node.cpp
	(inline_node): Added declaration of load_inline_scene struct;
	added a boost::scoped_ptr to the node's scene loading thread.
	(inline_node::~inline_node()): Join the scene loading thread.
	(inline_node::load_inline_scene): Thread function object to load
	the inline scene.
	(inline_node::load()): Load the scene in a new thread.

2006-04-05 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp
	(component::add_scope_entry(const openvrml::browser &, const
	char*, const openvrml::node_interface_set &, const char *,
	openvrml::scope &) const): Removed erroneously committed debugging
	output.

2006-04-05 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp
	(uri::resolve_against(const uri &) const): Fixed use of
	std::ostringstream.

2006-03-29 Braden McDaniel  <braden@endoframe.com>

	Improved placement of some -l flags.

	* src/libopenvrml/Makefile.am
	* tests/Maxkefile.am

2006-03-29 Braden McDaniel  <braden@endoframe.com>

	Applied exception specification macros.

	* src/libopenvrml/openvrml/x3d_geometry2d.cpp

2006-03-28 Braden McDaniel  <braden@endoframe.com>

	Added support for constructing X3D Immersive profile scenes.
	From Andrew Grieve <sgrieve@users.sourceforge.net>

	* src/libopenvrml/Makefile.am
	(openvrml_include_HEADERS): Added openvrml/x3d_networking.h,
	openvrml/x3d_shape.h, and openvrml/x3d_geometry2d.h.
	(libopenvrml_la_SOURCES): Added openvrml/x3d_networking.cpp,
	openvrml/x3d_shape.cpp, and openvrml/x3d_geometry2d.cpp.
	* src/libopenvrml/openvrml/browser.cpp
	(x3d_immersive_profile): Added class corresponding to the X3D
	Immersive profile.
	(profile_registry::profile_registry()): Add the
	x3d_immersive_profile to the registry.
	(register_node_classes(openvrml::browser &)): Register the
	Networking, Shape, and Geometry2D component node implementations.
	(x3d_networking_component::add_to_scope(const openvrml::browser &,
	openvrml::scope &, int) const): Added definitions of level 3
	nodes: LoadSensor.
	(x3d_grouping_component::add_to_scope(const openvrml::browser &,
	openvrml::scope &, int) const): Added definitions of level 2
	nodes (Switch).
	(x3d_shape_component::add_to_scope(const openvrml::browser &,
	openvrml::scope &, int) const): Added definitions of level 2
	nodes: LineProperties.
	(x3d_geometry3d_component::add_to_scope(const openvrml::browser &,
	openvrml::scope &, int) const): Added definitions of level 3 and
	level 4 nodes: ElevationGrid, Extrusion.
	(x3d_geometry2d_component): Added class corresponding to the X3D
	Geometry2D component.
	(x3d_geometry2d_component::id): Component id.
	(x3d_geometry2d_component::add_to_scope(const openvrml::browser &,
	openvrml::scope &, int) const): Added definitions of level 1
	Geometry2D nodes: Polyline2D, Polypoint2D, Rectangle2D,
	TriangleSet2D.
	(x3d_text_component): Added class corresponding to the X3D Text
	component.
	(x3d_text_component::id): Component id.
	(x3d_text_component::add_to_scope(const openvrml::browser &,
	openvrml::scope &, int) const): Added definitions of level 1 Text
	nodes: FontStyle, Text.
	(x3d_sound_component): Added class corresponding to the X3D Sound
	component.
	(x3d_sound_component::id): Component id.
	(x3d_sound_component::add_to_scope(const openvrml::browser &,
	openvrml::scope &, int) const): Added definitions of level 1 Sound
	nodes: AudioClip, Sound.
	(x3d_texturing_component::add_to_scope(const openvrml::browser &,
	openvrml::scope &, int) const): Added definitions of level 3
	Texturing nodes: MovieTexture.
	(x3d_key_device_sensor_component::add_to_scope(const
	openvrml::browser &, openvrml::scope &, int) const): Added
	definitions of level 2 KeyDeviceSensor nodes: StringSensor.
	(x3d_environmental_sensor_component::add_to_scope(const
	openvrml::browser &, openvrml::scope &, int) const): Added
	definitions of level 2 EnvironmentalSensor nodes: VisbilitySensor.
	(x3d_navigation_component::add_to_scope(const openvrml::browser &,
	openvrml::scope &, int) const): Added definitions of level 2
	Navigation nodes: Billboard, Collision, LOD.
	(x3d_environmental_effects_component::add_to_scope(const
	openvrml::browser &, openvrml::scope &, int) const): Added
	definitions of level 2 EnvironmentalEffects nodes: Fog.
	(component_registry::component_registry()): Add
	x3d_geometry2d_component, x3d_text_component, and
	x3d_sound_component to the registry.
	(x3d_immersive_profile::id): Profile id.
	(x3d_immersive_profile::x3d_immersive_profile()): Add components
	for the X3D Immersive profile.
	* src/libopenvrml/openvrml/x3d_geometry2d.cpp: Added file;
	Geometry2D component level 1 node implementations.
	* src/libopenvrml/openvrml/x3d_geometry2d.h: Added file; expose
	node_class registration function.
	* src/libopenvrml/openvrml/x3d_key_device_sensor.cpp: Added
	StringSensor node implementation.
	* src/libopenvrml/openvrml/x3d_networking.cpp: Added file;
	Networking component level 2 node implementations.
	* src/libopenvrml/openvrml/x3d_networking.h: Added file; expose
	node_class registration function.
	* src/libopenvrml/openvrml/x3d_shape.cpp: Added file; Shape
	component level 2 node implementations.
	* src/libopenvrml/openvrml/x3d_shape.h: Added file; expose
	node_class registration function.
	* tests/testsuite.at: Added test of minimal X3D Immersive world.

2006-03-27 Braden McDaniel  <braden@endoframe.com>

	Added support for constructing X3D MPEG-4 Interactive profile
	scenes.  From Andrew Grieve <sgrieve@users.sourceforge.net>

	* src/libopenvrml/openvrml/browser.cpp
	(x3d_mpeg4_profile): Added class corresponding to the X3D MPEG-4
	Interactive profile.
	(profile_registry::profile_registry()): Add the x3d_mpeg4_profile
	to the registry.
	(x3d_networking_component): Added class corresponding to the X3D
	Networking component.
	(x3d_networking_component::id): Component id.
	(x3d_networking_component::add_to_scope(const openvrml::browser &,
	openvrml::scope &, int) const): Add the node_types defined for the
	level 2 of the Networking component to the scope.
	(component_registry::component_registry()): Add the
	x3d_networking_component to the registry.
	(x3d_mpeg4_profile::id): Profile id.
	(x3d_mpeg4_profile::x3d_mpeg4_profile()): Add components for the
	MPEG-4 Interactive profile.
	* tests/testsuite.at: Added test of minimal X3D MPEG-4 Interactive
	world.

2006-03-26 Braden McDaniel  <braden@endoframe.com>

	Applied exception specification macros.

	* src/libopenvrml/openvrml/x3d_event_utilities.cpp
	* src/libopenvrml/openvrml/x3d_key_device_sensor.cpp

2006-03-26 Braden McDaniel  <braden@endoframe.com>

	Added support for constructing X3D Interactive profile scenes.
	From Andrew Grieve <sgrieve@users.sourceforge.net>

	* src/libopenvrml/Makefile.am
	(openvrml_include_HEADERS): Added openvrml/x3d_key_device_sensor.h
	and openvrml/x3d_event_utilities.h.
	(libopenvrml_la_SOURCES): Added openvrml/x3d_key_device_sensor.cpp
	and openvrml/x3d_event_utilities.cpp.
	* src/libopenvrml/openvrml/browser.cpp
	(x3d_interactive_profile): Added class corresponding to the X3D
	Interactive profile.
	(profile_registry::profile_registry()): Add the
	x3d_interactive_profile to the registry.
	(register_node_classes(openvrml::browser &)): Register the
	KeyDeviceSensor and EventUtilities component node implementations.
	(x3d_pointing_device_sensor_component): Added class corresponding
	to the X3D PointingDeviceSensor component.
	(x3d_pointing_device_sensor_component::id): Component id.
	(x3d_pointing_device_sensor_component::add_to_scope(const
	openvrml::browser &, openvrml::scope &, int) const): Add the
	node_types defined for the PointingDeviceSensor component to the
	scope.
	(x3d_key_device_sensor_component): Added class corresponding to
	the X3D KeyDeviceSensor component.
	(x3d_key_device_sensor_component::id): Component id.
	(x3d_key_device_sensor_component::add_to_scope(const
	openvrml::browser &, openvrml::scope &, int) const): Add the
	node_types defined for the KeyDeviceSensor component to the scope.
	(x3d_environmental_sensor_component): Added class corresponding to
	the X3D EnvironmentalSensor component.
	(x3d_environmental_sensor_component::id): Component id.
	(x3d_environmental_sensor_component::add_to_scope(const
	openvrml::browser &, openvrml::scope &, int) const): Add the
	node_types defined for the EnvironmentalSensor component to the
	scope.
	(x3d_event_utilities_component): Added class corresponding to the
	X3D EventUtilities component.
	(x3d_event_utilities_component::id): Component id.
	(x3d_event_utilities_component::add_to_scope(const
	openvrml::browser &, openvrml::scope &, int) const): Add the
	node_types defined for the EventUtilities component to the scope.
	(component_registry::component_registry()): Register
	x3d_pointing_device_sensor_component,
	x3d_key_device_sensor_component,
	x3d_environmental_sensor_component, and
	x3d_event_utilities_component.
	(x3d_interactive_profile::id): Profile id.
	(x3d_interactive_profile::x3d_interactive_profile()): Add
	components for the Interactive profile.
	* src/libopenvrml/openvrml/x3d_event_utilities.cpp: Added file;
	implementations of X3D EventUtilities component level 1 nodes.
	* src/libopenvrml/openvrml/x3d_event_utilities.h: Added file;
	expose node_class registration function.
	* src/libopenvrml/openvrml/x3d_key_device_sensor.cpp: Added file;
	implementations of X3D KeyDeviceSensor component level 1 nodes.
	* src/libopenvrml/openvrml/x3d_key_device_sensor.h: Added file;
	expose node_class registration function.
	* tests/testsuite.at: Added test of minimal X3D Interactive world.

2006-03-24 Braden McDaniel  <braden@endoframe.com>

	Added ColorRGBA node to level 1 of the X3D Rendering component.

	* src/libopenvrml/openvrml/browser.cpp
	(x3d_rendering_component::add_to_scope(const openvrml::browser &,
	openvrml::scope &, int) const): Add the ColorRGBA node to level 1.
	* src/libopenvrml/openvrml/x3d_rendering.cpp
	(color_rgba_class): Added ColorRGBA node_class.

2006-03-22 Braden McDaniel  <braden@endoframe.com>

	Fixes for gcc 4.1.

	* src/libopenvrml/openvrml/browser.cpp
	(profile_registry): Eliminated use of private type "base_type".
	(component_registry): Eliminated use of private type "base_type".

2006-03-19 Braden McDaniel  <braden@endoframe.com>

	Added support for constructing X3D Interchange profile scenes.
	From Andrew Grieve <sgrieve@users.sourceforge.net>

	* src/libopenvrml/Makefile.am
	(openvrml_include_HEADERS): Added openvrml/x3d_rendering.h and
	openvrml/x3d_texturing.h.
	(libopenvrml_la_SOURCES): Added openvrml/x3d_rendering.cpp and
	openvrml/x3d_texturing.cpp.
	* src/libopenvrml/openvrml/browser.cpp
	(x3d_interchange_profile): Added class to correspond to the X3D
	Interchange profile.
	(profile_registry::profile_registry()): Add
	x3d_interchange_profile to the registry.
	(register_node_classes(openvrml::browser &)): Register
	X3D-specific rendering and texturing node_classes.
	(x3d_time_component): Added class to correspond to the X3D Time
	component.
	(x3d_time_component::id): Component identifier.
	(x3d_time_component::add_to_scope(const openvrml::browser &,
	openvrml::scope &, int) const): Add the node_types defined for the
	Time component to the scope.
	(x3d_grouping_component): Added class to correspond to the X3D
	Grouping component.
	(x3d_grouping_component::id): Component identifier.
	(x3d_grouping_component::add_to_scope(const openvrml::browser &,
	openvrml::scope &, int) const): Add the node_types defined for the
	Grouping component to the scope.
	(x3d_rendering_component): Added class to correspond to the X3D
	Rendering component.
	(x3d_rendering_component::id): Component identifier.
	(x3d_rendering_component::add_to_scope(const openvrml::browser &,
	openvrml::scope &, int) const): Add the node_types defined for the
	Rendering component to the scope.
	(x3d_shape_component): Added class to correspond to the X3D Shape
	component.
	(x3d_shape_component::id): Component identifier.
	(x3d_shape_component::add_to_scope(const openvrml::browser &,
	openvrml::scope &, int) const): Add the node_types defined for the
	Shape component to the scope.
	(x3d_geometry3d_component): Added class to correspond to the X3D
	Geometry3D component.
	(x3d_geometry3d_component::id): Component identifier.
	(x3d_geometry3d_component::add_to_scope(const openvrml::browser &,
	openvrml::scope &, int) const): Add the node_types defined for the
	Geometry3D component to the scope.
	(x3d_lighting_component): Added class to correspond to the X3D
	Lighting component.
	(x3d_lighting_component::id): Component identifier.
	(x3d_lighting_component::add_to_scope(const openvrml::browser &,
	openvrml::scope &, int) const): Add the node_types defined for the
	Lighting component to the scope.
	(x3d_texturing_component): Added class to correspond to the X3D
	Texturing component.
	(x3d_texturing_component::id): Component identifier.
	(x3d_texturing_component::add_to_scope(const openvrml::browser &,
	openvrml::scope &, int) const): Add the node_types defined for the
	Texturing component to the scope.
	(x3d_interpolation_component): Added class to correspond to the
	X3D Interpolation component.
	(x3d_interpolation_component::id): Component identifier.
	(x3d_interpolation_component::add_to_scope(const openvrml::browser
	&, openvrml::scope &, int) const): Add the node_types defined for
	the Interpolation component to the scope.
	(x3d_navigation_component): Added class to correspond to the X3D
	Navigation component.
	(x3d_navigation_component::id): Component identifier.
	(x3d_navigation_component::add_to_scope(const openvrml::browser &,
	openvrml::scope &, int) const): Add the node_types defined for the
	Navigation component to the scope.
	(x3d_environmental_effects_component): Added class to correspond
	to the X3D EnvironmentalEffects component.
	(x3d_environmental_effects_component::id): Component identifier.
	(x3d_environmental_effects_component::add_to_scope(const
	openvrml::browser &, openvrml::scope &, int) const): Add the
	node_types defined for the EnvironmentalEffects component to the
	scope.
	(component_registry::component_registry()): Add to the registry:
	x3d_time_component, x3d_grouping_component,
	x3d_rendering_component, x3d_shape_component,
	x3d_geometry3d_component, x3d_lighting_component,
	x3d_texturing_component, x3d_interpolation_component,
	x3d_navigation_component, x3d_environmental_effects_component.
	(x3d_interchange_profile::id): Profile identifier.
	(x3d_interchange_profile::x3d_interchange_profile()): Add
	components to profile definition.
	* src/libopenvrml/openvrml/x3d_rendering.cpp: Added file;
	implementations of Rendering component level 1, 2, and 3 nodes
	that are not also VRML97 nodes.
	* src/libopenvrml/openvrml/x3d_rendering.h: Added file; expose
	node class registration function.
	* src/libopenvrml/openvrml/x3d_texturing.cpp: Added file;
	implementations of Texturing component level 1 and 2 nodes that
	are not also VRML97 nodes.
	* src/libopenvrml/openvrml/x3d_texturing.h: Added file; expose
	node class registration function.
	* tests/testsuite.at: Added test of minimal X3D Interchange world.

2006-03-19 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/X3DVrmlParser.g
	(vrmlScene): Construct antlr::SemanticException to include file
	name, line, and column information.
	(componentStatement): Construct antlr::SemanticException to
	include file name, line, and column information.

2006-03-18 Braden McDaniel  <braden@endoframe.com>

	Added component support to the parser.  Modified patch from Andrew
	Grieve <sgrieve@users.sourceforge.net>

	* src/libopenvrml/openvrml/X3DVrmlParser.g
	(vrmlScene): Pass the browser and scope to componentStatement.
	(profileStatement): Disable the defaultErrorHandler.
	(componentStatement): Disable the defaultErrorHandler; added
	semantic action to add the node types in the component to the root
	scope.
	* src/libopenvrml/openvrml/browser.cpp: Moved definition of
	component_registry_ to be before the parsers are included.
	* tests/testsuite.at: Added basic test for parsing X3D COMPONENT
	statements.

2006-03-18 Braden McDaniel  <braden@endoframe.com>

	Centralize node_class registration.

	* src/libopenvrml/openvrml/browser.cpp
	(register_node_classes(openvrml::browser &)): Added function;
	register node_classes.
	* src/libopenvrml/openvrml/vrml97node.cpp
	(register_vrml97_node_classes(openvrml::browser &)): Renamed
	function from register_node_classes.
	* src/libopenvrml/openvrml/vrml97node.h
	(register_vrml97_node_classes(openvrml::browser &)): Renamed
	function from register_node_classes.

2006-03-18 Braden McDaniel  <braden@endoframe.com>

	Handle the case where openvrml::browser::get_resource returns a null
	pointer.
	From Andrew Grieve <sgrieve@users.sourceforge.net>

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::scene::get_resource(const std::vector<std::string> &)
	const): Throw openvrml::unreachable_url if
	openvrml::browser::get_resource returns a null pointer.

2006-03-17 Braden McDaniel  <braden@endoframe.com>

	Added support for X3D Core profile.  Substantially modified patch
	from Andrew Grieve <sgrieve@users.sourceforge.net>

	* src/libopenvrml/Makefile.am
	(openvrml_include_HEADERS): Added x3d_core.h.
	(libopenvrml_la_SOURCES): Added x3d_core.cpp.
	* src/libopenvrml/openvrml/Vrml97Parser.g
	(vrmlScene): Changed to use profile_registry.
	* src/libopenvrml/openvrml/X3DVrmlParser.g
	(vrmlScene): Construct the root scope based on the profile.
	(profileStatement): Return the profile id.
	* src/libopenvrml/openvrml/browser.cpp
	(create_root_scope(const openvrml::browser &, const
	std::string&)): Removed function; moved logic to
	profile::create_root_scope and vrml97_component::add_to_scope..
	(profile): Added class to represent an X3D profile.
	(vrml97_profile): Added class; a profile that corresponds to the
	set of nodes available in VRML97.
	(x3d_core_profile): Added class; corresponds to the X3D Core
	profile.
	(component): Added class to represent an X3D component.
	(profile_registry_): A registry of profiles supported by OpenVRML.
	(profile_registry::profile_registry()): Add the recognized
	profiles to the map.
	(component::~component()): Added destructor.
	(component::add_scope_entry(const openvrml::browser &, const
	char*, const openvrml::node_interface_set &, const char *,
	openvrml::scope &) const): Added function; add a node_type to a
	scope.
	(openvrml::browser::browser(std::ostream &, std::ostream &)):
	Register the X3D Core component node implementations.
	(vrml97_component): Added class; a component that corresponds to
	the set of nodes available in VRML97.
	(vrml97_component::add_to_scope(const openvrml::browser &,
	openvrml::scope &, int) const): Add the node_types in the
	component to a scope.
	(x3d_core_component): Added class; corresponds to the X3D Core
	component.
	(x3d_core_component::add_to_scope(const openvrml::browser &,
	openvrml::scope &, int) const): Add the node_types in the
	component to a scope.
	(component_registry_): A registry of components supported by
	OpenVRML.
	* src/libopenvrml/openvrml/x3d_core.cpp: Added file; X3D Core
	component node implementations.
	* src/libopenvrml/openvrml/x3d_core.h: Added file; register the
	X3D Core component node implementations.

2006-03-13 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/Vrml97Parser.g
	(Vrml97Scanner::nextToken()): Use ostream::put and
	char_traits<T>::to_char_type to prevent chars from being treated
	as ints.

2006-03-12 Braden McDaniel  <braden@endoframe.com>

	Shut down the existing nodes before replacing them in the
	openvrml::scene::nodes mutator.

	* src/libopenvrml/openvrml/browser.h
	(openvrml::scene): Changed node mutator to throw
	std::invalid_argument if the argument nodes are already
	initialized.
	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::scene::nodes(const
	std::vector<boost::intrusive_ptr<node> > &)): Throw
	std::invalid_argument if any of the nodes in the argument vector
	is already initialized; call shutdown for the existing nodes
	before replacing them.

2006-03-12 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::scene::initialize(double)): "Fail" silently if a scene
	root node is not a child node.  This is consistent with the
	existing policy in OpenVRML: nodes that aren't the proper type
	simply don't get rendered.

2006-03-12 Braden McDaniel  <braden@endoframe.com>

	Allow access to the root scene.

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::browser::root_scene() const): Added function: access
	the root scene.
	(openvrml::browser::root_nodes() const): Removed function.
	(openvrml::browser::root_scope() const): Removed function.
	* src/libopenvrml/openvrml/browser.h
	(openvrml::browser): Removed root_nodes and root_scope accessors;
	added root_scene accessor.

2006-03-12 Braden McDaniel  <braden@endoframe.com>

	Store scene metadata (in X3D scenes).

	* src/libopenvrml/openvrml/Vrml97Parser.g
	(vrmlScene): Added meta_data out-parameter; unused here, but
	needed for X3DVrmlParser.
	* src/libopenvrml/openvrml/X3DVrmlParser.g
	(vrmlScene): Added meta_data out-parameter, passed to metaStatement.
	(metaStatement): Put meta data into the meta_data map.
	* src/libopenvrml/openvrml/browser.cpp
	(parse_vrml(std::istream &, const std::string &, const
	std::string&, const openvrml::scene &,
	std::vector<boost::intrusive_ptr<openvrml::node> > &,
	std::map<std::string, std::string &)): Added meta out-parameter
	for scene metadata.
	(externproto_node_class::load_proto::operator()() const): Pass a
	dummy metadata map to parse_vrml.
	(openvrml::browser::create_vrml_from_stream(std::istream &, const
	std::string &)): Pass a dummy metadata map to parse_vrml.
	(openvrml::scene::load(resource_istream &)): Pass the scene
	metadata map to parse_vrml.
	(openvrml::scene::meta(const std::string &) const): Added
	function: metadata accessor.
	(openvrml::scene::meta(const std::string &, const std::string &)):
	Added function: metadata mutator.
	(openvrml::scene::meta_keys() const): Added function: get a vector
	of the metadata keys.
	* src/libopenvrml/openvrml/browser.h
	(openvrml::scene): Added meta_ member to store scene metadata and
	meta_mutex_ to protect it; added meta accessor and mutator
	functions to add entries to the map and retrieve them; added
	meta_keys member function to get a vector of the keys in the map.

2006-03-09 Braden McDaniel  <braden@endoframe.com>

	Changed signature of parsing functions to take a const
	openvrml::scene.

	* src/libopenvrml/openvrml/Vrml97Parser.g
	(vrmlScene): Changed to take a const openvrml::scene reference.
	(statement): Changed to take a const openvrml::scene reference.
	(nodeStatement): Changed to take a const openvrml::scene
	reference.
	(protoStatement): Changed to take a const openvrml::scene
	reference.
	(proto): Changed to take a const openvrml::scene reference.
	(protoInterfaceDeclaration): Changed to take a const
	openvrml::scene reference.
	(protoBody): Changed to take a const openvrml::scene reference.
	(protoBodyStatement): Changed to take a const openvrml::scene
	reference.
	(protoNodeStatement): Changed to take a const openvrml::scene
	reference.
	(externproto): Changed to take a const openvrml::scene reference.
	(node): Changed to take a const openvrml::scene reference.
	(nodeBodyElement): Changed to take a const openvrml::scene
	reference.
	(scriptInterfaceDeclaration): Changed to take a const
	openvrml::scene reference.
	(scriptFieldInterfaceDeclaration): Changed to take a const
	openvrml::scene reference.
	(protoNode): Changed to take a const openvrml::scene reference.
	(protoNodeBodyElement): Changed to take a const openvrml::scene
	reference.
	(protoScriptInterfaceDeclaration): Changed to take a const
	openvrml::scene reference.
	(protoScriptFieldInterfaceDeclaration): Changed to take a const
	openvrml::scene reference.
	(fieldValue): Changed to take a const openvrml::scene reference.
	(protoFieldValue): Changed to take a const openvrml::scene
	reference.
	(nodeFieldValue): Changed to take a const openvrml::scene
	reference.
	(protoNodeFieldValue): Changed to take a const openvrml::scene
	reference.
	(sfNodeValue): Changed to take a const openvrml::scene reference.
	(protoSfNodeValue): Changed to take a const openvrml::scene
	reference.
	(mfNodeValue): Changed to take a const openvrml::scene reference.
	(protoMfNodeValue): Changed to take a const openvrml::scene
	reference.
	* src/libopenvrml/openvrml/X3DVrmlParser.g
	(vrmlScene): Changed to take a const openvrml::scene reference.
	(statement): Changed to take a const openvrml::scene reference.
	* src/libopenvrml/openvrml/browser.cpp
	(parse_vrml(std::istream &, const std::string &, const
	std::string&, const openvrml::scene &,
	std::vector<boost::intrusive_ptr<openvrml::node> > &)): Changed to
	take a const openvrml::scene reference.
	(externproto_node_class::load_proto::load_proto(externproto_node_class&,
	const openvrml::scene &, const std::vector<std::string> &)):
	Changed to take a const openvrml::scene reference.
	(externproto_node_class(const openvrml::scene &, const
	std::vector<std::string> &)): Changed to take a const
	openvrml::scene reference.

2006-03-09 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/Vrml97Parser.g
	(Vrml97Scanner::nextToken()): Use std::ostringstream to compose
	the token_string rather than appending to a std::string.

2006-03-08 Braden McDaniel  <braden@endoframe.com>

	Protect output and error streams associated with openvrml::browser
	with mutexes.

	* src/libopenvrml/openvrml/browser.cpp
	(externproto_node_class::load_proto::operator()() const): Changed
	to use browser::err function.
	(openvrml::browser::browser(std::ostream &, std::ostream &)):
	Initialize private out_ and err_ references.
	(openvrml::browser::root_scene_loader::operator()() const):
	Changed to use browser::err function.
	(openvrml::browser::description(const std::string &)): Changed to
	use browser::err function.
	(openvrml::browser::vrml_from_url_creator::operator()() const):
	Changed to use browser::err function.
	(openvrml::browser::out(const std::string &)): Added function.
	(openvrml::browser::err(const std::string &)): Added function.
	(openvrml::scene::load_scene::operator()() const): Changed to use
	browser::err function.
	(openvrml::scene::get_resource(const std::vector<std::string> &)
	const): Changed to use browser::err function.
	* src/libopenvrml/openvrml/browser.h
	(openvrml::browser): Made output and error members private; added
	mutexes to protect them; added member functions to send output to
	the streams.
	* src/libopenvrml/openvrml/script.cpp
	(js_::errorReporter(JSContext *, const char *, JSErrorReport *)):
	Changed to use openvrml::browser::err function.
	* src/libopenvrml/openvrml/vrml97node.cpp
	(text_class::text_class(openvrml::browser &)): Changed to use
	openvrml::browser::err function.
	(text_class::~text_class()): Changed to use openvrml::browser::err
	function.

2006-03-08 Braden McDaniel  <braden@endoframe.com>

	Added DLL build configurations to the Visual C++ 7.1 project
	files.

	* ide-projects/Windows/VisualC7_1/OpenVRML/OpenVRML.sln
	* ide-projects/Windows/VisualC7_1/OpenVRML/antlr/antlr.vcproj
	* ide-projects/Windows/VisualC7_1/OpenVRML/openvrml/openvrml.vcproj
	* ide-projects/Windows/VisualC7_1/OpenVRML/openvrml-gl/openvrml-gl.vcproj
	* ide-projects/Windows/VisualC7_1/OpenVRML/sdl-viewer/sdl-viewer.vcproj
	* ide-projects/Windows/VisualC7_1/OpenVRML/test-openvrml/test-openvrml.vcproj

2006-03-08 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/node.h
	(openvrml::node_cast<To>(node *)): Removed OPENVRML_API macro.
	Microsoft cl 13.10.3077 doesn't like this in conjunction with
	inline.

2006-03-07 Braden McDaniel  <braden@endoframe.com>

	Fixed to compile with Microsoft cl 13.10.3077.

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::browser::current_time()): Only use _ftime_s with cl
	14.0 and later.
	(parse_vrml(std::istream &, const std::string &, const
	std::string&, openvrml::scene,
	std::vector<boost::intrusive_ptr<openvrml::node> > &)): Removed
	unnecessary use of function try block; cl 13.10.3077 doesn't like
	it.

2006-03-07 Braden McDaniel  <braden@endoframe.com>

	Added openvrml::color_rgba_node abstract node type.

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::proto_node): Added member function to_color_rgba.
	(openvrml::externproto_node): Added member function to_color_rgba.
	* src/libopenvrml/openvrml/node.cpp
	(openvrml::node::to_color_rgba()): Added member function.
	(openvrml::color_rgba_node::color_rgba_node(const node_type &,
	const boost::shared_ptr<scope> &)): Added constructor.
	(openvrml::color_rgba_node::~color_rgba_node()): Added destructor.
	(openvrml::color_rgba_node::to_color_rgba()): Added member
	function.
	* src/libopenvrml/openvrml/node.h
	(openvrml::node): Granted friendship to
	node_cast<color_rgba_node*> specialization; added to_color_rgba
	virtual member function.
	(openvrml::node_cast<color_rgba_node *>(node *)): Added
	specialization.
	(openvrml::color_rgba_node): Added abstract node class.

2006-03-06 Braden McDaniel  <braden@endoframe.com>

	Identify model/vrml, model/x3d+vrml, image/png, and image/jpeg
	based on the file name extension in test_browser.

	* tests/browser.cpp (create_vrml_from_url()): Use a
	boost::condition::timed_wait so that the test times out on failure
	rather than hanging.
	* tests/test_browser.cpp (test_browser::do_get_resource(const
	std::string &)::file_resource_istream::file_resource_istream(const
	std::string &)): Set the failbit if opening the file fails.
	(test_browser::do_get_resource(const
	std::string&)::file_resource_istream::do_type() const): Identify
	model/vrml, model/x3d+vrml, image/png, and image/jpeg based on the
	file name extension.

2006-03-06 Braden McDaniel  <braden@endoframe.com>

	* examples/sdl_viewer.cpp
	(browser::do_get_resource(const
	std::string&)::file_resource_istream::do_type() const): Apply
	"model/x3d+vrml" to files with the "x3dv" extension.

2006-03-06 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::browser::vrml_from_url_creator::operator()() const):
	Pass the stream type to browser::create_from_from_stream.

2006-03-06 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp: Removed obsolete
	doc-comments.

2006-03-06 Braden McDaniel  <braden@endoframe.com>

	Consolidate logic for picking a parser.

	* src/libopenvrml/openvrml/browser.cpp
	(parse_vrml(std::istream &, const std::string &, const
	std::string&, openvrml::scene,
	std::vector<boost::intrusive_ptr<openvrml::node> > &)): Added
	function; this consolidates the logic for picking the VRML97 or
	X3D-VRML parser.
	(externproto_node_class::load_proto::operator()() const): Delegate
	to parse_vrml.
	(openvrml::browser::create_vrml_from_stream(std::istream &, const
	std::string &)): Delegate to parse_vrml.
	(openvrml::scene::load(resource_istream &)): Delegate to
	parse_vrml.

2006-03-06 Braden McDaniel  <braden@endoframe.com>

	Expose constants for the VRML and X3D VRML MIME media types.

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::vrml_media_type): Added definition.
	(openvrml::x_vrml_media_type): Added definition.
	(openvrml::x3d_vrml_media_type): Added definition.
	(externproto_node_class::load_proto::operator()() const): Use
	vrml_media_type, x_vrml_media_type, and x3d_vrml_media_type
	instead of string literals.
	(openvrml::browser::create_vrml_from_stream(std::istream &, const
	std::string &)): Use vrml_media_type, x_vrml_media_type, and
	x3d_vrml_media_type instead of string literals.
	(openvrml::scene::load(resource_istream &)): Use vrml_media_type,
	x_vrml_media_type, and x3d_vrml_media_type instead of string
	literals.
	* src/libopenvrml/openvrml/browser.h
	(openvrml::vrml_media_type): Added declaration.
	(openvrml::x_vrml_media_type): Added declaration.
	(openvrml::x3d_vrml_media_type): Added declaration.
	* tests/parse_vrml97.cpp: Use openvrml::vrml_media_type.
	* tests/parse_x3dvrml.cpp: Use openvrml::x3d_vrml_media_type.

2006-03-05 Braden McDaniel  <braden@endoframe.com>

	* doc/Doxyfile: Set EXAMPLE_PATH.

2006-03-05 Braden McDaniel  <braden@endoframe.com>

	* doc/doxygen-header: Improved appearance of tables.

2006-03-05 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/field_value.cpp: Doc-comment
	improvements.

2006-03-05 Braden McDaniel  <braden@endoframe.com>

	Moved definitions of FieldValue::field_value_type_id to
	field_value.h.

	* src/libopenvrml/openvrml/field_value.cpp
	* src/libopenvrml/openvrml/field_value.h

2006-03-05 Braden McDaniel  <braden@endoframe.com>

	Fixed to avoid scanner assertion when parsing X3D VRML.

	* src/libopenvrml/openvrml/Vrml97Parser.g
	(Vrml97Scanner::nextToken()): Only set the token type to ID after
	other alternatives have been exhausted.
	* tests/Makefile.am
	(check_PROGRAMS): Removed "parse"; added "parse-vrml97" and
	"parse-x3dvrml".
	(parse_SOURCES): Removed.
	(parse_LDADD): Removed.
	(parse_vrml97_SOURCES): Added.
	(parse_vrml97_LDADD): Added.
	(parse_x3dvrml_SOURCES): Added.
	(parse_x3dvrml_LDADD): Added.
	* tests/parse.cpp: Removed file.  Replaced by parse_vrml97.cpp.
	* tests/parse_vrml97.cpp: Added file.  VRML97 parser driver for
	the test suite.
	* tests/parse_x3dvrml.cpp: Added file.  X3D VRML parser driver for
	the test suite.
	* tests/testsuite.at: Changed references to "parse" executable to
	"parse-vrml97".  Added minimal X3D VRML world test.

2006-03-04 Braden McDaniel  <braden@endoframe.com>

	Fixed deadlock when
	externproto_node_class::clear_externproto_node_types is called
	during a call to externproto_node_type::do_create_node.

	* src/libopenvrml/openvrml/browser.cpp
	(externproto_node_class): Granted friendship to
	externproto_node_type; removed externproto_node_types_cleared
	accessor; override node_class::do_shutdown.
	(externproto_node_class::~externproto_node_class()): Moved join to
	load_proto_thread to externproto_node_class::do_shutdown.
	(externproto_node_class::externproto_node_types_cleared() const):
	Lock externproto_node_types_cleared_mutex_.
	(externproto_node_class::do_shutdown(double)): Join
	load_proto_thread_.
	(externproto_node_type::do_create_node(const
	boost::shared_ptr<openvrml::scope> &, const
	openvrml::initial_value_map &) const): Lock
	externproto_node_class::mutex_ to avoid a race condition when
	externproto_node_class::clear_externproto_node_types is called.
	(shutdown_node_class): Added function object; used by
	openvrml::browser::node_class_map::shutdown.
	(openvrml::browser::node_class_map::shutdown(double)): Added
	function; shut down the node classes.
	(openvrml::browser::~browser()): Call node_class_map::shutdown.
	(openvrml::browser::set_world(resource_istream &)): Call
	node_class_map::shutdown.
	* src/libopenvrml/openvrml/browser.h
	(openvrml::browser::node_class_map): Added shutdown member
	function to call node_class::shutdown on the contained
	node_classes.
	* src/libopenvrml/openvrml/node.cpp
	(openvrml::node_class::shutdown(double)): Added function; call
	node_class::do_shutdown.
	(openvrml::node_class::do_shutdown(double)): Added function;
	default implementation does nothing.
	* src/libopenvrml/openvrml/node.h
	(openvrml::node_class): Added member function shutdown and virtual
	member function do_shutdown.

2006-02-28 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/Vrml97Parser.g
	(Vrml97Scanner::nextToken()): Backed out 2-27 change to defer
	setting the token type to ID.  It's not clear that this change is
	correct, and it's complicating debugging other issues.

2006-02-27 Braden McDaniel  <braden@endoframe.com>

	Updated test programs to account for removal of
	openvrml::profile_id.

	* tests/browser.cpp
	* tests/parse.cpp
	* tests/parse_anchor.cpp
	* tests/test_browser.cpp
	* tests/test_browser.h

2006-02-27 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/Vrml97Parser.g
	(Vrml97Scanner::nextToken()): Defer setting the token type to ID
	until there are no other possibilities.

2006-02-26 Braden McDaniel  <braden@endoframe.com>

	Changed openvrml::scope's parent pointer to point to a const
	scope.

	* src/libopenvrml/openvrml/Vrml97Parser.g
	(proto): Changed impl_id creation code to use a
	boost::shared_ptr<const openvrml::scope>.
	(protoInterfaceDeclaration): Changed to take a
	boost::shared_ptr<const openvrml::scope>.
	* src/libopenvrml/openvrml/scope.cpp
	(openvrml::scope::scope(const std::string &, const
	boost::shared_ptr<const scope> &)): Changed to take a
	boost::shared_ptr<const openvrml::scope> as the parent pointer.
	(openvrml::scope::parent() const): Changed to return a
	boost::shared_ptr<const openvrml::scope> &.
	* src/libopenvrml/openvrml/scope.h
	(openvrml::scope): Changed parent_ member to be a
	boost::shared_ptr<const openvrml::scope>.

2006-02-26 Braden McDaniel  <braden@endoframe.com>

	Parse X3D IMPORT and EXPORT statements.  We don't actually do
	anything with them yet.
	From Andrew Grieve <sgrieve@users.sourceforge.net>

	* src/libopenvrml/openvrml/X3DVrmlParser.g
	(statement): Override statement production from Vrml97Parser to
	parse importStatement and exportStatement alternatives.
	(importStatement): Added production to parse IMPORT statements.
	(exportStatement): Added production to parse EXPORT statements.

2006-02-26 Braden McDaniel  <braden@endoframe.com>

	Treat colon (':') as an invalid identifier character in the X3D
	VRML format.  The X3D Classic VRML encoding specification doesn't
	list colon as an invalid character in an identifier; however, in
	light of the fact that colon is used as a terminal symbol
	following an identifier in this format, this must be an error in
	the specification.

	* src/libopenvrml/openvrml/X3DVrmlParser.g
	(X3DVrmlScanner): Override isValidIdRestChars to identify colon
	(':') as an invalid character in an identifier.

2006-02-26 Braden McDaniel  <braden@endoframe.com>

	Made character identification functions used by the scanner
	protected virtual member functions of Vrml97Scanner so that they
	can be overridden by subclasses (specifically X3DVrmlScanner).

	* src/libopenvrml/openvrml/Vrml97Parser.g
	(Vrml97Scanner): Added protected virtual member functions
	isValidIdFirstChar, isValidIdRestChars, isWhitespaceChar, and
	isNewlineChar.
	(Vrml97Scanner::nextToken()): Decorate calls to
	isValidIdFirstChar, isValidIdRestChars, isWhitespaceChar, and
	isNewlineChar with "this->" now that they are member functions.
	(isValidIdFirstChar(char)): Removed function.  (Moved to
	Vrml97Scanner::isValidIdFirstChar.)
	(isValidIdRestChars(char)): Removed function.  (Moved to
	Vrml97Scanner::isValidIdRestChars.)
	(isWhitespaceChar(char)): Removed function.  (Moved to
	Vrml97Scanner::isWhitespaceChar.)
	(isNewlineChar(char)): Removed function.  (Moved to
	Vrml97Scanner::isNewlineChar.)

2006-02-26 Braden McDaniel  <braden@endoframe.com>

	Removed isHexDigit function; isxdigit works fine.

	* src/libopenvrml/openvrml/Vrml97Parser.g:
	(isHexDigit(char)): Removed.
	(Vrml97Scanner::nextToken()): Replaced use of isHexDigit with
	isxdigit.

2006-02-26 Braden McDaniel  <braden@endoframe.com>

	Override identifyTerminalSymbol in X3DVrmlScanner to identify ':'.
	From Andrew Grieve <sgrieve@users.sourceforge.net>

	* src/libopenvrml/openvrml/Vrml97Parser.g
	(Vrml97Scanner): Made identifyTerminalSymbol virtual and
	protected.
	* src/libopenvrml/openvrml/X3DVrmlParser.g
	(X3DVrmlParser): Override identifyTerminalSymbol to identify ':'.

2006-02-26 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/X3DVrmlParser.g
	(X3DVrmlScanner::identifyKeyword(antlr::Token &)): Treat
	"inputOnly" the same as "eventIn", "outputOnly" the same as
	"eventOut", "inputOutput" the same as "exposedField", and
	"initializeOnly" the same as "field".
	From Andrew Grieve <sgrieve@users.sourceforge.net>

2006-02-26 Braden McDaniel  <braden@endoframe.com>

	Use atof, atol, strtol to convert numeric values in the parser.
	These are sufficient (given the validation done implicitly in the
	scanner) and faster than using stringstreams.
	From Andrew Grieve <sgrieve@users.sourceforge.net>

	* src/libopenvrml/openvrml/Vrml97Parser.g
	(floatValue): Use atof and atol instead of std::istringstream.
	(intValue): Use atol and strtoul instead of std::istringstream.
	(doubleValue): Use atof and atol instead of std::istringstream.

2006-02-26 Braden McDaniel  <braden@endoframe.com>

	Modified token identification functions to return a bool value
	indicating success or failure.
	From Andrew Grieve <sgrieve@users.sourceforge.net>

	* src/libopenvrml/openvrml/Vrml97Parser.g
	(Vrml97Scanner::identifyKeyword(antlr::Token &)): Return a bool
	value indicating success or failure.
	(Vrml97Scanner::identifyFieldType(antlr::Token &)): Return a bool
	value indicating success or failure.
	(Vrml97Scanner::identifyTerminalSymbol(antlr::Token &)): Return a
	bool value indicating success or failure.
	* src/libopenvrml/openvrml/X3DVrmlParser.g
	(X3DVrmlScanner::identifyKeyword(antlr::Token &)): Return a bool
	value indicating success or failure.
	(X3DVrmlScanner::identifyFieldType(antlr::Token &)): Return a bool
	value indicating success or failure.

2006-02-25 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.h: Removed erroneously
	committed function declaration.

2006-02-25 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp: Updated doc-comment for
	openvrml::browser::create_vrml_from_stream.

2006-02-25 Braden McDaniel  <braden@endoframe.com>

	Removed openvrml::profile_id enumeration.  (Identification of X3D
	profiles will be done another way.)

	* src/libopenvrml/openvrml/X3DVrmlParser.g
	(vrmlScene): Removed code that set the scene profile.
	(profileStatement): Removed placeholder code to pick an
	openvrml::profile_id.
	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::invalid_profile::invalid_profile()): Removed.
	(openvrml::invalid_profile::~invalid_profile()): Removed.
	(openvrml::browser::browser(profile_id, std::ostream &,
	std::ostream &): Removed.
	(openvrml::browser::create_vrml_from_stream(std::istream &, const
	std::string &)): Added string parameter to specify the MIME
	content type; defaults to "model/vrml".
	(openvrml::scene::scene(openvrml::browser &, profile_id, scene*)):
	Removed.
	(openvrml::scene::profile() const): Removed.
	(openvrml::scene::load(resource_istream &)): Removed code setting
	openvrml::scene::profile_.
	* src/libopenvrml/openvrml/browser.h
	(openvrml::profile_id): Removed.
	(openvrml::invalid_profile): Removed.
	(openvrml::browser): Removed constructor taking an
	openvrml::profile_id; added string parameter to
	create_vrml_from_stream to specify the MIME content type; defaults
	to "model/vrml".
	(openvrml::scene): Removed friend declaration for X3DVrmlParser;
	removed profile_ member; removed constructor taking an
	openvrml::profile_id; removed profile accessor.

2006-02-25 Braden McDaniel  <braden@endoframe.com>

	Doc-comment improvements; added direction (in, out) to param
	directives.

	* src/libopenvrml/openvrml/ScriptJDK.cpp
	* src/libopenvrml/openvrml/basetypes.cpp
	* src/libopenvrml/openvrml/bounding_volume.cpp
	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/event.cpp
	* src/libopenvrml/openvrml/exposedfield.cpp
	* src/libopenvrml/openvrml/field_value.cpp
	* src/libopenvrml/openvrml/frustum.cpp
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node_impl_util.cpp
	* src/libopenvrml/openvrml/node_impl_util.h
	* src/libopenvrml/openvrml/scope.cpp
	* src/libopenvrml/openvrml/script.cpp
	* src/libopenvrml/openvrml/viewer.cpp
	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp

2006-02-25 Braden McDaniel  <braden@endoframe.com>

	* doc/doxygen-header: Updated to reflect changes to Doxygen style
	sheet.

2006-02-22 Braden McDaniel  <braden@endoframe.com>

	Moved openvrml::script_node::script_event_listener<FieldValue> and
	openvrml::script_node::script_event_emitter<FieldValue> out of the
	header.

	* src/libopenvrml/openvrml/script.cpp
	* src/libopenvrml/openvrml/script.h

2006-02-22 Braden McDaniel  <braden@endoframe.com>

	Moved openvrml::script_node::script_event_listener_creator and
	openvrml::script_node::script_event_emitter_creator out of the
	header.

	* src/libopenvrml/openvrml/script.cpp
	* src/libopenvrml/openvrml/script.h

2006-02-22 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/node_impl_util.h
	(openvrml::node_impl_util::bound_node_stack<BindableNode>::bind(BindableNode&,
	double)): Fixed check to see if the node is already active.

2006-02-21 Braden McDaniel  <braden@endoframe.com>

	Changed doxygen styles and images to be consistent with OpenVRML
	Web site theme.

	* doc/Makefile.am (MAINTANERCLEANFILES): Be more selective about
	what gets cleaned in the manual subdirectory.
	* doc/doxygen-header: Override CSS rules generated by doxygen to
	show grayscale images instead.
	* doc/manual/tab_b-openvrml.png: Added file.  Grayscale image for
	tabs on doxygen-generated pages.
	* doc/manual/tab_l-openvrml.png: Added file.  Grayscale image for
	tabs on doxygen-generated pages.
	* doc/manual/tab_r-openvrml.png: Added file.  Grayscale image for
	tabs on doxygen-generated pages.

2006-02-21 Braden McDaniel  <braden@endoframe.com>

	Removed Visual C++ 7.1 compatibility property page and enabled
	link-time code generation for Release configurations.

	* ide-projects/Windows/VisualC8_0/OpenVRML/antlr/antlr.vcproj
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml/openvrml.vcproj
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml-gl/openvrml-gl.vcproj
	* ide-projects/Windows/VisualC8_0/OpenVRML/sdl-viewer/sdl-viewer.vcproj

2006-02-21 Braden McDaniel  <braden@endoframe.com>

	Visual C++ 2005 project file updates.

	* ide-projects/Windows/VisualC8_0/OpenVRML/OpenVRML.sln: Added file.
	* ide-projects/Windows/VisualC8_0/OpenVRML/antlr/antlr.vcproj
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml/openvrml-config.h:
	Build without exception specifications.
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml/openvrml.vcproj
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml-gl/openvrml-gl.vcproj
	* ide-projects/Windows/VisualC8_0/OpenVRML/sdl-viewer/sdl-viewer.vcproj

2006-02-21 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/scope.cpp (has_id_): Added missing
	OPENVRML_LOCAL.

2006-02-21 Braden McDaniel  <braden@endoframe.com>

	Factored bound node stack logic into a class template.

	* src/libopenvrml/openvrml/node_impl_util.cpp: Added documentation
	for openvrml::node_impl_util::bound_node_stack.
	* src/libopenvrml/openvrml/node_impl_util.h
	(openvrml::node_impl_util::bound_node_stack): Added class
	template.
	* src/libopenvrml/openvrml/vrml97node.cpp
	(background_class): Changed to use
	openvrml::node_impl_util::bound_node_stack.
	(fog_class): Changed to use
	openvrml::node_impl_util::bound_node_stack.
	(navigation_info_class): Changed to use
	openvrml::node_impl_util::bound_node_stack.
	(viewpoint_class): Changed to use
	openvrml::node_impl_util::bound_node_stack.
	(background_node): Added member function bind(bool, double).
	(fog_node): Added member function bind(bool, double).
	(navigation_info_node): Added member function bind(bool, double).
	(viewpoint_node): Added member function bind(bool, double).
	(background_class::bind(background_node &, double)): Changed to
	use openvrml::node_impl_util::bound_node_stack.
	(background_class::unbind(background_node &, double)): Changed to
	use openvrml::node_impl_util::bound_node_stack.
	(fog_class::bind(fog_node &, double)): Changed to use
	openvrml::node_impl_util::bound_node_stack.
	(fog_class::unbind(fog_node &, double)): Changed to use
	openvrml::node_impl_util::bound_node_stack.
	(navigation_info_class::bind(navigation_info_node &, double)):
	Changed to use openvrml::node_impl_util::bound_node_stack.
	(navigation_info_class::unbind(navigation_info_node &, double)):
	Changed to use openvrml::node_impl_util::bound_node_stack.
	(viewpoint_class::bind(viewpoint_node &, double)): Changed to use
	openvrml::node_impl_util::bound_node_stack.
	(viewpoint_class::unbind(viewpoint_node &, double)): Changed to use
	openvrml::node_impl_util::bound_node_stack.

2006-02-20 Braden McDaniel  <braden@endoframe.com>

	Prefer std::ostringstream for string concatentation.

	* src/libopenvrml/openvrml/browser.cpp
	(uri::resolve_against(const uri &) const): Use std::ostringstream
	for string concatentation instead of std::string operator+.
	(create_file_url(const uri &)): Use std::ostringstream for string
	concatentation instead of std::string operator+.

2006-02-20 Braden McDaniel  <braden@endoframe.com>

	Set the scene profile in scene::load(resource_istream&).  The
	profile stuff is inadequate; but this hack will let it hobble
	along until a comprehensive fix is applied.  That is, it should
	allow VRML97 to continue to work.

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::scene::load(resource_istream &)): Set the scene profile.

2006-02-19 Braden McDaniel  <braden@endoframe.com>

	Removed OPENVRML_API from class templates.  The Microsoft compiler
	doesn't like it there; and it probably shouldn't be there anyway.

	* src/libopenvrml/openvrml/event.h
	(openvrml::field_value_listener<FieldValue>): Removed
	OPENVRML_API.
	(openvrml::node_field_value_listener<FieldValue>): Removed
	OPENVRML_API.
	(openvrml::field_value_emitter<FieldValue>): Removed OPENVRML_API.

2006-02-19 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/field_value.h
	(openvrml::field_value): The Microsoft C/C++ compiler 14.0 seems
	picky about requiring the OPENVRML_API macro in the friend
	declaration of operator<<.

2006-02-19 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/basetypes.h
	(openvrml::vec3f): Added missing OPENVRML_API.
	(openvrml::vec3d): Added missing OPENVRML_API.

2006-02-19 Braden McDaniel  <braden@endoframe.com>

	Added member functions to return the root scope from
	openvrml::browser and openvrml::scene.

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::browser::root_scope() const): Added function.  Return
	the root scope.
	(openvrml::scene::root_scope() const): Added function.  Return
	the root scope.
	* src/libopenvrml/openvrml/browser.h
	(openvrml::browser): Added member function root_scope.
	(openvrml::scene): Added member function root_scope.

2006-02-19 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/node.h
	(openvrml::node::scope() const): Return a reference to a const
	scope.

2006-02-18 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/private.h: Forward declare field_value types to
	avoid depencency on <openvrml/field_value.h>.

2006-02-17 Braden McDaniel  <braden@endoframe.com>

	Define openvrml::vec2f, openvrml::vec2d, openvrml::vec3f, and
	openvrml::vec3d as classes rather than class template instances.
	The approach of keeping the function template definitions in the
	implementations and providing explicit template instantiations
	plays poorly with gcc's symbol visibility (and culling) machinery.

	* src/libopenvrml/openvrml/basetypes.cpp
	* src/libopenvrml/openvrml/basetypes.h

2006-02-17 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/vrml97node.cpp
	(text_node::update_face()): Moved FontconfigError and
	FreeTypeError exception classes out of the function so that they
	can be template parameters; that is, so they can be used with
	boost::ignore_unused_variable_warning.

2006-02-16 Braden McDaniel  <braden@endoframe.com>

	* configure.ac: Require automake 1.9 (for tar-pax option).

2006-02-16 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/script.cpp: Use
	boost::polymorphic_downcast where appropriate.

2006-02-14 Braden McDaniel  <braden@endoframe.com>

	Ensure that externproto_node_type and externproto_node references
	are cleared even if PROTO loading fails.

	* src/libopenvrml/openvrml/browser.cpp
	(externproto_node_class): Inherit boost::enable_shared_from_this.
	Changed proto_node_class_ from a shared_ptr to a weak_ptr.
	Changed externproto_node_types_ from a vector of shared_ptrs to a
	vector of weak_ptrs.  Added member
	externproto_node_types_cleared_.  Added member functions
	externproto_node_types_cleared and clear_externproto_node_types.
	(externproto_node_type): Added member node_class_.  Added member
	function clear_externproto_nodes.
	(externproto_node_class::load_proto::operator()() const): Use a
	scope_guard to call
	externproto_node_class::clear_externproto_node_types; this
	function should be called regardless of whether a PROTO is
	successfully loaded.
	(externproto_node_class::externproto_node_class(openvrml::scene &,
	const std::vector<std::string> &>)): Initialize
	externproto_node_types_cleared_ to false.
	(externproto_node_class::externproto_node_types_cleared() const):
	Added function.  Indicate whether the list of
	externproto_node_types has been cleared.
	(externproto_node_class::do_create_type(const std::string &, const
	openvrml::node_interface_set &) const): Lock the proto_node_class_
	weak_ptr; pass a shared_ptr to this to the externproto_node_type
	constructor.
	(externproto_node_class::set_proto_node_class(const
	boost::weak_ptr<openvrml::proto_node_class> &)): Changed to take a
	weak_ptr argument.  Lock the externproto_node_type weak_ptrs.
	(externproto_node_class::clear_externproto_node_types()): Added
	function.  Call externproto_node_type::clear_externproto_nodes for
	each node type in the list and clear the list.
	(externproto_node_type::externproto_node_type(const
	boost::Shared_ptr<const externproto_node_class> &, const
	std::string &, const openvrml::node_interface_set &)): Changed to
	take a shared_ptr to the externproto_node_class.
	(externproto_node_type::set_proto_node_type(openvrml::proto_node_class&)):
	Moved clearing the externproto_nodes_ to
	externproto_node_type::clear_externproto_nodes.
	(externproto_node_type::clear_externproto_nodes()): Clear the list
	of externproto_nodes.
	(externproto_node_type::do_create_node(const
	boost::shared_ptr<openvrml::scope> &, const
	openvrml::initial_value_map &) const): Only add the created node
	to the externproto_node_type's list of nodes if
	externproto_node_class::externproto_node_types_cleared returns
	false.
	(openvrml::browser::node_class_map::~node_class_map()): Added
	debugging code to confirm that the node_class shared_ptrs in the
	node_class_map are the only remaining owning references to the
	node_classes.

2006-02-12 Braden McDaniel  <braden@endoframe.com>

	Made use of exception specifications a configure option.

	* README: Added documentation for option
	--disable-exception-specs.
	* configure.ac: Added option --disable-exception-specs.
	* openvrml.spec.in: Disable exception specifications when building
	the RPM.
	* doc/Doxyfile (PREDEFINED): Defined exception specification
	macros.
	* src/libopenvrml/openvrml-common.h: Defined exception
	specification macros.
	* src/libopenvrml/openvrml-config.h.in: Defined
	OPENVRML_ENABLE_EXCEPTION_SPECS.
	* src/libopenvrml/openvrml/basetypes.cpp: Applied exception
	specification macros.
	* src/libopenvrml/openvrml/basetypes.h: Applied exception
	specification macros.
	* src/libopenvrml/openvrml/bounding_volume.cpp: Applied exception
	specification macros.
	* src/libopenvrml/openvrml/bounding_volume.h: Applied exception
	specification macros.
	* src/libopenvrml/openvrml/browser.cpp: Applied exception
	specification macros.
	* src/libopenvrml/openvrml/browser.h: Applied exception
	specification macros.
	* src/libopenvrml/openvrml/event.cpp: Applied exception
	specification macros.
	* src/libopenvrml/openvrml/event.h: Applied exception
	specification macros.
	* src/libopenvrml/openvrml/exposedfield.cpp: Applied exception
	specification macros.
	* src/libopenvrml/openvrml/exposedfield.h: Applied exception
	specification macros.
	* src/libopenvrml/openvrml/field_value.cpp: Applied exception
	specification macros.
	* src/libopenvrml/openvrml/field_value.h: Applied exception
	specification macros.
	* src/libopenvrml/openvrml/node.cpp: Applied exception
	specification macros.
	* src/libopenvrml/openvrml/node.h: Applied exception specification
	macros.
	* src/libopenvrml/openvrml/node_impl_util.cpp: Applied exception
	specification macros.
	* src/libopenvrml/openvrml/node_impl_util.h: Applied exception
	specification macros.
	* src/libopenvrml/openvrml/scope.cpp: Applied exception
	specification macros.
	* src/libopenvrml/openvrml/scope.h: Applied exception
	specification macros.
	* src/libopenvrml/openvrml/script.cpp: Applied exception
	specification macros.
	* src/libopenvrml/openvrml/script.h: Applied exception
	specification macros.
	* src/libopenvrml/openvrml/viewer.cpp: Applied exception
	specification macros.
	* src/libopenvrml/openvrml/viewer.h: Applied exception
	specification macros.
	* src/libopenvrml/openvrml/vrml97node.cpp: Applied exception
	specification macros.
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp: Applied exception
	specification macros.
	* src/libopenvrml-gl/openvrml/gl/viewer.h: Applied exception
	specification macros.

2006-02-11 Braden McDaniel  <braden@endoframe.com>

	Removed externproto_node_type::owning_ptr_to_class, as this
	created a reference cycle.

	* src/libopenvrml/openvrml/Vrml97Parser.g (externproto): If the
	list of alternative URIs for the EXTERNPROTO implementation is
	empty, generate a node_class_id from the world URI and the
	EXTERNPROTO id so that the node_type can be added to the browser.
	* src/libopenvrml/openvrml/browser.cpp
	(externproto_node_class): Added boost::scoped_ptr to the
	load_proto thread.
	(externproto_node_type): Removed owning_ptr_to_class_ and
	set_owning_ptr_to_class.
	(externproto_node_class(openvrml::scene &, const
	std::vector<std::string> &): Initialize load_proto_thread_ with
	the new thread.
	(externproto_node_class::~externproto_node_class()): Join the
	load_proto thread.
	(openvrml::browser::node_class_map::~node_class_map()): Added
	debug code to ensure that the node_class pointers in the map are
	the last owning references at the point the node_class_map is
	destroyed.
	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::browser::node_class_map): Added nothrow exception
	specification to the node_class_map destructor.

2006-02-11 Braden McDaniel  <braden@endoframe.com>

	Build with Microsoft Visual C++ 8.0.

	* ide-projects/Windows/VisualC8_0/OpenVRML/antlr/antlr.vcproj:
	Added file.
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml/openvrml-config.h:
	Added file.
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml/openvrml.vcproj:
	Added file.
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml-gl/openvrml-gl-config.h:
	Added file.
	* ide-projects/Windows/VisualC8_0/OpenVRML/openvrml-gl/openvrml-gl.vcproj:
	Added file.
	* ide-projects/Windows/VisualC8_0/OpenVRML/sdl-viewer/sdl-viewer.vcproj:
	Added file.
	* ide-projects/Makefile.am: Added Visual C++ 8.0 project files.
	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::browser::current_time()): Use _ftime_s instead of
	_ftime; the latter is deprecated by Microsoft cl 14.0.
	* src/libopenvrml/openvrml/node_impl_util.h
	(openvrml::node_impl_util::exposedfield<FieldValue>::exposedfield(openvrml::node&,
	const typename FieldValue::value_type &)): Removed "typename" from
	default value for Microsoft cl 14.0.

2006-02-10 Braden McDaniel  <braden@endoframe.com>

	It is not desirable for arbitrary clients of openvrml::node to be
	able to share ownership of the scope.  Changed
	openvrml::node::scope() to return a reference rather than a
	boost::shared_ptr.

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::externproto_node): Moved externproto_node to the
	openvrml namespace from the anonymous namespace.
	(openvrml::externproto_node(proto_node_type &)): Access
	openvrml::node::scope_ directly since we need to transmit shared
	ownership.
	* src/libopenvrml/openvrml/node.h (openvrml::node): Made
	openvrml::externproto_node a friend.
	(openvrml::node::scope() const): Changed to return an
	openvrml::scope& rathern than a const
	boost::shared_ptr<openvrml::scope>.

2006-02-10 Braden McDaniel  <braden@endoframe.com>

	* ide-projects/Makefile.am (VISUALC7_1_FILES): Added missing line
	continuation.

2006-02-09 Braden McDaniel  <braden@endoframe.com>

	* ide-projects/Makefile.am (VISUALC7_1_FILES): Updated to include
	sdl-viewer project file instead of the old lookat one.

2006-02-05 Braden McDaniel  <braden@endoframe.com>

	Removed unused functions.

	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	(length(const float[3])): Removed.
	(normalize(float[3])): Removed.

2006-02-05 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	(indexFaceNormal(size_t, size_t, size_t, const
	std::vector<openvrml::vec3f> &)):  Normalize the returned vec3f.

2006-02-05 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	(shell_tess_begin(GLenum, void *)): Fixed use of glColor3fv where
	glNormal3fv should be used.

2006-02-05 Braden McDaniel  <braden@endoframe.com>

	Added missing instances of OPENVRML_GL_LOCAL.

	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	(checkErrors(const std::string &)): Added OPENVRML_GL_LOCAL.
	(computeCylinder(double, double, int, float[][3], float[][3],
	int[])): Added OPENVRML_GL_LOCAL.
	(elevationVertexNormal(int, int, int, int, float, float)): Added
	OPENVRML_GL_LOCAL.
	(TessExtrusion): Added OPENVRML_GL_LOCAL.
	(insertExtrusionCaps(GLUtesselator &, unsigned int, size_t, const
	std::vector<vec3f> &, const std::vector<vec2f> &)): Added
	OPENVRML_GL_LOCAL.
	(computeExtrusion_(const std::vector<rotation> &, const
	std::vector<vec2f> &, const std::vector<vec2f> &, const
	std::vector<vec3f> &, std::vector<vec3f> &, std::vector<vec2f>&)):
	Added OPENVRML_GL_LOCAL.
	(computeExtrusion_(const std::vector<rotation> &, const
	std::vector<vec2f> &, const std::vector<vec2f> &, const
	std::vector<vec3f> &, std::vector<vec3f> &, std::vector<vec2f> &,
	std::vector<int32> &)): Added OPENVRML_GL_LOCAL.
	(computeBounds(size_t, const float *, float (&)[6])): Added
	OPENVRML_GL_LOCAL.
	(texGenParams(float[], int[], float[])): Added OPENVRML_GL_LOCAL.
	(insertShellConvex(ShellData *)): Added OPENVRML_GL_LOCAL.
	(insertShellTess(GLUtesselator &, const std::vector<vertex_data>&,
	const std::vector<int32> &, bool, const std::vector<color> &,
	const std::vector<int32> &, bool, const std::vector<vec3f> &,
	const std::vector<int32> &)): Added OPENVRML_GL_LOCAL.
	(computeSphere(double, int, float[][3], float[][3], int *)): Added
	OPENVRML_GL_LOCAL.
	(power_of_2(unsigned long)): Added OPENVRML_GL_LOCAL.
	(computeView(const vec3f &, const rotation &, float, vec3f &,
	vec3f &)): Added OPENVRML_GL_LOCAL.

2006-02-05 Braden McDaniel  <braden@endoframe.com>

	Refactored code into custom Gtk+ widget.

	* mozilla-plugin/src/openvrml-player/Makefile.am
	(noinst_HEADERS): Removed browser.h and gtkglviewer.h.
	(openvrml_player_SOURCES): Removed browser.cpp and
	gtkglviewer.cpp.
	* mozilla-plugin/src/openvrml-player/browser.cpp: Removed file;
	code relocated to gtkvrmlbrowser.cpp.
	* mozilla-plugin/src/openvrml-player/browser.h: Removed file; code
	relocated to gtkvrmlbrowser.cpp.
	* mozilla-plugin/src/openvrml-player/gtkglviewer.cpp: Removed
	file; code relocated to gtkvrmlbrowser.cpp.
	* mozilla-plugin/src/openvrml-player/gtkglviewer.h: Removed file;
	code relocated to gtkvrmlbrowser.cpp.
	* mozilla-plugin/src/openvrml-player/gtkvrmlbrowser.cpp: Added
	file; GtkVrmlBrowser widget implementation.
	* mozilla-plugin/src/openvrml-player/gtkvrmlbrowser.h: Added file;
	GtkVrmlBrowser widget.
	* mozilla-plugin/src/openvrml-player/player.cpp
	(openvrml_player::command_istream_reader::operator()() const): End
	the main (rendering) thread with a call to gtk_main_quit.
	(initial_stream_reader) Changed to use GtkVrmlBrowser instead of
	openvrml::browser.
	(command_channel_loop::command_channel_loop(GMainLoop &)): Pass a
	constructed GMainLoop instead of an
	openvrml_player::command_istream.
	(command_channel_loop::operator()() const): Relocated code to
	create the main loop and add the command_channel watch to main.
	(main(int, char *[])): Create the GMainLoop for the
	command_channel_loop thread and add the command_channel watch to
	it.  Use GtkVrmlBrowser instead of openvrml::browser and
	openvrml::viewer.
	(openvrml_player_command_channel_loop_quit_event(gpointer)):
	Relocated code to shut down the command_channel to main.

2006-02-05 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/openvrml-player/player.cpp
	(openvrml_player::command_istream_reader): Removed unused member
	browser_.

2006-02-05 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/openvrml-player/plugin_streambuf.cpp
	(openvrml_player::plugin_streambuf::plugin_streambuf(const
	std::string &)): Initialze c_ to '\0', then set to
	traits_type::not_eof.  This quells an uninitialized variable
	warning from valgrind.

2006-02-01 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/openvrml-player/Makefile.am (AM_CPPFLAGS):
	Added top-level gtkglext builddir to include path.

2006-01-29 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/openvrml-player/player.cpp
	(main(int, char *[])): boost::thread_group manages the lifetime of
	created threads; eliminated use of boost::scoped_ptr for this.

2006-01-29 Braden McDaniel  <braden@endoframe.com>

	Use g_io_channel_get_buffer_condition instead of select/FD_ISSET.

	* mozilla-plugin/src/openvrml.cpp
	(request_data_available(GIOChannel *, GIOCondition, gpointer)):
	Use g_io_channel_get_buffer_condition instead of select/FD_ISSET.
	* mozilla-plugin/src/openvrml-player/command_istream.cpp
	(command_data_available(GIOChannel *, GIOCondition, gpointer)):
	Use g_io_channel_get_buffer_condition instead of select/FD_ISSET.

2006-01-28 Braden McDaniel  <braden@endoframe.com>

	Launch the child openvrml-player process using
	g_spawn_async_with_pipes instead of fork/exec.  Use the child
	process' stdin and stdout for the command and request channels,
	respectively, instead of specifying file descriptors for these on
	the command line.

	* mozilla-plugin/src/openvrml.cpp (PluginInstance): Removed
	player_pid, out_pipe, in_pipe members; added command_channel
	member.  Removed in() and out() member functions; added
	WriteCommand(const std::string &) member function.
	(NPP_NewStream(NPP, NPMIMEType, NPStream *, NPBool, uint16 *)):
	Delegate writing to the command channel to
	PluginInstance::WriteCommand(const std::string &).
	(NPP_DestroyStream(NPP, NPStream *, NPError)): Delegate writing to
	the command channel to PluginInstance::WriteCommand(const
	std::string &).
	(NPP_Write(NPP, NPStream *, int32, int32, void *)): Delegate
	writing to the command channel to
	PluginInstance::WriteCommand(const std::string &).
	(PluginInstance::PluginInstance(NPP)): Removed initialization of
	player_pid, out_pipe, in_pipe.
	(PluginInstance::~PluginInstance()): Shutdown/unref
	command_channel; don't wait on child process.
	(PluginInstance::SetWindow(NPWindow &)): Use
	g_spawn_async_with_pipes instead of fork/exec.
	(PluginInstance::WriteCommand(const std::string &)): Added
	function; wrapper to simplify usage/error handling for
	g_io_channel_write_chars.
	* mozilla-plugin/src/openvrml-player/player.cpp
	(read_fd): Removed.
	(write_fd): Removed.
	(options): Removed entries for read-fd and write-fd.
	(command_channel_loop): Removed read_fd_ member.
	(command_channel_loop::command_channel_loop(command_istream &)):
	Removed read_fd argument; create command_channel to read from
	stdin.
	(main(int, char *[])): Create request_channel to write to stdout.

2006-01-24 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/openvrml.cpp (PluginInstance::SetWindow):
	Fixed size allocated for argv.

2006-01-24 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/openvrml.cpp (PluginInstance::SetWindow):
	Parse OPENVRML_PLAYER environment variable with g_shell_parse_argv
	such that arguments can be passed along with the executable name.

2006-01-22 Braden McDaniel  <braden@endoframe.com>

	Allow the plug-in child process to exit "normally" rather than
	sending it SIGTERM.

	* mozilla-plugin/src/openvrml.cpp
	(PluginInstance::~PluginInstance): Don't send the child
	openvrml-player process SIGTERM.  Shut down the request_channel
	and the write descriptor for the output pipe (corresponding to the
	command channel).
	* mozilla-plugin/src/openvrml-player/Makefile.am
	(noinst_HEADERS): Added flag.h.
	(openvrml_player_SOURCES): Added flag.cpp.
	* mozilla-plugin/src/openvrml-player/flag.cpp
	(openvrml_player::flag::flag(bool)): Construct.
	(openvrml_player::flag::value() const): Accessor.
	(openvrml_player::flag::value(bool)): Mutator.
	* mozilla-plugin/src/openvrml-player/flag.h
	(openvrml_player::flag): Added.  A bool flag protected by a mutex.
	Used to signal the various threads that it's time to quit.
	* mozilla-plugin/src/openvrml-player/gtkglviewer.cpp
	(openvrml_player::GtkGLViewer::GtkGLViewer(GtkContainer &,
	flag&)): Added quit flag parameter.
	(gtk_gl_viewer_timeout_callback(gpointer)): Check quit flag.
	* mozilla-plugin/src/openvrml-player/gtkglviewer.h
	(openvrml_player::GtkGLViewer): Made
	gtk_gl_viewer_timeout_callback a friend.  Added quit_ member.
	(command_channel_data): Struct for passing command_channel_loop
	data to the quit_event callback.
	(command_channel_loop::operator()() const): Moved main_context,
	main_loop, and command_channel to the command_channel_data struct.
	Added openvrml_player_command_channel_loop_quit_event as an idle
	callback.
	(main(int, char *[])): Pass quit_flag to GtkGLViewer constructor.
	Join all threads in the thread group before quitting.  Shut down
	the request_channel.
	(openvrml_player_command_channel_loop_quit_event(gpointer)):
	"quit" callback for the command_channel_loop--shuts down the
	command_channel and calls g_main_loop_quit.
	* mozilla-plugin/src/openvrml-player/player.cpp
	(openvrml_player::command_istream_reader::operator()() const)):
	Set the quit_flag to true if we leave the loop (i.e., we got EOF
	from the command stream).

2006-01-22 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/openvrml-player/gtkglviewer.cpp: Declare
	timeout callback function 'extern "C"'; callback functions given
	to C APIs should have C linkage.

2006-01-22 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/openvrml-player/gtkglviewer.cpp: Disambiguate
	externally linked functions by prefixing with "gtk_gl_viewer_".

2006-01-22 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/openvrml-player/command_istream.cpp: Handle
	EOF from the command_channel by inserting traits_type::eof() into
	the stream buffer.

2006-01-21 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp: Doc-comment improvements.

2006-01-14 Braden McDaniel  <braden@endoframe.com>

	Added missing OPENVRML_LOCAL.

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::scene::load_scene): Added OPENVRML_LOCAL to definition.
	* src/libopenvrml/openvrml/browser.h
	(openvrml::browser::node_class_map): Added OPENVRML_LOCAL to
	definition.

2006-01-13 Braden McDaniel  <braden@endoframe.com>

	Allow openvrml::browser and openvrml::scene to be set directly
	from a resource_istream.  Added a thread to openvrml-player
	specifically to process input from the command channel.  This
	resolves issues with the plug-in deadlocking when the main thread
	becomes blocked.

	* mozilla-plugin/src/openvrml-player/browser.cpp
	(openvrml_player::browser::do_get_resource(const std::string &)):
	Changed plugin_resource_istream constructor to use
	uninitialized_plugin_streambuf_map_.
	* mozilla-plugin/src/openvrml-player/player.cpp
	(initial_stream_uri): Identifier for the plugin_streambuf to be
	used for the initial stream.
	(openvrml_player::command_istream_reader::operator()() const):
	Added nothrow exception specification; changed to use
	uninitialized_plugin_streambuf_map_; removed call to
	openvrml::browser::world_url; changed call to
	plugin_streambuf::init to include stream_id and url arguments.
	(initial_stream_reader::operator()() const): Added nothrow
	exception specification; changed plugin_istream to inherit
	openvrml::resource_istream instead of std::istream; call
	openvrml::browser::set_world.
	(command_channel): Removed; moved to
	command_channel_loop::operator().
	(command_channel_loop): Added; thread function object to run a
	glib event loop to read input from a GIOChannel.
	(main(argc, argv)): Moved logic to initialize the command_channel
	GIOChannel to command_channel_loop::operator(); start the
	command_channel_loop_thread.
	* mozilla-plugin/src/openvrml-player/plugin_streambuf.cpp
	(openvrml_player::plugin_streambuf::plugin_streambuf(const
	std::string &)): Changed argument name to "requested_url".
	(openvrml_player::plugin_streambuf::init(size_t, const std::string
	&, const std::string &)): Added stream_id and received_url
	arguments; remove the plugin_streambuf from
	uninitialized_plugin_streambuf_map_ and add it to
	plugin_streambuf_map.
	(openvrml_player::plugin_streambuf::url() const): Block until the
	plugin_streambuf has been initialized.
	(openvrml_player::uninitialized_plugin_streambuf_set_): Removed.
	(openvrml_player::uninitialized_plugin_streambuf_map_): Added.
	(openvrml_player::uninitialized_plugin_streambuf_set::find(const
	std::string &)): Removed.
	(openvrml_player::uninitialized_plugin_streambuf_map::find(const
	std::string &)): Added.
	(openvrml_player::uninitialized_plugin_streambuf_set::insert(const
	boost::shared_ptr<openvrml_player::plugin_streambuf> &)): Removed.
	(openvrml_player::uninitialized_plugin_streambuf_map::insert(const
	std::string &,
	boost::shared_ptr<openvrml_player::plugin_streambuf> &)): Added.
	(openvrml_player::uninitialized_plugin_streambuf_set::erase(const
	boost::shared_ptr<openvrml_player::plugin_streambuf> &)): Removed.
	(openvrml_player::uninitialized_plugin_streambuf_map::erase(const
	std::string &)): Removed.
	(openvrml_player::uninitialized_plugin_streambuf_set::size()
	const): Removed.
	(openvrml_player::uninitialized_plugin_streambuf_map::size()
	const): Removed.
	(openvrml_player::uninitialized_plugin_streambuf_set::front()
	const): Removed.
	(openvrml_player::uninitialized_plugin_streambuf_map::front()
	const): Removed.
	* mozilla-plugin/src/openvrml-player/plugin_streambuf.h
	(openvrml_player::plugin_streambuf): Inherit
	boost::enable_shared_from_tis<T>; removed const from url_ member.
	(uninitialized_plugin_streambuf_set_): Removed.
	(uninitialized_plugin_streambuf_map_): Added.
	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::browser::world_url(const std::string &)): Removed.
	(openvrml::browser::set_world(resource_istream & in)): Added; set
	the world from a resource_istream.
	(openvrml::browser::root_scene_loader): Added; thread function
	object for openvrml::browser::load_url.
	(openvrml::browser::load_url(const std::vector<std::string> &,
	const std::vector<std::string> &)): Changed to delegate to
	openvrml::browser::root_scene_loader.
	(openvrml::scene::load_scene): Changed to delegate to
	openvrml::scene::load.
	(openvrml::scene::load(resource_istream & in)): Added; set the
	scene from a resource_istream.
	(openvrml::scene::url(const std::string &)): Removed.
	* src/libopenvrml/openvrml/browser.h
	(openvrml::browser): Added root_scene_loader declaration; removed
	world_url mutator; added set_world mutator.
	(openvrml::scene): Added load mutator accepting a
	resource_istream; removed url mutator.

2006-01-09 Braden McDaniel  <braden@endoframe.com>

	Use GOption instead of GNU argp for command line argument parsing.

	* mozilla-plugin/src/openvrml-player/player.cpp
	(argp_program_version): Removed.
	(argp_program_bug_address): Removed.
	(parse_opt(int, char*, arp_state*)): Removed.
	(option_id): Removed enumeration.
	(socket_id): Added global variable.
	(read_fd): Added global variable.
	(write_fd): Added global variable.
	(options): Changed from argp_option array to GOptionEntry array.
	(arguments): Removed struct.
	(main(argc, argv *[])): Parse command line options with GOption
	instead of GNU argp.

2006-01-08 Braden McDaniel  <braden@endoframe.com>

	Factored code in mozilla-plugin/src/openvrml-player/player.cpp
	into multiple files.

	* mozilla-plugin/src/openvrml-player/Makefile.am
	(noinst_HEADERS): Added bounded_buffer.h, command_istream.h,
	plugin_streambuf.h, browser.h, and gtkglviewer.h.
	(openvrml_player_SOURCES): Added command_istream.cpp,
	plugin_streambuf.cpp, browser.cpp, and gtkglviewer.cpp.
	* mozilla-plugin/src/openvrml-player/bounded_buffer.h
	(openvrml_player::bounded_buffer<T, BufferSize>): Moved from
	player.cpp.
	* mozilla-plugin/src/openvrml-player/browser.cpp
	(openvrml_player::browser::browser(GIOChannel *)): Moved from
	player.cpp.
	(openvrml_player::browser::do_get_resource(const std::string &)):
	Moved from player.cpp.
	* mozilla-plugin/src/openvrml-player/browser.h
	(openvrml_player::browser): Moved from player.cpp.
	* mozilla-plugin/src/openvrml-player/command_istream.cpp
	(openvrml_player::command_streambuf::command_streambuf()): Moved
	from player.cpp.
	(openvrml_player::command_streambuf::underflow()): Moved from
	player.cpp.
	(openvrml_player::command_istream::command_istream()): Moved from
	player.cpp.
	(command_data_available): Moved from player.cpp.
	* mozilla-plugin/src/openvrml-player/command_istream.h
	(openvrml_player::command_streambuf): Moved from player.cpp.
	(openvrml_player::command_istream): Moved from player.cpp.
	* mozilla-plugin/src/openvrml-player/gtkglviewer.cpp
	(openvrml_player::GtkGLViewer::gl_config): Moved from player.cpp.
	(openvrml_player::GtkGLViewer::GtkGLViewer(GtkContainer &)): Moved
	from player.cpp.
	(openvrml_player::GtkGLViewer::~GtkGLViewer()): Moved from
	player.cpp.
	(openvrml_player::GtkGLViewer::post_redraw()): Moved from
	player.cpp.
	(openvrml_player::GtkGLViewer::set_cursor(cursor_style)): Moved
	from player.cpp.
	(openvrml_player::GtkGLViewer::swap_buffers()): Moved from
	player.cpp.
	(timeout_callback): Moved from player.cpp.
	(openvrml_player::GtkGLViewer::set_timer(double)): Moved from
	player.cpp.
	(openvrml_player::GtkGLViewer::timer_update()): Moved from
	player.cpp.
	(realize): Moved from player.cpp.
	(expose_event): Moved from player.cpp.
	(configure_event): Moved from player.cpp.
	(key_press_event): Moved from player.cpp.
	(button_press_event): Moved from player.cpp.
	(button_release_event): Moved from player.cpp.
	(motion_notify_event): Moved from player.cpp.
	* mozilla-plugin/src/openvrml-player/gtkglviewer.h
	(openvrml_player::GtkGLViewer): Moved from player.cpp.
	* mozilla-plugin/src/openvrml-player/player.cpp
	(bounded_buffer<T, BufferSize>): Moved to bounded_buffer.h.
	(command_streambuf): Moved to command_istream.h.
	(command_istream): Moved to command_istream.h.
	(plugin_streambuf): Moved to plugin_streambuf.h.
	(browser): Moved to browser.h.
	(uninitialized_plugin_streambuf_set): Moved to plugin_streambuf.h.
	(uninitialized_plugin_streambuf_set_): Moved to plugin_streambuf.cpp.
	(plugin_streambuf_map_t): Moved to plugin_streambuf.h.
	(plugin_streambuf_map): Moved to plugin_streambuf.cpp.
	* mozilla-plugin/src/openvrml-player/plugin_streambuf.cpp
	(openvrml_player::plugin_streambuf::plugin_streambuf(const
	std::string &)): Moved from player.cpp.
	(openvrml_player::plugin_streambuf::init(const std::string &)):
	Moved from player.cpp.
	(openvrml_player::plugin_streambuf::url() const): Moved from
	player.cpp.
	(openvrml_player::plugin_streambuf::type() const): Moved from
	player.cpp.
	(openvrml_player::plugin_streambuf::data_available() const): Moved
	from player.cpp.
	(openvrml_player::plugin_streambuf::underflow()): Moved from
	player.cpp.
	(openvrml_player::plugin_streambuf::npstream_destroyed()): Moved
	from player.cpp.
	(openvrml_player::uninitialized_plugin_streambuf_set_): Moved from
	player.cpp.
	(openvrml_player::uninitialized_plugin_streambuf_set::find(const
	std::string &) const): Moved from player.cpp.
	(openvrml_player::uninitialized_plugin_streambuf_set::insert(const
	boost::shared_ptr<openvrml_player::plugin_streambuf> &)): Moved
	from player.cpp.
	(openvrml_player::uninitialized_plugin_streambuf_set::erase(const
	boost::shared_ptr<openvrml_player::plugin_streambuf> &)): Moved
	from player.cpp.
	(openvrml_player::uninitialized_plugin_streambuf_set::size()
	const): Moved from player.cpp.
	(openvrml_player::uninitialized_plugin_streambuf_set::front()
	const): Moved from player.cpp.
	(openvrml_player::plugin_streambuf_map): Moved from player.cpp.

2006-01-07 Braden McDaniel  <braden@endoframe.com>

	* examples/sdl_viewer.cpp
	(browser::do_get_resource(const std::string &)): Fixed
	file_resource_istream constructor to set failbit if opening the
	file fails.

2006-01-07 Braden McDaniel  <braden@endoframe.com>

	* examples/sdl_viewer.cpp
	(browser::do_get_resource(const std::string &)): Fixed
	file_resource_istream::do_type() to sort of handle fragment
	identifiers in the URI.

2006-01-01 Braden McDaniel  <braden@endoframe.com>

	boost::read_write_mutex was broken and has been removed in Boost
	1.33.1.  Use boost::mutex instead.

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::scene::url() const): Changed lock from
	boost::read_write_mutex::scoped_read_lock to
	boost::mutex::scoped_lock.
	(openvrml::scene::url(const std::string &)): Changed lock from
	boost::read_write_mutex::scoped_write_lock to
	boost::mutex::scoped_lock.
	* src/libopenvrml/openvrml/browser.h (openvrml::scene): Changed
	url_mutex_ from boost::read_write_mutex to boost::mutex.

2006-01-01 Braden McDaniel  <braden@endoframe.com>

	* tests/testsuite.at (Unrecognized node type): Updated expected
	output.
	(PROTO with a conflicting eventIn and exposedField): Updated
	expected output.
	(PROTO with a conflicting eventOut and exposedField): Updated
	expected output.

2006-01-01 Braden McDaniel  <braden@endoframe.com>

	* tests/testsuite.at (Unrecognized EXTERNPROTO): Ignore stdout,
	stderr.
	(Unimplemented EXTERNPROTO): Ignore stdout, stderr.

2006-01-01 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::browser::create_vrml_from_stream(std::istream &)):
	Provide a real URI associated with the vrmlstream.  This is needed
	so that PROTOs in the stream can have valid node_class_ids.

2006-01-01 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/Makefile.am: touch files generated by antlr;
	antlr doesn't update the timestamps correctly.

2006-01-01 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/Makefile.am (EXTRA_DIST): Added
	openvrml-config.h.in; removed mistakenly listed
	openvrml-gl-config.h.in and openvrml-gl-common.h.

2005-12-31 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/vrml97node.cpp
	(shape_node::shape_node(const node_type &, const
	boost::shared_ptr<openvrml::scope> &)): Reordered member
	initializer list to match declaration order.

2005-12-30 Braden McDaniel  <braden@endoframe.com>

	Broke up URI grammar and used the part that parses absolute URIs
	to validate node_class_id.

	* src/libopenvrml/openvrml/browser.cpp
	(uri_reserved_parser): Spirit parser for reserved URI characters.
	(uri_reserved_p): uri_reserved_parser instance.
	(uri_unreserved_parser): Spirit parser for unreserved URI
	characters.
	(uri_unreserved_p): uri_unreserved_parser instance.
	(uric_grammar): Spirit grammar for URI characters.
	(uric_grammar::definition<ScannerT>::definition(const
	uric_grammar&)): uric_grammar definition.
	(uric_grammar::definition<ScannerT>::start() const): uric_grammar
	start rule.
	(uri_authority_grammar): Spirit grammar for the authority part of
	a URI.
	(uri_authority_grammar<Actions>::definition<ScannerT>::definition(const
	uri_authority_grammar &)): uri_authority_grammar definition.
	(uri_authority_grammar<Actions>::definition<ScannerT>::start()
	const): uri_authority_grammar start rule.
	(uri_authority_grammar<Actions>::uri_authority_grammar(const
	Actions &)): Construct uri_authority_grammar.
	(uri_abs_path_grammar<Actions>): Spirit grammar for absolute URI
	paths.
	(uri_abs_path_grammar<Actions>::definition<ScannerT>::definition(const
	uri_abs_path_grammar &)): uri_abs_path_grammar definition.
	(uri_abs_path_grammar<Actions>::definition<ScannerT>::start()
	const): uri_abs_path_grammar start rule.
	(uri_abs_path_grammar<Actions>::uri_abs_path_grammar(const
	Actions&)): Construct uri_abs_path_grammar.
	(absolute_uri_grammar<Actions>): Spirit grammar for absolute URIs.
	(absolute_uri_grammar<Actions>::definition<ScannerT>::definition(const
	absolute_uri_grammar &)): absolute_uri_grammar definition.
	(absolute_uri_grammar<Actions>::definition<ScannerT>::start()
	const): absolute_uri_grammar start rule.
	(absolute_uri_grammar<Actions>::absolute_uri_grammar(const
	Actions&)): Construst absolute_uri_grammar.
	(uri_grammar<Actions>::definition<ScannerT>): Use
	absolute_uri_grammar, uri_abs_path_grammar, and
	uri_authority_grammar.
	(uri_grammar<Actions>::definition<ScannerT>::definition(const
	uri_grammar &)): Use absolute_uri_grammar, uri_abs_path_grammar,
	and uri_authority_grammar.
	(node_class_id_grammar): Spirit grammar for node_class
	identifiers.
	(node_class_id_grammar::definition<ScannerT>::definition(const
	node_class_id_grammar &)): node_class_id_grammar definition.
	(node_class_id_grammar::definition<ScannerT>::start() const):
	node_class_id_grammar start rule.
	(node_class_id::node_class_id(const char *)): Validate using
	node_class_id_grammar.
	(node_class_id::node_class_id(const std::string &)): Validate
	using node_class_id_grammar.
	* tests/node_class_id.cpp
	(construct_nested_proto_id()): Added function to test nested PROTO
	identifiers.
	(init_unit_test_suite(int, char * [])): Add
	construct_nested_proto_id() to test suite.

2005-12-30 Braden McDaniel  <braden@endoframe.com>

	Made URI grammar parameterized with a struct defining semantic
	actions.

	* src/libopenvrml/openvrml/browser.cpp
	(assign_iterators_base<SpiritActor, Iterator1, Iterator2>): Helper
	class template for uri_grammar.
	(assign_iterators(const SpiritActor &, const Iterator1 &, const
	Iterator2 &)): Generator function for assign_iterators_base.
	(null_actions): Helper class for uri_grammar.
	(uri_grammar<Actions>): Spirit grammar for URIs. Moved from
	uri::grammar and now parameterized with semantic actions.
	(uri): Removed grammar inner class; added actions inner class to
	be used as a template parameter for uri_grammar.
	(uri::uri(const std::string &)): Changed to use uri_grammar.

2005-12-30 Braden McDaniel  <braden@endoframe.com>

	Added node_class_id test.

	* tests/Makefile.am: Added node_class_id test.
	* tests/node_class_id.cpp: Added file; test suite for
	openvrml::node_class_id.

2005-12-30 Braden McDaniel  <braden@endoframe.com>

	* tests/test_browser.cpp
	(test_browser::do_get_resource(const std::string &): Changed
	file_resource_istream to override the private virtual functions of
	openvrml::resource_istream.

2005-12-20 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/vrml97node.cpp
	(grouping_node_base<Derived>): Change self_t back to a typedef;
	rather than "using" the typedef from
	openvrml::node_impl_util::abstract_node<Derived>.  gcc didn't
	identify self_t as a type when importing it with "using".

2005-12-20 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/vrml97node.cpp
	(grouping_node_base<Derived>): Made self_t protected.

2005-12-20 Braden McDaniel  <braden@endoframe.com>

	Changed openvrml::resource_istream to use nonvirtual interface
	idiom.

	* examples/sdl_viewer.cpp
	(browser::do_get_resource(const std::string &)): Changed
	file_resource_istream to override the private virtual functions of
	openvrml::resource_istream.
	* mozilla-plugin/src/openvrml-player/player.cpp
	(browser::do_get_resource(const std::string &)): Changed
	plugin_resource_istream to override the private virtual functions
	of openvrml::resource_istream.
	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::resource_istream::url() const): Changed to delegate to
	openvrml::resource_istream::do_url.
	(openvrml::resource_istream::type() const): Changed to delegate to
	openvrml::resource_istream::do_type.
	(openvrml::resource_istream::data_available() const): Changed to
	delegate to openvrml::resource_istream::do_data_available.
	* src/libopenvrml/openvrml/browser.h
	(openvrml::resource_istream): Changed url, type, and
	data_available functions to be nonvirtual; these now delegate to
	private virtual functions do_url, do_type, and do_data_available,
	respectively.

2005-12-19 Braden McDaniel  <braden@endoframe.com>

	Added additional fields to node implementations to support X3D
	node types.  From Andrew Grieve <sgrieve@users.sourceforge.net>

	* src/libopenvrml/openvrml/node_impl_util.cpp: Added doc-comment
	for openvrml::node_impl_util::abstract_node<>::metadata.
	* src/libopenvrml/openvrml/node_impl_util.h
	(openvrml::node_impl_util::abstract_node<>): Added metadata
	member.
	(openvrml::node_impl_util::abstract_node<Derived>::abstract_node(const
	node_type &, const boost::shared_ptr<openvrml::scope> &)):
	Initialize metadata member.
	* src/libopenvrml/openvrml/script.cpp
	(built_in_script_interfaces_): Added metadata exposedField.
	(openvrml::script_node::set_metadata_listener::set_metadata_listener(script_node&):
	Added function definition.
	(openvrml::script_node::set_metadata_listener::~set_metadata_listener():
	Added function definition.
	(openvrml::script_node::set_metadata_listener::do_eventin_id()
	const): Added function definiton.
	(openvrml::script_node::set_metadata_listener::do_process_event(const
	sfnode &, double)): Added function definiton.
	(openvrml::script_node::metadata_changed_emitter::metadata_changed_emitter(const
	sfnode &)): Added function definition.
	(openvrml::script_node::metadata_changed_emitter::~metadata_changed_emitter()):
	Added function definition.
	(openvrml::script_node::metadata_changed_emitter::do_eventout_id()
	const): Added function definition.
	(openvrml::script_node::script_node(script_node_class &, const
	boost::shared_ptr<openvrml::scope> &, const node_interface_set &,
	const initial_value_map &)): Initialize set_metadata_listener_ and
	metadata_changed_emitter_ members; assign initial value to
	metadata_ member.
	(openvrml::script_node::do_field(const std::string &) const):
	Added case for metadata exposedField.
	(openvrml::script_node::do_event_listener(const std::string &)):
	Added case for metadata exposedField.
	(openvrml::script_node::do_event_emitter(const std::string &)):
	Added case for metadata exposedField.
	* src/libopenvrml/openvrml/script.h (openvrml::script_node): Added
	set_metadata_listener and metadata_changed_emitter classes; added
	set_metadata_listener_, metadata_, and metadata_changed_emitter_
	members.
	* src/libopenvrml/openvrml/vrml97node.cpp
	(grouping_node_base<>): Added virtual function
	do_children_event_side_effect(const mfnode &, double).
	(grouping_node_base<>::children_exposedfield::event_side_effect(const
	mfnode &, double)): Changed to delegate to
	grouping_node_base<>::do_children_event_side_effect(const mfnode&,
	double).
	(appearance_node): Added fill_properties_ and line_properties_
	members.
	(audio_clip_node): Added pause_time_, resume_time_, elapsed_time_,
	elapsed_time_emitter_, is_paused_, and is_paused_emitter_ members.
	(background_node): Added bind_time_ and bind_time_emitter_
	members.
	(box_node): Added solid_ member.
	(collision_node): Added is_active and is_active_emitter_ members.
	(cone_node): Added solid_ member.
	(cylinder_node): Added solid_ member.
	(cylinder_sensor_node): Added description_, is_over_, and
	is_over_emitter_ members.
	(fog_node): Added bind_time_ and bind_time_emitter_ members.
	(indexed_line_set_node): Added vertex_count_ member.
	(inline_node): Added load_ member.
	(lod_node): Inherit grouping_node_base<lod_node>; added
	current_children_ member; removed do_bounding_volume member
	function.
	(movie_texture_node): Added pause_time_, resume_time_,
	elapsed_time_, elapsed_time_emitter, is_paused_, and
	is_paused_emitter_ members.
	(navigation_info_node): Added transition_type_, bind_time_, and
	bind_time_emitter_ members.
	(plane_sensor_node): Added description_, is_over_, and
	is_over_emitter_ members.
	(proximity_sensor_node): Added center_of_rotation_changed_ and
	center_of_rotation_changed_emitter_ members.
	(shape_node): Added bbox_center_ and bbox_size_ members.
	(sphere_node): Added solid_ member.
	(sphere_sensor_node): Added description_, is_over_, and
	is_over_emitter_ members.
	(switch_node): Inherit grouping_node_base<switch_node>; removed
	choice_exposedfield member class; removed choice_, children_, and
	bsphere members; added current_children_ member; removed
	do_bounding_volume member function; added
	do_children_event_side_effect virtual function.
	(text_node): Added solid_ member.
	(time_sensor_node): Added pause_time_, resume_time_,
	elapsed_time_, elapsed_time_emitter_, is_paused_, and
	is_paused_emitter_ members.
	(touch_sensor_node): Added description_ member.
	(transform_node): Removed do_bounding_volume member function.
	(viewpoint_node): Changed type of description_ member from
	openvrml::sfstring to
	openvrml::node_impl_util::abstract_node<viewpoint_node>::exposedfield<sfstring>;
	added center_of_rotation_ member.
	(anchor_class::do_create_type(const std::string &, const
	openvrml::node_interface_set &) const): Added support for metadata
	exposedField.
	(appearance_class::do_create_type(const std::string &, const
	openvrml::node_interface_set &) const): Added support for
	metadata, fillProperties, and lineProperties exposedFields.
	(appearance_node::appearance_node(const openvrml::node_type &,
	const boost::shared_ptr<openvrml::scope> &)): Initialize
	fill_properties_ and line_properties_ members.
	(audio_clip_class::do_create_type(const std::string &, const
	openvrml::node_interface_set &) const): Added support for
	metadata, pauseTime, and resumeTime exposedFields and elapsedTime
	and isPaused eventOuts.
	(audio_clip_node::audio_clip_node(const openvrml::node_type &,
	const boost::shared_ptr<openvrml::scope> &)): Initialize
	pause_time_, resume_time_, elapsed_time_emitter_, and
	is_paused_emitter_ members.
	(background_class::do_create_type(const std::string &, const
	openvrml::node_interface_set &) const): Added support for metadata
	exposedField and bindTime eventOut.
	(background_node::background_node(const openvrml::node_type &,
	const boost::shared_ptr<openvrml::scope> &)): Initialize
	bind_time_emitter_ member.
	(billboard_class::do_create_type(const std::string &, const
	openvrml::node_interface_set &) const): Added support for metadata
	exposedField.
	(box_class::do_create_type(const std::string &, const
	openvrml::node_interface_set &) const): Added support for metadata
	exposedField and solid field.
	(box_node::box_node(const openvrml::node_type &, const
	boost::shared_ptr<openvrml::scope> &)): Initialize solid_ member.
	(collision_class::do_create_type(const std::string &, const
	openvrml::node_interface_set &) const): Added support for metadata
	and enabled exposedFields and isActive eventOut.
	(collision_node::collision_node(const openvrml::node_type &, const
	boost::shared_ptr<openvrml::scope> &)): Initialize
	is_active_emitter_ member.
	(color_class::do_create_type(const std::string &, const
	openvrml::node_interface_set &) const): Added support for metadata
	exposedField.
	(color_interpolator_class::do_create_type(const std::string &,
	const openvrml::node_interface_set &) const): Added support for
	metadata exposedField.
	(cone_class::do_create_type(const std::string &, const
	openvrml::node_interface_set &) const): Added support for metadata
	exposedField and solid field.
	(cone_node::cone_node(const openvrml::node_type &, const
	boost::shared_ptr<openvrml::scope> &)): Initialize solid_ member.
	(coordinate_class::do_create_type(const std::string &, const
	openvrml::node_interface_set &) const): Added support for metadata
	exposedField.
	(coordinate_interpolator_class::do_create_type(const std::string&,
	const openvrml::node_interface_set &) const): Added support for
	metadata exposedField.
	(cylinder_class::do_create_type(const std::string &, const
	openvrml::node_interface_set &) const): Added support for metadata
	exposedField and solid field.
	(cylinder_node::cylinder_node(const openvrml::node_type &, const
	boost::shared_ptr<openvrml::scope> &)): Initialize solid_ member.
	(cyinder_sensor_class::do_create_type(const std::string &, const
	openvrml::node_interface_set &) const): Added support for metadata
	and description exposedFields and isOver eventOut.
	(cylinder_sensor_node::cylinder_sensor_node(const
	openvrml::node_type &, const
	boost::shared_ptr<openvrml::scope>&)): Initialize description_ and
	is_over_emitter_ members.
	(directional_light_class::do_create_type(const std::string &,
	const openvrml::node_interface_set &) const): Added support for
	metadata exposedField.
	(elevation_grid_class::do_create_type(const std::string &, const
	openvrml::node_interface_set &) const): Added support for metadata
	exposedField.
	(extrusion_class::do_create_type(const std::string &, const
	openvrml::node_interface_set &) const): Added support for metadata
	exposedField.
	(fog_class::do_create_type(const std::string &, const
	openvrml::node_interface_set &) const): Added support for metadata
	exposedField and bindTime eventOut.
	(fog_node::fog_node(const openvrml::node_type &, const
	boost::shared_ptr<openvrml::scope> &)): Initialize
	bind_time_emitter_ member.
	(font_style_class::do_create_type(const std::string &, const
	openvrml::node_interface_set &) const): Added support for metadata
	exposedField.
	(group_class::do_create_type(const std::string &, const
	openvrml::node_interface_set &) const): Added support for metadata
	exposedField.
	(image_texture_class::do_create_type(const std::string &, const
	openvrml::node_interface_set &) const): Added support for metadata
	exposedField.
	(indexed_face_set_class::do_create_type(const std::string &, const
	openvrml::node_interface_set &) const): Added support for metadata
	exposedField.
	(indexed_line_set_class::do_create_type(const std::string &, const
	openvrml::node_interface_set &) const): Added support for metadata
	and vertexCount exposedFields.
	(indexed_line_set_node::indexed_line_set_node(const
	openvrml::node_type &, const boost::shared_ptr<openvrml::scope>
	&)): Initialize vertex_count_ member.
	(inline_class::do_create_type(const std::string &, const
	openvrml::node_interface_set &) const): Added support for metadata
	and load exposedFields.
	(inline_node::inline_node(const openvrml::node_type &, const
	boost::shared_ptr<openvrml::scope> &)): Initialize load_ member.
	(lod_class::do_create_type(const std::string &, const
	openvrml::node_interface_set &) const): Added support for
	metadata, and children exposedFields, addChildren and
	removeChildren eventIns, and bboxCenter and bboxSize fields.
	(lod_node::lod_node(const openvrml::node_type &, const
	boost::shared_ptr<openvrml::scope> &)): Initialize
	current_children_ member; removed initializers for level_ and
	children_ members.
	(lod_node::modified() const): Changed to use children_ instead of
	level_.
	(lod_node::do_render_child(openvrml::viewer &,
	openvrml::rendering_context)): Changed to use children_ instead of
	level_.
	(lod_node::do_children() const): Changed to use current_children_
	instead of children_.
	(lod_node::recalc_bsphere()): Changed to use children_ instead of
	level_.
	(material_class::do_create_type(const std::string &, const
	openvrml::node_interface_set &) const): Added support for metadata
	exposedField.
	(movie_texture_class::do_create_type(const std::string &, const
	openvrml::node_interface_set &) const): Added support for metadata
	pauseTime, and resumeTime exposedFields, and elapsedTime and
	isPaused eventOuts.
	(movie_texture_node::movie_texture_node(const
	openvrml::node_type&, const boost::shared_ptr<openvrml::scope>&)):
	Initialize pause_time_, resume_time_, elapsed_time_emitter_, and
	is_paused_emitter_ members.
	(navigation_info_class::do_create_type(const std::string &, const
	openvrml::node_interface_set &) const): Added support for metadata
	and transitionType exposedFields, and bindTime eventOut.
	(navigation_info_node::navigation_info_node(const
	openvrml::node_type&, const boost::shared_ptr<openvrml::scope>&)):
	Initialize transition_type_ and bind_time_emitter_ members.
	(normal_class::do_create_type(const std::string &, const
	openvrml::node_interface_set &) const): Added support for metadata
	exposedField.
	(normal_interpolator_class::do_create_type(const std::string &,
	const openvrml::node_interface_set &) const): Added support for
	metadata exposedField.
	(orienation_interpolator_class::do_create_type(const std::string&,
	const openvrml::node_interface_set &) const): Added support for
	metadata exposedField.
	(pixel_texture_class::do_create_type(const std::string&, const
	openvrml::node_interface_set &) const): Added support for metadata
	exposedField.
	(plane_sensor_class::do_create_type(const std::string &, const
	openvrml::node_interface_set &) const): Added support for metadata
	and description exposedFields and isOver eventOut.
	(plane_sensor_node::plane_sensor_node(const openvrml::node_type &,
	const boost::shared_ptr<openvrml::scope>&)): Initialize
	description_ and is_over_emitter_ members.
	(point_light_class::do_create_type(const std::string &, const
	openvrml::node_interface_set &) const): Added support for metadata
	exposedField.
	(point_set_class::do_create_type(const std::string &, const
	openvrml::node_interface_set &) const): Added support for metadata
	exposedField.
	(position_interpolator_class::do_create_type(const std::string &,
	const openvrml::node_interface_set &) const): Added support for
	metadata exposedField.
	(proximity_sensor_class::do_create_type(const std::string &, const
	openvrml::node_interface_set &) const): Added support for metadata
	exposedField and centerOfRotation_changed eventOut.
	(proximity_sensor_node::proximity_sensor_node(const
	openvrml::node_type &, const
	boost::shared_ptr<openvrml::scope>&)): Initialize
	center_of_rotation_changed_emitter_ member.
	(scalar_interpolator_class::do_create_type(const std::string &,
	const openvrml::node_interface_set &) const): Added support for
	metadata exposedField.
	(shape_class::do_create_type(const std::string &, const
	openvrml::node_interface_set &) const): Added support for metadata
	exposedField and bboxCenter and bboxSize fields.
	(shape_node::shape_node(const openvrml::node_type &, const
	boost::shared_ptr<openvrml::scope>&)): Initialize bbox_size_
	member.
	(sound_class::do_create_type(const std::string &, const
	openvrml::node_interface_set &) const): Added support for metadata
	exposedField.
	(sphere_class::do_create_type(const std::string &, const
	openvrml::node_interface_set &) const): Added support for metadata
	exposedField and solid field.
	(sphere_node::sphere_node(const openvrml::node_type &, const
	boost::shared_ptr<openvrml::scope>&)): Initialize solid_ member.
	(sphere_sensor_class::do_create_type(const std::string &, const
	openvrml::node_interface_set &) const): Added support for metadata
	and description exposedFields and isOver eventOut.
	(sphere_sensor_node::sphere_sensor_node(const
	openvrml::node_type&, const boost::shared_ptr<openvrml::scope>&)):
	Initialize description_ and is_over_emitter_ members.
	(spot_light_class::do_create_type(const std::string &, const
	openvrml::node_interface_set &) const): Added support for metadata
	exposedField.
	(switch_class::do_create_type(const std::string &, const
	openvrml::node_interface_set &) const): Added support for
	addChildren and removeChildren eventIns, children and metadata
	exposedFields, and bboxCenter and bboxSize fields.
	(switch_node::do_children_event_side_effect(const mfnode &,
	double)): Moved logic from
	switch_node::choice_exposedfield::event_side_effect to here.
	(switch_node::which_choice_exposedfield::event_side_effect(const
	sfint32 &, double)): Changed to use current_children_ instead of
	children_.
	(switch_node::switch_node(const openvrml::node_type &, const
	boost::shared_ptr<openvrml::scope &)): Initialize
	grouping_node_base<switch_node> and current_children_ members.
	(switch_node::modified() const): Changed to use current_children_
	instead of children_.
	(switch_node::do_render_child(openvrml::viewer &,
	rendering_contex)): Changed to use current_children_ instead of
	children_.
	(switch_node::do_children(openvrml::viewer &, rendering_contex)):
	Changed to use current_children_ instead of children_.
	(switch_node::recalc_bsphere()): Changed to use current_children_
	instead of children_.
	(text_class::do_create_type(const std::string &, const
	openvrml::node_interface_set &) const): Added support for metadata
	exposedField and solid field.
	(text_node::text_node(const openvrml::node_type &, const
	boost::shared_ptr<openvrml::scope &)): Initialize solid_ member.
	(texture_coordinate_class::do_create_type(const std::string &,
	const openvrml::node_interface_set &) const): Added support for
	metadata exposedField.
	(texture_transform_class::do_create_type(const std::string &,
	const openvrml::node_interface_set &) const): Added support for
	metadata exposedField.
	(time_sensor_class::do_create_type(const std::string &, const
	openvrml::node_interface_set &) const): Added support for
	metadata, pauseTime, and resumeTime exposedFields, and elapsedTime
	and isPaused eventOuts.
	(time_sensor_node::time_sensor_node(const openvrml::node_type &,
	const boost::shared_ptr<openvrml::scope &)): Initialize
	pause_time_, resume_time, elapsed_time_emitter_, and
	is_paused_emitter_ members.
	(touch_sensor_class::do_create_type(const std::string &, const
	openvrml::node_interface_set &) const): Added support for metadata
	and description exposedFields.
	(touch_sensor_node::touch_sensor_node(const openvrml::node_type &,
	const boost::shared_ptr<openvrml::scope &)): Initialize
	description_ member.
	(transform_class::do_create_type(const std::string &, const
	openvrml::node_interface_set &) const): Added support for metadata
	exposedField.
	(transform_node::recalc_bsphere()): Delegate to
	grouping_node_base<self_t>::recalc_bsphere().
	(viewpoint_class::do_create_type(const std::string &, const
	openvrml::node_interface_set &) const): Added support for
	description, metadata, and centerOfRotation exposedFields.
	(viewpoint_node::touch_sensor_node(const openvrml::node_type &,
	const boost::shared_ptr<openvrml::scope &)): Initialize
	description_ and center_of_rotation_ members.
	(viewpoint_node::description() const): Changed to use description_
	exposedfield.
	(visibility_sensor_class::do_create_type(const std::string &,
	const openvrml::node_interface_set &) const): Added support for
	metadata exposedField.
	(world_info_class::do_create_type(const std::string &,
	const openvrml::node_interface_set &) const): Added support for
	metadata exposedField.

2005-12-12 Braden McDaniel  <braden@endoframe.com>

	Changed the name of "recalcBSphere" member functions to
	"recalc_bsphere" to match project naming convention.
	From Andrew Grieve <sgrieve@users.sourceforge.net>

	* src/libopenvrml/openvrml/vrml97node.cpp
	(indexed_face_set_node): Changed function name from
	"recalcBSphere" to "recalc_bsphere".
	(lod_node): Changed function name from "recalcBSphere" to
	"recalc_bsphere".
	(point_set_node): Changed function name from "recalcBSphere" to
	"recalc_bsphere".
	(switch_node): Changed function name from "recalcBSphere" to
	"recalc_bsphere".
	(indexed_face_set_node::do_bounding_volume() const): Changed
	function name from "recalcBSphere" to "recalc_bsphere".
	(lod_node::do_bounding_volume() const): Changed function name from
	"recalcBSphere" to "recalc_bsphere".
	(point_set_node::do_bounding_volume() const): Changed function
	name from "recalcBSphere" to "recalc_bsphere".
	(switch_node::do_bounding_volume() const): Changed function name
	from "recalcBSphere" to "recalc_bsphere".

2005-12-12 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/Vrml97Parser.g (Vrml97Parser::node):
	Removed unused exception variable from catch block.

2005-12-12 Braden McDaniel  <braden@endoframe.com>

	* ide-projects/Windows/VisualC7_1/OpenVRML/openvrml/openvrml.vcproj:
	Define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS and
	BOOST_MPL_LIMIT_VECTOR_SIZE=30.  The default boost::mpl::vector
	size limit of 20 is not sufficient.

2005-12-12 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/vrml97node.cpp
	(point_set_class): Changed do_create_type argument name to be
	consistent with the function definition.
	(sound_class): Changed do_create_type argument name to be
	consistent with the function definition.

2005-12-11 Braden McDaniel  <braden@endoframe.com>

	Replaced several instances of switching on field_value::type with
	boost::mpl::for_each.  This consolidates several lists of the
	field_value types into one--openvrml_::field_value_types in
	private.h--and allows for more concise code.

	* src/libopenvrml/Makefile.am: Define
	BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS and
	BOOST_MPL_LIMIT_VECTOR_SIZE=30.  The default boost::mpl::vector
	size limit of 20 is not sufficient.
	* src/libopenvrml/private.h: Added boost::mpl::vector of
	field_value types.  * src/libopenvrml/openvrml/browser.cpp
	(openvrml::abstract_proto_node::create_eventin(field_value::type_id,
	abstract_proto_node &)): Use boost::mpl::for_each instead of
	switch.
	(openvrml::abstract_proto_node::create_eventout(field_value::type_id,
	abstract_proto_node &)): Use boost::mpl::for_each instead of
	switch.
	(openvrml::proto_node::create_exposedfield(const field_value &,
	proto_node &)): Use boost::mpl::for_each instead of switch.
	(openvrml::proto_node::proto_node(const node_type &, const
	boost::shared_ptr<openvrml::scope> &, const initial_value_map &)):
	Use boost::mpl::for_each for creating IS mappings.
	(externproto_node::create_exposedfield(externproto_node &,
	openvrml::field_value::type_id)): Use boost::mpl::for_each instead
	of switch.
	(externproto_node::set_proto_node(openvrml::proto_node_type &)):
	Use boost::mpl::for_each for creating IS mappings.
	* src/libopenvrml/openvrml/field_value.cpp
	(openvrml::field_value::create(type_id)): Use boost::mpl::for_each
	instead of switch.
	* src/libopenvrml/openvrml/node.cpp
	(print_field_::operator()(const openvrml::node_interface &)
	const): Use boost::mpl::for_each instead of switch.
	(openvrml::add_route(node &, const std::string &, node &, const
	std::string &)): Use boost::mpl::for_each instead of switch.
	(openvrml::delete_route(node &, const std::string &, node &, const
	std::string &)): Use boost::mpl::for_each instead of switch.
	* src/libopenvrml/openvrml/script.cpp
	(openvrml::script::process_direct_output): Use
	boost::mpl::for_each instead of switch.
	(openvrml::script_node::create_listener(field_value::type_id,
	const std::string &, script_node &)): Use boost::mpl::for_each
	instead of switch.
	(openvrml::script_node::create_emitter(script_node &, const
	openvrml::field_value &)): Use boost::mpl::for_each instead of
	switch.
	* src/libopenvrml/openvrml/script.h
	(openvrml::script_node): Added script_event_listener_creator and
	script_event_emitter_creator function objects.

2005-12-10 Braden McDaniel  <braden@endoframe.com>

	Use boost::array.

	* src/libopenvrml/openvrml/field_value.cpp
	(field_value_type_id_): Use boost::array.
	(operator>>(std::istream &, field_value::type_id &)): Changed to
	use boost::array features.
	* src/libopenvrml/openvrml/node.cpp
	(node_interface_type_id_): Use boost::array.
	(operator>>(stds::istream &, node_interface::type_id &)): Changed
	to use boost::array features.
	* src/libopenvrml/openvrml/script.cpp
	(built_in_script_interfaces_): Use boost::array.
	(openvrml::script_node::script_node_type::script_node_type(script_node_class&)):
	Changed to use boost::array features.
	(openvrml::script_node::script_node_type::do_create_node(const
	boost::shared_ptr<openvrml::scope> &, const initial_value_map &)
	const): Changed to use boost::array features.

	* src/libopenvrml/openvrml/vrml97node.cpp
	(anchor_class::do_create_type(const std::string &, const
	node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(appearance_class::do_create_type(const std::string &, const
	node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(audio_clip_class::do_create_type(const std::string &, const
	node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(background_class::do_create_type(const std::string &, const
	node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(billboard_class::do_create_type(const std::string &, const
	node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(collision_class::do_create_type(const std::string &, const
	node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(color_interpolator_class::do_create_type(const std::string &,
	const node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(cone_class::do_create_type(const std::string &, const
	node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(coordinate_interpolator_class::do_create_type(const std::string
	&, const node_interface_set &) const): Use boost::array for array
	of supported interfaces.
	(audio_clip_class::do_create_type(const std::string &, const
	node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(cylinder_class::do_create_type(const std::string &, const
	node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(cylinder_sensor_class::do_create_type(const std::string &, const
	node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(directional_light_class::do_create_type(const std::string &,
	const node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(elevation_grid_class::do_create_type(const std::string &, const
	node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(extrusion_class::do_create_type(const std::string &, const
	node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(fog_class::do_create_type(const std::string &, const
	node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(font_style_class::do_create_type(const std::string &, const
	node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(group_class::do_create_type(const std::string &, const
	node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(image_texture_class::do_create_type(const std::string &, const
	node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(indexed_face_set_class::do_create_type(const std::string &, const
	node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(indexed_line_set_class::do_create_type(const std::string &, const
	node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(inline_class::do_create_type(const std::string &, const
	node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(lod_class::do_create_type(const std::string &, const
	node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(material_class::do_create_type(const std::string &, const
	node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(movie_texture_class::do_create_type(const std::string &, const
	node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(navigation_info_class::do_create_type(const std::string &, const
	node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(normal_interpolator_class::do_create_type(const std::string &,
	const node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(orientation_interpolator_class::do_create_type(const std::string
	&, const node_interface_set &) const): Use boost::array for array
	of supported interfaces.
	(pixel_texture_class::do_create_type(const std::string &, const
	node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(plane_sensor_class::do_create_type(const std::string &, const
	node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(point_light_class::do_create_type(const std::string &, const
	node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(point_set_class::do_create_type(const std::string &, const
	node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(position_interpolator_class::do_create_type(const std::string &,
	const node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(proximity_sensor_class::do_create_type(const std::string &, const
	node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(scalar_interpolator_class::do_create_type(const std::string &,
	const node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(shape_class::do_create_type(const std::string &, const
	node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(sound_class::do_create_type(const std::string &, const
	node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(sphere_sensor_class::do_create_type(const std::string &, const
	node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(spot_light_class::do_create_type(const std::string &, const
	node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(switch_class::do_create_type(const std::string &, const
	node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(text_class::do_create_type(const std::string &, const
	node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(texture_transform_class::do_create_type(const std::string &,
	const node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(time_sensor_class::do_create_type(const std::string &, const
	node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(touch_sensor_class::do_create_type(const std::string &, const
	node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(transform_class::do_create_type(const std::string &, const
	node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(viewpoint_class::do_create_type(const std::string &, const
	node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(visibility_sensor_class::do_create_type(const std::string &, const
	node_interface_set &) const): Use boost::array for array of
	supported interfaces.
	(world_info_class::do_create_type(const std::string &, const
	node_interface_set &) const): Use boost::array for array of
	supported interfaces.

2005-12-10 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/private.h (OPENVRML_PRINT_EXCEPTION_): Quell
	unused variable warnings from Microsoft cl when building with
	NDEBUG.

2005-12-08 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/script.cpp
	(js_::MFBool::toString(JSContext *, JSObject *, uintN, jsval *,
	jsval *)): Added parentheses around ternary operator; << has
	higher precedence.

2005-12-08 Braden McDaniel  <braden@endoframe.com>

	Added missing case for mfbool to openvrml::add_route.

	* src/libopenvrml/openvrml/node.cpp
	(openvrml::add_route(node &, const std::string &, node &, const
	std::string &)): Added missing case for mfbool.

2005-12-08 Braden McDaniel  <braden@endoframe.com>

	Changed openvrml::color_rgba::rgb to openvrml::color_rgba::rgba.

	* src/libopenvrml/openvrml/basetypes.cpp
	(openvrml::color_rgba::color_rgba(const float (&)[4])): Changed
	references from this->rgb to this->rgba.
	(openvrml::color_rgba::color_rgba(float, float, float, float)):
	Changed references from this->rgb to this->rgba.
	(openvrml::color_rgba::hsv(float (&)[4]) const): Changed
	references from this->rgb to this->rgba.
	(openvrml::color_rgba::hsv(float, float, float, float)): Changed
	references from this->rgb to this->rgba.
	* src/libopenvrml/openvrml/basetypes.h
	(openvrml::color_rgba): Changed member rgb to rgba.
	(openvrml::color_rgba::operator[](size_t) const): Changed
	reference from this->rgb to this->rgba.
	(openvrml::color_rgba::r() const): Changed reference from
	this->rgb to this->rgba.
	(openvrml::color_rgba::g() const): Changed reference from
	this->rgb to this->rgba.
	(openvrml::color_rgba::b() const): Changed reference from
	this->rgb to this->rgba.
	(openvrml::color_rgba::a() const): Changed reference from
	this->rgb to this->rgba.
	(openvrml::color_rgba::r(float)): Changed reference from
	this->rgb to this->rgba.
	(openvrml::color_rgba::g(float)): Changed reference from
	this->rgb to this->rgba.
	(openvrml::color_rgba::b(float)): Changed reference from
	this->rgb to this->rgba.
	(openvrml::color_rgba::a(float)): Changed reference from
	this->rgb to this->rgba.

2005-12-08 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/basetypes.cpp
	(openvrml::color_rgba::color_rgba(const float (&)[4])): Fixed to
	refer to function argument.

2005-12-08 Braden McDaniel  <braden@endoframe.com>

	Added sfcolorrgba, mfbool, mfcolorrgba, and mfimage field_value
	types.  Added MFBool support to the Java and JavaScript
	interfaces.  From Andrew Grieve <sgrieve@users.sourceforge.net>

	* java/Makefile.am (CLASSES): Added vrml/field/MFBool.class,
	vrml/field/ConstMFBool.class.
	(JNI_HFILES): Added vrml_field_MFBool.h, vrml_field_ConstMFBool.h.
	(vrml_field_MFBool.h): Added rule.
	(vrml_field_ConstMFBool.h): Added rule.
	* java/vrml/field/ConstMFBool.java: Added file.
	* java/vrml/field/MFBool.java: Added file.
	* java/vrml/field/Makefile.am (JAVA_FILES): Added MFBool.java and
	ConstMFBool.java.
	* src/libopenvrml/openvrml/ScriptJDK.cpp: Include
	vrml_field_MFBool.h and vrml_field_ConstMFBool.h.
	(ftn): Added "MFBool".
	(newField): Added case for mfbool.
	(Java_vrml_field_ConstMFBool_CreateObject): Added function
	definition.
	(Java_vrml_field_ConstMFBool_getSize): Added function definition.
	(Java_vrml_field_ConstMFBool_getValue): Added function definition.
	(Java_vrml_field_ConstMFBool_get1Value): Added function
	definition.
	(Java_vrml_field_ConstMFBool_toString): Added function definition.
	(Java_vrml_field_MFBool_CreateObject): Added function definition.
	(Java_vrml_field_MFBool_getSize): Added function definition.
	(Java_vrml_field_MFBool_clear): Added function definition.
	(Java_vrml_field_MFBool_delete): Added function definition.
	(Java_vrml_field_MFBool_getValue): Added function definition.
	(Java_vrml_field_MFBool_get1Value): Added function definition.
	(Java_vrml_field_MFBool_setValue__I_3F): Added function
	definition.
	(Java_vrml_field_MFBool_setValue__Lvrml_field_MFBool_2): Added
	function definition.
	(Java_vrml_field_MFBool_setValue__Lvrml_field_ConstMFBool_2):
	Added function definition.
	(Java_vrml_field_MFBool_set1Value__IF): Added function definition.
	(Java_vrml_field_MFBool_set1Value__ILvrml_field_ConstSFBool_2):
	Added function definition.
	(Java_vrml_field_MFBool_set1Value__ILvrml_field_SFBool_2): Added
	function definition.
	(Java_vrml_field_MFBool_addValue__F): Added function definition.
	(Java_vrml_field_MFBool_addValue__Lvrml_field_ConstSFBool_2):
	Added function definition.
	(Java_vrml_field_MFBool_addValue__Lvrml_field_SFBool_2): Added
	function definition.
	(Java_vrml_field_MFBool_insertValue__IF): Added function
	definition.
	(Java_vrml_field_MFBool_insertValue__ILvrml_field_ConstSFBool_2):
	Added function definition.
	(Java_vrml_field_MFBool_insertValue__ILvrml_field_SFBool_2): Added
	function definition.
	(Java_vrml_field_MFBool_toString): Added function definition.
	* src/libopenvrml/openvrml/Vrml97Parser.g
	(Vrml97Parser::imageValue): Changed grammar such that mfImageValue
	in X3DVrmlParser.g is not ambiguous.
	* src/libopenvrml/openvrml/X3DVrmlParser.g
	(X3DVrmlparser::fieldType): Added support for MFBool, MFColorRGBA,
	and MFImage.
	(X3DVrmlParser::nonNodeFieldValue): Added support for MFBool,
	MFColorRGBA, and MFImage.
	(X3DVrmlParser::mfBoolValue): Added production.
	(X3DVrmlParser::sfColorRgbaValue): Added production.
	(X3DVrmlParser::mfColorRgbaValue): Added production.
	(X3DVrmlParser::colorRgbaValue): Added production.
	(X3DVrmlParser::mfImageValue): Added production.
	* src/libopenvrml/openvrml/basetypes.cpp (rgb_to_hsv): Added
	function; relocated logic in openvrml::color::hsv accessor to
	here.
	(hsv_to_rgb): Added function; relocated logic in
	openvrml::color::hsv mutator to here.
	(openvrml::color::hsv(float (&)[3]) const): Delegate to
	rgb_to_hsv.
	(openvrml::color::hsv(float, float, float)): Delegate to
	hsv_to_rgb.
	(openvrml::color_rgba::color_rgba()): Added function definition.
	(openvrml::color_rgba::color_rgba(const float (&)[4])): Added
	function definition.
	(openvrml::color_rgba::color_rgba(float, float, float, float)):
	Added function definition.
	(openvrml::color_rgba::operator[](size_t) const): Added function
	definition.
	(openvrml::color_rgba::hsv(float (&)[4]) const): Added function
	definition.
	(openvrml::color_rgba::hsv(float, float, float, float)): Added
	function definition.
	(openvrml::operator==(const color_rgba &, const color_rgba &)):
	Added function definition.
	(openvrml::operator!=(const color_rgba &, const color_rgba &)):
	Added function definition.
	(openvrml::operator<<(std::ostream &, const color_rgba &)): Added
	function definition.
	* src/libopenvrml/openvrml/basetypes.h: Added openvrml::color_rgba
	class.
	(openvrml::color_rgba::operator[](size_t)): Added function
	definition.
	(openvrml::color_rgba::r() const): Added function definition.
	(openvrml::color_rgba::r(float)): Added function definition.
	(openvrml::color_rgba::g() const): Added function definition.
	(openvrml::color_rgba::g(float)): Added function definition.
	(openvrml::color_rgba::b() const): Added function definition.
	(openvrml::color_rgba::b(float)): Added function definition.
	(openvrml::color_rgba::a() const): Added function definition.
	(openvrml::color_rgba::a(float)): Added function definition.
	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::abstract_proto_node::create_eventin): Added cases for
	sfcolorrgba, mfbool, mfcolorrgba, and mfimage.
	(openvrml::abstract_proto_node::eventin_is): Added cases for
	sfcolorrgba, mfbool, mfcolorrgba, and mfimage.
	(openvrml::abstract_proto_node::create_eventout): Added cases for
	sfcolorrgba, mfbool, mfcolorrgba, and mfimage.
	(openvrml::abstract_proto_node::eventout_is): Added cases for
	sfcolorrgba, mfbool, mfcolorrgba, and mfimage.
	(openvrml::proto_node::create_exposedfield): Added cases for
	sfcolorrgba, mfbool, mfcolorrgba, and mfimage.
	(openvrml::externproto_node::create_exposedfield): Added cases for
	sfcolorrgba, mfbool, mfcolorrgba, and mfimage.
	* src/libopenvrml/openvrml/event.cpp: Added doc-comments for
	sfcolorrgba_listener, mfbool_listener, mfcolorrgba_listener,
	mfimage_listener, sfcolorrgba_emitter, mfbool_emitter,
	mfcolorrgba_emitter, and mfimage_emitter typedefs.
	* src/libopenvrml/openvrml/event.h: Added sfcolorrgba_listener,
	mfbool_listener, mfcolorrgba_listener, mfimage_listener,
	sfcolorrgba_emitter, mfbool_emitter, mfcolorrgba_emitter, and
	mfimage_emitter typedefs.
	* src/libopenvrml/openvrml/field_value.cpp
	(openvrml::field_value::create): Added cases for sfcolorrgba,
	mfbool, mfcolorrgba, and mfimage.
	(field_value_type_id_): Added entries for sfcolorrgba, mfbool,
	mfcolorrgba, and mfimage.
	(openvrml::sfcolorrgba::field_value_type_id): Added static member
	definition.
	(openvrml::sfcolorrgba::sfcolorrgba(const value_type &)): Added
	function definition.
	(openvrml::sfcolorrgba::sfcolorrgba(const sfcolorrgba &)): Added
	function definition.
	(openvrml::sfcolorrgba::~sfcolorrgba()): Added function
	definition.
	(openvrml::sfcolorrgba::operator=(const sfcolorrgba &)): Added
	function definition.
	(openvrml::sfcolorrgba::value() const): Added function definition.
	(openvrml::sfcolorrgba::value(const value_type &)): Added function
	definition.
	(openvrml::sfcolorrgba::swap(sfcolorrgba &)): Added function
	definition.
	(openvrml::sfcolorrgba::do_clone() const): Added function
	definition.
	(openvrml::sfcolorrgba::do_assign(const field_value &)): Added
	function definition.
	(openvrml::sfcolorrgba::print(std::ostream &) const): Added
	function definition.
	(openvrml::sfcolorrgba::do_type() const): Added function
	definition.
	(openvrml::operator==(const sfcolorrgba &, const sfcolorrgba &)):
	Added function definition.
	(openvrml::operator!=(const sfcolorrgba &, const sfcolorrgba &)):
	Added function definition.
	(openvrml::mfbool::field_value_type_id): Added static member
	definition.
	(openvrml::mfbool::mfbool(value_type::size_type n, bool)
	(openvrml::mfbool::mfbool(const value_type &)): Added function
	definition.
	(openvrml::mfbool::mfbool(const mfbool &)): Added function
	definition.
	(openvrml::mfbool::~mfbool()): Added function definition.
	(openvrml::mfbool::operator=(const mfbool &)): Added function
	definition.
	(openvrml::mfbool::value() const): Added function definition.
	(openvrml::mfbool::value(const value_type &)): Added function
	definition.
	(openvrml::mfbool::swap(mfbool & mfb)): Added function definition.
	(openvrml::mfbool::do_clone() const): Added function definition.
	(openvrml::mfbool::do_assign(const field_value &)): Added function
	definition.
	(openvrml::mfbool::do_type() const): Added function definition.
	(openvrml::mfbool::print(std::ostream &) const): Added function
	definition.
	(openvrml::operator==(const mfbool &, const mfbool &)): Added
	function definition.
	(openvrml::operator!=(const mfbool &, const mfbool &)): Added
	function definition.
	(openvrml::mfcolorrgba::field_value_type_id): Added static member
	definition.
	(openvrml::mfcolorrgba::mfcolorrgba(value_type::size_type, const
	color_rgba &)): Added function definition.
	(openvrml::mfcolorrgba::mfcolorrgba(const value_type &)): Added
	function definition.
	(openvrml::mfcolorrgba::mfcolorrgba(const mfcolorrgba &)): Added
	function definition.
	(openvrml::mfcolorrgba::~mfcolorrgba()): Added function
	definition.
	(openvrml::mfcolorrgba::operator=(const mfcolorrgba &)): Added
	function definition.
	(openvrml::mfcolorrgba::value() const): Added function definition.
	(openvrml::mfcolorrgba::value(const value_type &)): Added function
	definition.
	(openvrml::mfcolorrgba::swap(mfcolorrgba &)): Added function
	definition.
	(openvrml::mfcolorrgba::do_clone() const): Added function
	definition.
	(openvrml::mfcolorrgba::do_assign(const field_value &)): Added
	function definition.
	(openvrml::mfcolorrgba::do_type()): Added function definition.
	(openvrml::mfcolorrgba::print(std::ostream &)): Added function
	definition.
	(openvrml::operator==(const mfcolorrgba &, const mfcolorrgba &)):
	Added function definition.
	(openvrml::operator!=(const mfcolorrgba &, const mfcolorrgba &)):
	Added function definition.
	(openvrml::mfimage::field_value_type_id): Added static member
	definition.
	(openvrml::mfimage::mfimage(value_type::size_type, const image&)):
	Added function definition.
	(openvrml::mfimage::mfimage(const value_type &)): Added function
	definition.
	(openvrml::mfimage::mfimage(const mfimage &)): Added function
	definition.
	(openvrml::mfimage::~mfimage()): Added function definition.
	(openvrml::mfimage::operator=(const mfimage &)): Added function
	definition.
	(openvrml::mfimage::value() const): Added function definition.
	(openvrml::mfimage::value(const value_type &)): Added function
	definition.
	(openvrml::mfimage::swap(mfimage &)): Added function definition.
	(openvrml::mfimage::do_clone() const): Added function definition.
	(openvrml::mfimage::do_assign(const field_value &)): Added
	function definition.
	(openvrml::mfimage::type_id() const): Added function definition.
	(openvrml::mfimage::print(std::ostream &) const): Added function
	definition.
	(openvrml::operator==(const mfimage &, const mfimage &)): Added
	function definition.
	(openvrml::operator!=(const mfimage &, const mfimage &)): Added
	function definition.
	* src/libopenvrml/openvrml/field_value.h
	(openvrml::field_value::type_id): Added enumerants sfcolorrgba_id,
	mfbool_id, mfcolorrgba_id, and mfimage_id.
	(openvrml::sfcolorrgba): Added class definition.
	(openvrml::operator==(const sfcolorrgba &, const sfcolorrgba &)):
	Added function declaration.
	(openvrml::operator!=(const sfcolorrgba &, const sfcolorrgba &)):
	Added function declaration.
	(openvrml::mfbool): Added class definition.
	(openvrml::operator==(const mfbool &, const mfbool &)): Added
	function declaration.
	(openvrml::operator!=(const mfbool &, const mfbool &)): Added
	function declaration.
	(openvrml::mfcolorrgba): Added class definition.
	(openvrml::operator==(const mfcolorrgba &, const mfcolorrgba &)):
	Added function declaration.
	(openvrml::operator!=(const mfcolorrgba &, const mfcolorrgba &)):
	Added function declaration.
	(openvrml::mfimage): Added class definition.
	(openvrml::operator==(const mfimage &, const mfimage &)): Added
	function declaration.
	(openvrml::operator!=(const mfimage &, const mfimage &)): Added
	function declaration.
	(std::swap(openvrml::sfcolorrgba &, openvrml::sfcolorrgba &)):
	Added function definition.
	(std::swap(openvrml::mfbool &, openvrml::mfbool &)): Added
	function definition.
	(std::swap(openvrml::mfcolorrgba &, openvrml::mfcolorrgba &)):
	Added function definition.
	(std::swap(openvrml::mfimage &, openvrml::mfimage &)): Added
	function definition.
	* src/libopenvrml/openvrml/node.cpp
	(print_field_::operator()(const openvrml::node_interface &)
	const): Added cases for sfcolorrgba, mfbool, mfcolorrgba, and
	mfimage.
	(openvrml::add_route(node &, const std::string &, node &, const
	std::string &)): Added cases for sfcolorrgba, mfbool, mfcolorrgba,
	and mfimage.
	(openvrml::delete_route(node &, const std::string &, node &, const
	std::string &)): Added cases for sfcolorrgba, mfbool, mfcolorrgba,
	and mfimage.
	* src/libopenvrml/openvrml/node.h
	(openvrml::node): Added friends field_value_listener<sfcolorrgba>,
	field_value_listener<mfbool>, field_value_listener<mfcolorrgba>,
	field_value_listener<mfimage>, exposedfield<sfcolorrgba>,
	exposedfield<mfbool>, exposedfield<mfcolorrgba>,
	exposedfield<mfimage>.
	* src/libopenvrml/openvrml/script.cpp
	(openvrml::script::process_direct_output(double)): Added cases for
	sfcolorrgba, mfbool, mfcolorrgba, and mfimage.
	(openvrml::script_node::create_listener(field_value::type_id,
	const std::string &, script_node &)): Added cases for sfcolorrgba,
	mfbool, mfcolorrgba, and mfimage.
	(openvrml::script_node::create_emitter(script_node &, const
	openvrml::field_value &)): Added cases for sfcolorrgba, mfbool,
	mfcolorrgba, and mfimage.
	(js_::MFBool): Added class definition.
	(js_::script::vrmlFieldToJSVal(const openvrml::field_value &)):
	Added case for mfbool.
	(js_::createFieldValueFromJsval(JSContext *, jsval,
	openvrml::field_value::type_id)): Added case for mfbool.
	(js_::MFBool::jsclass): Added static member definition.
	(js_::MFBool::createFromJSObject(JSContext *, JSObject *)): Added
	function definition.
	(js_::MFBool::toJsval(const std::vector<bool> &, JSContext *,
	JSObject *, jsval *)): Added function definition.
	(js_::MFBool::construct(JSContext *, JSObject *, uintN, jsval *,
	jsval *)): Added function definition.
	(js_::MFBool::initObject(JSContext *, JSObject *, uintN, jsval*)):
	Added function definition.
	(js_::MFBool::setElement(JSContext *, JSObject *, jsval, jsval*)):
	Added function definition.
	(js_::MFBool::setLength(JSContext *, JSObject *, jsval, jsval *)):
	Added function definition.
	(js_::MFBool::toString(JSContext *, JSObject *, uintN, jsval *,
	jsval *)): Added function definition.
	(js_::MFBool::finalize(JSContext *, JSObject *)): Added function
	definition.
	* src/libopenvrml/openvrml/script.h
	(openvrml::script_node): Added typedefs for sfcolorrgba_listener,
	mfbool_listener, mfcolorrgba_listener, and mfimage_listener.

2005-12-05 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/basetypes.cpp: Doc-comment
	improvements--stop faking em-dash.

2005-12-05 Braden McDaniel  <braden@endoframe.com>

	* java/vrml/field/Makefile.am (JAVA_FILES): Added SFVec2d.java,
	SFVec3d.java, MFVec2d.java, MFVec3d.java, ConstSFVec2d.java,
	ConstSFVec3d.java, ConstMFVec2d.java, and ConstMFVec3d.java.

2005-12-05 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/script.cpp: Doc-comment improvements.

2005-12-05 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/node.cpp: Doc-comment improvements.

2005-12-05 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::abstract_proto_node::create_eventin): Added missing
	case for mfdouble.
	From Andrew Grieve <sgrieve@users.sourceforge.net>

2005-12-05 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/basetypes.cpp
	(openvrml::image::pixel(size_t, size_t)): Fixed doc-comment.
	(openvrml::image::pixel(size_t, size_t, unsigned_long)): Fixed
	doc-comment.

2005-12-05 Braden McDaniel  <braden@endoframe.com>

	* java/Makefile.am: List Java class files in CLASSES variable.

2005-11-30 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/basetypes.cpp
	(openvrml::image::image()): Fixed missing colon before member
	initializer list.

2005-11-30 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/basetypes.cpp
	(openvrml::image::image()): Initialize members.
	From Andrew Grieve <sgrieve@users.sourceforge.net>

2005-11-29 Braden McDaniel  <braden@endoframe.com>

	Refactored Vrml97Parser::sfImageValue such that actual parsing of
	the image occurs in the Vrml97Parser::imageValue production.

	* src/libopenvrml/openvrml/Vrml97Parser.g
	(Vrml97Parser::sfImageValue): Refactored the guts of this to the
	Vrml97Parser::imageValue production.
	(Vrml97Parser::imageValue): Added production.

2005-11-29 Braden McDaniel  <braden@endoframe.com>

	Use unsigned long for openvrml::image pixel accessors/mutators.
	Fixed problem with openvrml::image's stream output operator.

	* src/libopenvrml/openvrml/basetypes.cpp
	(openvrml::operator<<(std::ostream &, const openvrml::image &)):
	Use openvrml::image::pixel accessor.
	* src/libopenvrml/openvrml/basetypes.h
	(openvrml::image::pixel(size_t)): Return unsigned long instead of
	openvrml::int32.
	(openvrml::image::pixel(size_t, unsigned long)): Changed argument
	type from openvrml::int32 to unsigned long.
	(openvrml::image::pixel(size_t, size_t)): Return unsigned long
	instead of openvrml::int32.
	(openvrml::image::pixel(size_t, size_t, unsigned long)): Changed
	argument type from openvrml::int32 to unsigned long.

2005-11-29 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::browser::load_url): Call register_node_classes here
	since the node_class_map constructor doesn't do it anymore.

2005-11-29 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/Vrml97Parser.g
	(Vrml97Parser::intValue): Read a hexadecimal integer into an
	unsigned value and convert it to an openvrml::int32.  The VRML97
	grammar includes a notion of signed hexadecimal integers; but this
	doesn't make a lot of sense.

2005-11-29 Braden McDaniel  <braden@endoframe.com>

	Changed register_node_classes to use
	openvrml::browser::add_node_class.

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::browser::node_class_map::node_class_map): Removed
	openvrml::browser argument; do not call register_node_classes
	here.
	(openvrml::browser::browser(std::ostream &, std::ostream &)):
	Removed explicit call to openvrml::browser::node_class_map
	constructor; call register_node_classes here.
	(openvrml::browser::browser(openvrml::profile_id, std::ostream &, std::ostream &)):
	Removed explicit call to openvrml::browser::node_class_map
	constructor; call register_node_classes here.
	(openvrml::browser::load_url): Changed call to
	openvrml::browser::node_class_map constructor.
	* src/libopenvrml/openvrml/browser.h: Changed
	openvrml::browser::node_class_map constructor not to take an
	argument.
	* src/libopenvrml/openvrml/vrml97node.cpp
	(register_node_classes): Use openvrml::browser::add_node_class
	instead of directly using a node_class map.
	* src/libopenvrml/openvrml/vrml97node.h: Changed
	register_node_classes not to take a node_class_map argument.

2005-11-28 Braden McDaniel  <braden@endoframe.com>

	Doc-comment fixes.

	* src/libopenvrml/openvrml/basetypes.cpp
	* src/libopenvrml/openvrml/browser.cpp

2005-11-28 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/event.h: Removed spurious member
	openvrml::event_listener::node_.

2005-11-28 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/node_impl_util.cpp: Added doc-comment
	for openvrml::node_impl_util::abstract_node::sfint32_emitter.

2005-11-28 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/node_impl_util.h: Added omitted typedef
	for openvrml::node_impl_util::abstract_node::sfint32_emitter.
	From Andrew Grieve <sgrieve@users.sourceforge.net>

2005-11-28 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/node_impl_util.cpp: Doc-comment fix.

2005-11-28 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp
	(externproto_node_class::externproto_node_class): Can throw
	boost::thread_resource_error.

2005-11-28 Braden McDaniel  <braden@endoframe.com>

	Doc-comment improvements.

	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/vrml97node.cpp

2005-11-28 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp
	(externproto_node::set_proto_node): Changed proto_eventin to
	eventin and proto_eventout to eventout; required for Microsoft cl
	13.10.3077.

2005-11-27 Braden McDaniel  <braden@endoframe.com>

	Load EXTERNPROTO implementations (asynchronously).

	* src/libopenvrml/openvrml/browser.cpp: Modified
	externproto_node::externproto_exposedfield to inherit
	abstract_proto_node::proto_eventout rather than
	openvrml::field_value_emitter.  Implemented do_clone for
	externproto_node::externproto_exposedfield.  For externproto_node,
	implemented do_shutdown as well as all the virtual cast functions.
	Constructing an externproto_node_class now initiates a new thread
	using the function object externproto_node_class::load_proto.
	This parses the VRML world at the given URI which incidentally
	puts any PROTOs in that world into the browser's node_class map.
	At that point externproto_node_class::set_proto_node_class is
	called, which sets the proto_node_class to which the
	externproto_node_class will delegate.
	externproto_node_class::set_proto_node_class in turn calls
	externproto_node_type::set_proto_node_type which provides the
	externproto_node_type with the proto_node_type to which it
	delegates.  And finally externproto_node_type::set_proto_node_type
	calls externproto_node::set_proto_node which provides the
	externproto_node with the proto_node to which it delegates.

2005-11-27 Braden McDaniel  <braden@endoframe.com>

	Don't try to use relative URIs as node_class_id's.

	* src/libopenvrml/openvrml/Vrml97Parser.g
	(Vrml97Parser::proto): If the PROTO is the first one in the
	stream, add the proto_node_class to the browser using the URI of
	the resource without the fragment identifier; that is, the
	proto_node_class is added to the browser twice under both
	<http://example.com/world#proto-name> and
	<http://example.com/world>.
	(Vrml97Parser::externproto): If the implementation identifier for
	the EXTERNPROTO is a relative URI, convert it to an absolute URI
	before using it to attempt to retrieve a node_class from the
	browser. Also, convert any relative URIs to absolute URIs before
	adding externproto_node_classes to the browser.

2005-11-27 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/Vrml97Parser.g: Cosmetic changes.

2005-11-27 Braden McDaniel  <braden@endoframe.com>

	externproto_node_class will need to be constructed with an
	openvrml::scene rather than an openvrml::browser.

	* src/libopenvrml/openvrml/Vrml97Parser.g
	(Vrml97Parser::vrmlScene): Pass an openvrml::scene to the
	statement production.
	(Vrml97Parser::statement): Take an openvrml::scene argument
	instead of an openvrml::browser; pass the scene to the
	nodeStatement and protoStatement productions.
	(Vrml97Prser::nodeStatement): Take an openvrml::scene argument
	instead of an openvrml::browser; pass the scene to the node
	production.
	(Vrml97Parser::protoStatement): Take an openvrml::scene argument
	instead of an openvrml::browser; pass the scene to the externproto
	and proto productions.
	(Vrml97Parser::proto): Take an openvrml::scene argument instead of
	an openvrml::browser; pass the scene to the
	protoInterfaceDeclaration and protoBody productions.
	(Vrml97Parser::protoInterfaceDeclaration): Take an openvrml::scene
	argument instead of an openvrml::browser; pass the scene to the
	fieldValue production.
	(Vrml97Parser::protoBody): Take an openvrml::scene argument
	instead of an openvrml::browser; pass the scene to the
	protoStatement, protoNodeStatement, and protoBodyStatement
	productions.
	(Vrml97Parser::protoBodyStatement): Take an openvrml::scene
	argument instead of an openvrml::browser; pass the scene to the
	protoNodeStatement and protoStatement productions.
	(Vrml97Parser::protoNodeStatement): Take an openvrml::scene
	argument instead of an openvrml::browser; pass the scene to the
	protoNode production.
	(Vrml97Parser::externproto): Take an openvrml::scene argument
	instead of an openvrml::browser; construct externproto_node_class
	with the scene.
	(Vrml97Parser::node): Take an openvrml::scene argument instead of
	an openvrml::browser; pass the scene to the nodeBodyElement and
	scriptInterfaceDeclaration productions.
	(Vrml97Parser::nodeBodyElement): Take an openvrml::scene argument
	instead of an openvrml::browser; pass the scene to the fieldValue
	and protoStatement productions.
	(Vrml97Parser::scriptInterfaceDeclaration): Take an
	openvrml::scene argument instead of an openvrml::browser; pass the
	scene to the scriptFieldInterfaceDeclaration production.
	(Vrml97Parser::scriptFieldInterfaceDeclaration): Take an
	openvrml::scene argument instead of an openvrml::browser; pass the
	scene to the fieldValue production.
	(Vrml97Parser::protoNode): Take an openvrml::scene argument
	instead of an openvrml::browser; pass the scene to the
	protoNodeBodyElement and protoScriptInterfaceDeclaration
	productions.
	(Vrml97Parser::protoNodeBodyElement): Take an openvrml::scene
	argument instead of an openvrml::browser; pass the scene to the
	protoFieldValue and protoStatement productions.
	(Vrml97Parser::protoScriptInterfaceDeclaration): Take an
	openvrml::scene argument instead of an openvrml::browser; pass the
	scene to the protoScriptFieldInterfaceDeclaration.
	(Vrml97Parser::protoScriptFieldInterfaceDeclaration): Take an
	openvrml::scene argument instead of an openvrml::browser; pass the
	scene to the protoFieldValue production.
	(Vrml97Parser::fieldValue): Take an openvrml::scene argument
	instead of an openvrml::browser; pass the scene to the
	nodeFieldValue production.
	(Vrml97Parser::protoFieldValue): Take an openvrml::scene argument
	instead of an openvrml::browser; pass the scene to the
	protoNodeFieldValue production.
	(Vrml97Parser::nodeFieldValue): Take an openvrml::scene argument
	instead of an openvrml::browser; pass the scene to the sfNodeValue
	and mfNodeValue productions.
	(Vrml97Parser::protoNodeFieldValue): Take an openvrml::scene
	argument instead of an openvrml::browser; pass the scene to the
	protoSfNodeValue and protoMfNodeValue productions.
	(Vrml97Parser::sfNodeValue): Take an openvrml::scene argument
	instead of an openvrml::browser; pass the scene to the
	nodeStatement production.
	(Vrml97Parser::protoSfNodeValue): Take an openvrml::scene argument
	instead of an openvrml::browser; pass the scene to the
	protoNodeStatement production.
	(Vrml97Parser::mfNodeValue): Take an openvrml::scene argument
	instead of an openvrml::browser; pass the scene to the
	nodeStatement production.
	(Vrml97Parser::protoMfNodeValue): Take an openvrml::scene argument
	instead of an openvrml::browser; pass the scene to the
	protoNodeStatement production.
	* src/libopenvrml/openvrml/Vrml97Parser.g
	(X3DVrmlParser::vrmlScene): pass the scene to the statement
	production.
	* src/libopenvrml/openvrml/browser.cpp
	(externproto_node_class::externproto_node_class): Change to take
	an openvrml::scene instead of an openvrml::browser.

2005-11-27 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/openvrml-player/player.cpp: Include OpenVRML
	headers before X11 headers.  This avoids a conflict between the
	X11 headers and Boost headers.  From Simon Barner
	<barner@users.sourceforge.net>

2005-11-27 Braden McDaniel  <braden@endoframe.com>

	Changed error messages not to look so much like sentences.

	* src/libopenvrml/openvrml/Vrml97Parser.g
	* src/libopenvrml/openvrml/X3DVrmlParser.g
	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/vrml97node.cpp

2005-11-26 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp: Moved implementations of
	member functions for externproto_node_class,
	externproto_node_type, and externproto_node after Vrml97Parser and
	X3DVrmlParser have been included.

2005-11-26 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::proto_node::create_exposedfield): Take a proto_node as
	an argument rather than an abstract_proto_node.

2005-11-26 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp: Moved
	openvrml::abstract_proto_node::proto_exposedfield to
	openvrml::proto_node::proto_exposedfield.  externproto_node
	doesn't need this.

2005-11-26 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp: Doc-comment fixes.

2005-11-26 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp: Moved
	::proto_node_class::proto_node_type to ::proto_node_type.

2005-11-26 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp: Removed trailing
	whitespace.

2005-11-26 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp (create_root_scope): Take a
	reference to a const openvrml::browser as an argument.

2005-11-26 Braden McDaniel  <braden@endoframe.com>

	Made create_root_scope a nonmember function.

	* src/libopenvrml/openvrml/Vrml97Parser.g
	(Vrml97Parser::vrmlScene): Changed to use ::create_root_scope.
	* src/libopenvrml/openvrml/X3DVrmlParser.g
	(X3DVrmlParser::vrmlScene): Changed to use ::create_root_scope.
	* src/libopenvrml/openvrml/browser.cpp: Made create_root_scope a
	nonmember function.
	* src/libopenvrml/openvrml/browser.h: Removed
	openvrml::browser::create_root_scope.

2005-11-26 Braden McDaniel  <braden@endoframe.com>

	Exposed means to add and retrieve node_classes from the browser's
	node_class map as part of openvrml::browser's public interface.

	* src/libopenvrml/openvrml/Vrml97Parser.g
	(Vrml97Parser::proto): Fixed composition of impl_id; use
	openvrml::browser::add_node_class instead of
	openvrml::browser::node_class_map::insert.
	(Vrml97Parser::externproto): Use openvrml::browser::node_class
	instead of openvrml::browser::node_class_map::find; use
	openvrml::browser::add_node_class instead of
	openvrml::browser::node_class_map::insert.
	* src/libopenvrml/openvrml/browser.cpp
	(relative): Added function to check whether a URI is relative.
	(uri::resolve_against): Changed to use relative.
	(openvrml::node_class_id::node_class_id(const char *)): Added
	constructor.
	(openvrml::node_class_id::node_class_id(const std::string &)):
	Added constructor.
	(openvrml::node_class_id::operator std::string): Added conversion
	operator.
	(openvrml::browser::node_class_map::remove): Added function to
	remove a node_class from the map.
	(openvrml::browser::add_node_class): Added function to add a
	node_class to the browser's node_class map.
	(openvrml::browser::node_class): Added function to retrieve a
	node_class from the browser's node_class map.
	(create_file_url): Changed to use relative.
	(openvrml::scene::load_url): Changed to use relative.
	(openvrml::scene::get_resource): Changed to use relative.
	* src/libopenvrml/openvrml/browser.h: Added class
	openvrml::node_class_id; added functions
	openvrml::browser::node_class_map::remove,
	openvrml::browser::add_node_class, openvrml::browser::node_class.

2005-11-26 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp: Doc-comment improvements.

2005-11-26 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/vrml97node.cpp
	(shape_node::do_render_child): Set the modified flag for the
	geometry node if the appearance has been modified.

2005-11-21 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp
	(proto_node::modified): Implemented "modified" virtual function.
	Delegates to the first implementation node.

2005-11-21 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/vrml97node.cpp
	(appearance_node::do_render_appearance): Removed call to
	this->node::modified(false).  This is taken care of in
	openvrml::appearance_node::render_appearance.

2005-11-21 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/node.cpp: Doc-comment improvements.

2005-11-14 Braden McDaniel  <braden@endoframe.com>

	Project file updates.

	* ide-projects/Windows/VisualC7_1/OpenVRML/OpenVRML.sln: Added
	README, ChangeLog, etc. to solution.
	* ide-projects/Windows/VisualC7_1/OpenVRML/antlr/antlr.vcproj:
	* ide-projects/Windows/VisualC7_1/OpenVRML/openvrml/openvrml.vcproj
	* ide-projects/Windows/VisualC7_1/OpenVRML/openvrml-gl/openvrml-gl.vcproj
	* ide-projects/Windows/VisualC7_1/OpenVRML/sdl-viewer/sdl-viewer.vcproj
	* ide-projects/Windows/VisualC7_1/OpenVRML/test-openvrml/test-openvrml.vcproj:
	Added file.


2005-11-14 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/node_impl_util.h
	(openvrml::node_impl_util::event_listener_base::event_listener_equal_to::operator()):
	static_cast the lhs of the comparison to
	openvrml::event_listener*.  Microsoft cl 13.10.3077 appears to
	have a bug with virtual inheritance and requires this static_cast
	to generate the correct code.  Without the static_cast, the
	comparison will never be true.

2005-11-14 Braden McDaniel  <braden@endoframe.com>

	Project file updates.

	* ide-projects/Windows/VisualC7_1/OpenVRML/antlr/antlr.vcproj
	* ide-projects/Windows/VisualC7_1/OpenVRML/openvrml/openvrml.vcproj
	* ide-projects/Windows/VisualC7_1/OpenVRML/openvrml-gl/openvrml-gl.vcproj
	* ide-projects/Windows/VisualC7_1/OpenVRML/sdl-viewer/sdl-viewer.vcproj

2005-11-14 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/field_value.h:  Quell warnings from
	the Microsoft compiler.

2005-11-14 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/node.cpp:  Initialize
	openvrml::node::ref_count_ to 0.

2005-11-14 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.h:  Declare
	openvrml::browser::vrml_from_url_creator as a struct for
	consistency with its definition.

2005-11-07 Braden McDaniel  <braden@endoframe.com>

	Support parsing nodes from unrecognized EXTERNPROTOs.

	* src/libopenvrml/openvrml/Vrml97Parser.g
	* src/libopenvrml/openvrml/browser.cpp
	* tests/testsuite.at

2005-11-05 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/Makefile.am:  List antlr-generated sources
	in BUILT_SOURCES.

2005-11-04 Braden McDaniel  <braden@endoframe.com>

	Removed conversions from double-precision floating point types
	to single-precision ones.

	* src/libopenvrml/openvrml/field_value.cpp
	* src/libopenvrml/openvrml/field_value.h

2005-11-04 Braden McDaniel  <braden@endoframe.com>

	* tests/browser.cpp (create_vrml_from_url):  Now that listeners
	aren't required to be nodes, the browser::create_vrml_from_url
	test can be modified to use a condition variable rather than a
	hackish sleep.

2005-11-04 Braden McDaniel  <braden@endoframe.com>

	Generate the antlr-generated sources as part of the build rather
	than storing them in the repository.  These changes should
	continue to include these generated files in release tarballs;
	so release tarball users will not need to have antlr installed.

	* configure.ac:  Call OV_PROG_ANTLR.
	* m4/antlr:  Added file.  OV_PROG_ANTLR macro.
	* src/libopenvrml/Makefile.am:  Added make rules to build the
	antlr-generated sources.
	* src/libopenvrml/openvrml/Vrml97Parser.cpp:  Removed file.
	* src/libopenvrml/openvrml/Vrml97Parser.hpp:  Removed file.
	* src/libopenvrml/openvrml/Vrml97ParserTokenTypes.hpp:  Removed
	file.
	* src/libopenvrml/openvrml/Vrml97ParserTokenTypes.txt:  Removed
	file.
	* src/libopenvrml/openvrml/X3DVrmlParser.cpp:  Removed file.
	* src/libopenvrml/openvrml/X3DVrmlParser.hpp:  Removed file.
	* src/libopenvrml/openvrml/X3DVrmlParserTokenTypes.hpp:  Removed
	file.
	* src/libopenvrml/openvrml/X3DVrmlParserTokenTypes.txt:  Removed
	file.

2005-11-03 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::browser::create_root_scope):  Removed helper class
	vrml97_node_interface_set_.  This class was probably rendered
	unnecessary when openvrml::node_interface_set was changed from
	a class to a typedef of an instance of std::set.

2005-11-03 Braden McDaniel  <braden@endoframe.com>

	Added std::swap specializations for sf* field_value types.

	* src/libopenvrml/openvrml/field_value.cpp
	* src/libopenvrml/openvrml/field_value.h

2005-11-02 Braden McDaniel  <braden@endoframe.com>

	Added bits missing for sfdouble, mfdouble, sfvec2d, mfvec2d,
	sfvec3d, and mfvec3d.

	* src/libopenvrml/openvrml/event.cpp:  Added missing doc-
	comments.
	* src/libopenvrml/openvrml/field_value.cpp:  Added missing doc-
	comments.
	* src/libopenvrml/openvrml/field_value.h:  Added specializations
	of std::swap for sfdouble, mfdouble, sfvec2d, mfvec2d, sfvec3d,
	and mfvec3d.
	* src/libopenvrml/openvrml/node_impl_util.cpp:  Added missing
	doc-comments.
	* src/libopenvrml/openvrml/node_impl_util.h:  Added missing
	typedefs for abstract_node event_emitters.

2005-11-02 Braden McDaniel  <braden@endoframe.com>

	Doc-comment improvements.

	* src/libopenvrml/openvrml/field_value.cpp
	* src/libopenvrml/openvrml/node.cpp

2005-11-02 Braden McDaniel  <braden@endoframe.com>

	field_value's reference-counted value object needs to be
	protected by a mutex.

	* src/libopenvrml/openvrml/field_value.cpp
	* src/libopenvrml/openvrml/field_value.h

2005-11-02 Braden McDaniel  <braden@endoframe.com>

	Factored node-specific parts of event_listener into their own
	class.  This should accommodate things other than nodes being
	event listeners.

	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/event.cpp
	* src/libopenvrml/openvrml/event.h
	* src/libopenvrml/openvrml/exposedfield.h
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node_impl_util.cpp
	* src/libopenvrml/openvrml/node_impl_util.h
	* src/libopenvrml/openvrml/script.cpp
	* src/libopenvrml/openvrml/script.h
	* src/libopenvrml/openvrml/vrml97node.cpp

2005-11-01 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/node_impl_util.cpp:  Improved
	documentation for openvrml::node_impl_util namespace.

2005-10-29 Braden McDaniel  <braden@endoframe.com>

	Use an intrusive reference count for nodes instead of node_ptr.
	boost::intrusive_ptr is now used as a smart pointer for nodes.

	* doc/Makefile.am:  Removed references to node_ptr.cpp and
	node_ptr.h.
	* mozilla-plugin/src/openvrml-player/player.cpp
	* src/libopenvrml/Makefile.am:  Removed references to
	node_ptr.cpp and node_ptr.h.
	* src/libopenvrml/openvrml/Vrml97Parser.cpp
	* src/libopenvrml/openvrml/Vrml97Parser.g
	* src/libopenvrml/openvrml/Vrml97Parser.hpp
	* src/libopenvrml/openvrml/X3DVrmlParser.cpp
	* src/libopenvrml/openvrml/X3DVrmlParser.g
	* src/libopenvrml/openvrml/X3DVrmlParser.hpp
	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/browser.h
	* src/libopenvrml/openvrml/field_value.cpp
	* src/libopenvrml/openvrml/field_value.h
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node.h
	* src/libopenvrml/openvrml/node_impl_util.cpp
	* src/libopenvrml/openvrml/node_impl_util.h
	* src/libopenvrml/openvrml/node_ptr.cpp:  Removed file.
	* src/libopenvrml/openvrml/node_ptr.h:  Removed file.
	* src/libopenvrml/openvrml/script.cpp
	* src/libopenvrml/openvrml/script.h
	* src/libopenvrml/openvrml/vrml97node.cpp
	* tests/browser.cpp
	* tests/parse_anchor.cpp

2005-10-29 Braden McDaniel  <braden@endoframe.com>

	* doc/doxygen-header:  import "tabs.css" generated by
	doxygen 1.4.5.

2005-10-28 Braden McDaniel  <braden@endoframe.com>

	Removed obsolete test.

	* tests/Makefile.am
	* tests/browser_basic.cpp:  Removed file.

2005-10-28 Braden McDaniel  <braden@endoframe.com>

	Updated tests to reflect change to openvrml::browser constructor
	to take an openvrml::profile_id.

	* tests/browser.cpp
	* tests/parse.cpp
	* tests/parse_anchor.cpp
	* tests/test_browser.cpp
	* tests/test_browser.h

2005-10-27 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/field_value.h:  Removed unnecessary
	"explicit" keyword.

2005-10-27 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/field_value.cpp:  Added doc-comment
	for openvrml::field_value::value_type_constructor_tag.

2005-10-24 Braden McDaniel  <braden@endoframe.com>

	* ide-projects/Windows/VisualC7_1/OpenVRML/openvrml/openvrml.vcproj:
	Added node_impl_util.cpp, node_impl_util.h to the project;
	disabled debug information when building vrml97node.cpp--
	otherwise the compiler will not build it.

2005-10-24 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::browser::node_class_map::operator=):  The Microsoft
	compiler does not like "map" used as an argument name here.
	* src/libopenvrml/openvrml/browser.h

2005-10-23 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/node_impl_util.cpp:  Doc-comment
	fixes.

2005-10-23 Braden McDaniel  <braden@endoframe.com>

	Moved utility classes to assist implementation of nodes to the
	openvrml::node_impl_util namespace.

	* doc/Makefile.am:  Added node_impl_util.cpp and
	node_impl_util.h as prerequisites.
	* src/libopenvrml/Makefile.am
	* src/libopenvrml/private.h:  Moved polymorphic_ptr_to_mem and
	polymorphic_ptr_to_mem_impl class templates to the
	openvrml::node_impl_util namespace.
	* src/libopenvrml/openvrml/node_impl_util.cpp:  Added file.
	* src/libopenvrml/openvrml/node_impl_util.h:  Added file.
	* src/libopenvrml/openvrml/vrml97node.cpp:  Moved utility
	classes to assist implementation of nodes to the
	openvrml::node_impl_util namespace.

2005-10-23 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/field_value.cpp:  Removed #if 0'd
	code.

2005-10-23 Braden McDaniel  <braden@endoframe.com>

	Gave field_value classes copy-on-write semantics.

	* src/libopenvrml/openvrml/Vrml97Parser.cpp
	* src/libopenvrml/openvrml/Vrml97Parser.g
	* src/libopenvrml/openvrml/X3DVrmlParser.cpp
	* src/libopenvrml/openvrml/X3DVrmlParser.g
	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/field_value.cpp
	* src/libopenvrml/openvrml/field_value.h
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node.h
	* src/libopenvrml/openvrml/script.cpp
	* src/libopenvrml/openvrml/vrml97node.cpp

2005-10-23 Braden McDaniel  <braden@endoframe.com>

	* doc/Doxyfile:  Ignore X3DVrmlParser source files.

2005-10-23 Braden McDaniel  <braden@endoframe.com>

	Clean up of clean up.

	* src/libopenvrml/openvrml/X3DVrmlParser.cpp
	* src/libopenvrml/openvrml/X3DVrmlParser.g

2005-10-23 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/basetypes.cpp:  Doc-comment fixes.

2005-10-23 Braden McDaniel  <braden@endoframe.com>

	Code clean up; fixed some variable names.

	* src/libopenvrml/openvrml/X3DVrmlParser.cpp
	* src/libopenvrml/openvrml/X3DVrmlParser.g

2005-10-23 Braden McDaniel  <braden@endoframe.com>

	Concrete exposedfields need to implement
	openvrml::field_value::do_clone.

	* src/libopenvrml/openvrml/exposedfield.cpp
	* src/libopenvrml/openvrml/exposedfield.h
	* src/libopenvrml/openvrml/vrml97node.cpp

2005-10-07 Braden McDaniel  <braden@endoframe.com>

	Add double-precision field types and initial support for parsing
	VRML-encoded X3D.  In its current form, the X3D parser will always
	fail; correcting this depends on adding support for, at least, the
	nodes in X3D's Core profile.  From Andrew Grieve
	<sgrieve@users.sourceforge.net>

	* java/Makefile.am
	* java/vrml/field/ConstMFDouble.java:  Added file.
	* java/vrml/field/ConstMFVec2d.java:  Added file.
	* java/vrml/field/ConstMFVec3d.java:  Added file.
	* java/vrml/field/ConstSFDouble.java:  Added file.
	* java/vrml/field/ConstSFVec2d.java:  Added file.
	* java/vrml/field/ConstSFVec3d.java:  Added file.
	* java/vrml/field/MFDouble.java:  Added file.
	* java/vrml/field/MFVec2d.java:  Added file.
	* java/vrml/field/MFVec3d.java:  Added file.
	* java/vrml/field/SFDouble.java:  Added file.
	* java/vrml/field/SFVec2d.java:  Added file.
	* java/vrml/field/SFVec3d.java:  Added file.
	* src/libopenvrml/Makefile.am
	* src/libopenvrml/openvrml/ScriptJDK.cpp:  Added Java bindings
	for SFDouble, MFDouble, SFVec2d, MFVec2d, SFVec3d, and MFVec3d.
	* src/libopenvrml/openvrml/Vrml97Parser.cpp
	* src/libopenvrml/openvrml/Vrml97Parser.g:  Modified
	Vrml97Parser.vrmlScene to take an openvrml::scene rather than an
	openvrml::browser.  Made Vrml97Scanner::identifyKeyword and
	Vrml97Scanner::identifyFieldType protected and virtual.  Added
	protected member function Vrml97Scanner::expectFieldType.
	* src/libopenvrml/openvrml/Vrml97Parser.hpp
	* src/libopenvrml/openvrml/X3DVrmlParser.cpp:  Added file.
	* src/libopenvrml/openvrml/X3DVrmlParser.g:  Added file.
	* src/libopenvrml/openvrml/X3DVrmlParser.hpp:  Added file.
	* src/libopenvrml/openvrml/X3DVrmlParserTokenTypes.hpp:  Added
	file.
	* src/libopenvrml/openvrml/X3DVrmlParserTokenTypes.txt:  Added
	file.
	* src/libopenvrml/openvrml/X3DVrmlTokenTypes.txt:  Added file.
	* src/libopenvrml/openvrml/basetypes.cpp:  Added openvrml::vec2d
	and openvrml::vec3d types.  openvrml::vec2f and openvrml::vec2d
	are now instantiations of the openvrml::vec2 class template; and
	openvrml::vec3f and openvrml::vec3d are now instantiations of
	the openvrml::vec3 class template.  These templates are not
	intended to be instantiated outside libopenvrml.
	* src/libopenvrml/openvrml/basetypes.h:  Added openvrml::vec2d
	and openvrml::vec3d types.  openvrml::vec2f and openvrml::vec2d
	are now instantiations of the openvrml::vec2 class template; and
	openvrml::vec3f and openvrml::vec3d are now instantiations of
	the openvrml::vec3 class template.  These templates are not
	intended to be instantiated outside libopenvrml.
	* src/libopenvrml/openvrml/browser.cpp
	(proto_node::create_eventin, proto_node::eventin_is):  Added
	support for double-precision field types.
	(openvrml::browser::browser):  Instantiate the initial scene
	with openvrml::invalid_profile_id.  Allow specification of the
	root scene profile via the browser constructor.
	(openvrml::browser::create_vrml_from_stream):  Select a parser
	based on the root scene profile.
	(openvrml::scene::scene):  Allow specification of the scene
	profile.
	(openvrml::scene::profile):  Added accessor.
	(openvrml::scene::load_scene::operator()):  Select a parser
	based on the media type of the stream.
	* src/libopenvrml/openvrml/browser.h:  Added
	openvrml::bad_media_type exception.  Added openvrml::profile_id
	enumerated type.  Added openvrml::invalid_profile exception.
	openvrml::browser and openvrml::scene can now be constructed
	with an openvrml::profile_id; added openvrml::scene::profile
	accessor.
	* src/libopenvrml/openvrml/event.h:  Added field_value_emitter
	typedefs for double-precision types.
	* src/libopenvrml/openvrml/field_value.cpp:  Added double-
	precision field types openvrml::sfdouble, openvrml::mfdouble,
	openvrml::sfvec2d, openvrml::mfvec2d, openvrml::sfvec3d,
	and openvrml::mfvec3d.
	* src/libopenvrml/openvrml/field_value.h:  Added double-
	precision field types openvrml::sfdouble, openvrml::mfdouble,
	openvrml::sfvec2d, openvrml::mfvec2d, openvrml::sfvec3d,
	and openvrml::mfvec3d.
	* src/libopenvrml/openvrml/node.cpp:  Added support for double-
	precision types to openvrml::add_route and
	openvrml::delete_route.
	* src/libopenvrml/openvrml/node.h:  Added friend declarations
	for double-precision listeners and exposedfields.
	* src/libopenvrml/openvrml/script.cpp:  Added JavaScript
	bindings for SFDouble, MFDouble, SFVec2d, MFVec2d, SFVec3d, and
	MFVec3d.
	* src/libopenvrml/openvrml/script.h:  Added
	script_event_listener typedefs for double-precision types.

2005-09-11 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp:  Applied OPENVRML_LOCAL
	to classes in unnamed namespaces.

2005-09-11 Braden McDaniel  <braden@endoframe.com>

	Added openvrml::node_traverser::traversed function.  This allows
	an openvrml::node_traverser subclass to determine whether a node
	has already been traversed.

	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node.h

2005-09-11 Braden McDaniel  <braden@endoframe.com>

	* tests/Makefile.am:  Use check_ instead of noinst_ for test
	programs and libraries.

2005-08-30 Braden McDaniel  <braden@endoframe.com>

	Employ NVI (nonvirtual interface) idiom on
	openvrml::field_value.

	* src/libopenvrml/openvrml/field_value.cpp
	* src/libopenvrml/openvrml/field_value.h

2005-08-28 Braden McDaniel  <braden@endoframe.com>

	Reverted to using boost::spirit to parse URIs rather than
	boost::regex.  BOOST_SPIRIT_THREADSAFE is defined, so Spirit
	should be thread-safe now.

	* openvrml.pc.in
	* ide-projects/Windows/VisualC7_1/OpenVRML/openvrml/openvrml.vcproj
	* src/libopenvrml/Makefile.am
	* src/libopenvrml/openvrml/browser.cpp

2005-08-26 Braden McDaniel  <braden@endoframe.com>

	Implemented openvrml::browser::create_from_from_url.

	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/browser.h
	* tests/Makefile.am:  Removed test program
	tests/browser_create_vrml_from_stream; added tests/browser.
	* tests/browser.cpp:  Added file.  Boost-based test suite for
	openvrml::browser.  Currently tests
	openvrml::browser::create_vrml_from_stream and
	openvrml::browser::create_vrml_from_url.
	* tests/browser_create_vrml_from_stream.cpp:  Removed file.
	Obsoleted by tests/browser.cpp.

2005-08-17 Braden McDaniel  <braden@endoframe.com>

	Removed obsolete lookat project for Microsoft Visual Studio.
	Added sdl-viewer project for Microsoft Visual Studio.  Require one
	of OPENVRML_BUILD_LIB, OPENVRML_USE_LIB, OPENVRML_BUILD_DLL, or
	OPENVRML_USE_DLL to be defined when building the openvrml library.
	Require one of OPENVRML_GL_BUILD_LIB, OPENVRML_GL_USE_LIB,
	OPENVRML_BUILD_DLL, or OPENVRML_USE_DLL to be defined when
	building the openvrml-gl library.

	* examples/sdl_viewer.cpp
	* ide-projects/Windows/VisualC7_1/OpenVRML/OpenVRML.sln
	* ide-projects/Windows/VisualC7_1/OpenVRML/lookat/lookat.vcproj:
	Removed file.
	* ide-projects/Windows/VisualC7_1/OpenVRML/openvrml/openvrml-config.h
	* ide-projects/Windows/VisualC7_1/OpenVRML/openvrml-gl/openvrml-gl.vcproj
	* ide-projects/Windows/VisualC7_1/OpenVRML/openvrml-gl/openvrml-gl.vcproj:
	Added file.
	* src/libopenvrml/openvrml-common.h
	* src/libopenvrml-gl/openvrml-gl-common.h

2005-08-16 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp:  Removed obsolete code.

2005-08-15 Braden McDaniel  <braden@endoframe.com>

	Fixes to build with Microsoft Visual C++ 7.1.

	* ide-projects/Windows/VisualC7_1/OpenVRML/openvrml/openvrml-config.h:
	Added file.
	* ide-projects/Windows/VisualC7_1/OpenVRML/openvrml/openvrml.vcproj
	* ide-projects/Windows/VisualC7_1/OpenVRML/openvrml-gl/openvrml-gl-config.h:
	Added file.
	* ide-projects/Windows/VisualC7_1/OpenVRML/openvrml-gl/openvrml-gl.vcproj
	* src/libopenvrml/openvrml-common.h
	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml-gl/openvrml-gl-common.h

2005-08-15 Braden McDaniel  <braden@endoframe.com>

	Moved VRML97 node implementations out of the API.

	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml/openvrml/vrml97node.h

2005-08-15 Braden McDaniel  <braden@endoframe.com>

	* doc/Doxyfile:  Define away OPENVRML_API, OPENVRML_LOCAL
	macros.

2005-08-12 Braden McDaniel  <braden@endoframe.com>

	Added openvrml::time_dependent_node abstract node type.
	AudioClip, MovieTexture, and TimeSensor node implementations
	inherit this type.

	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/browser.h
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node.h
	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml/openvrml/vrml97node.h

2005-08-12 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp: Added missing cast
	functions to_bounded_volume, to_light, to_navigation_info,
	to_pointing_device_sensor, and to_scoped_light to proto_node.

2005-08-11 Braden McDaniel  <braden@endoframe.com>

	Initial support for gcc 4.0's symbol visibility attribute.

	* configure.ac
	* examples/Makefile.am
	* m4/Makefile.am
	* m4/ov_cxx_visibility.m4:  Added file.
	* mozilla-plugin/src/openvrml-player/Makefile.am
	* src/libopenvrml/Makefile.am
	* src/libopenvrml/openvrml-common.h:  Added file.
	* src/libopenvrml/openvrml-config.h.in:  Added file.
	* src/libopenvrml/private.h
	* src/libopenvrml/openvrml/ScriptJDK.cpp
	* src/libopenvrml/openvrml/basetypes.h
	* src/libopenvrml/openvrml/bounding_volume.h
	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/browser.h
	* src/libopenvrml/openvrml/event.h
	* src/libopenvrml/openvrml/exposedfield.h
	* src/libopenvrml/openvrml/field_value.h
	* src/libopenvrml/openvrml/frustum.h
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node.h
	* src/libopenvrml/openvrml/node_ptr.cpp
	* src/libopenvrml/openvrml/node_ptr.h
	* src/libopenvrml/openvrml/rendering_context.h
	* src/libopenvrml/openvrml/scope.h
	* src/libopenvrml/openvrml/script.cpp
	* src/libopenvrml/openvrml/script.h
	* src/libopenvrml/openvrml/viewer.h
	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml/openvrml/vrml97node.h
	* src/libopenvrml-gl/Makefile.am
	* src/libopenvrml-gl/openvrml-gl-common.h:  Added file.
	* src/libopenvrml-gl/openvrml-gl-config.h.in:  Added file.
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	* src/libopenvrml-gl/openvrml/gl/viewer.h
	* tests/Makefile.am

2005-08-11 Braden McDaniel  <braden@endoframe.com>

	Added abstract node type openvrml::pointing_device_sensor_node.
	Anchor, CylinderSensor, PlaneSensor, SphereSensor, and TouchSensor
	implementations now inherit this type.

	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/browser.h
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node.h
	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml/openvrml/vrml97node.h

2005-08-03 Braden McDaniel  <braden@endoframe.com>

	Removed virtual destructor from openvrml::scope.  The only reason
	it was there was to accommodate an implementation detail in
	OpenVRML.  In general there's no need for openvrml::scope to be a
	base class.

	* src/libopenvrml/openvrml/Vrml97Parser.cpp
	* src/libopenvrml/openvrml/Vrml97Parser.g
	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/browser.h
	* src/libopenvrml/openvrml/scope.cpp
	* src/libopenvrml/openvrml/scope.h

2005-07-31 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/vrml97node.cpp:  Removed
	unnecessary inclusion of <iostream>.

2005-07-31 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/scope.h:  Forward declare
	openvrml::node.

2005-07-19 Braden McDaniel  <braden@endoframe.com>

	Doc-comment improvements.

	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml/openvrml/vrml97node.h

2005-07-18 Braden McDaniel  <braden@endoframe.com>

	Use covariant return types when overriding
	openvrml::field_value::assign.

	* src/libopenvrml/openvrml/field_value.cpp
	* src/libopenvrml/openvrml/field_value.h

2005-07-15 Braden McDaniel  <braden@endoframe.com>

	Fixes for gcc warnings.

	* examples/sdl_viewer.cpp
	* mozilla-plugin/lib/gtkglext/gdk/x11/gdkglconfig-x11.c
	* mozilla-plugin/src/openvrml.cpp
	* mozilla-plugin/src/openvrml-player/player.cpp
	* src/libopenvrml/openvrml/ScriptJDK.cpp
	* src/libopenvrml/openvrml/bounding_volume.cpp
	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/exposedfield.h
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node_ptr.cpp
	* src/libopenvrml/openvrml/script.cpp
	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml/openvrml/vrml97node.h
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp

2005-07-15 Braden McDaniel  <braden@endoframe.com>

	* m4/acx_pthread.m4:  Fixed ACX_PTHREAD to work with gcc's
	-Werror flag.

2005-07-15 Braden McDaniel  <braden@endoframe.com>

	* m4/acx_pthread.m4:  Updated ACX_PTHREAD macro to version 1.7.

2005-07-13 Braden McDaniel  <braden@endoframe.com>

	Added member functions to openvrml::event_listener and
	openvrml::event_emitter to get the eventIn and eventOut
	identifiers, respectively.  This had some unpleasant side-
	effects; principally, many templates were moved from
	src/libopenvrml/openvrml/vrml97node.cpp to
	src/libopenvrml/openvrml/vrml97node.h.  Future revisions will
	improve this situation.

	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/browser.h
	* src/libopenvrml/openvrml/event.cpp
	* src/libopenvrml/openvrml/event.h
	* src/libopenvrml/openvrml/exposedfield.h
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node.h
	* src/libopenvrml/openvrml/node_ptr.cpp
	* src/libopenvrml/openvrml/script.cpp
	* src/libopenvrml/openvrml/script.h
	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml/openvrml/vrml97node.h
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp

2005-07-10 Braden McDaniel  <braden@endoframe.com>

	Doc-comment improvements.

	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/vrml97node.cpp

2005-07-07 Braden McDaniel  <braden@endoframe.com>

	Clean-up of inclusions.

	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/script.cpp
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp

2005-07-07 Braden McDaniel  <braden@endoframe.com>

	Clean-up of inclusions.

	* src/libopenvrml/openvrml/bounding_volume.h
	* src/libopenvrml/openvrml/browser.h
	* src/libopenvrml/openvrml/event.h
	* src/libopenvrml/openvrml/field_value.h
	* src/libopenvrml/openvrml/node.h
	* src/libopenvrml/openvrml/vrml97node.h

2005-07-07 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/lib/gtkglext/gdk/x11/gdkglquery-x11.c:  Removed
	inadvertently added tab character.

2005-07-07 Braden McDaniel  <braden@endoframe.com>

	Fixed warnings and 64-bit cleanliness issues noted by gcc 4.0.

	* mozilla-plugin/lib/gtkglext/gdk/x11/gdkglquery-x11.c
	* mozilla-plugin/src/openvrml.cpp

2005-07-06 Braden McDaniel  <braden@endoframe.com>

	Merged changes from 0.15.9 release.

	* NEWS:  Updated for 0.15.9 release.
	* README:  Disable Script node Java support by default.
	* configure.ac:  Check for sdl-config directly rather than using
	AM_PATH_SDL.  AM_PATH_SDL is broken upstream and not fixed for
	all distributions.  This can make life difficult for users
	building from the repository.  Disable Script node Java support
	by default; this code is not 64-bit clean and needs to be
	substantially redesigned in order to be so.
	* mozilla-plugin/src/openvrml.cpp:  In order to be 64-bit clean,
	first construct a ptrdiff_t from a void* before converting it to
	a potentially smaller integral type.

2005-07-06 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp
	(stream_reader::operator()):  Don't use char_traits<>::not_eof
	for comparison; that's not what it does.

2005-07-03 Braden McDaniel  <braden@endoframe.com>

	Merged changes from 0.15.8 release.

	* NEWS:  Updated for 0.15.8 release.
	* configure.ac:  Use "pax" tar format.
	* doc/Doxyfile:  Updated for Doxygen 1.4.3; don't use short file
	names.
	* tests/Makefile.am:  Added clean rules for tests.

2005-06-20 Braden McDaniel  <braden@endoframe.com>

	Added openvrml::browser_event, openvrml::browser_listener.
	openvrml::browser now emits an openvrml::browser_event when
	the world is initialized and shut down.

	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/browser.h

2005-06-19 Braden McDaniel  <braden@endoframe.com>

	openvrml::vrml97_node::anchor_node doesn't need to override
	openvrml::bounded_volume_node::do_bounding_volume.

	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml/openvrml/vrml97node.h

2005-06-16 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/vrml97node.cpp:  Added virtual
	destructor to image_stream_listener::image_reader.

2005-06-10 Braden McDaniel  <braden@endoframe.com>

	Fixes for gcc warnings.

	* mozilla-plugin/src/openvrml.cpp
	* mozilla-plugin/src/openvrml-player/player.cpp
	* src/libopenvrml/openvrml/script.cpp
	* src/libopenvrml/openvrml/vrml97node.cpp

2005-06-07 Braden McDaniel  <braden@endoframe.com>

	Fixes for gcc warnings.

	* mozilla-plugin/src/openvrml.cpp
	* mozilla-plugin/src/openvrml-player/player.cpp
	* src/libopenvrml/openvrml/ScriptJDK.cpp
	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/field_value.cpp
	* src/libopenvrml/openvrml/field_value.h
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/script.cpp
	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml/openvrml/vrml97node.h

2005-05-31 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp
	(stream_reader::operator()):  Break out of the inner loop if eof
	is encountered.

2005-05-30 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/openvrml.cpp:  Abort the forked process if
	openvrml-player cannot be started.

2005-05-28 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/openvrml.cpp:  Removed unnecessary
	#includes.

2005-05-28 Braden McDaniel  <braden@endoframe.com>

	GTK+ compiler flags and #includes were not extraneous.

	* mozilla-plugin/src/Makefile.am
	* mozilla-plugin/src/openvrml.cpp

2005-05-28 Braden McDaniel  <braden@endoframe.com>

	Removed extraneous GTK+ compiler flags and #includes.

	* mozilla-plugin/src/Makefile.am
	* mozilla-plugin/src/openvrml.cpp

2005-05-26 Braden McDaniel  <braden@endoframe.com>

	* configure.ac:  Check for sdl-config directly rather than using
	AM_PATH_SDL.  AM_PATH_SDL is broken upstream and not fixed for
	all distributions.  This can make life difficult for users
	building from the repository.

2005-05-26 Braden McDaniel  <braden@endoframe.com>

	* tests/Makefile.am:  Pass compiler flags for pthreads when
	building the tests.

2005-05-26 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/openvrml-player/Makefile.am:  Conditionally
	build openvrml-player.

2005-05-25 Braden McDaniel  <braden@endoframe.com>

	Removed cruft from the old event system.

	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/browser.h

2005-05-23 Braden McDaniel  <braden@endoframe.com>

	Use a named temporary for the thread function object in order to
	satisfy some older compilers (gcc 3.3).

	* mozilla-plugin/src/openvrml-player/player.cpp
	* src/libopenvrml/openvrml/browser.cpp

2005-05-23 Braden McDaniel  <braden@endoframe.com>

	Pass compiler/linker flags for pthreads when building
	libopenvrml.

	* configure.ac
	* mozilla-plugin/configure.ac
	* mozilla-plugin/src/openvrml-player/Makefile.am
	* src/libopenvrml/Makefile.am

2005-05-21 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/openvrml-player/player.cpp (main):  Set the
	encoding on the incoming ("command") I/O stream to none (for
	binary data).

2005-05-17 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/bounding_volume.cpp
	(openvrml::bounding_volume::extend):  Delegate to the
	openvrml::bounding_volume::do_extend functions.

2005-05-17 Braden McDaniel  <braden@endoframe.com>

	* tests/testsuite.at:  Properly quote VRML source.

2005-05-17 Braden McDaniel  <braden@endoframe.com>

	* tests/node_interface_set.cpp:  Removed DejaGnu cruft.

2005-05-16 Braden McDaniel  <braden@endoframe.com>

	Doc-comment fixes.

	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/scope.cpp
	* src/libopenvrml/openvrml/vrml97node.cpp

2005-05-16 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::browser::render):  Do per-node_class rendering before
	calling openvrml::viewer::set_viewpoint.

2005-05-13 Braden McDaniel  <braden@endoframe.com>

	Added abstract node type openvrml::bounded_volume_node.

	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node.h
	* src/libopenvrml/openvrml/script.cpp
	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml/openvrml/vrml97node.h

2005-05-13 Braden McDaniel  <braden@endoframe.com>

	Doc-comment fixes.

	* src/libopenvrml/openvrml/field_value.cpp
	* src/libopenvrml/openvrml/viewer.h
	* src/libopenvrml-gl/openvrml/gl/viewer.h

2005-05-13 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/bounding_volume.cpp:  Doc-comment
	fixes.

2005-05-13 Braden McDaniel  <braden@endoframe.com>

	Favor making virtual functions private.

	* src/libopenvrml/openvrml/bounding_volume.cpp
	* src/libopenvrml/openvrml/bounding_volume.h

2005-05-09 Braden McDaniel  <braden@endoframe.com>

	* openvrml.pc.in:  Added Boost libraries.

2005-05-09 Braden McDaniel  <braden@endoframe.com>

	* openvrml.pc.in:  Removed obsolete Z_LIBS configure
	substitution.

2005-05-09 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/Makefile.am:  Link with libboost_regex.
	* src/libopenvrml/openvrml/browser.cpp:  Replaced Spirit URI
	parser with boost::regex.  Alas, Spirit parsers are not thread-
	safe.  (More accurately, certain Spirit constructs are not
	thread-safe, including ones OpenVRML was using.)

2005-05-09 Braden McDaniel  <braden@endoframe.com>

	Protect openvrml::scene::url_ with a separate mutex.

	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/browser.h

2005-04-23 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp (create_file_url):
	Throw an exception if realpath/_fullpath does not succeed.

2005-04-23 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp
	(openvrml::scene::get_resource):  Fixed test to check whether
	create_file_url should be called.

2005-04-23 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp:  When loading the root
	scene, set browser::world_url as soon as we have a usable
	stream.

2005-04-21 Braden McDaniel  <braden@endoframe.com>

	Changed convention for scoping definitions.  Definitions are now
	explicitly qualified in the global scope rather than enclosed in
	namespace scope blocks.

	* src/libopenvrml/openvrml/basetypes.cpp
	* src/libopenvrml/openvrml/bounding_volume.cpp
	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/event.cpp
	* src/libopenvrml/openvrml/exposedfield.cpp
	* src/libopenvrml/openvrml/field_value.cpp
	* src/libopenvrml/openvrml/frustum.cpp
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node_ptr.cpp
	* src/libopenvrml/openvrml/rendering_context.cpp
	* src/libopenvrml/openvrml/scope.cpp
	* src/libopenvrml/openvrml/script.cpp
	* src/libopenvrml/openvrml/viewer.cpp
	* src/libopenvrml/openvrml/vrml97node.cpp

2005-04-20 Braden McDaniel  <braden@endoframe.com>

	Merged changes from 0.15.7 release.

	* Makefile.am:  Use "tests" directory instead of "test".
	* NEWS:  Updated for 0.15.7 release.
	* README:  Removed references to --disable-tests option and
	DejaGnu dependency.
	* configure.ac  Removed --disable-tests option; removed DejaGnu
	initialization; added autotest initialization.
	* openvrml.spec.in:  Removed dejagnu build prerequisite.
	* examples/sdk_viewer.cpp:  sdl_error should publicly inherit
	std::runtime_error.
	* ide-projects/Windows/VisualC7_1/OpenVRML/openvrml/openvrml.vcproj
	* mozilla-plugin/configure.ac:  configure fails if the PATH
	argument to AC_PATH_PROG is not quoted and the program (xpidl,
	in this case) is not found.
	* mozilla-plugin/lib/gtkglext/configure.in:  Removed occurrences
	of AC_MSG_ERROR. In general, check failures here should not
	cause GtkGLExt's configure to fail so that the main configure
	can succeed even if some of GtkGLExt's dependencies are missing.
	* mozilla-plugin/src/openvrml.cpp:  Construct a GdkNativeWindow
	rather than reinterpret_casting to it in order to be 64-bit
	clean.
	* src/libopenvrml/openvrml/basetypes.cpp:  Include <ostream>.
	* test/Makefile.am:  Removed file.
	* test/browser-create_vrml_from_stream.cpp:  Removed file.
	* test/browser_basic.cpp:  Removed file.
	* test/node_interface_set.cpp:  Removed file.
	* test/parse-anchor.cpp:  Removed file.
	* test/parse/Makefile.am:  Removed file.
	* test/parse/parse.cpp:  Removed file.
	* test/parse/testsuite/Makefile.am:  Removed file.
	* test/parse/testsuite/config/unix.exp:  Removed file.
	* test/parse/testsuite/parse.bad/parse.exp:  Removed file.
	* test/parse/testsuite/parse.bad/proto-eventin-conflict.wrl:
	Removed file.
	* test/parse/testsuite/parse.bad/proto-eventout-conflict.wrl:
	Removed file.
	* test/parse/testsuite/parse.good/parse.exp:  Removed file.
	* test/parse/testsuite/parse.good/proto-containment-2-deep.wrl:
	Removed file.
	* test/parse/testsuite/parse.good/proto-containment-trivial.wrl:
	Removed file.
	* test/parse/testsuite/parse.good/proto-containment.wrl:
	Removed file.
	* test/parse/testsuite/parse.good/proto-field-is-proto.wrl:
	Removed file.
	* test/parse/testsuite/parse.good/proto-impl-exposedfield-event-is.wrl:
	Removed file.
	* test/parse/testsuite/parse.good/self-referential-script-in-proto.wrl:
	Removed file.
	* test/parse/testsuite/parse.good/self-referential-script.wrl:
	Removed file.
	* tests/Makefile.am:  Added file.
	* tests/atlocal.in:  Added file.
	* tests/browser_basic.cpp:  Added file.
	* tests/browser_create_vrml_from_stream.cpp:  Added file.
	* tests/node_interface_set.cpp:  Added file.
	* tests/parse.cpp:  Added file.
	* tests/parse_anchor.cpp:  Added file.
	* tests/testsuite.at:  Added file.

2005-04-11 Braden McDaniel  <braden@endoframe.com>

	Doc-comment improvements.

	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/vrml97node.cpp

2005-04-07 Braden McDaniel  <braden@endoframe.com>

	* README:  Added "Package directory layout" and "Usage"
	sections.

2005-03-31 Braden McDaniel  <braden@endoframe.com>

	Removed openvrml::node_class_ptr and openvrml::node_type_ptr
	typedefs.

	* src/libopenvrml/openvrml/Vrml97Parser.cpp
	* src/libopenvrml/openvrml/Vrml97Parser.g
	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/browser.h
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node.h
	* src/libopenvrml/openvrml/scope.cpp
	* src/libopenvrml/openvrml/scope.h
	* src/libopenvrml/openvrml/script.cpp
	* src/libopenvrml/openvrml/script.h
	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml/openvrml/vrml97node.h

2005-03-31 Braden McDaniel  <braden@endoframe.com>

	Removed openvrml::field_value_ptr typedef.  Such typedefs do
	little more than obfuscate the type of the smart pointer.

	* src/libopenvrml/openvrml/Vrml97Parser.cpp
	* src/libopenvrml/openvrml/Vrml97Parser.g
	* src/libopenvrml/openvrml/Vrml97Parser.hpp
	* src/libopenvrml/openvrml/field_value.cpp
	* src/libopenvrml/openvrml/field_value.h
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/script.cpp
	* src/libopenvrml/openvrml/script.h

2005-03-31 Braden McDaniel  <braden@endoframe.com>

	Refactored openvrml::scene::load to use
	openvrml::scene::get_resource.

	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/browser.h

2005-03-30 Braden McDaniel  <braden@endoframe.com>

	* doc/Makefile.am:  Updated dependency list.

2005-03-30 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/node.cpp:  Doc-comment improvements.

2005-03-28 Braden McDaniel  <braden@endoframe.com>

	Removed to_inline member function from
	openvrml::vrml97_node::inline_node.

	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml/openvrml/vrml97node.h

2005-03-28 Braden McDaniel  <braden@endoframe.com>

	Added swap member function to openvrml::image along with a
	specialization of std::swap.

	* src/libopenvrml/openvrml/basetypes.cpp
	* src/libopenvrml/openvrml/basetypes.h

2005-03-25 Braden McDaniel  <braden@endoframe.com>

	* examples/sdl_viewer.cpp:  Code cleanup.

2005-03-22 Braden McDaniel  <braden@endoframe.com>

	* examples/sdl_viewer.cpp:  Removed lingering references to
	lookat.

2005-03-22 Braden McDaniel  <braden@endoframe.com>

	* README: Removed references to lookat.  Updated "configure
	options" and "Significant preprocessor symbols" sections to
	reflect changes in the I/O subsystem and image decoders.

2005-03-21 Braden McDaniel  <braden@endoframe.com>

	Moved lookat to examples/sdl-viewer.  It is no longer an
	installed program.

	* Makefile.am:  Removed reference to lookat.xpm.
	* configure.ac:  Changed "--disable-lookat" option to
	"--disable-examples".
	* lookat.xpm:  Removed file.
	* openvrml.spec.in:  No longer emit lookat package.
	* examples/Makefile.am:  Added file.
	* examples/sdl_viewer.cpp:  Added file.
	* src/Makefile.am:  Removed reference to lookat subdirectory.
	* src/lookat/Makefile.am:  Removed file.
	* src/lookat/lookat.cpp:  Removed file.

2005-03-21 Braden McDaniel  <braden@endoframe.com>

	Removed file left over from GLUT-based lookat.

	* src/lookat/glutint.h:  Removed file.

2005-03-21 Braden McDaniel  <braden@endoframe.com>

	Asynchronously--and progressively--load PNG and JPEG textures.
	Removed support for GIF textures as well as MPEG movie textures;
	MPEG support will be added back in the future by depending on an
	appropriate library.  These changes make obsolete openvrml::doc,
	openvrml::doc2, openvrml::img, and openvrml::system classes.

	* README:  Removed reference to use of GIF decoding code by
	David Koblas; this code has been removed.
	* configure.ac:  Removed options --disable-gzip and
	--disable-render-imagetexture-node.  Added options
	--disable-png-textures and --disable-jpeg-textures.
	* mozilla-plugin/src/openvrml-player/player.cpp:  Implemented
	openvrml::resource_istream::data_available.
	* src/libopenvrml/Makefile.am:  Removed references to
	openvrml/img.cpp, openvrml/img.h, openvrml/system.cpp,
	openvrml/system.h.
	* src/libopenvrml/private.h:  Extended scope_guard suite to
	support a cleanup function with three arguments.
	* src/libopenvrml/openvrml/browser.cpp:  Added
	implementation of openvrml::scene::get_resource function.  Added
	implementations of openvrml::stream_listener class members.
	Removed implementations of openvrml::doc and openvrml::doc2
	members.
	* src/libopenvrml/openvrml/browser.h:  Added pure virtual
	function data_available to openvrml::resource_istream.  Added
	abstract class openvrml::stream_listener.  Associated
	openvrml::browser::modified_ with its own (nonrecursive) mutex.
	Added get_resource function to openvrml::scene.  Removed classes
	openvrml::doc, openvrml::doc2.
	* src/libopenvrml/openvrml/img.cpp:  Removed file.
	* src/libopenvrml/openvrml/img.h:  Removed file.
	* src/libopenvrml/openvrml/node.h:  Removed
	openvrml::texture_node::frames pure virtual member function.
	* src/libopenvrml/openvrml/script.cpp:  Eliminated use of
	openvrml::doc2 for trivial URI parsing.
	* src/libopenvrml/openvrml/system.cpp:  Removed file.
	* src/libopenvrml/openvrml/system.h:  Removed file.
	* src/libopenvrml/openvrml/vrml97node.cpp:  Added
	image_stream_listener class, which encapsulates asynchronous
	progressive decoders for PNG and JPEG images; use this in
	Background and ImageTexture node implementations. #if 0'd out
	MovieTexture implementation for now.
	* src/libopenvrml/openvrml/vrml97node.h
	* src/lookat/lookat.cpp:  Added implementation of
	openvrml::resource_istream::data_available; made
	openvrml::resource_istream::type implementation do something
	vaguely useful.
	* test/test_browser.cpp:  Added implementation of
	openvrml::resource_istream::data_available.

2005-03-18 Braden McDaniel  <braden@endoframe.com>

	Doc-comment improvements; moved vrml97_root_scope to be a
	private inner class of openvrml::browser.

	* src/libopenvrml/openvrml/Vrml97Parser.cpp
	* src/libopenvrml/openvrml/Vrml97Parser.g
	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/browser.h
	* src/libopenvrml/openvrml/event.cpp
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/script.cpp
	* src/libopenvrml/openvrml/vrml97node.cpp

2005-03-18 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/basetypes.h (image::pixel):  Fixed
	pixel mutator.

2005-03-14 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/openvrml.cpp:  Removed tabs.

2005-03-14 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/private.h:  Removed unused class templates
	unary_function_base and unary_function_wrapper.

2005-03-14 Braden McDaniel  <braden@endoframe.com>

	Use boost::bind instead of openvrml_::compose2.

	* src/libopenvrml/private.h:  Removed
	openvrml_::binary_compose and openvrml_::compose2.
	* src/libopenvrml/openvrml/browser.cpp:  Use boost::bind instead
	of openvrml_::compose2.
	* src/libopenvrml/openvrml/node.cpp:  Use boost::bind instead of
	openvrml_::compose2.

2005-03-14 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/openvrml-player/player.cpp:
	bounded_buffer<>'s mutex needs to be mutable for
	bounded_buffer<>::buffered.

2005-03-14 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/openvrml-player/player.cpp:  Moved
	plugin_istream to initial_stream_reader::operator() as a locally
	defined class.

2005-03-08 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp:  Lock the browser when
	initializing the root scene.

2005-03-07 Braden McDaniel  <braden@endoframe.com>

	Load the initial and inline worlds asynchronously.

	These changes add a new abstract class openvrml::resource_istream
	and a pure virtual function to openvrml::browser--
	openvrml::browser::do_get_resource--making openvrml::browser an
	abstract class as well.  Users of libopenvrml are now responsible
	for inheriting both these classes and implementing the required
	functionality.

	* mozilla-plugin/src/openvrml.cpp:  Implemented communication
	from the plug-in process back to the Web browser process for the
	purpose of requesting new streams.
	* mozilla-plugin/src/openvrml-player/player.cpp:  Implemented
	openvrml::browser.
	* src/libopenvrml/openvrml/ScriptJDK.cpp:  Updates for modified
	openvrml::scene.
	* src/libopenvrml/openvrml/Vrml97Parser.cpp
	* src/libopenvrml/openvrml/Vrml97Parser.g:  Modified to use
	thread-safe openvrml::browser::node_class_map.
	* src/libopenvrml/openvrml/Vrml97Parser.hpp
	* src/libopenvrml/openvrml/browser.cpp:  Removed
	openvrml::scene constructor that took a URL.  Added
	openvrml::scene::load function to load a scene asynchronously.
	Made openvrml::browser::load_url asynchronous.
	* src/libopenvrml/openvrml/browser.h:  Added abstract class
	openvrml::resource_istream.  Added pure virtual function
	openvrml::browser::do_get_resource.  Replaced
	openvrml::browser::node_class_map_t typedef with
	openvrml::browser::node_class_map, a thread-safe class.
	* src/libopenvrml/openvrml/script.cpp:  Updates for modified
	openvrml::scene.
	* src/libopenvrml/openvrml/vrml97node.cpp:  Updates for modified
	openvrml::scene.
	* src/lookat/lookat.cpp:  Implemented openvrml::browser.
	* test/Makefile.am:  Added libtest-openvrml.
	* test/browser-create_vrml_from_stream.cpp:  Use test_browser.
	* test/browser_basic.cpp:  Use test_browser.
	* test/parse-anchor.cpp:  Use test_browser.
	* test/test_browser.cpp:  Added file.
	* test/test_browser.h:  Added file.
	* test/parse/Makefile.am:  Use test_browser.
	* test/parse/parse.cpp:  Use test_browser.

2005-03-06 Braden McDaniel  <braden@endoframe.com>

	* doc/Makefile.am:  Updated documentation dependencies.

2005-02-09 Braden McDaniel  <braden@endoframe.com>

	Load the initial plug-in URL from Mozilla rather than using
	OpenVRML's HTTP (or local file) fetch facility.  This change
	includes some groundwork for general resource fetching using the
	Mozilla plug-in API's facilities.

	* mozilla-plugin/src/openvrml.cpp
	* mozilla-plugin/src/openvrml-player/player.cpp

2005-01-27 Braden McDaniel  <braden@endoframe.com>

	Merged changes from 0.15.6 release.

	* NEWS:  Updated for 0.15.6 release.
	* README:  Added note about memory requirements for building
	OpenVRML.
	* openvrml.spec.in:  configure with --disable-script-node-java.
	The Script node Java binding is not currently usable.
	* mozilla-plugin/configure.ac:  Mozilla pkg-config metadata
	files do not reliably add the top-level Mozilla include
	directory to the _CFLAGS variable.
	* src/libopenvrml/Makefile.am:  Incremented library version to
	5:3:0.
	* src/libopenvrml/openvrml/Vrml97Parser.cpp:  Don't set rotation
	axis component-wise in the parser.
	* src/libopenvrml/openvrml/Vrml97Parser.g:  Don't set rotation
	axis component-wise in the parser.
	* src/libopenvrml/openvrml/node.cpp (find_interface):  Fixed
	find_interface to find a field "zzz" even if there is also an
	eventIn "set_zzz" or an eventOut "zzz_changed".
	* src/libopenvrml/openvrml/vrml97node.cpp
	(text_node::update_ucs4):  Check whether the UTF-8 string is
	well-formed before calling FcUtf8ToUcs4.

2005-01-16 Braden McDaniel  <braden@endoframe.com>

	Added mutexes for node and event_emitter.

	* src/libopenvrml/openvrml/event.cpp
	* src/libopenvrml/openvrml/event.h
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node.h

2005-01-16 Braden McDaniel  <braden@endoframe.com>

	Eliminated unnecessary inclusion of <iostream>.

	* src/libopenvrml/openvrml/Vrml97Parser.cpp
	* src/libopenvrml/openvrml/Vrml97Parser.g
	* src/libopenvrml/openvrml/Vrml97Parser.hpp
	* src/libopenvrml/openvrml/basetypes.h
	* src/libopenvrml/openvrml/node.h
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp

2005-01-16 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/Makefile.am:  Removed reference to
	openvrml/common.h.

2005-01-16 Braden McDaniel  <braden@endoframe.com>

	Moved definition of constants from libopenvrml/openvrml/common.h
	to libopenvrml/private.h.

	* src/libopenvrml/private.h
	* src/libopenvrml/openvrml/basetypes.h
	* src/libopenvrml/openvrml/browser.h
	* src/libopenvrml/openvrml/common.h:  Removed file.
	* src/libopenvrml/openvrml/frustum.cpp
	* src/libopenvrml/openvrml/frustum.h
	* src/libopenvrml/openvrml/img.h
	* src/libopenvrml/openvrml/node_ptr.h
	* src/libopenvrml/openvrml/rendering_context.h
	* src/libopenvrml/openvrml/system.h
	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml/openvrml/vrml97node.h
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp

2005-01-16 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp (browser::~browser):
	Don't clear the node_class_map.  This is unnecessary, and it
	prematurely removes PROTO definitions that the scene (which
	hasn't been destroyed yet) depends on.

2005-01-10 Braden McDaniel  <braden@endoframe.com>

	Merged changes from 0.15.5 release.

	* NEWS:  Updates for 0.15.5 release.
	* README
	* configure.ac:  Fixed problem with an empty -rpath argument
	when configured with --disable-script-node-javascript.
	* openvrml.spec.in:  Added openvrml-player to the
	openvrml-mozilla-plugin package.
	* doc/Doxyfile:  Updates for Doxygen 1.4.
	* doc/doxygen-header:  Updates for Doxygen 1.4
	* ide-projects/Windows/VisualC7_1/OpenVRML/openvrml/openvrml.vcproj
	* mozilla-plugin/configure.ac:  Added subdirectory for
	openvrml-player.
	* mozilla-plugin/src/Makefile.am:  No longer link openvrml.so
	with GTK/OpenGL/GtkGLExt.
	* mozilla-plugin/src/openvrml.cpp:  Made the Mozilla plug-in
	out-of-process.  openvrml.so is now just a stub that launches
	openvrml-player.
	* mozilla-plugin/src/openvrml-player/Makefile.am:  Added file.
	* mozilla-plugin/src/openvrml-player/player.cpp:  Added file.
	* src/libopenvrml/Makefile.am:  Incremented library version to
	5:2:0.
	* src/libopenvrml/openvrml/browser.cpp (browser::find_node):
	Don't pop nodes off of the node path if the traversal has been
	halted.
	* src/libopenvrml/openvrml/browser.cpp:  Replaced doc-comments
	for friend declarations. (Bug fixed in Doxygen 1.4.)
	* src/libopenvrml/openvrml/event.cpp:  Replaced doc-comments for
	friend declarations. (Bug fixed in Doxygen 1.4.)
	* src/libopenvrml/openvrml/node.cpp
	(node_traverser::do_traversal):  Check whether the traversal has
	been halted when iterating over an MFNode field.
	* src/libopenvrml/openvrml/node.cpp:  Replaced doc-comments for
	friend declarations. (Bug fixed in Doxygen 1.4.)
	* src/libopenvrml/openvrml/node_ptr.cpp:  Replaced doc-comments
	for friend declarations. (Bug fixed in Doxygen 1.4.)
	* src/libopenvrml/openvrml/scope.cpp:  Replaced doc-comments for
	friend declarations. (Bug fixed in Doxygen 1.4.)
	* src/libopenvrml/openvrml/script.cpp:  Replaced doc-comments
	for friend declarations. (Bug fixed in Doxygen 1.4.)
	* src/libopenvrml/openvrml/viewer.cpp:  Explicitly qualify
	openvrml::browser to make doxygen happy.
	* src/libopenvrml/openvrml/vrml97node.cpp:  Replaced doc-comments
	for friend declarations. (Bug fixed in Doxygen 1.4.)
	* src/lookat/Makefile.am:  Fixed problem with an empty -rpath
	argument when configured with --disable-script-node-javascript.
	* test/Makefile.am:  Fixed problem with an empty -rpath argument
	when configured with --disable-script-node-javascript.
	* test/parse/Makefile.am:  Fixed problem with an empty -rpath
	argument when configured with --disable-script-node-javascript.

2004-12-30 Braden McDaniel  <braden@endoframe.com>

	Thread safety improvements (using Boost threads).  Also, added
	browser::world_url mutator so that the world URI can be set
	independently of browser::load_url.  This is needed for the
	Mozilla plug-in, where the initial stream is delivered to the
	plug-in at startup (i.e., the plug-in is not responsible for
	initiating the fetch).

	* src/libopenvrml/Makefile.am:  Link with libboost_thread.
	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/browser.h
	* src/libopenvrml/openvrml/node_ptr.cpp

2004-12-30 Braden McDaniel  <braden@endoframe.com>

	Use boost::scoped_ptr for browser::scene_.

	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/browser.h

2004-12-30 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/vrml97node.cpp:  Removed erroneously
	committed debugging output.

2004-12-30 Braden McDaniel  <braden@endoframe.com>

	Unregister bindable nodes as "first" during shutdown.

	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml/openvrml/vrml97node.h

2004-12-29 Braden McDaniel  <braden@endoframe.com>

	Merged changes from 0.15.4 release.

	Refactored GtkGLExt usage to eliminate GtkVrmlBrowser widget.
	Since OpenVRML is a C++ library, this widget would probably never
	support a useful (C) API.  So it needlessly complicated the code.

	* NEWS:  Updates for 0.15.4 release.
	* openvrml.spec.in:  Fixed name of xorg-x11-devel prerequisite
	for the openvrml-gl-devel package.
	* mozilla-plugin/src/Makefile.am:  Removed references to
	GtkVrmlBrowser widget sources.
	* mozilla-plugin/src/openvrml.cpp:  Add GL capabilities and
	event callbacks to a GtkDrawingArea widget rather than use the
	GtkVrmlBrowser widget.
	* mozilla-plugin/src/gtkvrml/vrmlbrowser.cc:  Removed file.
	* mozilla-plugin/src/gtkvrml/vrmlbrowser.h:  Removed file.

2004-12-28 Braden McDaniel  <braden@endoframe.com>

	Added abstract navigation_info_node to the core API.

	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/browser.h
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node.h
	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml/openvrml/vrml97node.h
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp

2004-12-25 Braden McDaniel  <braden@endoframe.com>

	Merged changes from 0.15.3 release.

	* NEWS
	* INSTALL:  Updated to the one included with Automake 1.9.2.
	* README:  Removed references to GtkGLExt dependency; fixed
	mailing list addresses; eliminated ambiguity regarding required
	vs. optional dependencies (i.e., make it clear that Boost is
	required).
	* configure.ac
	* openvrml.spec.in
	* doc/Doxyfile
	* ide-projects/Windows/VisualC7_1/OpenVRML/antlr/antlr.vcproj:
	Define NDEBUG for Release configuration in the Visual C++ 7.1
	project.
	* ide-projects/Windows/VisualC7_1/OpenVRML/openvrml/openvrml.vcproj:
	Define NDEBUG for Release configuration in the Visual C++ 7.1
	project.
	* mozilla-plugin/Makefile.am
	* mozilla-plugin/configure.ac:  Don't fail when xpidl isn't
	found when configured with --disable-mozilla-plugin.
	* mozilla-plugin/lib/Makefile.am
	* mozilla-plugin/lib/gtkglext/Makefile.am:  Removed
	gtkglext.spec from the distribution (it confuses rpm); don't
	install pkgconfig metadata.
	* mozilla-plugin/lib/gtkglext/configure.in:  Disable building
	shared libraries; don't use AM_MAINTAINER_MODE.
	* mozilla-plugin/lib/gtkglext/docs/reference/gtkglext/Makefile.am:
	Don't add documentation to the distribution.
	* mozilla-plugin/lib/gtkglext/gdk/Makefile.am:  Don't install
	libgdkglext;  create gdkglenumtypes.h, gdkglenumtypes.c in the
	build directory rather than the source directory; moved
	$(gdk_built_sources) from MAINTAINERCLEANFILES to
	DISTCLEANFILES.
	* mozilla-plugin/lib/gtkglext/gdk/gdkglconfig.c:  Use
	g_type_from_name to first check if the type has already been
	registered.  This would be the case if the shared object had
	previously been loaded and then unloaded.
	* mozilla-plugin/lib/gtkglext/gdk/glext/Makefile.am:  Don't
	install gdkglext headers.
	* mozilla-plugin/lib/gtkglext/gdk/win32/Makefile.am:  Don't
	install gdkglext headers.
	* mozilla-plugin/lib/gtkglext/gdk/x11/Makefile.am:  Don't
	install gdkglext headers.
	* mozilla-plugin/lib/gtkglext/gtk/Makefile.am:  Don't install
	libgtkglext.
	* mozilla-plugin/lib/gtkglext/m4macros/Makefile.am:  Don't
	install GtkGLExt macro.
	* mozilla-plugin/src/Makefile.am:  Use GtkGLExt in the
	distribution; added MOZILLA_PLUGIN_LIBS to LDFLAGS.
	* mozilla-plugin/src/openvrml.cpp:  Copied the URI parser from
	openvrml::browser.  Get the URI for the Web page hosting the
	plug-in, and then resolve the relative URI for the plug-in
	against it.
	* src/libopenvrml/Makefile.am:  Updated library version to
	5:1:0.
	* src/libopenvrml/openvrml/browser.cpp:  Improved relative URI
	handling.
	* src/libopenvrml/openvrml/system.cpp:  Added missing <iostream>
	inclusion.
	* src/libopenvrml-gl/Makefile.am:  Updated library version to
	6:1:0.
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	(viewer::transform_points):  Fixed math to correctly transform
	by the modelview matrix.  This fixes a problem with the
	VisibilitySensor node.

2004-12-13 Braden McDaniel  <braden@endoframe.com>

	Moved private.h from src/libopenvrml/openvrml to
	src/libopenvrml.

	* src/libopenvrml/Makefile.am
	* src/libopenvrml/private.h:  Added file.
	* src/libopenvrml/openvrml/ScriptJDK.cpp
	* src/libopenvrml/openvrml/Vrml97Parser.cpp
	* src/libopenvrml/openvrml/Vrml97Parser.g
	* src/libopenvrml/openvrml/basetypes.cpp
	* src/libopenvrml/openvrml/bounding_volume.cpp
	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/field_value.cpp
	* src/libopenvrml/openvrml/frustum.cpp
	* src/libopenvrml/openvrml/img.cpp
	* src/libopenvrml/openvrml/private.h:  Removed file.
	* src/libopenvrml/openvrml/script.cpp
	* src/libopenvrml/openvrml/system.cpp
	* src/libopenvrml/openvrml/viewer.cpp
	* src/libopenvrml/openvrml/vrml97node.cpp

2004-12-13 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/script.cpp:  Report error from
	Browser.createVrmlFromString with bad syntax.

2004-12-09 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/script.cpp (MField::getElement):
	Fixed crash on an invalid index for a JavaScript MF* type.

2004-12-09 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/script.cpp:  Consistently use
	js_::script::sfnode_class.

2004-12-09 Braden McDaniel  <braden@endoframe.com>

	Fixes for direct output from Script nodes.

	* src/libopenvrml/openvrml/script.cpp
	* src/libopenvrml/openvrml/script.h

2004-12-07 Braden McDaniel  <braden@endoframe.com>

	Favor private virtual functions in openvrml::script.

	* src/libopenvrml/openvrml/ScriptJDK.cpp
	* src/libopenvrml/openvrml/ScriptJDK.h
	* src/libopenvrml/openvrml/script.cpp
	* src/libopenvrml/openvrml/script.h

2004-12-06 Braden McDaniel  <braden@endoframe.com>

	Added event_listener::type to get a the type_id for the type
	accepted by the listener. This required adding a static type
	identifier to each field_value subclass.

	* src/libopenvrml/openvrml/event.cpp
	* src/libopenvrml/openvrml/event.h
	* src/libopenvrml/openvrml/field_value.cpp
	* src/libopenvrml/openvrml/field_value.h

2004-12-03 Braden McDaniel  <braden@endoframe.com>

	Changed the names of the options to disable ImageTexture and
	Text node rendering to reflect the fact that only rendering is
	being disabled.

	* README
	* configure.ac
	* src/libopenvrml/openvrml/img.cpp
	* src/libopenvrml/openvrml/vrml97node.cpp

2004-12-03 Braden McDaniel  <braden@endoframe.com>

	Merged changes from 0.15.2 release.

	* NEWS
	* README:  Note dependency on DejaGnu.
	* configure.ac:  Added --disable-test option for configure.
	Check for dejagnu.h, and fail configuration if it is not found
	and the tests are supposed to be built.
	* openvrml.spec.in:  Use %makeinstall macro; install COPYING
	(GPL) with lookat documentation rather than COPYING.LESSER
	(LGPL).  Added dejagnu as a build prerequisite.
	* doc/Makefile.am:  Remove generated documentation as part of
	maintainer-clean.
	* mozilla-plugin/src/gtkvrml/vrmlbrowser.cc
	(gtk_vrml_browser_get_type):  First try to look up the type from
	glib's type registry.
	(GtkGLViewer::set_timer):  Don't invoke gtk_main_iteration.
	* src/libopenvrml/openvrml/browser.cpp
	(path_getter::get_path_from(const node_ptr &)):  Removed
	spurious assert.
	* test/Makefile.am:  Made building the tests optional.
	* test/parse/Makefile.am:  Made building the tests optional.

2004-11-27 Braden McDaniel  <braden@endoframe.com>

	Merged changes from 0.15.1 release.

	* NEWS:  Updated for 0.15.1.
	* ide-projects/Windows/VisualC7_1/OpenVRML/openvrml/openvrml.vcproj:
	Project file updates.
	* src/libopenvrml/openvrml/event.h:  event_emitter::last_time
	accessor should be public.

2004-11-27 Braden McDaniel  <braden@endoframe.com>

	Updated package version to 0.15.99.

	* configure.ac
	* doc/Doxyfile
	* mozilla-plugin/configure.ac

2004-11-26 Braden McDaniel  <braden@endoframe.com>

	Updated version number for 0.15.0 release.

	* NEWS:  Updated for 0.15.0.
	* configure.ac:  Updated package version.
	* doc/Doxyfile:  Updated package version.
	* mozilla-plugin/configure.ac:  Updated package version.

2004-11-26 Braden McDaniel  <braden@endoframe.com>

	* doc/Makefile.am:  Update DISTCLEANFILES to point to $(srcdir)
	for doxygen-generated files.

2004-11-26 Braden McDaniel  <braden@endoframe.com>

	* doc/Doxyfile:  Turned off collaboration diagram generation;
	turned off call graph generation.

2004-11-26 Braden McDaniel  <braden@endoframe.com>

	* doc/conformance.doc:  Note that conformance results table is
	out of date.

2004-11-26 Braden McDaniel  <braden@endoframe.com>

	Don't generate Doxyfile. Since the documentation is included in
	the distribution, users shouldn't be prompted to regenerate it.

	* configure.ac:  Removed reference to doc/Doxyfile.
	* doc/Doxyfile:  Added file.
	* doc/Doxyfile.in:  Removed file.
	* doc/Makefile.am:  Distribute Doxyfile instead of Doxyfile.in.

2004-11-26 Braden McDaniel  <braden@endoframe.com>

	Backed out incomplete change to remove conformance test results
	table from the generated documentation (from 2004-07-06).

	* doc/Doxyfile.in
	* doc/Makefile.am
	* doc/doxygen-header

2004-11-26 Braden McDaniel  <braden@endoframe.com>

	Incremented library version numbers for imminent 0.15.0 release.

	* src/libopenvrml/Makefile.am
	* src/libopenvrml-gl/Makefile.am

2004-11-26 Braden McDaniel  <braden@endoframe.com>

	* openvrml.spec.in:  Changed Mozilla plug-in RPM name to
	openvrml-mozilla-plugin; refer to the plug-in in comments as
	"for Mozilla-based browsers" rather than "for Mozilla".

2004-11-26 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/Makefile.am:  Install the plug-in in
	$(libdir)/mozilla/plugins, not $(prefix)/mozilla/plugins.

2004-11-26 Braden McDaniel  <braden@endoframe.com>

	* doc/Makefile.am:  Added dependencies for documentation
	generation.

2004-11-25 Braden McDaniel  <braden@endoframe.com>

	Fixes for distcheck.

	* configure.ac:  Pass subdir-objects argument to
	AM_INIT_AUTOMAKE; exposed XPIDL and XPIDLFLAGS to the user with
	AC_ARG_VAR.
	* doc/Doxyfile.in:  Updated for Doxygen 1.3.9.1;
	changed SORT_MEMBER_DOCS to NO; changed SHORT_NAMES to YES.
	* doc/Makefile.am:  Make distcheck happy.
	* ide-projects/Makefile.am:  Remove lingering reference to regex
	library.
	* mozilla-plugin/configure.ac:  Convey flags required for xpidl
	as MOZILLA_XPIDLFLAGS; exposed XPIDL and XPIDLFLAGS to the user
	with AC_ARG_VAR.
	* mozilla-plugin/src/Makefile.am:  Use $(libdir)/mozilla/plugins
	as the Mozilla plug-in directory, rather than hard coding the
	value based on mozilla-plugin.pc; invoke xpidl with XPIDLFLAGS.

2004-11-25 Braden McDaniel  <braden@endoframe.com>

	* doc/conformance.doc:  Miscellaneous updates.

2004-11-24 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/gtkvrml/vrmlbrowser.cc
	(gtk_vrml_browser_destroy):  Removed calls to
	gtk_main_iteration.

2004-11-24 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/gtkvrml/vrmlbrowser.cc
	(GtkGLViewer::set_timer):  Fixed crash on plug-in shutdown.

2004-11-23 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/gtkvrml/vrmlbrowser.cc
	(gtk_vrml_browser_destroy):  The browser must be destroyed
	before the viewer.

2004-11-22 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/openvrml.cpp:  Fixed declaration of
	PluginInstance constructor to throw std::bad_alloc.

2004-11-21 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/openvrml.cpp:  Removed attempt at factoring
	out platform-specific code using template specialization.  As
	far as I can tell, it can't work.

2004-11-21 Braden McDaniel  <braden@endoframe.com>

	* openvrml.spec.in:  Changed openvrml-gl-devel dependency on
	XFree86-devel to xorg-X11-devel.  Removed openvrml-mozilla
	dependency on mozilla.  Other browsers (e.g., Firefox) could use
	the plug-in, too.

2004-11-20 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/openvrml.cpp (NPP_GetValue):  Delegate to
	NP_GetValue.

2004-11-19 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/gtkvrml/vrmlbrowser.cc
	(gtk_vrml_browser_init):  Set the viewer for the browser.

2004-11-19 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/openvrml.cpp (NP_GetValue):  Handle
	variables NPPVpluginNameString and NPPVpluginDescriptionString.

2004-11-15 Braden McDaniel  <braden@endoframe.com>

	Updated versions of GL detection macros.

	* m4/Makefile.am
	* m4/ax_check_gl.m4
	* m4/ax_check_glu.m4
	* m4/ax_lang_compiler_ms.m4:  Added file.

2004-11-14 Braden McDaniel  <braden@endoframe.com>

	Added member function "halted" to node_traversal; used to check
	whether the traversal has been halted.

	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node.h

2004-11-14 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/node.cpp:  Doc-comment improvements.

2004-11-14 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/node.h:  Formatting changes.

2004-11-12 Braden McDaniel  <braden@endoframe.com>

	Converted node implementations to override
	node_class::do_initialize and node_class::do_render.

	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml/openvrml/vrml97node.h

2004-11-12 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/exposedfield.h:  Call
	event_side_effect from do_process_event (instead of recursively
	calling do_process_event and blowing out the stack).

2004-11-11 Braden McDaniel  <braden@endoframe.com>

	* doc/Makefile.am:  Make documentation directory in
	installdirs-local.

2004-11-11 Braden McDaniel  <braden@endoframe.com>

	Refactored code into different files. Moved field_value
	hierarchy into field_value.h; moved event_listener and
	event_emitter hierarchies into event.h; moved exposedfield
	class template into exposedfield.h.

	* src/libopenvrml/Makefile.am
	* src/libopenvrml/openvrml/ScriptJDK.h
	* src/libopenvrml/openvrml/Vrml97Parser.g
	* src/libopenvrml/openvrml/Vrml97Parser.hpp
	* src/libopenvrml/openvrml/bounding_volume.cpp
	* src/libopenvrml/openvrml/event.cpp:  Added file.
	* src/libopenvrml/openvrml/event.h:  Added file.
	* src/libopenvrml/openvrml/exposedfield.cpp:  Added file.
	* src/libopenvrml/openvrml/exposedfield.h:  Added file.
	* src/libopenvrml/openvrml/field.cpp:  Removed file.
	* src/libopenvrml/openvrml/field.h:  Removed file.
	* src/libopenvrml/openvrml/field_value.cpp:  Added file.
	* src/libopenvrml/openvrml/field_value.h:  Added file.
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node.h
	* src/libopenvrml/openvrml/script.h
	* src/libopenvrml/openvrml/vrml97node.h

2004-11-11 Braden McDaniel  <braden@endoframe.com>

	Favor private virtual functions that are delegated to by public
	non-virtual functions.

	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/field.cpp
	* src/libopenvrml/openvrml/field.h
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node.h
	* src/libopenvrml/openvrml/node_ptr.cpp
	* src/libopenvrml/openvrml/scope.cpp
	* src/libopenvrml/openvrml/scope.h
	* src/libopenvrml/openvrml/script.cpp
	* src/libopenvrml/openvrml/script.h
	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml/openvrml/vrml97node.h

2004-11-08 Braden McDaniel  <braden@endoframe.com>

	Replaced several public class members with accessor/mutator
	member functions.

	* src/libopenvrml/openvrml/ScriptJDK.cpp
	* src/libopenvrml/openvrml/Vrml97Parser.cpp
	* src/libopenvrml/openvrml/Vrml97Parser.g
	* src/libopenvrml/openvrml/Vrml97Parser.hpp
	* src/libopenvrml/openvrml/Vrml97ParserTokenTypes.hpp
	* src/libopenvrml/openvrml/Vrml97ParserTokenTypes.txt
	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/field.cpp
	* src/libopenvrml/openvrml/field.h
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node.h
	* src/libopenvrml/openvrml/node_ptr.cpp
	* src/libopenvrml/openvrml/scope.cpp
	* src/libopenvrml/openvrml/scope.h
	* src/libopenvrml/openvrml/script.cpp
	* src/libopenvrml/openvrml/script.h
	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml/openvrml/vrml97node.h
	* test/browser-create_vrml_from_stream.cpp
	* test/parse-anchor.cpp

2004-11-08 Braden McDaniel  <braden@endoframe.com>

	Updated to ANTLR 2.7.4.

	* lib/antlr/antlr/config.hpp
	* lib/antlr/src/BaseAST.cpp

2004-11-01 Braden McDaniel  <braden@endoframe.com>

	* configure.ac:  Removed reference to regex library Makefile.in.

2004-10-29 Braden McDaniel  <braden@endoframe.com>

	Use Spirit to parse URIs instead of regular expressions.
	Eliminated need to provide regex library on Windows.

	* ide-projects/Windows/VisualC7_1/OpenVRML/OpenVRML.sln:
	Removed regex library project.
	* ide-projects/Windows/VisualC7_1/OpenVRML/regex/regex.vcproj:
	Removed file.
	* lib/Makefile.am:  Removed reference to regex subdirectory.
	* lib/regex/Makefile.am:  Removed file.
	* lib/regex/cclass.h:  Removed file.
	* lib/regex/cname.h:  Removed file.
	* lib/regex/copyright.txt:  Removed file.
	* lib/regex/engine.c:  Removed file.
	* lib/regex/hs_regex.def:  Removed file.
	* lib/regex/hs_regex.html:  Removed file.
	* lib/regex/install.bat:  Removed file.
	* lib/regex/re_format.doc:  Removed file.
	* lib/regex/regcomp.c:  Removed file.
	* lib/regex/regerror.c:  Removed file.
	* lib/regex/regex.doc:  Removed file.
	* lib/regex/regex.h:  Removed file.
	* lib/regex/regex2.h:  Removed file.
	* lib/regex/regex_test.c:  Removed file.
	* lib/regex/regex_test.txt:  Removed file.
	* lib/regex/regexec.c:  Removed file.
	* lib/regex/regfree.c:  Removed file.
	* lib/regex/release.bat:  Removed file.
	* lib/regex/test_hs_regex.mak:  Removed file.
	* lib/regex/utils.h:  Removed file.
	* src/libopenvrml/Makefile.am:  Removed references to doc.h,
	doc.cpp.
	* src/libopenvrml/openvrml/browser.cpp:  Replaced URI class with
	uri class, which uses Spirit--rather than a regular expression--
	to parse URIs;  moved implementations of doc and doc2 methods to
	this file.
	* src/libopenvrml/openvrml/browser.h:  Moved definitions of doc
	and doc2 classes to this file.
	* src/libopenvrml/openvrml/doc.cpp:  Removed file.
	* src/libopenvrml/openvrml/doc.h:  Removed file.
	* src/libopenvrml/openvrml/img.cpp:  Removed reference to
	"doc.h".
	* src/libopenvrml/openvrml/script.cpp:  Removed reference to
	"doc.h".
	* src/libopenvrml/openvrml/vrml97node.cpp:  Removed reference to
	"doc.h".

2004-10-28 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp:  Removed obsoleted
	function object HasId_.

2004-10-28 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/system.cpp:  Removed some debugging
	output.

2004-10-28 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/system.cpp:  Fixed HTTP request line
	endings to be CRLF; added "Host" line.

2004-09-23 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/gtkvrml/vrmlbrowser.cc:  Updates for parity
	with libopenvrml changes.

2004-09-21 Braden McDaniel  <braden@endoframe.com>

	Doc-comment improvements.

	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/field.cpp
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/script.cpp
	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml/openvrml/vrml97node.h

2004-09-21 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/basetypes.h:  Removed spurious
	"return" in function returning "void".

2004-09-17 Braden McDaniel  <braden@endoframe.com>

	* doc/Doxyfile.in:  Don't generate documentation for "internal"
	doc-comments.

2004-09-17 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp:  Changed
	DefaultViewpoint class to default_viewpoint; moved to unnamed
	namespace.
	* src/libopenvrml/openvrml/browser.h:  Changed
	browser::default_viewpoint to browser::default_viewpoint_.

2004-09-16 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp:  Moved proto_node,
	proto_node_class member definitions to unnamed namespace.

2004-08-30 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp:  Moved proto_node,
	proto_node_class to unnamed namespace (from openvrml).

2004-08-30 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/gtkvrml/vrmlbrowser.cc:  Added nothrow
	exception specification to GtkGLViewer::~GtkGLViewer.

2004-07-24 Braden McDaniel  <braden@endoframe.com>

	* src/lookat/lookat.cpp:  Instantiate the viewer before the
	instantiating the browser so that the viewer is destroyed after
	the browser.

2004-07-19 Braden McDaniel  <braden@endoframe.com>

	Changed unsupported_interface and field_value_type_mismatch to
	inherit std::logic_error instead of std::runtime_error.

	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node.h

2004-07-19 Braden McDaniel  <braden@endoframe.com>

	Removed unsupported_interface constructor that takes only a
	string.

	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node.h
	* src/libopenvrml/openvrml/script.cpp
	* src/libopenvrml/openvrml/vrml97node.cpp

2004-07-18 Braden McDaniel  <braden@endoframe.com>

	delete_route should throw unsupported_interface.

	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node.h

2004-07-18 Braden McDaniel  <braden@endoframe.com>

	Allow viewers to be associated with and detached from browsers.
	This is not optimal, but we need to retain a viewer reference so
	that destroyed nodes can deallocate resources allocated in the
	renderer.  To really handle this properly, we probably need to
	have viewers created from a factory function on browser.  But to
	implement that, we need to be able to register viewer
	implementations; and we're not in a position to do that yet.

	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/browser.h
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/viewer.cpp
	* src/libopenvrml/openvrml/viewer.h
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	* src/libopenvrml-gl/openvrml/gl/viewer.h
	* src/lookat/lookat.cpp

2004-07-06 Braden McDaniel  <braden@endoframe.com>

	Cull conformance test table from the distribution in the
	interest of making a release.  No time to update it at the
	moment.

	* doc/Doxyfile.in
	* doc/Makefile.am
	* doc/doxygen-header

2004-07-03 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/ScriptJDK.cpp:  Eliminated use of
	<strstream.h>.

2004-06-01 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/Makefile.am:  Define GTK_DISABLE_DEPRECATED.
	* mozilla-plugin/src/openvrml.cpp:  Replace use of deprecated
	GTK+ features.
	* mozilla-plugin/src/gtkvrml/vrmlbrowser.cc:  Replace use of
	deprecated GTK+ features; fixed bug with processing redraw
	events generated from within the scene.

2004-06-01 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/node.cpp:  Created "Nodes" module in
	Doxygen documentation.

2004-06-01 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/vrml97node.cpp:  Fixed crash on last
	frame of MovieTexture.

2004-06-01 Braden McDaniel  <braden@endoframe.com>

	* README:  Mention license terms for the Mozilla plug-in.

2004-05-26 Braden McDaniel  <braden@endoframe.com>

	Doc-comment fixes and improvements.

	* src/libopenvrml/openvrml/basetypes.cpp
	* src/libopenvrml/openvrml/node.cpp

2004-05-16 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/Makefile.am:  Fixed package name for
	idldir.

2004-05-16 Braden McDaniel  <braden@endoframe.com>

	* doc/Makefile.am:  Added target for "manual"; added "manual" to
	MAINTAINERCLEANFILES.

2004-05-15 Braden McDaniel  <braden@endoframe.com>

	* openvrml.spec.in:  Use "License" instead of "Copyright";
	require xorg-x11 packages instead of XFree86; removed "Prefix"
	specification; use "%configure" macro; install script.jar; use
	%{_libdir}, etc. macros; install openvrml.idl.

2004-05-15 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/configure.ac:  Escape brackes in regexp for
	processing by m4; remove "componentsdir" substitution.
	* mozilla-plugin/src/Makefile.am:  Install typelib in the
	plugins directory.

2004-05-15 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/field.h:  Quell complaint from
	doxygen.

2004-05-14 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml-gl/openvrml/gl/viewer.cpp:  Fixed name
	of combined_vertex_data_ for cl 13.10.3077.

2004-05-09 Braden McDaniel  <braden@endoframe.com>

	* openvrml.spec.in:  Corrected description of lookat RPM to
	reflect the change to using SDL; define NDEBUG when configuring.

2004-05-09 Braden McDaniel  <braden@endoframe.com>

	* Makefile.am:  Build the Mozilla plug-in before building the
	tests.

2004-05-08 Braden McDaniel  <braden@endoframe.com>

	Doxygen 1.3.7 doesn't like out-of-line documentation of friends
	using "@var".

	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/field.cpp
	* src/libopenvrml/openvrml/node_ptr.cpp
	* src/libopenvrml/openvrml/scope.cpp
	* src/libopenvrml/openvrml/script.cpp
	* src/libopenvrml/openvrml/script.h
	* src/libopenvrml/openvrml/vrml97node.cpp

2004-05-05 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/src/openvrml.cpp:  Moved implementation of
	nsIClassInfo from a mix-in class to ScriptablePeer.

2004-05-05 Braden McDaniel  <braden@endoframe.com>

	Made the Mozilla plug-in scriptable.  Only a trivial amount of
	functionality is currently exposed: you can get the name and
	version of the plug-in.

	* openvrml.spec.in:  Install the type library.
	* mozilla-plugin/configure.ac:  Locate Mozilla's components
	directory.
	* mozilla-plugin/src/Makefile.am
	* mozilla-plugin/src/openvrml.cpp
	* mozilla-plugin/src/openvrml.idl:  Added file.  An adaptation
	of the VRML97 EAI to XPCOM.

2004-05-03 Braden McDaniel  <braden@endoframe.com>

	* README:  Fixed note regarding building against a Java
	Development Kit.

2004-05-02 Braden McDaniel  <braden@endoframe.com>

	Fixed errors caught by gcc 3.4.

	* src/libopenvrml/openvrml/ScriptJDK.cpp
	* src/libopenvrml/openvrml/field.h
	* src/libopenvrml/openvrml/node.h
	* src/libopenvrml/openvrml/script.cpp

2004-04-29 Braden McDaniel  <braden@endoframe.com>

	Made building the Mozilla plug-in optional.

	* README
	* configure.ac
	* mozilla-plugin/configure.ac
	* mozilla-plugin/src/Makefile.am

2004-04-27 Braden McDaniel  <braden@endoframe.com>

	Removed Microsoft Visual C++ 7.0 project files.

	* ide-projects/Makefile.am
	* ide-projects/Windows/VisualC7/OpenVRML/OpenVRML.sln:  Removed
	file.
	* ide-projects/Windows/VisualC7/OpenVRML/antlr/antlr.vcproj:
	Removed file.
	* ide-projects/Windows/VisualC7/OpenVRML/lookat/lookat.vcproj:
	Removed file.
	* ide-projects/Windows/VisualC7/OpenVRML/openvrml/openvrml.vcproj:
	Removed file.
	* ide-projects/Windows/VisualC7/OpenVRML/openvrml-gl/openvrml-gl.vcproj:
	Removed file.
	* ide-projects/Windows/VisualC7/OpenVRML/regex/regex.vcproj:
	Removed file.

2004-04-26 Braden McDaniel  <braden@endoframe.com>

	* mozilla-plugin/configure.ac:  Removed unused Makefile from
	AC_OUTPUT.

2004-04-26 Braden McDaniel  <braden@endoframe.com>

	Added a Mozilla plug-in.

	* Makefile.am
	* configure.ac
	* openvrml.spec.in
	* mozilla-plugin/Makefile.am:  Added file.
	* mozilla-plugin/configure.ac:  Added file.
	* mozilla-plugin/src/Makefile.am:  Added file.
	* mozilla-plugin/src/openvrml.cpp:  Added file (plug-in API
	entry points).
	* mozilla-plugin/src/gtkvrml/vrmlbrowser.cc:  Added file (GTK+
	widget).
	* mozilla-plugin/src/gtkvrml/vrmlbrowser.h:  Added file (GTK+
	widget).

2004-04-23 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/script.cpp:  Removed erroneously
	committed debugging output.

2004-04-23 Braden McDaniel  <braden@endoframe.com>

	Fixed incorrect assertion in Vrml97Parser::protoBodyStatement.

	* src/libopenvrml/openvrml/Vrml97Parser.cpp
	* src/libopenvrml/openvrml/Vrml97Parser.g

2004-04-09 Braden McDaniel  <braden@endoframe.com>

	Fixes for self-referential Script nodes.  This usage was broken
	when initialization was folded into node construction.  Since
	fields are parsed before the node instance exists, there is no
	reference to use when the self-reference is encountered during
	parsing.  To resolve this, a special value is reserved for
	node_ptr.  When the script_node constructor sees this value, it
	is replaced with a self-reference.

	* src/libopenvrml/openvrml/Vrml97Parser.cpp
	* src/libopenvrml/openvrml/Vrml97Parser.g
	* src/libopenvrml/openvrml/Vrml97Parser.hpp
	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/node_ptr.cpp
	* src/libopenvrml/openvrml/node_ptr.h
	* src/libopenvrml/openvrml/script.cpp
	* test/parse/testsuite/parse.good/self-referential-script-in-proto.wrl
	* test/parse/testsuite/parse.good/self-referential-script.wrl

2004-04-08 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp (browser::browser):  Call
	init_node_class_map to initialize the node class map in the
	constructor.  Otherwise browser::create_vrml_from_stream will
	not work until browser::load_url is called.

2004-04-06 Braden McDaniel  <braden@endoframe.com>

	* doc/conformance.doc:  Replaced "Comment" column in the result
	table with columns containing links to related tasks and bugs.

2004-04-04 Braden McDaniel  <braden@endoframe.com>

	* doc/conformance.doc:  Fully incorporated Tom Flynn's list of
	problems with the NIST tests into the endnotes for the result
	table.

2004-04-04 Braden McDaniel  <braden@endoframe.com>

	"Unescape" strings as they are parsed.

	* src/libopenvrml/openvrml/Vrml97Parser.cpp
	* src/libopenvrml/openvrml/Vrml97Parser.g

2004-04-04 Braden McDaniel  <braden@endoframe.com>

	* doc/doxygen-header:  Another fix to counteract idiosyncrasies
	of the default doxygen style sheet.

2004-04-03 Braden McDaniel  <braden@endoframe.com>

	Changed frustrum constructor argument names from "near", "far",
	to "z_near", "z_far".  For some reason, the fact that "near" and
	"far" are keywords that meant something back when cl was a
	16-bit compiler means that modern cl does not generate correct
	code when they are used as identifiers.

	* src/libopenvrml/openvrml/frustum.cpp
	* src/libopenvrml/openvrml/frustum.h

2004-04-02 Braden McDaniel  <braden@endoframe.com>

	Set the default drawing color (i.e., in the absence of a Color
	node) in vrml97_node::shape_node::do_render_child.  Added
	geometry_node::emissive to indicate whether geometry should
	be drawn with the emissive color (rather than the diffuse
	color).  This should resolve problems rendering line and point
	sets with the emissive color.

	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node.h
	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml/openvrml/vrml97node.h
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp

2004-03-28 Braden McDaniel  <braden@endoframe.com>

	* configure.ac:  Excise -rpath flag from the SDL_LIBS variable.
	sdl-config (which is used by AM_PATH_SDL) emits an -rpath flag
	pointing at its library installation directory.  We don't want
	this, as it prevents users from linking lookat against, for
	example, a locally compiled libGL when a version of the library
	also exists in SDL's library installation directory, typically
	/usr/lib.

2004-03-23 Braden McDaniel  <braden@endoframe.com>

	Removed rendering_context argument from
	texture_node::render_texture and
	texture_transform_node::render_texture_transform.

	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node.h
	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml/openvrml/vrml97node.h

2004-03-22 Braden McDaniel  <braden@endoframe.com>

	Formatting improvements to the NIST test suite result table.

	* doc/conformance.doc
	* doc/doxygen-header

2004-03-22 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/vrml97node.cpp
	(point_set_node::modified, shape_node::modified):  Fixed
	recursive call.

2004-03-22 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	(viewer::insert_shell):  Only build vector of vertices when
	drawing shells with non-convex polygons.

2004-03-21 Braden McDaniel  <braden@endoframe.com>

	* test/node_interface_set.cpp:  Added some unit tests for
	node_interface_set.

2004-03-21 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/script.cpp
	({anonymous}::js_::script::activate):  When converting the
	script function arguments to jsvals, only add GC roots to
	garbage-collected things; i.e., jsvals for which
	JSVAL_IS_GCTHING returns true.

2004-03-20 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml-gl/openvrml/gl/viewer.cpp:  Rewrote use of GLU
	tesselator.  The previous code assumed that the GLU_TESS_VERTEX
	callback was called synchronously with calls to gluTessVertex.
	There is no such guarantee.

2004-03-14 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp (browser::browser):
	Removed unnecessary call to browser::load_url.

2004-03-14 Braden McDaniel  <braden@endoframe.com>

	Fixed crashes associated with subsequent calls to
	browser::load_url.

	* src/libopenvrml/openvrml/browser.cpp (scene::scene):  Throw
	no_alternative_url if no alternative URI can be resolved.
	* src/libopenvrml/openvrml/browser.h:  Added no_alternative_url
	exception.
	* src/libopenvrml/openvrml/system.cpp (system::http_fetch):
	Don't attempt to construct a std::string from a null pointer.

2004-03-13 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/vrml97node.cpp
	(anchor_node::do_render_child):  Fixed recursive call to
	child_node::render_child.

2004-03-13 Braden McDaniel  <braden@endoframe.com>

	Fixed "free" of stack memory.

	* src/libopenvrml/openvrml/doc.cpp
	* src/libopenvrml/openvrml/system.cpp
	* src/libopenvrml/openvrml/system.h

2004-03-11 Braden McDaniel  <braden@endoframe.com>

	Removed unused node_interface_id_equals function object.

	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node.h

2004-03-11 Braden McDaniel  <braden@endoframe.com>

	Fixed node_initerface_matches_field function object semantics to
	match exposedFields as well as fields.  This is consistent with
	the way node_interface_matches_eventin and
	node_interface_matches_eventout match exposedFields as well as
	eventIns and eventOuts, respectively.

	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node.h

2004-03-11 Braden McDaniel  <braden@endoframe.com>

	Fixed comparator for node_interface_set to properly guard
	against collisions between exposedField names and eventIn and
	eventOut names.

	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node.h
	* test/Makefile.am
	* test/node_interface_set.cpp

2004-03-10 Braden McDaniel  <braden@endoframe.com>

	Minor parse test suite reorg; added some tests to confirm
	failure on incorrect VRML.

	* test/parse/testsuite/Makefile.am
	* test/parse/testsuite/parse.bad/parse.exp:  Added file.
	* test/parse/testsuite/parse.bad/proto-eventin-conflict.wrl:
	Added file.
	* test/parse/testsuite/parse.bad/proto-eventout-conflict.wrl:
	Added file.
	* test/parse/testsuite/parse.good/parse.exp:  Added file.
	* test/parse/testsuite/parse.good/proto-containment-2-deep.wrl:
	Added file.
	* test/parse/testsuite/parse.good/proto-containment-trivial.wrl:
	Added file.
	* test/parse/testsuite/parse.good/proto-containment.wrl:  Added
	file.
	* test/parse/testsuite/parse.good/proto-field-is-proto.wrl:
	Added file.
	* test/parse/testsuite/parse.good/proto-impl-exposedfield-event-is.wrl:
	Added file.
	* test/parse/testsuite/parse.xpass/parse.exp:  Removed file.
	* test/parse/testsuite/parse.xpass/proto-containment-2-deep.wrl:
	Removed file.
	* test/parse/testsuite/parse.xpass/proto-containment-trivial.wrl:
	Removed file.
	* test/parse/testsuite/parse.xpass/proto-containment.wrl:
	Removed file.
	* test/parse/testsuite/parse.xpass/proto-field-is-proto.wrl:
	Removed file.
	* test/parse/testsuite/parse.xpass/proto-impl-exposedfield-event-is.wrl:
	Removed file.

2004-03-10 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/vrml97node.cpp:  Removed cruft
	associated with abstract_geometry_node.

2004-03-10 Braden McDaniel  <braden@endoframe.com>

	Removed cruft associated with the generic field mutator.

	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml/openvrml/vrml97node.h

2004-03-10 Braden McDaniel  <braden@endoframe.com>

	Removed add_interface function.  node_interface_set::insert is
	an appropriate replacement.

	* src/libopenvrml/openvrml/Vrml97Parser.cpp
	* src/libopenvrml/openvrml/Vrml97Parser.g
	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node.h
	* src/libopenvrml/openvrml/script.cpp
	* src/libopenvrml/openvrml/script.h
	* src/libopenvrml/openvrml/vrml97node.cpp

2004-03-09 Braden McDaniel  <braden@endoframe.com>

	Added the beginnings of a DejaGnu test suite for the parser.

	* configure.ac
	* test/Makefile.am
	* test/parse/.cvsignore
	* test/parse/Makefile.am
	* test/parse/parse.cpp
	* test/parse/testsuite/.cvsignore
	* test/parse/testsuite/Makefile.am
	* test/parse/testsuite/config/unix.exp
	* test/parse/testsuite/parse.xpass/parse.exp
	* test/parse/testsuite/parse.xpass/proto-containment-2-deep.wrl
	* test/parse/testsuite/parse.xpass/proto-containment-trivial.wrl
	* test/parse/testsuite/parse.xpass/proto-containment.wrl
	* test/parse/testsuite/parse.xpass/proto-field-is-proto.wrl
	* test/parse/testsuite/parse.xpass/proto-impl-exposedfield-event-is.wrl

2004-03-09 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp
	(proto_node::proto_exposedfield<FieldValue>::process_event):
	Propagate events to exposedField listeners.

2004-03-08 Braden McDaniel  <braden@endoframe.com>

	Modified add_route and delete_route to return boolean values
	indicating success or failure.

	* src/libopenvrml/openvrml/Vrml97Parser.cpp
	* src/libopenvrml/openvrml/Vrml97Parser.g
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node.h

2004-03-08 Braden McDaniel  <braden@endoframe.com>

	Removed unnecessary abstract_child_node and
	abstract_geometry_node classes.

	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml/openvrml/vrml97node.h

2004-03-08 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp (proto_node::proto_node):
	Initialize PROTO exposedFields with the initial value from the
	constructor.

2004-03-07 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp (proto_node::proto_node):
	When adding event listeners and emitters for an exposedField,
	the "set_" prefix and "_changed" suffix, respectively, need to
	be added to the identifiers.

2004-03-07 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp (scene::scene):  Fixed
	URI string given to Vrml97Parser constructor. scene::url should
	not be used at this point, since scene::url_ has not been
	initialized.

2004-03-07 Braden McDaniel  <braden@endoframe.com>

	Fixed uses of SemanticException to include URI, line number, and
	column number information.

	* src/libopenvrml/openvrml/Vrml97Parser.cpp
	* src/libopenvrml/openvrml/Vrml97Parser.g

2004-03-07 Braden McDaniel  <braden@endoframe.com>

	Corrected SphereSensor "offset" exposedField type to
	"SFRotation".

	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/vrml97node.cpp

2004-03-07 Braden McDaniel  <braden@endoframe.com>

	Fixed a problem with establishing IS mappings from exposedFields
	in the PROTO implementation to eventIns and eventOuts in the
	PROTO interface.

	* src/libopenvrml/openvrml/Vrml97Parser.cpp
	* src/libopenvrml/openvrml/Vrml97Parser.g
	* src/libopenvrml/openvrml/Vrml97Parser.hpp
	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/private.h:  Added implementations of
	the binary_compose function object and the compose2 helper
	function.

2004-03-05 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp:  Properly catch parse
	errors in browser::load_url.

2004-03-04 Braden McDaniel  <braden@endoframe.com>

	* src/lookat/lookat.cpp:  Fixed unnecesary redundant calls to
	openvrml::gl::viewer::input.

2004-03-02 Braden McDaniel  <braden@endoframe.com>

	* m4/acx_pthread.m4:  Updated to most recent version of the
	ACX_PTHREAD macro.

2004-03-02 Braden McDaniel  <braden@endoframe.com>

	* README:  List Boost as a dependency.

2004-03-02 Braden McDaniel  <braden@endoframe.com>

	Changed the lookat license to the GPL.  (The LGPL doesn't make
	very much sense for ordinary executables.)

	* COPYING:  Added file.
	* README:  Updated license summary.
	* src/lookat/lookat.cpp:  Changed license notice to refer to the
	GPL.

2004-03-02 Braden McDaniel  <braden@endoframe.com>

	PROTO field default value declarations should begin a new scope
	rooted at the scope outside the PROTO definition.  In
	particular, this should work:

	PROTO Node0 [] { Group {} }

	PROTO Node1 [
	  field SFNode field0 Node0 {}
	] {
	  Collision {
	    proxy IS field0
	  }
	}

	* src/libopenvrml/openvrml/Vrml97Parser.cpp
	* src/libopenvrml/openvrml/Vrml97Parser.g
	* src/libopenvrml/openvrml/Vrml97Parser.hpp

2004-03-02 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/vrml97node.cpp:  Removed obsolete
	doc-comment.

2004-03-01 Braden McDaniel  <braden@endoframe.com>

	Changed parser to fail fast on errors rather than try to
	recover.  Modified the invalid_vrml exception to store the URL
	along with the line and column numbers for the error.

	* src/libopenvrml/openvrml/Vrml97Parser.cpp
	* src/libopenvrml/openvrml/Vrml97Parser.g
	* src/libopenvrml/openvrml/Vrml97Parser.hpp
	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/browser.h

2004-03-01 Braden McDaniel  <braden@endoframe.com>

	* ide-projects/Makefile.am:  Added Visual C++ 7.1 project files.
	* ide-projects/Windows/VisualC7_1/OpenVRML/OpenVRML.sln:  Added
	file.
	* ide-projects/Windows/VisualC7_1/OpenVRML/antlr/antlr.vcproj:
	Added file.
	* ide-projects/Windows/VisualC7_1/OpenVRML/lookat/lookat.vcproj:
	Added file.
	* ide-projects/Windows/VisualC7_1/OpenVRML/openvrml/openvrml.vcproj:
	Added file.
	* ide-projects/Windows/VisualC7_1/OpenVRML/openvrml-gl/openvrml-gl.vcproj:
	Added file.
	* ide-projects/Windows/VisualC7_1/OpenVRML/regex/regex.vcproj:
	Added file.

2004-03-01 Braden McDaniel  <braden@endoframe.com>

	* Makefile.am:  Removed residual "doc" target cruft.

2004-03-01 Braden McDaniel  <braden@endoframe.com>

	* doc/Makefile.am:  Changed "doc" make target to "html".  This
	is consistent with the target automake generates.  Currently,
	HTML documentation is all we generate.

2004-03-01 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp
	(browser::create_vrml_from_stream):  Treat any ANTLRException as
	invalid_vrml.

2004-02-23 Braden McDaniel  <braden@endoframe.com>

	Removed node::field mutator in favor of initializing the fields
	of a node with initial values at construction time.
	node_type::create_node now takes a map of fields and initial
	values.

	* src/libopenvrml/openvrml/ScriptJDK.cpp
	* src/libopenvrml/openvrml/Vrml97Parser.cpp
	* src/libopenvrml/openvrml/Vrml97Parser.g
	* src/libopenvrml/openvrml/Vrml97Parser.hpp
	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node.h
	* src/libopenvrml/openvrml/script.cpp
	* src/libopenvrml/openvrml/script.h
	* src/libopenvrml/openvrml/vrml97node.cpp

2004-02-23 Braden McDaniel  <braden@endoframe.com>

	Improved FieldValueConcept documentation.

	* src/libopenvrml/openvrml/field.cpp
	* src/libopenvrml/openvrml/field.h

2004-02-22 Braden McDaniel  <braden@endoframe.com>

	Doc-comment improvements.

	* doc/doxygen-header:  Style sheet changes to counteract style
	sheet changes in Doxygen 1.3.6.
	* src/libopenvrml/openvrml/basetypes.cpp
	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/field.cpp
	* src/libopenvrml/openvrml/field.h
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node.h
	* src/libopenvrml/openvrml/node_ptr.cpp
	* src/libopenvrml/openvrml/node_ptr.h
	* src/libopenvrml/openvrml/script.cpp
	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml/openvrml/vrml97node.h

2004-02-22 Braden McDaniel  <braden@endoframe.com>

	* doc/doxygen-header:  Style sheet changes to counteract style
	sheet changes in Doxygen 1.3.6.

2004-02-20 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/field.cpp:  Removed obsolete doc-
	comments.

2004-02-20 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/field.h:  Changed event_listener and
	event_emitter to inherit boost::noncopyable.

2004-02-19 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/field.h:  Replaced a variable
	definition in "FieldValueConcept::constraints" with a typedef to
	exercise the "value_type" typedef associated with the concept.
	This quells a gcc warning about an unused variable.

2004-02-09 Braden McDaniel  <braden@endoframe.com>

	Cruft removal.

	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/browser.h

2004-02-08 Braden McDaniel  <braden@endoframe.com>

	Changed whitespace convention used in Java source to match Sun
	convention.

	* java/vrml/BaseNode.java
	* java/vrml/Browser.java
	* java/vrml/ConstField.java
	* java/vrml/ConstMField.java
	* java/vrml/Event.java
	* java/vrml/Field.java
	* java/vrml/InvalidEventInException.java
	* java/vrml/InvalidEventOutException.java
	* java/vrml/InvalidExposedFieldException.java
	* java/vrml/InvalidFieldChangeException.java
	* java/vrml/InvalidFieldException.java
	* java/vrml/InvalidRouteException.java
	* java/vrml/InvalidVRMLSyntaxException.java
	* java/vrml/MField.java
	* java/vrml/field/ConstMFColor.java
	* java/vrml/field/ConstMFFloat.java
	* java/vrml/field/ConstMFInt32.java
	* java/vrml/field/ConstMFNode.java
	* java/vrml/field/ConstMFRotation.java
	* java/vrml/field/ConstMFString.java
	* java/vrml/field/ConstMFTime.java
	* java/vrml/field/ConstMFVec3f.java
	* java/vrml/field/ConstSFBool.java
	* java/vrml/field/ConstSFColor.java
	* java/vrml/field/ConstSFFloat.java
	* java/vrml/field/ConstSFImage.java
	* java/vrml/field/ConstSFInt32.java
	* java/vrml/field/ConstSFNode.java
	* java/vrml/field/ConstSFRotation.java
	* java/vrml/field/ConstSFString.java
	* java/vrml/field/ConstSFTime.java
	* java/vrml/field/ConstSFVec2f.java
	* java/vrml/field/ConstSFVec3f.java
	* java/vrml/field/MFColor.java
	* java/vrml/field/MFFloat.java
	* java/vrml/field/MFInt32.java
	* java/vrml/field/MFNode.java
	* java/vrml/field/MFRotation.java
	* java/vrml/field/MFString.java
	* java/vrml/field/MFTime.java
	* java/vrml/field/MFVec2f.java
	* java/vrml/field/MFVec3f.java
	* java/vrml/field/SFBool.java
	* java/vrml/field/SFColor.java
	* java/vrml/field/SFFloat.java
	* java/vrml/field/SFImage.java
	* java/vrml/field/SFInt32.java
	* java/vrml/field/SFNode.java
	* java/vrml/field/SFRotation.java
	* java/vrml/field/SFString.java
	* java/vrml/field/SFTime.java
	* java/vrml/field/SFVec2f.java
	* java/vrml/field/SFVec3f.java
	* java/vrml/node/Node.java
	* java/vrml/node/Script.java

2004-02-04 Braden McDaniel  <braden@endoframe.com>

	Replaced node_interface_set class with a typedef for a std::set.

	* src/libopenvrml/openvrml/Vrml97Parser.cpp
	* src/libopenvrml/openvrml/Vrml97Parser.g
	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node.h
	* src/libopenvrml/openvrml/script.cpp
	* src/libopenvrml/openvrml/vrml97node.cpp

2004-01-31 Braden McDaniel  <braden@endoframe.com>

	More de-inlining.

	* src/libopenvrml/openvrml/field.cpp
	* src/libopenvrml/openvrml/field.h

2004-01-30 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/basetypes.h:  Workaround for an
	apparent parser bug in cl 13.10.3077.

2004-01-30 Braden McDaniel  <braden@endoframe.com>

	Fixes to make cl 13.10.3077 happy.

	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp

2004-01-30 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/node.cpp:  Consistently pass
	comparator parameter to std::set.

2004-01-30 Braden McDaniel  <braden@endoframe.com>

	Don't inline so much.

	* src/libopenvrml/openvrml/basetypes.cpp
	* src/libopenvrml/openvrml/basetypes.h

2004-01-30 Braden McDaniel  <braden@endoframe.com>

	* lib/antlr/GNUmakefile.am:  Added ANTLRUtil.cpp to be built
	and included in libantlr, as well as the distribution.
	Interesting that its absence has not been noticed until now; it
	appears to be nonessential.

2004-01-29 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/private.h:  Added implementation of
	scope_guard_impl1 template.  Added unary_function_wrapper to
	facilitate the use of locally-defined function objects.
	* src/libopenvrml/openvrml/script.cpp:  Modified use of
	ScopeGuard to be properly standard conforming.  The type
	signature of nonvirtual member functions in the C++ standard
	library is undefined.  This also fixes a problem with
	cl 13.10.3077.

2004-01-27 Braden McDaniel  <braden@endoframe.com>

	Rearchitected event propagation.  Instead of resolving the event
	name during each propagation, that resolution now happens only
	when a ROUTE is established.  And rather than queueing every
	event, event propagation now occurs immediately whenever it can.

	* doc/Doxyfile.in:  Added BOOST_CLASS_REQUIRE(a,b,c) to
	PREDEFINED.
	* src/libopenvrml/openvrml/ScriptJDK.cpp
	* src/libopenvrml/openvrml/Vrml97Parser.cpp
	* src/libopenvrml/openvrml/Vrml97Parser.g
	* src/libopenvrml/openvrml/Vrml97Parser.hpp
	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/browser.h
	* src/libopenvrml/openvrml/field.cpp
	* src/libopenvrml/openvrml/field.h
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node.h
	* src/libopenvrml/openvrml/private.h
	* src/libopenvrml/openvrml/script.cpp
	* src/libopenvrml/openvrml/script.h
	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml/openvrml/vrml97node.h
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp

2004-01-26 Braden McDaniel  <braden@endoframe.com>

	Turned off Antlr's defaultErrorHandler for "protoFieldValue".

	* src/libopenvrml/openvrml/Vrml97Parser.cpp
	* src/libopenvrml/openvrml/Vrml97Parser.g

2004-01-26 Braden McDaniel  <braden@endoframe.com>

	Removed vestiges of Visual C++ 6.0 build.

	* java/Makefile.am
	* java/Makefile.vc6:  Removed file.
	* java/vrml/Makefile.am
	* java/vrml/Makefile.vc6:  Removed file.
	* java/vrml/field/Makefile.am
	* java/vrml/field/Makefile.vc6:  Removed file.
	* java/vrml/node/Makefile.am
	* java/vrml/node/Makefile.vc6:  Removed file.
	* lib/antlr/GNUmakefile.am
	* lib/antlr/Makefile.vc6

2004-01-26 Braden McDaniel  <braden@endoframe.com>

	Consolidated "Makefile.am" contents.

	* configure.ac
	* lib/antlr/GNUmakefile.am
	* lib/antlr/antlr/GNUmakefile.am:  Removed file.
	* lib/antlr/src/GNUmakefile.am:  Removed file.
	* src/libopenvrml/Makefile.am
	* src/libopenvrml/openvrml/Makefile.am:  Removed file.
	* src/libopenvrml-gl/Makefile.am
	* src/libopenvrml-gl/openvrml/Makefile.am:  Removed file.
	* src/libopenvrml-gl/openvrml/gl/Makefile.am:  Removed file.
	* src/lookat/Makefile.am
	* test/Makefile.am

2004-01-24 Braden McDaniel  <braden@endoframe.com>

	Fixed argument numbering in NaN error message in SFVec2f and
	SFVec3f constructors.

	* src/libopenvrml/openvrml/script.cpp

2004-01-24 Braden McDaniel  <braden@endoframe.com>

	Guard against NaN values in JavaScript SFVec3f, SFVec2f
	constructors and component mutators.

	* src/libopenvrml/openvrml/script.cpp

2004-01-24 Braden McDaniel  <braden@endoframe.com>

	Quell warnings from gcc.

	* src/libopenvrml/openvrml/system.cpp
	* src/libopenvrml/openvrml/system.h

2004-01-24 Braden McDaniel  <braden@endoframe.com>

	Correctly check for NaN.

	* src/libopenvrml/openvrml/basetypes.h

2004-01-24 Braden McDaniel  <braden@endoframe.com>

	Prevent "nan" as a component of vec2f, vec3f.  A side effect of
	this is that the non-const operator[] for these types must be
	removed.

	* src/libopenvrml/openvrml/basetypes.cpp
	* src/libopenvrml/openvrml/basetypes.h
	* src/libopenvrml/openvrml/frustum.cpp
	* src/libopenvrml/openvrml/script.cpp
	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp

2004-01-24 Braden McDaniel  <braden@endoframe.com>

	Doc-comment fixes.

	* src/libopenvrml/openvrml/field.cpp
	* src/libopenvrml/openvrml/node.cpp

2004-01-22 Braden McDaniel  <braden@endoframe.com>

	Express noncopyability by inheriting "boost::noncopyable".

	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/browser.h
	* src/libopenvrml/openvrml/doc.cpp
	* src/libopenvrml/openvrml/doc.h
	* src/libopenvrml/openvrml/img.h
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node.h
	* src/libopenvrml/openvrml/scope.cpp
	* src/libopenvrml/openvrml/scope.h
	* src/libopenvrml/openvrml/script.cpp
	* src/libopenvrml/openvrml/script.h
	* src/libopenvrml/openvrml/system.h
	* src/libopenvrml/openvrml/viewer.cpp
	* src/libopenvrml/openvrml/viewer.h

2004-01-20 Braden McDaniel  <braden@endoframe.com>

	Use boost::lexical_cast.

	* src/libopenvrml/openvrml/node.cpp

2004-01-19 Braden McDaniel  <braden@endoframe.com>

	Replaced uses of "@relates" with "@relatesalso".

	* src/libopenvrml/openvrml/basetypes.cpp
	* src/libopenvrml/openvrml/node.cpp

2004-01-19 Braden McDaniel  <braden@endoframe.com>

	Set DETAILS_AT_TOP to YES.

	* doc/Doxyfile.in

2004-01-19 Braden McDaniel  <braden@endoframe.com>

	Added doc-comment for "scope_ptr".

	* src/libopenvrml/openvrml/scope.cpp

2004-01-19 Braden McDaniel  <braden@endoframe.com>

	Set ALWAYS_DETAILED_SEC and EXTRACT_LOCAL_CLASSES to YES.

	* doc/Doxyfile.in

2004-01-19 Braden McDaniel  <braden@endoframe.com>

	Added "Doxyfile" as a dependency of the "doc" target.

	* doc/Makefile.am

2004-01-19 Braden McDaniel  <braden@endoframe.com>

	Made "script_node::to_script" private.

	* src/libopenvrml/openvrml/script.h

2004-01-14 Braden McDaniel  <braden@endoframe.com>

	Use boost::lexical_cast.

	* src/libopenvrml/openvrml/browser.cpp

2004-01-07 Braden McDaniel  <braden@endoframe.com>

	Removed unused member "openvrml::gl::viewer::rotation".

	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	* src/libopenvrml-gl/openvrml/gl/viewer.h

2004-01-07 Braden McDaniel  <braden@endoframe.com>

	Removed unused member "openvrml::gl::viewer::rotation_changed".

	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	* src/libopenvrml-gl/openvrml/gl/viewer.h

2004-01-01 Braden McDaniel  <braden@endoframe.com>

	Added operator* implementations for vec2f and vec3f that take a
	scalar on the left-hand side.

	* src/libopenvrml/openvrml/basetypes.cpp
	* src/libopenvrml/openvrml/basetypes.h

2003-12-31 Braden McDaniel  <braden@endoframe.com>

	Doxygen doc-comment updates.

	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node.h

2003-12-31 Braden McDaniel  <braden@endoframe.com>

	* doc/Doxyfile.in:  Updated for Doxygen 1.3.5.

2003-12-31 Braden McDaniel  <braden@endoframe.com>

	Doxygen doc-comment updates.

	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml/openvrml/vrml97node.h

2003-12-14 Braden McDaniel  <braden@endoframe.com>

	Added value_type typedef to field_value subclasses.  Added
	constructor that takes a value_type to the mf* types.

	* src/libopenvrml/openvrml/field.h
	* src/libopenvrml/openvrml/field.cpp

2003-12-09 Braden McDaniel  <braden@endoframe.com>

	Modifed "viewer::insert_background" to use the "image" class.

	* src/libopenvrml/openvrml/viewer.cpp
	* src/libopenvrml/openvrml/viewer.h
	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml/openvrml/vrml97node.h
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	* src/libopenvrml-gl/openvrml/gl/viewer.h

2003-11-30 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/basetypes.cpp:  Implemented
	operator== for "openvrml::image".

2003-11-25 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	(viewer::insert_texture):  Check GL_MAX_TEXTURE_SIZE and rescale
	the texture as needed.

2003-11-24 Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	(viewer::insert_texture):  Accept arbitrarily large textures
	rather than topping out at 256*256.  Textures with sides that
	are not powers of 2 are scaled down to the nearest power of 2.

2003-11-22 Braden McDaniel  <braden@endoframe.com>

	Modified "viewer::insert_texture" to accept an "image".

	* src/libopenvrml/openvrml/viewer.cpp
	* src/libopenvrml/openvrml/viewer.h
	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	* src/libopenvrml-gl/openvrml/gl/viewer.h

2003-11-21 Braden McDaniel  <braden@endoframe.com>

	Replaced "w", "h", "components", and "pixels" members of
	"texture_node" with an "image" member that returns an
	"openvrml::image".

	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node.h
	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml/openvrml/vrml97node.h

2003-11-20 Braden McDaniel  <braden@endoframe.com>

	Modified lookat to use SDL instead of glut.

	* README:  Updated description of dependencies.
	* configure.ac:  Check for SDL instead of glut.
	* openvrml.spec.in:  Require SDL instead of glut.
	* m4/Makefile.am:  Removed "ax_check_glut.m4" from EXTRA_DIST.
	* m4/ax_check_glut.m4:  Removed file.
	* src/lookat/Makefile.am:  Apply SDL flags instead of glut flags.
	* src/lookat/ViewerGlut.cpp:  Removed file.
	* src/lookat/ViewerGlut.h:  Removed file.
	* src/lookat/lookat.cpp:  Use SDL instead of glut.

2003-11-18  Braden McDaniel  <braden@endoframe.com>

	Apply std::hex manipulator when reading hexadecimal integers.

	* src/libopenvrml/openvrml/Vrml97Parser.cpp
	* src/libopenvrml/openvrml/Vrml97Parser.g

2003-11-18  Braden McDaniel  <braden@endoframe.com>

	Removed some debugging output.

	* src/libopenvrml/openvrml/basetypes.h
	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp

2003-11-18  Braden McDaniel  <braden@endoframe.com>

	Added image basic type.

	* src/libopenvrml/openvrml/ScriptJDK.cpp
	* src/libopenvrml/openvrml/Vrml97Parser.cpp
	* src/libopenvrml/openvrml/Vrml97Parser.g
	* src/libopenvrml/openvrml/Vrml97Parser.hpp
	* src/libopenvrml/openvrml/basetypes.cpp
	* src/libopenvrml/openvrml/basetypes.h
	* src/libopenvrml/openvrml/field.cpp
	* src/libopenvrml/openvrml/field.h
	* src/libopenvrml/openvrml/script.cpp
	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp

2003-11-18  Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml-gl/openvrml/gl/viewer.cpp:  On second thought,
	use boost::scoped_ptr to manage gl_capabilities singleton.

2003-11-17  Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml-gl/openvrml/gl/viewer.cpp:  Use
	boost::shared_ptr with gl_capabilities singleton to eliminate
	memory leak.

2003-11-17  Braden McDaniel  <braden@endoframe.com>

	Merged changes from 0.14.3.

	* NEWS:  Updates for 0.14.3 release.
	* README
	* configure.ac:  Added checks for Mac OS X Rez tool.
	* openvrml.spec.in:  Removed unused ARCH_FLAGS variable from
	"configure" invocation.  Added _smp_mflags macro to invocation
	of make.
	* m4/ax_check_glut.m4:  Added "-lobjc" to GLUT_LIBS when using
	Apple's OpenGL framework.
	* src/libopenvrml/openvrml/Makefile.am:  Incremented library
	version.
	* src/libopenvrml-gl/openvrml/gl/Makefile.am:  Incremented
	library version.
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp:  Made
	gl_capabilities a singleton.  This circumvents the problem of the
	class instance being initialized during static initialization.
	Calls to glGetIntegerv are not valid without a valid GL context.
	* src/lookat/Makefile.am:  Apply Rez tool on Mac OS X.
	* src/lookat/ViewerGlut.cpp:  Corrected include for GLUT
	header.
	* src/lookat/lookat.cpp:  Corrected include for GLUT header.

2003-11-11  Braden McDaniel  <braden@endoframe.com>

	Cruft removal.

	* src/libopenvrml/openvrml/img.h
	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml/openvrml/vrml97node.h

2003-11-08  Braden McDaniel  <braden@endoframe.com>

	Removed node::render in favor of render_* member functions on the
	derived abstract node types.

	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node.h
	* src/libopenvrml/openvrml/script.cpp
	* src/libopenvrml/openvrml/script.h
	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml/openvrml/vrml97node.h

2003-11-08  Braden McDaniel  <braden@endoframe.com>

	* src/lookat/Makefile.am:  Removed lingering obsolete reference
	to JNI_CFLAGS.

2003-11-07  Braden McDaniel  <braden@endoframe.com>

	Enabled build of Script node Java binding by default.

	* configure.ac:  Changed OV_WITH_JDK to OV_CHECK_JNI.
	* openvrml.spec.in:  Now requires libgcj >= 3.3.
	* m4/jdk.m4:  Replaced OV_WITH_JDK with OV_CHECK_JNI.
	* src/libopenvrml/openvrml/Makefile.am:  JNI_CFLAGS autoconf
	substitution no longer used.

2003-11-04  Braden McDaniel  <braden@endoframe.com>

	Added some more tests.

	* test/Makefile.am
	* test/browser-create_vrml_from_stream.cpp
	* test/parse-anchor.cpp

2003-11-03  Braden McDaniel  <braden@endoframe.com>

	* openvrml.spec.in:  Removed lookat-bin from lookat package.
	Added mozilla requirement for lookat.  lookat is now built with
	-rpath for the Mozilla library directory; so the binary package
	requires the same Mozilla version it was built against.

2003-11-03  Braden McDaniel  <braden@endoframe.com>

	Build executables with -rpath instead of setting
	LD_LIBRARY_PATH.

	* configure.ac
	* src/lookat/Makefile.am
	* src/lookat/lookat.in:  Removed file.
	* test/Makefile.am

2003-11-02  Braden McDaniel  <braden@endoframe.com>

	Removed viewer::scale_texture.  Instead, do any texture
	rescaling in the implementation of viewer::insert_texture.

	* src/libopenvrml/openvrml/img.cpp
	* src/libopenvrml/openvrml/img.h
	* src/libopenvrml/openvrml/viewer.cpp
	* src/libopenvrml/openvrml/viewer.h
	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	* src/libopenvrml-gl/openvrml/gl/viewer.h

2003-11-02  Braden McDaniel  <braden@endoframe.com>

	* configure.ac:  Don't optionally generate Makefiles--that
	screws up make.

2003-10-31  Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/img.cpp (img::img):  Initialize
	img::nframes_ to 0. (Fixes crash on exit.)

2003-10-31  Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/browser.cpp:  Don't render root nodes
	that aren't child nodes.

2003-10-27  Braden McDaniel  <braden@endoframe.com>

	Launch lookat with a shell script to set LD_LIBRARY_PATH
	appropriately.

	* configure.ac:  Generate lookat shell script.
	* openvrml.spec.in:  Added lookat-bin to lookat package.
	* src/lookat/Makefile.am:  Changed binary executable from
	"lookat" to "lookat-bin".  "lookat" is now a shell script.
	* src/lookat/lookat.in:  Added file.

2003-10-26  Braden McDaniel  <braden@endoframe.com>

	Added the beginning of a test suite.

	* Makefile.am:  Added "test" subdirectory.
	* configure.ac:  Substitute GRE_PATH variable.
	* m4/jdk.m4:  Modified OV_WITH_JDK to substitute JDK_LIBRARY_PATH
	variable.
	* test/Makefile.am:  Added file.
	* test/browser_basic.cpp:  Added file.

2003-10-23  Braden McDaniel  <braden@endoframe.com>

	Move check for libGLU to AX_CHECK_GLU.

	* openvrml-gl.pc.in
	* m4/Makefile.am
	* m4/ax_check_gl.m4
	* m4/ax_check_glu.m4
	* m4/ax_check_glut.m4
	* src/libopenvrml-gl/openvrml/gl/Makefile.am

2003-10-21  Braden McDaniel  <braden@endoframe.com>

	Replace usage of node::to_<node> with node_cast.

	* src/libopenvrml/openvrml/Vrml97Parser.cpp
	* src/libopenvrml/openvrml/Vrml97Parser.g
	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node.h
	* src/libopenvrml/openvrml/script.cpp
	* src/libopenvrml/openvrml/script.h
	* src/libopenvrml/openvrml/vrml97node.cpp

2003-10-20  Braden McDaniel  <braden@endoframe.com>

	Merged changes from 0.14.2.

	* doc/doxygen-header:  Removed unsightly filename extensions
	from URIs.
	* src/libopenvrml/openvrml/vrml97node.cpp
	(elevation_grid_node::insert_geometry):  Added null checks for
	SFNode fields.
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp:  Fixed crashes
	resulting from size_t carelessness.

2003-10-14  Braden McDaniel  <braden@endoframe.com>

	Generate Doxyfile from configure in order to take advantage of
	PACKAGE_NAME and PACKAGE_VERSION substitutions.

	* configure.ac:  Added doc/Doxyfile to AC_CONFIG_FILES.
	* doc/Doxyfile:  Removed file.
	* doc/Doxyfile.in:  Added file.
	* doc/Makefile.am:  Use Doxfile in the builddir.

2003-10-08  Braden McDaniel  <braden@endoframe.com>

	* configure.ac:  Removed useless checks for zlib, libpng, and
	libjpeg.

2003-10-08  Braden McDaniel  <braden@endoframe.com>

	Moved relocate member function from node to child_node.

	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node.h
	* src/libopenvrml/openvrml/vrml97node.cpp

2003-10-07  Braden McDaniel  <braden@endoframe.com>

	Quelled some warnings from gcc.

	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp

2003-09-30  Braden McDaniel  <braden@endoframe.com>

	Replace field_value_ptr, node_class_ptr, node_type_ptr, and
	scope_ptr with instances of boost::shared_ptr.

	* openvrml.spec.in
	* src/libopenvrml/openvrml/Makefile.am
	* src/libopenvrml/openvrml/Vrml97Parser.cpp
	* src/libopenvrml/openvrml/Vrml97Parser.g
	* src/libopenvrml/openvrml/Vrml97Parser.hpp
	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/browser.h
	* src/libopenvrml/openvrml/field.h
	* src/libopenvrml/openvrml/field_value_ptr.cpp
	* src/libopenvrml/openvrml/field_value_ptr.h
	* src/libopenvrml/openvrml/node.h
	* src/libopenvrml/openvrml/node_class_ptr.cpp
	* src/libopenvrml/openvrml/node_class_ptr.h
	* src/libopenvrml/openvrml/node_type_ptr.cpp
	* src/libopenvrml/openvrml/node_type_ptr.h
	* src/libopenvrml/openvrml/private.h
	* src/libopenvrml/openvrml/scope.h
	* src/libopenvrml/openvrml/scope_ptr.cpp
	* src/libopenvrml/openvrml/scope_ptr.h
	* src/libopenvrml/openvrml/script.cpp
	* src/libopenvrml/openvrml/script.h
	* src/libopenvrml/openvrml/vrml97node.cpp

2003-09-30  Braden McDaniel  <braden@endoframe.com>

	Merge from 0.14.1.

	* src/libopenvrml/openvrml/private.h:  Allow for 10 rounding
	errors in computation of floating point error tolerance.

2003-09-28  Braden McDaniel  <braden@endoframe.com>

	Updated version to 0.14.99.

	* README
	* configure.ac

2003-09-28  Braden McDaniel  <braden@endoframe.com>

	Updated version to 0.14.0.

	* README
	* configure.ac

2003-09-28  Braden McDaniel  <braden@endoframe.com>

	* NEWS:  Updates for 0.14.0 release.

2003-09-28  Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/Makefile.am:  Incremented library
	version number to 4:0:0.
	* src/libopenvrml-gl/openvrml/gl/Makefile.am:  Incremented
	library version number to 5:0:0.

2003-09-28  Braden McDaniel  <braden@endoframe.com>

	Renamed COPYING.LIB to COPYING.LESSER.

	* COPYING.LESSER:  Added file.
	* COPYING.LIB:  Removed file.
	* openvrml.spec.in:  Changes for parity with build, install
	changes.

2003-09-28  Braden McDaniel  <braden@endoframe.com>

	Added GNUmakefile to DISTCLEANFILES to quell an error message
	from distcleancheck. (This has got to be a bug in Automake
	(1.7.7).)

	* lib/antlr/GNUmakefile.am
	* lib/antlr/antlr/GNUmakefile.am
	* lib/antlr/src/GNUmakefile.am

2003-09-28  Braden McDaniel  <braden@endoframe.com>

	* doc/Makefile.am:  Made install-data-local DESTDIR-aware;
	removed doc from dist-hook.

2003-09-28  Braden McDaniel  <braden@endoframe.com>

	* configure.ac:  Added AC_COPYRIGHT.

2003-09-25  Braden McDaniel  <braden@endoframe.com>

	Removed Microsoft Visual C++ 6.0 project files and makefiles.

	* INSTALL-MSVC6.txt:  Removed file.
	* Makefile.am:  No longer distribute INSTALL-MSVC6.txt,
	Makefile.vc6.
	* Makefile.vc6:  Removed file.
	* ide-projects/Makefile.am:  Removed Microsoft Visual C++ 6.0
	project files from the distribution; added Microsoft
	Visual C++ 7.0 project files to the distribution.
	* ide-projects/Windows/VisualC6/config.h:  Removed file.
	* ide-projects/Windows/VisualC6/openvrml.dsp:  Removed file.
	* ide-projects/Windows/VisualC6/openvrml.dsw:  Removed file.
	* ide-projects/Windows/VisualC6/lookat/lookat.dsp:  Removed
	file.
	* ide-projects/Windows/VisualC6/lookat/lookat.dsw:  Removed
	file.
	* ide-projects/Windows/VisualC6/openvrml-core/openvrmlcore.dsp:
	Removed file.
	* ide-projects/Windows/VisualC6/openvrml-core/openvrmlcore.dsw:
	Removed file.
	* ide-projects/Windows/VisualC6/openvrml-gl/openvrmlgl.dsp:
	Removed file.
	* ide-projects/Windows/VisualC6/openvrml-gl/openvrmlgl.dsw:
	Removed file.
	* ide-projects/Windows/VisualC6/tplib/antlr/libantlr.dsp:
	Removed file.
	* ide-projects/Windows/VisualC6/tplib/antlr/libantlr.dsw:
	Removed file.
	* src/libopenvrml/openvrml/Makefile.am:  Removed Makefile.vc6
	from the distribution.
	* src/libopenvrml/openvrml/Makefile.vc6:  Removed file.
	* src/libopenvrml-gl/openvrml/gl/Makefile.am:  Removed
	Makefile.vc6 from the distribution.
	* src/libopenvrml-gl/openvrml/gl/Makefile.vc6:  Removed file.
	* src/lookat/Makefile.am:  Removed Makefile.vc6 from the
	distribution.
	* src/lookat/Makefile.vc6:  Removed file.

2003-09-25  Braden McDaniel  <braden@endoframe.com>

	Doc-comment improvements.

	* src/libopenvrml/openvrml/bounding_volume.cpp
	* src/libopenvrml/openvrml/bounding_volume.h
	* src/libopenvrml/openvrml/field_value_ptr.cpp
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node_type_ptr.cpp
	* src/libopenvrml/openvrml/scope_ptr.cpp
	* src/libopenvrml/openvrml/scope_ptr.h
	* src/libopenvrml/openvrml/system.cpp
	* src/libopenvrml/openvrml/system.h

2003-09-23  Braden McDaniel  <braden@endoframe.com>

	Doc-comment improvements.

	* src/libopenvrml/openvrml/bounding_volume.cpp
	* src/libopenvrml/openvrml/bounding_volume.h
	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/scope.cpp

2003-09-23  Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/img.cpp:  Fixed memory leak when
	cleaning up frame data.

2003-09-22  Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/vrml97node.cpp:  Doc-comment and
	cosmetic improvements.

2003-09-18  Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/Vrml97Parser.cpp:  Track changes to
	Vrml97Parser.g.
	* src/libopenvrml/openvrml/Vrml97Parser.g:  Throw an
	antlr::SemanticException when scope::add_type fails.
	* src/libopenvrml/openvrml/scope.cpp:  Changed scope::find_type
	and scope::first_type to return "const node_type_ptr &" instead
	of "const node_type_ptr".  Changed scope::add_type to return
	a boolean value to indicate success or failure.

2003-09-18  Braden McDaniel  <braden@endoframe.com>

	Changed node::id to return "const std::string &" instead of
	"const std::string".

	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node.h

2003-09-18  Braden McDaniel  <braden@endoframe.com>

	Doc-comment improvements.

	* src/libopenvrml/openvrml/field.cpp
	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp

2003-09-18  Braden McDaniel  <braden@endoframe.com>

	* doc/doxygen-header:  Style sheet enhancements.

2003-09-17  Braden McDaniel  <braden@endoframe.com>

	* README:  Added section "Significant preprocessor symbols".

2003-09-13  Braden McDaniel  <braden@endoframe.com>

	* configure.ac:  Apparently we really do need Automake 1.7.

2003-09-12  Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/node.cpp (node::node):  Reordered
	member initializer list to match declaration order.
	* src/libopenvrml/openvrml/rendering_context.cpp
	(rendering_context::rendering_context):  Reordered member
	initializer list to match declaration order.

2003-09-09  Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/script.cpp (script_node::update):
	Moved check for modified eventOuts outside of conditional
	testing whether an event had been received.
	From Steffen Mader <s_mader@users.sourceforge.net>.

2003-09-08  Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/vrml97node.cpp:  Fixed recursive
	calls to {Node}::modify.

2003-09-08  Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/script.cpp:  Corrected use of
	auto_ptr<>::release.

2003-09-08  Braden McDaniel  <braden@endoframe.com>

	Require Automake 1.6.3.

	* configure.ac
	* Makefile.am

2003-09-08  Braden McDaniel  <braden@endoframe.com>

	* configure.ac:  Modernize usage of AC_OUTPUT; use
	AC_CONFIG_FILES.
	* Makefile.am:  Require Automake 1.7.

2003-09-02  Braden McDaniel  <braden@endoframe.com>

	* configure.ac:  Provide help text for DOXYGEN variable.

2003-09-02  Braden McDaniel  <braden@endoframe.com>

	Fixes for gcc 3.2.2.

	* src/libopenvrml/openvrml/basetypes.cpp
	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml/openvrml/vrml97node.h

2003-09-01  Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/doc.cpp (doc2::filename):  Fixed
	problem resolving file URLs on Windows.

2003-09-01  Braden McDaniel  <braden@endoframe.com>

	Quelled some stupid warnings in Release builds.

	* ide-projects/Windows/VisualC7/OpenVRML/lookat/lookat.vcproj
	* ide-projects/Windows/VisualC7/OpenVRML/openvrml/openvrml.vcproj
	* ide-projects/Windows/VisualC7/OpenVRML/openvrml-gl/openvrml-gl.vcproj

2003-09-01  Braden McDaniel  <braden@endoframe.com>

	Fixed a bunch of warnings from cl 13.00.9466.

	* src/libopenvrml/openvrml/Vrml97Parser.cpp
	* src/libopenvrml/openvrml/Vrml97Parser.g
	* src/libopenvrml/openvrml/basetypes.cpp
	* src/libopenvrml/openvrml/basetypes.h
	* src/libopenvrml/openvrml/bounding_volume.cpp
	* src/libopenvrml/openvrml/browser.cpp
	* src/libopenvrml/openvrml/field.cpp
	* src/libopenvrml/openvrml/field_value_ptr.cpp
	* src/libopenvrml/openvrml/frustum.cpp
	* src/libopenvrml/openvrml/img.cpp
	* src/libopenvrml/openvrml/node_class_ptr.cpp
	* src/libopenvrml/openvrml/node_type_ptr.cpp
	* src/libopenvrml/openvrml/scope_ptr.cpp
	* src/libopenvrml/openvrml/system.cpp
	* src/libopenvrml/openvrml/viewer.cpp
	* src/libopenvrml/openvrml/viewer.h
	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml/openvrml/vrml97node.h
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	* src/libopenvrml-gl/openvrml/gl/viewer.h
	* src/lookat/lookat.cpp

2003-09-01  Braden McDaniel  <braden@endoframe.com>

	* ide-projects/Windows/VisualC7/OpenVRML/openvrml-gl/openvrml-gl.vcproj:
	Removed obsolete file "common.h" from project.

2003-09-01  Braden McDaniel  <braden@endoframe.com>

	Calculate floating point error tolerance from
	std::numeric_limits<T>::epsilon().

	* src/libopenvrml/openvrml/Vrml97Parser.cpp:  Tracks changes to
	Vrml97Parser.g.
	* src/libopenvrml/openvrml/Vrml97Parser.g:  Use fequal functor
	instead of fpequal, fpzero functions.
	* src/libopenvrml/openvrml/basetypes.cpp:  Use fequal functor
	instead of fpequal, fpzero functions.
	* src/libopenvrml/openvrml/bounding_volume.cpp:  Use fequal
	functor instead of fpequal, fpzero functions.
	* src/libopenvrml/openvrml/private.h:  Replaced fpequal, fpzero
	functions with fequal functor.
	* src/libopenvrml/openvrml/vrml97node.cpp:  Use fequal functor
	instead of fpequal, fpzero functions.
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp:  Replaced fpequal,
	fpzero functions with fequal functor.

2003-09-01  Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml-gl/openvrml/gl/Makefile.am:  Removed reference
	to obsolete file common.h.

2003-09-01  Braden McDaniel  <braden@endoframe.com>

	Added doc target to generate Doxygen documentation.

	* Makefile.am:  Added doc target.
	* configure.ac:  Check for doxygen.
	* doc/Makefile.am:  Added doc target.

2003-08-30  Braden McDaniel  <braden@endoframe.com>

	Removed OPENVRML_SCOPE and OPENVRML_GL_SCOPE macros that were
	used to apply __declspec(dllimport) and __declspec(dllexport)
	on Windows.  Because OpenVRML includes classes that inherit
	classes in the C++ standard library, and the standard library
	classes are not exported from the C++ runtime DLL on Windows,
	building a DLL with OpenVRML's classes in the interface is not
	currently feasible.

	* doc/Doxyfile:  Removed reference to OPENVRML_SCOPE macro.
	* src/libopenvrml/openvrml/basetypes.h:  Removed occurrences of
	OPENVRML_SCOPE macro.
	* src/libopenvrml/openvrml/bounding_volume.h:  Removed
	occurrences of OPENVRML_SCOPE macro.
	* src/libopenvrml/openvrml/browser.h:  Removed occurrences of
	OPENVRML_SCOPE macro.
	* src/libopenvrml/openvrml/common.h:  Removed OPENVRML_SCOPE
	macro.
	* src/libopenvrml/openvrml/doc.h:  Removed occurrences of
	OPENVRML_SCOPE macro.
	* src/libopenvrml/openvrml/field.h:  Removed occurrences of
	OPENVRML_SCOPE macro.
	* src/libopenvrml/openvrml/field_value_ptr.h:  Removed
	occurrences of OPENVRML_SCOPE macro.
	* src/libopenvrml/openvrml/frustum.h:  Removed occurrences of
	OPENVRML_SCOPE macro.
	* src/libopenvrml/openvrml/img.h:  Removed occurrences of
	OPENVRML_SCOPE macro.
	* src/libopenvrml/openvrml/node.h:  Removed occurrences of
	OPENVRML_SCOPE macro.
	* src/libopenvrml/openvrml/node_class_ptr.h:  Removed
	occurrences of OPENVRML_SCOPE macro.
	* src/libopenvrml/openvrml/node_ptr.h:  Removed occurrences of
	OPENVRML_SCOPE macro.
	* src/libopenvrml/openvrml/node_type_ptr.h:  Removed occurrences
	of OPENVRML_SCOPE macro.
	* src/libopenvrml/openvrml/rendering_context.h:  Removed
	occurrences of OPENVRML_SCOPE macro.
	* src/libopenvrml/openvrml/scope.h:  Removed occurrences of
	OPENVRML_SCOPE macro.
	* src/libopenvrml/openvrml/scope_ptr.h:  Removed occurrences of
	OPENVRML_SCOPE macro.
	* src/libopenvrml/openvrml/script.h:  Removed occurrences of
	OPENVRML_SCOPE macro.
	* src/libopenvrml/openvrml/system.h:  Removed occurrences of
	OPENVRML_SCOPE macro.
	* src/libopenvrml/openvrml/viewer.h:  Removed occurrences of
	OPENVRML_SCOPE macro.
	* src/libopenvrml/openvrml/vrml97node.h:  Removed occurrences of
	OPENVRML_SCOPE macro.
	* src/libopenvrml-gl/openvrml/gl/Makefile.am:  Removed reference
	to common.h.
	* src/libopenvrml-gl/openvrml/gl/common.h:  Removed file.
	* src/libopenvrml-gl/openvrml/gl/viewer.h:  Removed reference to
	common.h; removed occurrence of OPENVRML_GL_SCOPE macro.

2003-08-28  Braden McDaniel  <braden@endoframe.com>

	Style sheet modifications to accommodate changes to Doxygen.

	* doc/Doxyfile:  Generate default style sheet.
	* doc/doxygen-header:  Moved style sheet to <style> element
	included in the generated documentation.
	* doc/openvrml.css:  Removed file.

2003-08-25  Braden McDaniel  <braden@endoframe.com>

	Doc-comment improvements.

	* src/libopenvrml/openvrml/basetypes.cpp
	* src/libopenvrml/openvrml/doc.cpp
	* src/libopenvrml/openvrml/img.cpp
	* src/libopenvrml/openvrml/img.h
	* src/libopenvrml/openvrml/node.cpp
	* src/libopenvrml/openvrml/node_class_ptr.cpp
	* src/libopenvrml/openvrml/node_ptr.cpp
	* src/libopenvrml/openvrml/node_type_ptr.cpp
	* src/libopenvrml/openvrml/scope.cpp
	* src/libopenvrml/openvrml/scope_ptr.cpp
	* src/libopenvrml/openvrml/script.cpp
	* src/libopenvrml/openvrml/viewer.cpp
	* src/libopenvrml/openvrml/viewer.h
	* src/libopenvrml/openvrml/vrml97node.cpp
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp
	* src/libopenvrml-gl/openvrml/gl/viewer.h

2003-08-22  Braden McDaniel  <braden@endoframe.com>

	Added Microsoft Visual Studio 7.0 solution and project files.

	* ide-projects/Windows/VisualC7/OpenVRML/OpenVRML.sln
	* ide-projects/Windows/VisualC7/OpenVRML/antlr/antlr.vcproj
	* ide-projects/Windows/VisualC7/OpenVRML/lookat/lookat.vcproj
	* ide-projects/Windows/VisualC7/OpenVRML/openvrml/openvrml.vcproj
	* ide-projects/Windows/VisualC7/OpenVRML/openvrml-gl/openvrml-gl.vcproj
	* ide-projects/Windows/VisualC7/OpenVRML/regex/regex.vcproj

2003-08-21  Braden McDaniel  <braden@endoframe.com>

	Changes to build with cl 13.00.9466.

	* src/libopenvrml/openvrml/script.cpp:  Fixed #ifdef's for
	conditionally building with JavaScript support.
	* src/libopenvrml/openvrml/system.cpp:  #include fixes.
	* src/libopenvrml-gl/openvrml/gl/viewer.cpp:  Fixed improper
	use of aggregate initialization.

2003-08-20  Braden McDaniel  <braden@endoframe.com>

	* lib/antlr/antlr/config.hpp:  Fixed dllimport/dllexport macro
	for building a static library.

2003-08-20  Braden McDaniel  <braden@endoframe.com>

	Gave regex API functions C linkage.

	* lib/regex/regcomp.c
	* lib/regex/regerror.c
	* lib/regex/regex.h
	* lib/regex/regexec.c
	* lib/regex/regfree.c

2003-08-20  Braden McDaniel  <braden@endoframe.com>

	Added George J. Carrette's Windows port of Henry Spencer's regex
	to the distribution.  This is needed for the Windows cl build.

	* configure.ac:  Added lib/regex/Makefile to AC_OUTPUT.
	* lib/Makefile.am:  Added regex to SUBDIRS.
	* lib/regex/Makefile.am:  Added regex sources to the
	distribution.

2003-08-19  Braden McDaniel  <braden@endoframe.com>

	* doc/Doxyfile:  Updates for Doxygen 1.3.3-20030808.

2003-08-18  Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/script.cpp:  Minor JavaScript
	improvements.

2003-08-17  Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/script.cpp:  JavaScript fixes and
	error handling improvements.

2003-08-16  Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/vrml97node.cpp:  Replaced
	specialization of std::char_traits with a class supporting the
	Character Traits concept. (Strictly, the specialization was not
	legal, since standard library templates can only be specialized
	for user-defined data types.)

2003-08-16  Braden McDaniel  <braden@endoframe.com>

	* src/libopenvrml/openvrml/script.cpp:  JavaScript fixes and
	error handling improvements.

2003-08-03  Braden McDaniel  <braden@endoframe.com>

	* dox/Doxyfile:  Changed INPUT to point to new source
	directories; use dot for inheritance and collaboration diagrams.

2003-08-03  Braden McDaniel  <braden@endoframe.com>

	* openvrml.pc.in:  Adjusted include directory.
	* openvrml-gl.pc.in: Adjusted include directory.

2003-07-29  Braden McDaniel  <braden@endoframe.com>

	Naming convention changes. Change "OpenVRML" namespace to
	"openvrml"; changed "OpenVRML::GL" namespace to "openvrml::gl".

2003-07-28  Braden McDaniel  <braden@endoframe.com>

	Doxygen documentation improvements.

	* src/openvrml/OpenVRML/browser.cpp:  Doxygen documentation
	improvements.
	* src/openvrml/OpenVRML/browser.h:  Doxygen documentation
	improvements.
	* src/openvrml/OpenVRML/doc.cpp:  Doxygen documentation
	improvements.
	* src/openvrml/OpenVRML/field.cpp:  Doxygen documentation
	improvements.
	* src/openvrml/OpenVRML/field_value_ptr.cpp:  Doxygen
	documentation improvements.
	* src/openvrml/OpenVRML/frustum.cpp:  Doxygen documentation
	improvements.
	* src/openvrml/OpenVRML/node.cpp:  Doxygen documentation
	improvements.
	* src/openvrml/OpenVRML/node.h:  Doxygen documentation
	improvements.

2003-07-27  Braden McDaniel  <braden@endoframe.com>

	Removed unused functions node::update_modified and
	node::mark_path_modified.

	* src/openvrml/OpenVRML/node.h:  Removed unused functions
	node::update_modified and node::mark_path_modified.
	* src/openvrml/OpenVRML/node.cpp:  Removed unused functions
	node::update_modified and node::mark_path_modified.
	* src/openvrml/OpenVRML/vrml97node.h:  Removed unused functions
	node::update_modified and node::mark_path_modified.
	* src/openvrml/OpenVRML/vrml97node.cpp:  Removed unused
	functions node::update_modified and node::mark_path_modified.

2003-07-27  Braden McDaniel  <braden@endoframe.com>

	Doxygen documentation improvements.

	* src/openvrml/OpenVRML/basetypes.cpp:  Doxygen documentation
	improvements.
	* src/openvrml/OpenVRML/browser.cpp:  Doxygen documentation
	improvements.
	* src/openvrml/OpenVRML/node.cpp:  Doxygen documentation
	improvements.
	* src/openvrml/OpenVRML/node.h:  Doxygen documentation
	improvements.
	* src/openvrml/OpenVRML/node_class_ptr.cpp:  Doxygen
	documentation improvements.
	* src/openvrml/OpenVRML/node_ptr.h:  Doxygen documentation
	improvements.
	* src/openvrml/OpenVRML/node_type_ptr.cpp:  Doxygen
	documentation improvements.
	* src/openvrml/OpenVRML/scope_ptr.h:  Doxygen documentation
	improvements.
	* src/openvrml/OpenVRML/vrml97node.h:  Doxygen documentation
	improvements.
	* src/openvrml-gl/OpenVRML/GL/viewer.cpp:  Doxygen documentation
	improvements.
	* src/openvrml-gl/OpenVRML/GL/viewer.h:  Doxygen documentation
	improvements.

2003-07-26  Braden McDaniel  <braden@endoframe.com>

	* m4/ax_check_gl.m4:  Updated macro description.
	* m4/ax_check_glut.m4:  Updated macro description.

2003-07-25  Braden McDaniel  <braden@endoframe.com>

	Modified OpenGL and GLUT detection macros to work with cl.

	* m4/ax_check_gl.m4:  Find the right libraries when using cl.
	* m4/ax_check_glut.m4:  Find the right library when using cl.
	* src/openvrml-gl/OpenVRML/GL/viewer.cpp:  Reflects changes
	to AX_CHECK_GL macro.

2003-07-25  Braden McDaniel  <braden@endoframe.com>

	Fixes to compile libantlr with cl.

	* lib/antlr/antlr/config.hpp: Define ANTLR_REALLY_NO_STRCASECMP
	for cl.
	* lib/antlr/src/BaseAST.cpp:  nullASTptr must be extern.
	* lib/antlr/src/GNUmakefile.am:  Define ANTLR_EXPORTS.

2003-07-24  Braden McDaniel  <braden@endoframe.com>

	Don't use deprecated C headers.

	* src/openvrml/OpenVRML/ScriptJDK.cpp:  Don't use deprecated C
	headers.
	* src/openvrml/OpenVRML/Vrml97Parser.cpp:  Reflects changes to
	Vrml97Parser.g.
	* src/openvrml/OpenVRML/Vrml97Parser.g:  Don't use deprecated C
	headers.
	* src/openvrml/OpenVRML/Vrml97Parser.hpp:  Reflects changes to
	Vrml97Parser.g.
	* src/openvrml/OpenVRML/basetypes.cpp:  Don't use deprecated C
	headers.
	* src/openvrml/OpenVRML/basetypes.h:  Don't use deprecated C
	headers.
	* src/openvrml/OpenVRML/browser.h:  Don't use deprecated C
	headers.
	* src/openvrml/OpenVRML/doc.cpp:  Don't use deprecated C
	headers.
	* src/openvrml/OpenVRML/doc.h:  Don't use deprecated C headers.
	* src/openvrml/OpenVRML/field.cpp:  Don't use deprecated C
	headers.
	* src/openvrml/OpenVRML/field_value_ptr.h:  Don't use deprecated
	C headers.
	* src/openvrml/OpenVRML/img.cpp:  Don't use deprecated C
	headers.
	* src/openvrml/OpenVRML/img.h:  Don't use deprecated C headers.
	* src/openvrml/OpenVRML/node_class_ptr.h:  Don't use deprecated
	C headers.
	* src/openvrml/OpenVRML/node_ptr.cpp:  Don't use deprecated C
	headers.
	* src/openvrml/OpenVRML/node_ptr.h:  Don't use deprecated C
	headers.
	* src/openvrml/OpenVRML/node_type_ptr.cpp:  Don't use deprecated
	C headers.
	* src/openvrml/OpenVRML/private.h:  Don't use deprecated C
	headers.
	* src/openvrml/OpenVRML/scope_ptr.h:  Don't use deprecated C
	headers.
	* src/openvrml/OpenVRML/script.cpp:  Don't use deprecated C
	headers.
	* src/openvrml/OpenVRML/system.cpp:  Don't use deprecated C
	headers.
	* src/openvrml/OpenVRML/viewer.cpp:  Don't use deprecated C
	headers.
	* src/openvrml-gl/OpenVRML/GL/viewer.cpp:  Don't use deprecated
	C headers.

2003-07-24  Braden McDaniel  <braden@endoframe.com>

	Renamed Vrml97Node namespace to vrml97_node.

	* src/openvrml/OpenVRML/browser.cpp:  Renamed Vrml97Node
	namespace to vrml97_node.
	* src/openvrml/OpenVRML/browser.h:  Renamed Vrml97Node namespace
	to vrml97_node.
	* src/openvrml/OpenVRML/node.cpp:  Renamed Vrml97Node namespace
	to vrml97_node.
	* src/openvrml/OpenVRML/node.h:  Renamed Vrml97Node namespace to
	vrml97_node.
	* src/openvrml/OpenVRML/vrml97node.cpp:  Renamed Vrml97Node
	namespace to vrml97_node.
	* src/openvrml/OpenVRML/vrml97node.h:  Renamed Vrml97Node
	namespace to vrml97_node.
	* src/openvrml-gl/OpenVRML/GL/viewer.cpp:  Renamed Vrml97Node
	namespace to vrml97_node.

2003-07-23  Braden McDaniel  <braden@endoframe.com>

	* src/openvrml-gl/OpenVRML/GL/viewer.cpp:  Oops.

2003-07-23  Braden McDaniel  <braden@endoframe.com>

	Naming convention changes and Doxygen doc improvements.

	* doc/Doxyfile:  Set HIDE_SCOPE_NAMES to NO.
	* src/lookat/ViewerGlut.cpp:  Naming convention changes.
	* src/lookat/ViewerGlut.h:  Naming convention changes.
	* src/openvrml/OpenVRML/basetypes.cpp:  Doxygen doc
	improvements.
	* src/openvrml/OpenVRML/basetypes.h:  Doxygen doc improvements.
	* src/openvrml/OpenVRML/browser.cpp:  Doxygen doc improvements.
	* src/openvrml/OpenVRML/browser.h:  Doxygen doc improvements.
	* src/openvrml/OpenVRML/field.cpp:  Doxygen doc improvements.
	* src/openvrml/OpenVRML/field.h:  Doxygen doc improvements.
	* src/openvrml/OpenVRML/img.cpp:  Doxygen doc improvements.
	* src/openvrml/OpenVRML/node.cpp:  Doxygen doc improvements.
	* src/openvrml/OpenVRML/node.h:  Doxygen doc improvements.
	* src/openvrml/OpenVRML/node_ptr.cpp:  Doxygen doc improvements.
	* src/openvrml/OpenVRML/node_type_ptr.cpp:  Doxygen doc
	improvements.
	* src/openvrml/OpenVRML/scope.cpp:  Doxygen doc improvements.
	* src/openvrml/OpenVRML/scope_ptr.cpp:  Doxygen doc
	improvements.
	* src/openvrml/OpenVRML/script.cpp:  Doxygen doc improvements.
	* src/openvrml/OpenVRML/script.h:  Doxygen doc improvements.
	* src/openvrml/OpenVRML/viewer.cpp:  Doxygen doc improvements.
	* src/openvrml/OpenVRML/viewer.h:  Doxygen doc improvements.
	* src/openvrml/OpenVRML/vrml97node.cpp:  Doxygen doc
	improvements.
	* src/openvrml-gl/OpenVRML/GL/Makefile.am:  Added viewer.cpp,
	viewer.h, removed ViewerOpenGL.cpp, ViewerOpenGL.h.
	* src/openvrml-gl/OpenVRML/GL/Makefile.vc6:  Added viewer.cpp,
	viewer.h, removed ViewerOpenGL.cpp, ViewerOpenGL.h.
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp:  Removed file.
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.h:  Removed file.
	* src/openvrml-gl/OpenVRML/GL/viewer.cpp:  Added file.
	* src/openvrml-gl/OpenVRML/GL/viewer.h:  Added file.

2003-07-15  Braden McDaniel  <braden@endoframe.com>

	Doxygen doc improvements.

	* doc/Doxyfile:  Eliminated appearance of OPENVRML_SCOPE macro
	in docs.
	* src/openvrml/OpenVRML/basetypes.cpp:  Doxygen doc
	improvements.
	* src/openvrml/OpenVRML/basetypes.h:  Doxygen doc improvements.
	* src/openvrml/OpenVRML/bounding_volume.cpp:  Doxygen doc
	improvements.
	* src/openvrml/OpenVRML/browser.cpp:  Doxygen doc improvements.
	* src/openvrml/OpenVRML/field.cpp:  Doxygen doc improvements.
	* src/openvrml/OpenVRML/field.h:  Doxygen doc improvements.
	* src/openvrml/OpenVRML/img.cpp:  Doxygen doc improvements.
	* src/openvrml/OpenVRML/img.h:  Doxygen doc improvements.
	* src/openvrml/OpenVRML/node.cpp:  Doxygen doc improvements.
	* src/openvrml/OpenVRML/node.h:  Doxygen doc improvements.
	* src/openvrml/OpenVRML/script.cpp:  Doxygen doc improvements.
	* src/openvrml/OpenVRML/viewer.cpp:  Doxygen doc improvements.
	* src/openvrml/OpenVRML/viewer.h:  Doxygen doc improvements.
	* src/openvrml/OpenVRML/vrml97node.cpp:  Doxygen doc
	improvements.
	* src/openvrml/OpenVRML/vrml97node.h:  Doxygen doc improvements.
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp:  Doxygen doc
	improvements.
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.h:  Doxygen doc
	improvements.

2003-07-12  Braden McDaniel  <braden@endoframe.com>

	Added factory function to field_value to create an instance of
	one of its subclasses.

	* src/openvrml/OpenVRML/browser.cpp
	(ProtoNodeClass::addEventOut, ProtoNodeClass::addExposedField)
	Use field_value::create.
	* src/openvrml/OpenVRML/field.cpp (field_value::create):  Added
	function.
	* src/openvrml/OpenVRML/field.h (field_value::create):  Added
	function.
	* src/openvrml/OpenVRML/field_value_ptr.cpp:  Added conversion
	from std::auto_ptr<field_value>.
	* src/openvrml/OpenVRML/field_value_ptr.h:  Added conversion
	from std::auto_ptr<field_value>.
	* src/openvrml/OpenVRML/script.cpp
	(script_node::script_node_type::create_node):  Use
	field_value::create.

2003-07-09  Braden McDaniel  <braden@endoframe.com>

	Removed unnecessary function bounding_sphere::reset.

	* src/openvrml/OpenVRML/bounding_volume.h
	(bounding_volume::reset):  Removed function.
	* src/openvrml/OpenVRML/bounding_volume.cpp
	(bounding_volume::reset, bounding_sphere::enclose):  Removed
	function bounding_sphere::reset.
	* src/openvrml/OpenVRML/vrml97node.cpp
	(group_node::recalc_bsphere,
	indexed_face_set_node::recalcBSphere, lod_node::recalcBSphere,
	point_set_node::recalcBSphere, switch_node::recalcBSphere,
	transform_node::recalcBSphere):  Replaced calls to
	bounding_sphere::reset with assignments to the default
	bounding_sphere.

2003-07-06  Braden McDaniel  <braden@endoframe.com>

	Applied naming convention changes to VRML97 node implementation
	classes.

	* src/openvrml/OpenVRML/browser.cpp:  Naming convention changes.
	* src/openvrml/OpenVRML/browser.h:  Naming convention changes.
	* src/openvrml/OpenVRML/node.cpp:  Naming convention changes.
	* src/openvrml/OpenVRML/node.h:  Naming convention changes.
	* src/openvrml/OpenVRML/vrml97node.cpp:  Naming convention
	changes.
	* src/openvrml/OpenVRML/vrml97node.h:  Naming convention
	changes.
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp:  Naming
	convention changes.

2003-06-08  Braden McDaniel  <braden@endoframe.com>

	Applied naming convention changes:
	texture_node::nComponents -> texture_node::components,
	texture_node::nFrames -> texture_node::frames.

	* src/openvrml/OpenVRML/node.cpp (texture_node::components,
	texture_node::frames):  Naming convention changes.
	* src/openvrml/OpenVRML/node.h (texture_node::components,
	texture_node::frames):  Naming convention changes.
	* src/openvrml/OpenVRML/vrml97node.h (ImageTexture::components,
	ImageTexture::frames, MovieTexture::components,
	MovieTexture::frames, PixelTexture::components,
	PixelTexture::frames):  Naming convention changes.
	* src/openvrml/OpenVRML/vrml97node.cpp (Appearance::render,
	ImageTexture::components, ImageTexture::frames,
	ImageTexture:render, MovieTexture::components,
	MovieTexture::frames, PixelTexture::components,
	PixelTexture::frames, Shape::render):  Naming convention
	changes.

2003-06-06  Braden McDaniel  <braden@endoframe.com>

	Applied naming convention changes:  Image -> img.  "img" is used
	in anticipation of a new "image" class.

	* src/openvrml/OpenVRML/img.cpp:  Added file.  Replaces
	Image.cpp.
	* src/openvrml/OpenVRML/img.h:  Added file.  Replaces Image.h.
	* src/openvrml/OpenVRML/Image.cpp:  Removed file.
	* src/openvrml/OpenVRML/Image.h:  Removed file.
	* src/openvrml/OpenVRML/Makefile.am:  Replaced Image.cpp,
	Image.h with img.cpp, img.h.
	* src/openvrml/OpenVRML/vrml97node.cpp (getTexture,
	Background::Background, ImageTexture::render,
	MovieTexture::update, MovieTexture::render,
	MovieTexture::nFrames):  Changes associated with naming
	convention changes to img.

2003-06-05  Braden McDaniel  <braden@endoframe.com>

	* src/openvrml/OpenVRML/Vrml97Parser.g:  Removed lingering Doc2
	class declaration.
	* src/openvrml/OpenVRML/Vrml97Parser.cpp:  Reflects changes
	to Vrml97Parser.g.
	* src/openvrml/OpenVRML/Vrml97Parser.hpp:  Reflects changes
	to Vrml97Parser.g.

2003-06-05  Braden McDaniel  <braden@endoframe.com>

	Removed bitrotted sound support code.  The old code is not the
	approach we need to take; and it's been allowed to rot long
	enough.

	* src/openvrml/OpenVRML/Audio.cpp:  Removed file.
	* src/openvrml/OpenVRML/Audio.h:  Removed file.
	* src/openvrml/OpenVRML/Makefile.am:  Removed Audio.cpp,
	Audio.h, dummysound.cpp, sound.c, sound.h.
	* src/openvrml/OpenVRML/dummysound.cpp:  Removed file.
	* src/openvrml/OpenVRML/sound-esd.c:  Removed file.
	* src/openvrml/OpenVRML/sound.c:  Removed file.
	* src/openvrml/OpenVRML/sound.h:  Removed file.
	* src/openvrml/OpenVRML/vrml97node.cpp (AudioClip::AudioClip,
	AudioClip::~AudioClip, AudioClip::update): Removed AudioClip
	implementation.
	* src/openvrml/OpenVRML/vrml97node.h:  Removed AudioClip
	implementation.

2003-06-04  Braden McDaniel  <braden@endoframe.com>

	Cleaned up remaining "macintosh" #ifdef overlooked previously.

	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.h
	(ViewerOpenGL::handleKey):  Removed #ifdef for Mac OS 9.

2003-06-04  Braden McDaniel  <braden@endoframe.com>

	Changed node_type::_class to node_type::node_class.

	* src/openvrml/OpenVRML/Vrml97Parser.cpp:  Reflects changes to
	Vrml97Parser.g.
	* src/openvrml/OpenVRML/Vrml97Parser.g (nodeBodyElement,
	scriptInterfaceDeclaration):  Changed node_type::_class to
	node_type::node_class.
	* src/openvrml/OpenVRML/browser.cpp (ProtoNode::ProtoNode,
	ProtoNodeClass::ProtoNodeType::create_node):  Changed
	node_type::_class to node_type::node_class.
	* src/openvrml/OpenVRML/node.cpp (node_type::node_type,
	node::modified, node::bounding_volume_dirty):  Changed
	node_type::_class to node_type::node_class.
	* src/openvrml/OpenVRML/node.h (node_type::node_type):  Changed
	node_type::_class to node_type::node_class.
	* src/openvrml/OpenVRML/script.cpp
	(script_node::script_node_type::create_node,
	script_node::create_script, Browser::getName,
	Browser::getCurrentSpeed, Browser::getCurrentFrameRate,
	Browser::getWorldURL):  Changed node_type::_class to
	node_type::node_class.
	* src/openvrml/OpenVRML/vrml97node.cpp
	(Vrml97NodeType::Vrml97NodeType,
	Vrml97NodeTypeImpl::Vrml97NodeTypeImpl,
	Backgroung::do_initialize, Background::do_shutdown,
	Background::processSet_bind, Fog::do_initialize,
	Fog::do_shutdown, Fog::processSet_bind, MovieTexture::update,
	NavigationInfo::processSet_bind, Text::updateFace,
	TimeSensor::update, Viewpoint::do_initialize,
	Viewpoint::processSet_bind, VisibilitySensor::render):  Changed
	node_type::_class to node_type::node_class.

2003-06-04  Braden McDaniel  <braden@endoframe.com>

	Removed system::error, system::warn, system::inform,
	system::debug.  Use OPENVRML_PRINT_MESSAGE_ instead.

	* src/lookat/ViewerGlut.cpp (ViewerGlut::ViewerGlut):  Do not
	use system::error.
	* src/openvrml/OpenVRML/Audio.cpp (Audio::setURL):  Use
	OPENVRML_PRINT_MESSAGE_ instead of system::warn.
	* src/openvrml/OpenVRML/Image.cpp (Image::setURL):  Use
	OPENVRML_PRINT_MESSAGE_ instead of system::error.
	* src/openvrml/OpenVRML/ScriptJDK.cpp (ScriptJDK::ScriptJDK,
	ScriptJDK::activate):  Use OPENVRML_PRINT_MESSAGE_ instead of
	system::error.
	* src/openvrml/OpenVRML/doc.cpp (doc::fopen):  Use
	OPENVRML_PRINT_MESSAGE_ instead of system::error.
	* src/openvrml/OpenVRML/script.cpp (setDescription):  Use
	browser::description instead of system::inform.
	* src/openvrml/OpenVRML/system.cpp (system::error, system::warn,
	system::inform, system::debug, system::common_socket,
	system::http_fetch):  Removed error, warn, inform, and debug
	member functions.
	* src/openvrml/OpenVRML/system.h (system::error, system::warn,
	system::inform, system::debug):  Removed functions.
	* src/openvrml/OpenVRML/vrml97node.cpp
	(Group::processAddChildren, ImageTexture::render):  Use
	OPENVRML_PRINT_MESSAGE_ instead of system::error.
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp (checkErrors,
	ViewerOpenGL::handleKey):  Use OPENVRML_GL_PRINT_MESSAGE_ instead of
	system::error and system::inform.

2003-06-03  Braden McDaniel  <braden@endoframe.com>

	Applied naming convention changes:  System -> system.

	* src/lookat/ViewerGlut.cpp (ViewerGlut::ViewerGlut):  Changes
	associated with naming convention changes to system.
	* src/openvrml/OpenVRML/system.cpp:  Added file.  Replaces
	System.cpp.
	* src/openvrml/OpenVRML/system.h:  Added file.  Replaces
	System.h
	* src/openvrml/OpenVRML/System.cpp:  Removed file.
	* src/openvrml/OpenVRML/System.h:  Removed file.
	* src/openvrml/OpenVRML/Makefile.am:  Replaced System.cpp,
	System.h with system.cpp, system.h.
	* src/openvrml/OpenVRML/Audio.cpp (Audio::setURL):  Changes
	associated with naming convention changes to system.
	* src/openvrml/OpenVRML/Image.cpp (Image::setURL):  Changes
	associated with naming convention changes to system.
	* src/openvrml/OpenVRML/ScriptJDK.cpp (ScriptJDK::ScriptJDK,
	ScriptJDK::activate):  Changes associated with naming convention
	changes to system.
	* src/openvrml/OpenVRML/doc.cpp (doc::~doc, doc::filename,
	doc::fopen, doc::fclose, doc2::~doc2, doc2::filename):  Changes
	associated with naming convention changes to system.
	* src/openvrml/OpenVRML/script.cpp (setDescription):  Changes
	associated with naming convention changes to system.
	* src/openvrml/OpenVRML/vrml97node.cpp
	(Group::processAddChildren, ImageTexture::render):  Changes
	associated with naming convention changes to system.
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp (checkErrors,
	ViewerOpenGL::set_sensitive, ViewerOpenGL::handleKey):  Changes
	associated with naming convention changes to system.

2003-06-03  Braden McDaniel  <braden@endoframe.com>

	Applied naming convention changes:  Doc -> doc, Doc2 -> doc2.

	* src/lookat/lookat.cpp:  Changes associated with naming
	convention changes to doc, doc2.
	* src/openvrml/OpenVRML/doc.cpp:  Added file.  Replaces Doc.cpp,
	doc2.cpp.
	* src/openvrml/OpenVRML/doc.h:  Added file.  Replaces Doc.h,
	doc2.hpp.
	* src/openvrml/OpenVRML/Doc.cpp:  Removed file.
	* src/openvrml/OpenVRML/Doc.h:  Removed file.
	* src/openvrml/OpenVRML/doc2.cpp:  Removed file.
	* src/openvrml/OpenVRML/doc2.hpp:  Removed file.
	* src/openvrml/OpenVRML/Makefile.am:  Added doc.cpp, doc.h,
	removed Doc.cpp, Doc.h, doc2.cpp, doc2.hpp.
	* src/openvrml/OpenVRML/Audio.cpp (Audio::Audio, Audio::setURL,
	Audio::tryURLs):  Changes associated with naming convention
	changes to doc, doc2.
	* src/openvrml/OpenVRML/Audio.h (Audio::Audio, Audio::setURL,
	Audio::tryURLs):  Changes associated with naming convention
	changes to doc, doc2.
	* src/openvrml/OpenVRML/Image.cpp (Image::setURL,
	Image::tryURLs):  Changes associated with naming convention
	changes to doc, doc2.
	* src/openvrml/OpenVRML/Image.h (Image::setURL,
	Image::tryURLs):  Changes associated with naming convention
	changes to doc, doc2.
	* src/openvrml/OpenVRML/ScriptJDK.cpp:  Changes associated with
	naming convention changes to doc, doc2.
	* src/openvrml/OpenVRML/browser.cpp (scene::scene):  Changes
	associated with naming convention changes to doc, doc2.
	* src/openvrml/OpenVRML/node.cpp:  Changes associated with
	naming convention changes to doc, doc2.
	* src/openvrml/OpenVRML/script.cpp (script_node::create_script):
	Changes associated with naming convention changes to doc, doc2.
	* src/openvrml/OpenVRML/vrml97node.cpp (AudioClip::update,
	getTexture, BackgroundClass::render, ImageTexture::render,
	MovieTexture::update):  Changes associated with naming
	convention changes to doc, doc2.

2003-06-03  Braden McDaniel  <braden@endoframe.com>

	Applied naming convention changes:  VrmlRenderContext ->
	rendering_context.

	* src/openvrml/OpenVRML/rendering_context.cpp:  Added file.
	Replaces VrmlRenderContext.cpp.
	* src/openvrml/OpenVRML/rendering_context.h:  Added file.
	Replaces VrmlRenderContext.h.
	* src/openvrml/OpenVRML/VrmlRenderContext.cpp:  Removed file.
	* src/openvrml/OpenVRML/VrmlRenderContext.h:  Removed file.
	* src/openvrml/OpenVRML/browser.cpp (ProtoNode::render,
	browser::render, scene::render):  Changes associated with
	naming convention changes to rendering_context.
	* src/openvrml/OpenVRML/browser.h (browser::render,
	scene::render):  Changes associated with naming convention
	changes to rendering_context.
	* src/openvrml/OpenVRML/node.cpp (node::render):  Changes
	associated with naming convention changes to rendering_context.
	* src/openvrml/OpenVRML/node.h (node::render,
	geometry_node::insert_geometry):  Changes associated with naming
	convention changes to rendering_context.
	* src/openvrml/OpenVRML/vrml97node.cpp
	(AbstractGeometry::render, Anchor::render, Appearance::render,
	Billboard::render, Box::insert_geometry, Cone::insert_geometry,
	Cylinder::insert_geometry, CylinderSensor::render,
	DirectionalLight::render, ElevationGrid::insert_geometry,
	Extrusion::insert_geometry, Group::render, Group::renderNoCull,
	ImageTexture::render, IndexedFaceSet::insert_geometry,
	IndexedLineSet::insert_geometry, Inline::render, LOD::render,
	MovieTexture::render, PixelTexture::render,
	PointSet::insert_geometry, ProximitySensor::render,
	Shape::render, Sound::render, Sphere::insert_geometry,
	SphereSensor::render, Switch::render, Text::insert_geometry,
	TextureTransform::render, Transform::render,
	VisibilitySensor::render):  Changes associated with naming
	convention changes to rendering_context.
	* src/openvrml/OpenVRML/vrml97node.h
	(AbstractGeometry::render, Anchor::render, Appearance::render,
	Billboard::render, Box::insert_geometry, Cone::insert_geometry,
	Cylinder::insert_geometry, CylinderSensor::render,
	DirectionalLight::render, ElevationGrid::insert_geometry,
	Extrusion::insert_geometry, Group::render, Group::renderNoCull,
	ImageTexture::render, IndexedFaceSet::insert_geometry,
	IndexedLineSet::insert_geometry, Inline::render, LOD::render,
	MovieTexture::render, PixelTexture::render,
	PointSet::insert_geometry, ProximitySensor::render,
	Shape::render, Sound::render, Sphere::insert_geometry,
	SphereSensor::render, Switch::render, Text::insert_geometry,
	TextureTransform::render, Transform::render,
	VisibilitySensor::render):  Changes associated with naming
	convention changes to rendering_context.

2003-06-02  Braden McDaniel  <braden@endoframe.com>

	Applied naming convention changes: VrmlFrustum -> frustum.

	* src/openvrml/OpenVRML/frustum.cpp:  Added file.  Replaces
	VrmlFrustum.cpp.
	* src/openvrml/OpenVRML/frustum.h:  Added file.  Replaces
	VrmlFrustum.h.
	* src/openvrml/OpenVRML/VrmlFrustum.cpp:  Removed file.
	* src/openvrml/OpenVRML/VrmlFrustum.h:  Removed file.
	* src/openvrml/OpenVRML/Makefile.am:  Replaced VrmlFrustum.cpp,
	VrmlFrustum.h with frustum.cpp, frustum.h.
	* src/openvrml/OpenVRML/bounding_volume.cpp
	(bounding_volume::intersect_frustum):  Changes associated with
	naming convention changes to frustum.
	* src/openvrml/OpenVRML/bounding_volume.h
	(bounding_volume::intersect_frustum):  Changes associated with
	naming convention changes to frustum.
	* src/openvrml/OpenVRML/viewer.cpp (viewer::frustum):  Changes
	associated with naming convention changes to frustum.
	* src/openvrml/OpenVRML/viewer.h (viewer::frustum):  Changes
	associated with naming convention changes to frustum.
	* src/openvrml/OpenVRML/vrml97node.cpp (Viewpoint::getFrustum):
	Removed unused, unimplemented function.
	* src/openvrml/OpenVRML/vrml97node.h (Viewpoint::getFrustum):
	Removed unused, unimplemented function.
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp
	(ViewerOpenGL::set_viewpoint):  Changes associated with naming
	convention changes to frustum.

2003-06-01  Braden McDaniel  <braden@endoframe.com>

	Removed Mac OS 9-specific #ifdefs.  It is not at all likely that
	Mac OS 9 support will be revived.

	* src/lookat/lookat.cpp:  Removed conditional code for Mac OS 9.
	* src/openvrml/OpenVRML/Doc.cpp (convertHex, decodePath,
	Doc::convertCommonToMacPath, Doc::fopen):  Removed conditional
	code for Mac OS 9.
	* src/openvrml/OpenVRML/Doc.h (Doc::convertCommonToMacPath):
	Removed conditional code for Mac OS 9.
	* src/openvrml/OpenVRML/Image.cpp:  Removed conditional code for
	Mac OS 9.
	* src/openvrml/OpenVRML/System.cpp (System::loadUrl,
	System::connectSocket, strdup, c2str255, YieldingNotifier,
	ProgressThread, System::httpFetch):  Removed conditional code
	for Mac OS 9.
	* src/openvrml/OpenVRML/System.h (System::loadUrl):  Removed
	conditional code for Mac OS 9.
	* src/openvrml/OpenVRML/doc2.cpp (Doc2::~Doc2,
	Doc2::inputStream, convertHex, decodePath,
	Doc2::convertCommonToMacPath):  Removed conditional code for
	Mac OS 9.
	* src/openvrml/OpenVRML/doc2.hpp (Doc2::convertCommonToMacPath):
	Removed conditional code for Mac OS 9.
	* src/openvrml/OpenVRML/vrml97node.cpp (TimeSensor::update):
	Removed conditional code for Mac OS 9.
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp (checkErrors):
	Removed conditional code for Mac OS 9.
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.h
	(ViewerOpenGL::handleKey):  Removed conditional code for
	Mac OS 9.

2003-05-31  Braden McDaniel  <braden@endoframe.com>

	Fixed bounding_volume::ortho_transform that was missed as part
	of earlier renaming.

	* src/openvrml/OpenVRML/bounding_volume.cpp:  Renamed
	bounding_volume::orthoTransform to
	bounding_volume::ortho_transform.
	* src/openvrml/OpenVRML/bounding_volume.h:  Renamed
	bounding_volume::orthoTransform to
	bounding_volume::ortho_transform.

2003-05-31  Braden McDaniel  <braden@endoframe.com>

	Moved OpenVRML_::length and OpenVRML_::normalize to
	basetypes.cpp, which is the only place they were being used.

	* src/openvrml/OpenVRML/private.h (OpenVRML_::length,
	OpenVRML_::normalize):  Removed function definitions.
	* src/openvrml/OpenVRML/basetypes.cpp (length_, normalize_):
	Added function definitions.
	* src/openvrml/OpenVRML/VrmlFrustum.cpp (VrmlFrustum::update):
	Removed unnecessary using declaration.
	* src/openvrml/OpenVRML/bounding_volume.cpp
	(bounding_sphere::orthoTransform, bounding_sphere::transform):
	Removed unnecessary using declarations.

2003-05-31  Braden McDaniel  <braden@endoframe.com>

	Removed unused, unnecessary function viewer::get_user_navigation.

	* src/openvrml/OpenVRML/viewer.cpp:  Removed doc-comment for
	viewer::get_user_navigation.
	* src/openvrml/OpenVRML/viewer.h (viewer::get_user_navigation):
	Removed function declaration.
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp
	(viewer::get_user_navigation):  Removed function definition.
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.h
	(viewer::get_user_navigation):  Removed function declaration.

2003-05-31  Braden McDaniel  <braden@endoframe.com>

	Applied naming convention changes: Viewer -> viewer.

	* src/openvrml/OpenVRML/viewer.cpp:  Added.  Replaces
	Viewer.cpp.
	* src/openvrml/OpenVRML/viewer.h:  Added.  Replaces
	Viewer.h
	* src/openvrml/OpenVRML/Viewer.cpp:  Removed.
	* src/openvrml/OpenVRML/Viewer.h:  Removed.
	* src/openvrml/OpenVRML/Makefile.am:  Replaced Viewer.cpp,
	Viewer.h with viewer.cpp, viewer.h.
	* src/openvrml/OpenVRML/browser.cpp:  Changes associated with
	naming convention changes to viewer.
	* src/openvrml/OpenVRML/browser.h:  Changes associated with
	naming convention changes to viewer.
	* src/openvrml/OpenVRML/node.cpp:  Changes associated with
	naming convention changes to viewer.
	* src/openvrml/OpenVRML/node.h:  Changes associated with
	naming convention changes to viewer.
	* src/openvrml/OpenVRML/vrml97node.cpp:  Changes associated with
	naming convention changes to viewer.
	* src/openvrml/OpenVRML/vrml97node.h:  Changes associated with
	naming convention changes to viewer.
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp:  Changes
	associated with naming convention changes to viewer.
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.h:  Changes
	associated with naming convention changes to viewer.

2003-05-31  Braden McDaniel  <braden@endoframe.com>

	Apply naming convention changes: BVolume -> bounding_volume.

	* src/openvrml/OpenVRML/bounding_volume.cpp:  Added.  Replaces
	bvolume.cpp.  Same as bvolume.cpp, but changed to match new
	naming convention.
	* src/openvrml/OpenVRML/bounding_volume.h:  Added.  Replaces
	bvolume.h.  Same as bvolume.h, but changed to match new naming
	convention.
	* src/openvrml/OpenVRML/bvolume.cpp:  Removed.
	* src/openvrml/OpenVRML/bvolume.h:  Removed.
	* src/openvrml/OpenVRML/Makefile.am: Replaced bvolume.h and
	bvolume.cpp with bounding_volume.h and bounding_volume.cpp.
	* src/openvrml/OpenVRML/Viewer.cpp:  Changes associated with
	naming convention changes to bounding_volume.
	* src/openvrml/OpenVRML/Viewer.h:  Changes associated with
	naming convention changes to bounding_volume.
	* src/openvrml/OpenVRML/VrmlRenderContext.cpp:  Changes
	associated with naming convention changes to bounding_volume.
	* src/openvrml/OpenVRML/VrmlRenderContext.h:  Changes
	associated with naming convention changes to bounding_volume.
	* src/openvrml/OpenVRML/browser.cpp:  Changes associated with
	naming convention changes to bounding_volume.
	* src/openvrml/OpenVRML/node.cpp:  Changes associated with
	naming convention changes to bounding_volume.
	* src/openvrml/OpenVRML/node.h:  Changes associated with naming
	convention changes to bounding_volume.
	* src/openvrml/OpenVRML/vrml97node.cpp:  Changes associated with
	naming convention changes to bounding_volume.
	* src/openvrml/OpenVRML/vrml97node.h:  Changes associated with
	naming convention changes to bounding_volume.
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp:  Changes
	associated with naming convention changes to bounding_volume.
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.h:  Changes
	associated with naming convention changes to bounding_volume.

2003-05-26  Braden McDaniel  <braden@endoframe.com>

	Applied new naming convention for browser class.

	* src/lookat/ViewerGlut.cpp
	* src/lookat/ViewerGlut.h
	* src/lookat/lookat.cpp
	* src/openvrml/OpenVRML/ScriptJDK.cpp
	* src/openvrml/OpenVRML/Viewer.cpp
	* src/openvrml/OpenVRML/Viewer.h
	* src/openvrml/OpenVRML/Vrml97Parser.cpp
	* src/openvrml/OpenVRML/Vrml97Parser.g
	* src/openvrml/OpenVRML/Vrml97Parser.hpp
	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/browser.h
	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/node.h
	* src/openvrml/OpenVRML/node_ptr.cpp
	* src/openvrml/OpenVRML/script.cpp
	* src/openvrml/OpenVRML/script.h
	* src/openvrml/OpenVRML/vrml97node.cpp
	* src/openvrml/OpenVRML/vrml97node.h
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.h

	Applied new naming convention for scene class.

	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/browser.h
	* src/openvrml/OpenVRML/doc2.cpp
	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/node.h
	* src/openvrml/OpenVRML/vrml97node.cpp
	* src/openvrml/OpenVRML/vrml97node.h

2003-05-25  Braden McDaniel  <braden@endoframe.com>

	Applied new naming convention for scope_ptr class.

	* src/openvrml/OpenVRML/Makefile.am
	* src/openvrml/OpenVRML/Vrml97Parser.cpp
	* src/openvrml/OpenVRML/Vrml97Parser.g
	* src/openvrml/OpenVRML/Vrml97Parser.hpp
	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/node.h
	* src/openvrml/OpenVRML/node_type_ptr.cpp
	* src/openvrml/OpenVRML/scope.cpp
	* src/openvrml/OpenVRML/scope.h
	* src/openvrml/OpenVRML/scope_ptr.cpp
	* src/openvrml/OpenVRML/scope_ptr.h
	* src/openvrml/OpenVRML/scopeptr.cpp
	* src/openvrml/OpenVRML/scopeptr.h
	* src/openvrml/OpenVRML/script.cpp
	* src/openvrml/OpenVRML/script.h
	* src/openvrml/OpenVRML/vrml97node.cpp
	* src/openvrml/OpenVRML/vrml97node.h

2003-05-24  Braden McDaniel  <braden@endoframe.com>

	Applied new naming convention for script_node class.

	* src/openvrml/OpenVRML/ScriptJDK.cpp
	* src/openvrml/OpenVRML/ScriptJDK.h
	* src/openvrml/OpenVRML/Vrml97Parser.cpp
	* src/openvrml/OpenVRML/Vrml97Parser.g
	* src/openvrml/OpenVRML/Vrml97Parser.hpp
	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/browser.h
	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/node.h
	* src/openvrml/OpenVRML/node_ptr.h
	* src/openvrml/OpenVRML/script.cpp
	* src/openvrml/OpenVRML/script.h

	Aplied new naming convention for scope class.

	* src/openvrml/OpenVRML/Vrml97Parser.cpp
	* src/openvrml/OpenVRML/Vrml97Parser.g
	* src/openvrml/OpenVRML/Vrml97Parser.hpp
	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/scope.cpp
	* src/openvrml/OpenVRML/scopeptr.cpp
	* src/openvrml/OpenVRML/scopeptr.h

2003-05-23  Braden McDaniel  <braden@endoframe.com>

	Applied new naming convention for node_ptr class.

	* src/openvrml/OpenVRML/Makefile.am
	* src/openvrml/OpenVRML/ScriptJDK.cpp
	* src/openvrml/OpenVRML/Vrml97Parser.cpp
	* src/openvrml/OpenVRML/Vrml97Parser.g
	* src/openvrml/OpenVRML/Vrml97Parser.hpp
	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/browser.h
	* src/openvrml/OpenVRML/field.cpp
	* src/openvrml/OpenVRML/field.h
	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/node.h
	* src/openvrml/OpenVRML/node_ptr.cpp
	* src/openvrml/OpenVRML/node_ptr.h
	* src/openvrml/OpenVRML/nodeptr.cpp
	* src/openvrml/OpenVRML/nodeptr.h
	* src/openvrml/OpenVRML/script.cpp
	* src/openvrml/OpenVRML/script.h
	* src/openvrml/OpenVRML/vrml97node.cpp
	* src/openvrml/OpenVRML/vrml97node.h

2003-05-23  Braden McDaniel  <braden@endoframe.com>

	Applied new naming convention for node_type_ptr class.

	* src/openvrml/OpenVRML/Makefile.am
	* src/openvrml/OpenVRML/Vrml97Parser.cpp
	* src/openvrml/OpenVRML/Vrml97Parser.g
	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/node.h
	* src/openvrml/OpenVRML/node_class_ptr.cpp
	* src/openvrml/OpenVRML/node_type_ptr.cpp
	* src/openvrml/OpenVRML/node_type_ptr.h
	* src/openvrml/OpenVRML/nodetypeptr.cpp
	* src/openvrml/OpenVRML/nodetypeptr.h
	* src/openvrml/OpenVRML/scope.cpp
	* src/openvrml/OpenVRML/scope.h
	* src/openvrml/OpenVRML/script.cpp
	* src/openvrml/OpenVRML/script.h
	* src/openvrml/OpenVRML/vrml97node.cpp
	* src/openvrml/OpenVRML/vrml97node.h

2003-05-22  Braden McDaniel  <braden@endoframe.com>

	Applied new naming convention for field_value_ptr class.

	* src/openvrml/OpenVRML/Makefile.am
	* src/openvrml/OpenVRML/Vrml97Parser.cpp
	* src/openvrml/OpenVRML/Vrml97Parser.g
	* src/openvrml/OpenVRML/Vrml97Parser.hpp
	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/field_value_ptr.cpp
	* src/openvrml/OpenVRML/field_value_ptr.h
	* src/openvrml/OpenVRML/fieldvalueptr.cpp
	* src/openvrml/OpenVRML/fieldvalueptr.h
	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/node.h
	* src/openvrml/OpenVRML/script.cpp
	* src/openvrml/OpenVRML/script.h

	Applied new naming convention for node_class_ptr class.

	* src/openvrml/OpenVRML/Makefile.am
	* src/openvrml/OpenVRML/Vrml97Parser.cpp
	* src/openvrml/OpenVRML/Vrml97Parser.g
	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/browser.h
	* src/openvrml/OpenVRML/field_value_ptr.cpp
	* src/openvrml/OpenVRML/node_class_ptr.cpp
	* src/openvrml/OpenVRML/node_class_ptr.h
	* src/openvrml/OpenVRML/nodeclassptr.cpp
	* src/openvrml/OpenVRML/nodeclassptr.h

2003-05-21  Braden McDaniel  <braden@endoframe.com>

	Applied new naming convention for node classes.

	* src/lookat/lookat.cpp
	* src/openvrml/OpenVRML/ScriptJDK.cpp
	* src/openvrml/OpenVRML/Viewer.h
	* src/openvrml/OpenVRML/Vrml97Parser.cpp
	* src/openvrml/OpenVRML/Vrml97Parser.g
	* src/openvrml/OpenVRML/Vrml97Parser.hpp
	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/browser.h
	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/node.h
	* src/openvrml/OpenVRML/nodeclassptr.cpp
	* src/openvrml/OpenVRML/nodeclassptr.h
	* src/openvrml/OpenVRML/nodeptr.cpp
	* src/openvrml/OpenVRML/nodeptr.h
	* src/openvrml/OpenVRML/nodetypeptr.cpp
	* src/openvrml/OpenVRML/nodetypeptr.h
	* src/openvrml/OpenVRML/scope.cpp
	* src/openvrml/OpenVRML/scope.h
	* src/openvrml/OpenVRML/script.cpp
	* src/openvrml/OpenVRML/script.h
	* src/openvrml/OpenVRML/vrml97node.cpp
	* src/openvrml/OpenVRML/vrml97node.h
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.h

2003-05-16  Braden McDaniel  <braden@endoframe.com>

	Applied new naming convention for field value classes.

	* src/lookat/lookat.cpp
	* src/openvrml/OpenVRML/Audio.cpp
	* src/openvrml/OpenVRML/Audio.h
	* src/openvrml/OpenVRML/Image.cpp
	* src/openvrml/OpenVRML/Image.h
	* src/openvrml/OpenVRML/ScriptJDK.cpp
	* src/openvrml/OpenVRML/ScriptJDK.h
	* src/openvrml/OpenVRML/System.cpp
	* src/openvrml/OpenVRML/System.h
	* src/openvrml/OpenVRML/Vrml97Parser.cpp
	* src/openvrml/OpenVRML/Vrml97Parser.g
	* src/openvrml/OpenVRML/Vrml97Parser.hpp
	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/browser.h
	* src/openvrml/OpenVRML/field.cpp
	* src/openvrml/OpenVRML/field.h
	* src/openvrml/OpenVRML/fieldvalueptr.cpp
	* src/openvrml/OpenVRML/fieldvalueptr.h
	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/node.h
	* src/openvrml/OpenVRML/script.cpp
	* src/openvrml/OpenVRML/script.h
	* src/openvrml/OpenVRML/vrml97node.cpp
	* src/openvrml/OpenVRML/vrml97node.h
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp

2003-05-12  Braden McDaniel  <braden@endoframe.com>

	Fixes for various warnings.

	* src/openvrml/OpenVRML/Doc.cpp
	* src/openvrml/OpenVRML/doc2.cpp
	* src/openvrml/OpenVRML/doc2.hpp
	* src/openvrml/OpenVRML/script.cpp
	* src/openvrml/OpenVRML/vrml97node.cpp
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp

2003-05-10  Braden McDaniel  <braden@endoframe.com>

	* src/openvrml/OpenVRML/System.cpp:  Corrected usage of tmpnam.

2003-05-09  Braden McDaniel  <braden@endoframe.com>

	* src/openvrml/OpenVRML/nodeptr.h:  Fixed problem with
	assignment to a null NodePtr.

2003-05-06  Braden McDaniel  <braden@endoframe.com>

	* src/openvrml/OpenVRML/vrml97node.h,
	* src/openvrml/OpenVRML/vrml97node.cpp: Apply correct texture
	coordinates for Text.

2003-05-05  Braden McDaniel  <braden@endoframe.com>

	* src/openvrml/OpenVRML/vrml97node.cpp:  Fixed errors rendering
	some glyphs with interior contours.

2003-05-05  Braden McDaniel  <braden@endoframe.com>

	* src/openvrml/OpenVRML/vrml97node.cpp: Include <limits>; fixed
	std::binary_function instantiation.

2003-04-06  Braden McDaniel  <braden@endoframe.com>

	* Updated to ANTLR 2.7.2.

2003-04-05  Braden McDaniel  <braden@endoframe.com>

	Added Emacs mode line.

	* src/lookat/ViewerGlut.cpp
	* src/lookat/ViewerGlut.h
	* src/lookat/lookat.cpp
	* src/openvrml/OpenVRML/Audio.cpp
	* src/openvrml/OpenVRML/Audio.h
	* src/openvrml/OpenVRML/Doc.cpp
	* src/openvrml/OpenVRML/Doc.h
	* src/openvrml/OpenVRML/Image.cpp
	* src/openvrml/OpenVRML/Image.h
	* src/openvrml/OpenVRML/ScriptJDK.cpp
	* src/openvrml/OpenVRML/ScriptJDK.h
	* src/openvrml/OpenVRML/System.cpp
	* src/openvrml/OpenVRML/System.h
	* src/openvrml/OpenVRML/Viewer.cpp
	* src/openvrml/OpenVRML/Viewer.h
	* src/openvrml/OpenVRML/Vrml97Parser.g
	* src/openvrml/OpenVRML/VrmlFrustum.cpp
	* src/openvrml/OpenVRML/VrmlFrustum.h
	* src/openvrml/OpenVRML/VrmlRenderContext.cpp
	* src/openvrml/OpenVRML/VrmlRenderContext.h
	* src/openvrml/OpenVRML/basetypes.cpp
	* src/openvrml/OpenVRML/basetypes.h
	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/browser.h
	* src/openvrml/OpenVRML/bvolume.cpp
	* src/openvrml/OpenVRML/bvolume.h
	* src/openvrml/OpenVRML/common.h
	* src/openvrml/OpenVRML/doc2.cpp
	* src/openvrml/OpenVRML/doc2.hpp
	* src/openvrml/OpenVRML/dummysound.cpp
	* src/openvrml/OpenVRML/field.cpp
	* src/openvrml/OpenVRML/field.h
	* src/openvrml/OpenVRML/fieldvalueptr.cpp
	* src/openvrml/OpenVRML/fieldvalueptr.h
	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/node.h
	* src/openvrml/OpenVRML/nodeclassptr.cpp
	* src/openvrml/OpenVRML/nodeclassptr.h
	* src/openvrml/OpenVRML/nodeptr.cpp
	* src/openvrml/OpenVRML/nodeptr.h
	* src/openvrml/OpenVRML/nodetypeptr.cpp
	* src/openvrml/OpenVRML/nodetypeptr.h
	* src/openvrml/OpenVRML/private.h
	* src/openvrml/OpenVRML/scope.cpp
	* src/openvrml/OpenVRML/scope.h
	* src/openvrml/OpenVRML/scopeptr.cpp
	* src/openvrml/OpenVRML/scopeptr.h
	* src/openvrml/OpenVRML/script.cpp
	* src/openvrml/OpenVRML/script.h
	* src/openvrml/OpenVRML/vrml97node.cpp
	* src/openvrml/OpenVRML/vrml97node.h
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.h
	* src/openvrml-gl/OpenVRML/GL/common.h

	Mac OS <= 9 is no longer supported.

	* lib/antlr/MacTokenStrmHiddenTknFltr.cpp
	* lib/antlr/MacTokenStrmHiddenTknFltr.hpp
	* lib/antlr/Makefile.am

2003-03-30  Braden McDaniel  <braden@endoframe.com>

	* src/lookat/ViewerGlut.cpp: Removed some debugging output that
	crept in.

2003-03-27  Braden McDaniel  <braden@endoframe.com>

	Removed remaining dependencies on MathUtils.*.

	* src/openvrml/OpenVRML/Makefile.am
	* src/openvrml/OpenVRML/Makefile.vc6
	* src/openvrml/OpenVRML/MathUtils.cpp
	* src/openvrml/OpenVRML/MathUtils.h
	* src/openvrml/OpenVRML/ScriptJDK.cpp
	* src/openvrml/OpenVRML/Viewer.cpp
	* src/openvrml/OpenVRML/VrmlFrustum.cpp
	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/bvolume.cpp
	* src/openvrml/OpenVRML/bvolume.h
	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/vrml97node.cpp
	* src/openvrml-gl/OpenVRML/GL/Makefile.vc6
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp

2003-03-26  Braden McDaniel  <braden@endoframe.com>

	* configure.ac:  Use AC_HELP_STRING for help strings.

	Modified GL detection macros to add configure option for Apple
	OpenGL framework.

	* m4/ax_check_gl.m4
	* m4/ax_check_glut.m4
	* src/lookat/ViewerGlut.cpp
	* src/lookat/lookat.cpp
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp

	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.h: Public headers must
	not include config.h.

2003-03-23  Braden McDaniel  <braden@endoframe.com>

	Use basetypes in Text node implementation.

	* src/openvrml/OpenVRML/vrml97node.cpp
	* src/openvrml/OpenVRML/vrml97node.h

2003-03-22  Braden McDaniel  <braden@endoframe.com>

	* src/openvrml/OpenVRML/node.cpp:  Work around an apparent
	gcc 3.2.2 bug with pointer-to-member syntax.

	Use basetypes in Viewer interface.

	* src/openvrml/OpenVRML/Viewer.cpp
	* src/openvrml/OpenVRML/Viewer.h
	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/vrml97node.cpp
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.h

2003-03-21  Braden McDaniel  <braden@endoframe.com>

	Fixes to compile with cl (POSIXy functions start with an
	underscore).

	* src/openvrml/OpenVRML/System.cpp
	* src/openvrml/OpenVRML/System.h

	* src/openvrml/OpenVRML/basetypes.cpp: mat4f::operator*= needs
	to return.

	* src/openvrml/OpenVRML/node.h:  NodeTraverser::operator= must
	return a reference.

	* src/openvrml/OpenVRML/node.cpp: cl 13.00.9466 doesn't like a
	class in a member function definition referring to private members
	of the outer class.  So use a pointer-to-member instead.

	* src/openvrml/OpenVRML/browser.cpp:  Fixes for cl 13.00.9466.

	* src/openvrml/OpenVRML/bvolume.cpp:  #include <limits> instead
	of <float.h>.

2003-03-12  Braden McDaniel  <braden@endoframe.com>

	Return base types (color, rotation, vec2f, etc.) from abstract
	node type accessors instead of FieldValue types.  Added a typedef
	for int32.

	* src/lookat/lookat.cpp
	* src/openvrml/OpenVRML/ScriptJDK.cpp
	* src/openvrml/OpenVRML/Viewer.h
	* src/openvrml/OpenVRML/Vrml97Parser.cpp
	* src/openvrml/OpenVRML/Vrml97Parser.g
	* src/openvrml/OpenVRML/Vrml97Parser.hpp
	* src/openvrml/OpenVRML/basetypes.cpp
	* src/openvrml/OpenVRML/basetypes.h
	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/browser.h
	* src/openvrml/OpenVRML/field.cpp
	* src/openvrml/OpenVRML/field.h
	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/node.h
	* src/openvrml/OpenVRML/script.cpp
	* src/openvrml/OpenVRML/vrml97node.cpp
	* src/openvrml/OpenVRML/vrml97node.h
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.h

	* configure.ac:  Fixed error message for missing libjpeg.

	* src/openvrml/OpenVRML/basetypes.h:  Include <sys/types.h>
	instead of <stdint.h>.

2003-03-10  Braden McDaniel  <braden@endoframe.com>

	Replaced Quaternion with quatf.

	* src/openvrml/OpenVRML/Makefile.am
	* src/openvrml/OpenVRML/basetypes.cpp
	* src/openvrml/OpenVRML/basetypes.h
	* src/openvrml/OpenVRML/field.cpp
	* src/openvrml/OpenVRML/quaternion.cpp
	* src/openvrml/OpenVRML/quaternion.h
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.h

2003-03-09  Braden McDaniel  <braden@endoframe.com>

	Changed FieldValue classes to expose their value in a public data
	member.

	* src/lookat/lookat.cpp
	* src/openvrml/OpenVRML/Audio.cpp
	* src/openvrml/OpenVRML/Image.cpp
	* src/openvrml/OpenVRML/Makefile.am
	* src/openvrml/OpenVRML/ScriptJDK.cpp
	* src/openvrml/OpenVRML/Vrml97Parser.cpp
	* src/openvrml/OpenVRML/Vrml97Parser.g
	* src/openvrml/OpenVRML/Vrml97Parser.hpp
	* src/openvrml/OpenVRML/VrmlMatrix.cpp
	* src/openvrml/OpenVRML/VrmlMatrix.h
	* src/openvrml/OpenVRML/basetypes.cpp
	* src/openvrml/OpenVRML/basetypes.h
	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/browser.h
	* src/openvrml/OpenVRML/bvolume.cpp
	* src/openvrml/OpenVRML/bvolume.h
	* src/openvrml/OpenVRML/field.cpp
	* src/openvrml/OpenVRML/field.h
	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/private.h
	* src/openvrml/OpenVRML/quaternion.cpp
	* src/openvrml/OpenVRML/quaternion.h
	* src/openvrml/OpenVRML/script.cpp
	* src/openvrml/OpenVRML/vrml97node.cpp
	* src/openvrml/OpenVRML/vrml97node.h
	* src/openvrml-gl/OpenVRML/GL/Makefile.am
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.h

	Replaced VrmlMatrix with mat4f.

	* src/openvrml/OpenVRML/Makefile.am
	* src/openvrml/OpenVRML/Viewer.cpp
	* src/openvrml/OpenVRML/Viewer.h
	* src/openvrml/OpenVRML/VrmlMatrix.cpp
	* src/openvrml/OpenVRML/VrmlMatrix.h
	* src/openvrml/OpenVRML/VrmlRenderContext.cpp
	* src/openvrml/OpenVRML/VrmlRenderContext.h
	* src/openvrml/OpenVRML/basetypes.cpp
	* src/openvrml/OpenVRML/basetypes.h
	* src/openvrml/OpenVRML/bvolume.cpp
	* src/openvrml/OpenVRML/bvolume.h
	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/node.h
	* src/openvrml/OpenVRML/quaternion.cpp
	* src/openvrml/OpenVRML/quaternion.h
	* src/openvrml/OpenVRML/script.cpp
	* src/openvrml/OpenVRML/vrml97node.cpp
	* src/openvrml/OpenVRML/vrml97node.h
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.h

2003-03-05  S. K. Bose  <bose@pavan.barc.ernet.in>

	Fix for Javascript core dump.

2003-02-24  Braden McDaniel  <braden@endoframe.com>

	* src/openvrml/OpenVRML/browser.cpp: Added do_shutdown
	implementation to ProtoNode.

	Removed parent pointer stuff from Node.  This functionality is now
	provided by the relocate/do_relocate methods.

	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/node.h
	* src/openvrml/OpenVRML/vrml97node.cpp
	* src/openvrml/OpenVRML/vrml97node.h

	* src/openvrml/OpenVRML/script.cpp:  Fixed bug in ScriptNode
	shutdown.

2003-02-23  Braden McDaniel  <braden@endoframe.com>

	Replaced NodeVisitor with NodeTraverser.  NodeTraverser is a
	convenience class that performs a traversal that avoids
	redundantly traversing nodes.  Unlike NodeVisitor, a traversal
	may be made with a NodeTraverser in the middle of another
	traversal.

	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/node.h

2003-02-23  Thomas Flynn  <tflynn@users.sourceforge.net>

	Add support for Browser.getCurrentSpeed.

	* src/openvrml/OpenVRML/browser.h
	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/script.cpp
	* src/openvrml/OpenVRML/ScriptJDK.cpp

	* src/openvrml/OpenVRML/ScriptJDK.cpp: Add additional comments.
	Make use of addElement method.

2003-02-17  Braden McDaniel  <braden@endoframe.com>

	Fixed bug in Browser::findNode.

	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/node.h
	* src/openvrml/OpenVRML/vrml97node.cpp

2003-02-15  Braden McDaniel  <braden@endoframe.com>

	Added abstract node classes TransformNode and ViewpointNode.

	* src/lookat/lookat.cpp
	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/browser.h
	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/node.h
	* src/openvrml/OpenVRML/vrml97node.cpp
	* src/openvrml/OpenVRML/vrml97node.h
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.h

	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp:  Removed
	debug output.

2003-02-14  Braden McDaniel  <braden@endoframe.com>

	* src/openvrml/OpenVRML/browser.cpp:  Restored necessary
	clearing of bound node stacks in Browser::loadURI.

2003-02-13  Braden McDaniel  <braden@endoframe.com>

	Added do_shutdown implementations to AudioClip, MovieTexture,
	PointLight, SpotLight, TimeSensor.

	* src/openvrml/OpenVRML/vrml97node.cpp
	* src/openvrml/OpenVRML/vrml97node.h

	* src/openvrml/OpenVRML/browser.cpp:  Removed unnecessary
	clearing of node lists in Browser::loadURI.

2003-02-09  Braden McDaniel  <braden@endoframe.com>

	* src/openvrml/OpenVRML/browser.cpp:  Only call Scene::shutdown
	if Browser::scene is nonzero.

	Added do_shutdown implementations to NavigationInfo, Viewpoint,
	Text.

	* src/openvrml/OpenVRML/vrml97node.cpp
	* src/openvrml/OpenVRML/vrml97node.h

2003-02-08  Braden McDaniel  <braden@endoframe.com>

	Bound node stacks should not have owning pointers.

	* src/openvrml/OpenVRML/vrml97node.cpp
	* src/openvrml/OpenVRML/vrml97node.h

	* src/openvrml/OpenVRML/browser.cpp:  Fixed relative URI
	resolution bug where '?' and '#' separator characters were
	omitted.

2003-02-07  Braden McDaniel  <braden@endoframe.com>

	Moved System::time functionality to Browser::getCurrentTime
	function.

	* src/openvrml/OpenVRML/System.cpp
	* src/openvrml/OpenVRML/System.h
	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/browser.h
	* src/openvrml/OpenVRML/script.cpp
	* src/openvrml/OpenVRML/vrml97node.cpp
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp

	Added shutdown member function to Node, Scene.

	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/browser.h
	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/node.h
	* src/openvrml/OpenVRML/nodeptr.cpp
	* src/openvrml/OpenVRML/script.cpp
	* src/openvrml/OpenVRML/script.h
	* src/openvrml/OpenVRML/vrml97node.cpp

2003-01-27  Thomas Flynn  <tflynn@users.sourceforge.net>

	* doc/conformance.doc: Update conformance test results.

2003-01-26  Braden McDaniel  <braden@endoframe.com>

	Added constructor to take a 16-value float array.  Added a
	setRotate method to create a rotation matrix from a Quaternion.

	* src/openvrml/OpenVRML/VrmlMatrix.cpp
	* src/openvrml/OpenVRML/VrmlMatrix.cpp

	Added set method to set the quaternion value from a 4-element
	float array.

	* src/openvrml/OpenVRML/quaternion.cpp
	* src/openvrml/OpenVRML/quaternion.h

	Modified quaternion manipulation code to use Quaternion class.
	Consolidated trackball functions in ViewerOpenGL.cpp; this
	obsoletes OpenGLEvent.cpp and OpenGLEvent.h.

	* src/openvrml-gl/OpenVRML/GL/Makefile.am
	* src/openvrml-gl/OpenVRML/GL/OpenGLEvent.cpp
	* src/openvrml-gl/OpenVRML/GL/OpenGLEvent.h
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.h

2003-01-25  Braden McDaniel  <braden@endoframe.com>

	Added Quaternion class.

	* src/openvrml/OpenVRML/Makefile.am
	* src/openvrml/OpenVRML/quaternion.cpp
	* src/openvrml/OpenVRML/quaternion.h

	Construct an SFRotation from a Quaternion.  Modified
	SFRotation::multiply and ::slerp to use Quaternion class.

	* src/openvrml/OpenVRML/field.cpp
	* src/openvrml/OpenVRML/field.h

	* src/openvrml/OpenVRML/quaternion.cpp:  Implemented stream
	output operator for Quaternion.

2003-01-24  Braden McDaniel  <braden@endoframe.com>

	* src/openvrml/OpenVRML/browser.cpp:  Convert backslashes in
	output of _fullpath to slashes.

	* README:  Updated dependency list to include FreeType and
	Fontconfig; updated link to Win32 dependencies archive.

2003-01-23  Braden McDaniel  <braden@endoframe.com>

	Removed unnecessary applications of OPENVRML_SCOPE.

	* src/openvrml/OpenVRML/VrmlMatrix.h
	* src/openvrml/OpenVRML/field.h

2003-01-19  Braden McDaniel  <braden@endoframe.com>

	Added operator==, operator!= for FieldValue classes.

	* src/openvrml/OpenVRML/field.cpp
	* src/openvrml/OpenVRML/field.h

	* src/openvrml/OpenVRML/field.cpp:  Fixed const-correctness
	problem caught by gcc 3.2.1.

2003-01-15  Braden McDaniel  <braden@endoframe.com>

	* src/openvrml/OpenVRML/browser.cpp:  Removed obsolete code.

2003-01-08  Braden McDaniel  <braden@endoframe.com>

	Renamed Node::*Impl private virtual functions to do_*.

	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/node.h
	* src/openvrml/OpenVRML/script.cpp
	* src/openvrml/OpenVRML/script.h
	* src/openvrml/OpenVRML/vrml97node.cpp
	* src/openvrml/OpenVRML/vrml97node.h

	Fixed exception specifications for do_initialize methods.

	* src/openvrml/OpenVRML/vrml97node.cpp
	* src/openvrml/OpenVRML/vrml97node.h

	Scene::initialize throws std::bad_alloc.

	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/browser.h

2003-01-07  Braden McDaniel  <braden@endoframe.com>

	Replaced OV_CHECK_GL with AX_CHECK_GL.

	* configure.ac
	* m4/Makefile.am
	* m4/ax_check_gl.m4
	* m4/gl.m4
	* m4/glut.m4

	Replaced OV_CHECK_GLUT with AX_CHECK_GLUT.

	* configure.ac
	* m4/Makefile.am
	* m4/ax_check_glut.m4
	* m4/glut.m4


2003-01-05  Braden McDaniel  <braden@endoframe.com>

	Added ac-archive-style doc-comments.

	* m4/gl.m4
	* m4/glut.m4

2003-01-03  Braden McDaniel  <braden@endoframe.com>

	* m4/glut.m4:  Include -lXi in GLUT_LIBS.

2003-01-02  Braden McDaniel  <braden@endoframe.com>

	* m4/gl.m4:  Fix for --without-x.  Apparently when configuring
	--without-x, $x_includes and $x_libraries are set to "NONE".

2002-12-27  Braden McDaniel  <braden@endoframe.com>

	* src/openvrml/OpenVRML/vrml97node.cpp:  Added doc-comments.
	* src/openvrml/OpenVRML/browser.cpp:  Use newer form of
	UnsupportedInterface constructor.

	Changed AbstractLight::renderScoped to take a Viewer & instead of
	a Viewer *.

	* src/openvrml/OpenVRML/vrml97node.cpp
	* src/openvrml/OpenVRML/vrml97node.h

	Made NodeVisitor destructor non-throwing.

	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/node.h

	Added GroupingNode abstract node type.

	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/node.h
	* src/openvrml/OpenVRML/vrml97node.cpp
	* src/openvrml/OpenVRML/vrml97node.h

	* src/openvrml/OpenVRML/node.h:  Removed obsolete FontFace class
	declaration.

2002-12-26  Braden McDaniel  <braden@endoframe.com>

	* src/openvrml/OpenVRML/node.h:  Made Node::visited private.

	Moved NodePath typedef from Node class to OpenVRML namespace;
	use a std::deque instead of a std::list.

	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/node.h

	* src/openvrml/OpenVRML/node.h:  Removed relocate stuff
	(prematurely checked in by accident).

	* src/openvrml/OpenVRML/node.cpp: Added doc-comment for
	Node::getScope.

	* src/openvrml/OpenVRML/node.cpp:  Added doc-comments.

	* src/openvrml/OpenVRML/vrml97node.cpp:  Prefer std::distance to
	pointer/iterator arithmetic.

2002-12-23  Braden McDaniel  <braden@endoframe.com>

	* src/openvrml/OpenVRML/vrml97node.cpp:  Use newer
	UnsupportedInterface constructor.

2002-12-21  Braden McDaniel  <braden@endoframe.com>

	* m4/gl.m4:  Only use $x_includes and $x_libraries if those
	variables have been set.

	Updated version number to 0.13.99 (pre-release).

	* README, configure.ac, doc/Doxyfile

	* src/openvrml/OpenVRML/vrml97node.cpp:  Fixed justify "END"
	for horizontal major alignment.

2002-12-20  S. K. Bose  <bose@pavan.barc.ernet.in>

	* ide-projects/Makefile.am: add config.h

2002-12-20  Braden McDaniel  <braden@endoframe.com>

	* m4/gl.m4:  Added PTHREAD_CFLAGS to GL_CFLAGS.

	* NEWS:  Updates for 0.13.0 release.

	Updated libtool library version numbers.

	* src/openvrml/OpenVRML/Makefile.am
	* src/openvrml-gl/OpenVRML/GL/Makefile.am

2002-12-19  Braden McDaniel  <braden@endoframe.com>

	Removed private setMVMatrix/getMVMatrix from drag sensor nodes.
	More doc-comment love.

	* src/openvrml/OpenVRML/vrml97node.cpp
	* src/openvrml/OpenVRML/vrml97node.h

	* src/openvrml/OpenVRML/vrml97node.cpp:  Fixed normal for Text.

	Fixed type for offset field of PlaneSensor.

	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/vrml97node.cpp

	* src/openvrml/OpenVRML/vrml97node.cpp:  Fixed problem with
	evaluateCurve_ introducing redundant vertices for Text.

	* src/openvrml-gl/OpenVRML/GL/Makefile.am:  Removed unnecessary
	compiler flags.

	Merged changes from 0.12.5 release.  (Better late than never.)

	* Makefile.am
	* NEWS
	* configure.ac
	* ide-projects/Makefile.am
	* java/Makefile.am
	* java/vrml/Makefile.am
	* java/vrml/field/Makefile.am
	* java/vrml/node/Makefile.am
	* src/openvrml/OpenVRML/Makefile.am
	* src/openvrml-gl/OpenVRML/GL/Makefile.am

	Added INSTALL-MSVC6.txt, Makefile.vc6's to the distribution.

	* Makefile.am
	* lib/antlr/Makefile.am
	* src/lookat/Makefile.am
	* src/openvrml/OpenVRML/Makefile.am
	* src/openvrml-gl/OpenVRML/GL/Makefile.am

	* src/openvrml/OpenVRML/Makefile.am:  Fixed missing '\'.

2002-12-18  Braden McDaniel  <braden@endoframe.com>

	* m4/Makefile.am, m4/ftflib.m4:  Removed obsolete macro.

	* src/openvrml/OpenVRML/vrml97node.cpp:  Apply font size to
	glyphs.

2002-12-18  S. K. Bose  <bose@pavan.barc.ernet.in>

	Shift ide-projects/Windows/VisualC6/tplib/antlr/Makefile.vc6
	to lib/antlr directory.

2002-12-17  Braden McDaniel  <braden@endoframe.com>

	Documentation improvements.  Incorporated conformance test results
	into doxygen-generated docs.

	* doc/Doxyfile
	* doc/Makefile.am
	* doc/conformance.doc
	* doc/conformance.html
	* doc/doxygen-footer
	* doc/doxygen-header
	* index.doc

	Doc-comment love.

	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/node.h
	* src/openvrml/OpenVRML/nodeptr.cpp
	* src/openvrml/OpenVRML/vrml97node.cpp

	* openvrml.spec.in:  Removed reference to doc/conformance.html.

	Doc-comment love.

	* src/openvrml/OpenVRML/vrml97node.cpp
	* src/openvrml/OpenVRML/vrml97node.h

2002-12-17  S. K. Bose  <bose@pavan.barc.ernet.in>

	Take out all Makefile.vc6 from ide-projects/Windows/VisualC6/*
	and keep these in respective source directory.

	* INSTALL-MSVC6.txt: Installation note for MSVC6.
	* ide-projects/Windows/VisualC6/Install: remove.

	Update all Makefile.vc6 and *.dsp.

	Apply patches #653113 and #653128.

2002-12-16  Thomas Flynn  <tflynn@users.sourceforge.net>

	* doc/conformance.html: Update conformance results.

2002-12-16  Braden McDaniel  <braden@endoframe.com>

	Documentation enhancements.

	* doc/doxygen-footer
	* doc/doxygen-header
	* doc/openvrml.css

	* src/openvrml/OpenVRML/vrml97node.cpp:  const fixes.

	* src/openvrml/OpenVRML/vrml97node.cpp:  More const fixes.

	Changed Node::render to take a Viewer & instead of a Viewer *.

	* src/openvrml/OpenVRML/VrmlRenderContext.cpp
	* src/openvrml/OpenVRML/VrmlRenderContext.h
	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/node.h
	* src/openvrml/OpenVRML/vrml97node.cpp
	* src/openvrml/OpenVRML/vrml97node.h

	* src/openvrml/OpenVRML/browser.cpp:  Added doc-comments for
	constants pi and friends.

	Reformatted comments as doc-comments.

	* src/openvrml/OpenVRML/Audio.cpp
	* src/openvrml/OpenVRML/Audio.h

	* src/openvrml/OpenVRML/field.cpp:  Doc-comment fixes.

	Removed unused Node::d_flag and related methods.

	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/node.h
	* src/openvrml/OpenVRML/vrml97node.cpp
	* src/openvrml/OpenVRML/vrml97node.h

	* src/openvrml/OpenVRML/node.cpp:  Added doc-comments.

	* doc/Doxyfile, doc/doxygen-header:  Documentation improvements.

	* src/openvrml/OpenVRML/node.cpp:  Added OPENVRML_SCOPE to
	Node's operator<<.

	* doc/Makefile.am:  Fixed doc installation.

2002-12-14  Braden McDaniel  <braden@endoframe.com>

	Removed text2 method.  We no longer depend on glut for text
	rendering.  As a side effect, we don't have a means of reporting
	the frames-per-second in the renderer; but that's code that needs
	to be refactored anyway.

	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.h

	* src/openvrml/OpenVRML/doc2.cpp:  Changed HAVE_ZLIB to
	OPENVRML_ENABLE_GZIP to match configure.ac changes.

2002-12-13  Braden McDaniel  <braden@endoframe.com>

	* src/openvrml/OpenVRML/Viewer.h:  Tab elimination.

2002-12-11  Braden McDaniel  <braden@endoframe.com>

	* src/openvrml/OpenVRML/script.cpp: Fixed problem with
	initializing MFStrings with "new String()" objects in JavaScript.
	This is a general fix that converts *any* argument to a JSString
	before making the assignment to the MFString element.  This
	behavior is consistent with that of the String object constructor.

	* src/openvrml/OpenVRML/script.cpp:  Treat SFInt32 values and
	MFInt32 elements in JavaScript as JavaScript numerics (double
	precision) rather than JavaScript integers.  ECMAScript
	doesn't have distinct integer and floating point types.

	* src/openvrml/OpenVRML/vrml97node.cpp:  Fixed conditional
	sections for OPENVRML_ENABLE_TEXT_NODE.

2002-12-10  Braden McDaniel  <braden@endoframe.com>

	* src/openvrml/OpenVRML/field.cpp:  MSVC6 doesn't like in-class
	initialization of static const integers.  Use enum instead.

	Use fontconfig for font discovery.  Refactored glyph data->polygon
	conversion to Text node implementation.

	* README
	* configure.ac
	* openvrml.pc.in
	* src/openvrml/OpenVRML/Makefile.am
	* src/openvrml/OpenVRML/Viewer.h
	* src/openvrml/OpenVRML/font.cpp
	* src/openvrml/OpenVRML/font.h
	* src/openvrml/OpenVRML/node.h
	* src/openvrml/OpenVRML/vrml97node.cpp
	* src/openvrml/OpenVRML/vrml97node.h
	* src/openvrml-gl/OpenVRML/GL/Makefile.am
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.h

	* openvrml.spec.in: Added BuildRequires for pkgconfig,
	fontconfig-devel, freetype-devel.  Added Requires for fontconfig,
	freetype.  Updated configure arguments.

	* src/openvrml/OpenVRML/script.h:  Removed obsolete declaration
	of Doc class.

	Removed generation of API docs during install.  API doc generation
	must now be done manually, and the generated docs get included in
	the distribution.  This simplifies things for RPM--and probably
	users in general--so the API docs now get included in the RPM
	package.

	* configure.ac
	* openvrml.spec.in
	* doc/Doxyfile
	* doc/Doxyfile.in
	* doc/Makefile.am

	* src/openvrml/OpenVRML/field.cpp:  Assert that indices must be
	valid in insertElement, removeElement for MF* classes.

2002-12-09  Braden McDaniel  <braden@endoframe.com>

	Improvements to usability of configure option for Script node Java
	support.

	* README
	* configure.ac
	* java/Makefile.am
	* java/vrml/Makefile.am
	* java/vrml/field/Makefile.am
	* java/vrml/node/Makefile.am
	* m4/Makefile.am
	* m4/jdk.m4
	* m4/jni.m4
	* src/openvrml/OpenVRML/ScriptJDK.cpp
	* src/openvrml/OpenVRML/ScriptJDK.h
	* src/openvrml/OpenVRML/script.cpp

2002-12-08  Braden McDaniel  <braden@endoframe.com>

	* configure.ac, openvrml.pc.in:  Conditionally add mozilla-js to
	Requires in openvrml.pc.

	* configure.ac:  Fixed error in conditionally adding mozilla-js
	to Requires in openvrml.pc.

	Quelled some warnings from icc 7.0.

	* src/openvrml/OpenVRML/Image.cpp
	* src/openvrml/OpenVRML/MathUtils.cpp
	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/private.h
	* src/openvrml/OpenVRML/script.cpp

	* configure.ac, m4/gl.m4, m4/glut.m4:  Removed --with-gl and
	--with-glut configure options.

	Moved GPL text to m4 directory.  The only thing we have that's
	GPL'd are the m4 macros.  And since they're not installed, the GPL
	doesn't need to be among our installed docs.

	* COPYING
	* openvrml.spec.in
	* m4/COPYING

2002-12-08  Thomas Flynn  <tflynn@users.sourceforge.net>

	* src/openvrml/OpenVRML/vrml97node.cpp: Fix bug in FontStyle
	destructor.

2002-12-05  Braden McDaniel  <braden@endoframe.com>

	* doc/doxygen-header: Add link to bookmark icon to docs.

	Modified several configure options to be more "feature oriented".

	* Makefile.am
	* README
	* configure.ac
	* openvrml.spec.in
	* doc/Makefile.am
	* m4/Makefile.am
	* src/lookat/Makefile.am
	* src/openvrml/OpenVRML/Image.cpp
	* src/openvrml/OpenVRML/script.cpp
	* src/openvrml-gl/OpenVRML/GL/Makefile.am
	* m4/jpeg.m4
	* m4/png.m4
	* m4/spidermonkey.m4
	* m4/zlib.m4

2002-12-04  Braden McDaniel  <braden@endoframe.com>

	* src/openvrml/OpenVRML/script.cpp: Added VrmlMatrix support
	to JavaScript binding.

	* doc/Doxyfile.in: Don't generate API docs for Java sources.

2002-12-03  Braden McDaniel  <braden@endoframe.com>

	Const-correctness improvements and exception specifications for
	VrmlMatrix.

	* src/openvrml/OpenVRML/VrmlMatrix.cpp
	* src/openvrml/OpenVRML/VrmlMatrix.h

	* src/openvrml/OpenVRML/node.cpp: Fixed field value type
	agreement test in Node::addRoute.

2002-12-02  Braden McDaniel  <braden@endoframe.com>

	* src/openvrml/OpenVRML/node.h: Added OPENVRML_SCOPE to some API
	elements.

	* src/openvrml/OpenVRML/Makefile.am: ScriptJDK.h should not be
	installed.

	Consolidated route validity checking in Node::addRoute.

	* src/openvrml/OpenVRML/Vrml97Parser.cpp
	* src/openvrml/OpenVRML/Vrml97Parser.g
	* src/openvrml/OpenVRML/Vrml97Parser.hpp
	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/node.h
	* src/openvrml/OpenVRML/script.cpp

2002-11-30  Thomas Flynn  <tflynn@users.sourceforge.net>

	* src/openvrml/OpenVRML/Image.cpp: Gracefully handle the case
	where we're attempting to advance beyond the last frame of
	a MovieTexture.

	* src/openvrml/OpenVRML/vrml97node.cpp: Fix a couple of problems
	with MovieTexture nodes.

	* doc/conformance.html: Update conformance test results.

2002-11-23  Braden McDaniel  <braden@endoframe.com>

	* m4/gl.m4: Use C++ when testing for libGLU.  libGLU may need to
	link with libstc++.

	* src/openvrml/OpenVRML/node.cpp:  Put Node's initializer list
	in the right order.

	libopenvrml-gl no longer depends on glut.

	* src/openvrml-gl/OpenVRML/GL/Makefile.am
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp

	* src/openvrml/OpenVRML/script.cpp:  Fixed bug in JavaScript
	SFRotation constructor that takes two vectors.

	Added addElement methods to MF* classes.

	* src/openvrml/OpenVRML/field.h
	* src/openvrml/OpenVRML/field.cpp

	No longer require glut; made openvrml-gl require openvrml; other
	cleanup.

	* openvrml.pc.in
	* openvrml-gl.pc.in

2002-11-19  Braden McDaniel  <braden@endoframe.com>

	Doc-comment fix-ups.

	* src/openvrml/OpenVRML/MathUtils.cpp
	* src/openvrml/OpenVRML/MathUtils.h
	* src/openvrml/OpenVRML/Viewer.cpp
	* src/openvrml/OpenVRML/VrmlFrustum.cpp
	* src/openvrml/OpenVRML/VrmlMatrix.cpp
	* src/openvrml/OpenVRML/VrmlRenderContext.h
	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/bvolume.cpp
	* src/openvrml/OpenVRML/field.cpp
	* src/openvrml/OpenVRML/field.h
	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/node.h
	* src/openvrml/OpenVRML/vrml97node.cpp
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp

	* doc/openvrml.css: Style sheet improvements.

2002-11-14  Braden McDaniel  <braden@endoframe.com>

	Fixed problem with macros when using config.cache.

	* m4/jpeg.m4
	* m4/png.m4
	* m4/zlib.m4

	* src/lookat/Makefile.am: Updated obsolete substitutions
	JAVA_CFLAGS, JAVA_LIBS to JNI_CFLAGS, JNI_LIBS.

	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp: Fixed Win32
	calling convention stuff on GL callbacks for Cygwin, MinGW.

2002-11-11  Thomas Flynn  <tflynn@users.sourceforge.net>

	* src/openvrml/OpenVRML/ScriptJDK.cpp: Fix bugs in
	MFRotation::setValue, MFTime::insertValue and MFVec2f::addValue.

	* src/openvrml/OpenVRML/field.cpp: Fix problem with
	ArrayVector::erase.

	* java/vrml/field/MFRotation.java: Fix bug in setValue method.

	Add additional comments.

	* java/vrml/field/MFVec2f.java
	* java/vrml/field/MFVec3f.java

	* models/TestJSAI.java: Add tests for MFNode, MFRotation, MFTime,
	MFVec2f and MFVec3f.

	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp: insertTextTess
	is now declared in unnamed namespace so cannot be used as
	method call on object.

2002-11-04  Braden McDaniel  <braden@endoframe.com>

	Factored tesselation helper structs out of ViewerOpenGL interface.

	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.h

2002-10-31  Braden McDaniel  <braden@endoframe.com>

	Improved autoconf macros for zlib, libpng, and libjpeg.  These
	macros now work a bit more like AC_PATH_X, and the test result is
	cached.

	* configure.ac
	* m4/jpeg.m4
	* m4/png.m4
	* m4/zlib.m4
	* src/openvrml/OpenVRML/Image.cpp
	* src/openvrml/OpenVRML/doc2.cpp

	* m4/jpeg.m4:  Fixed cut&paste error.

	Rewrote OpenGL/GLUT autoconf macros.  The new macros should work
	under Cygwin.

	* configure.ac
	* m4/gl.m4
	* m4/glut.m4
	* src/lookat/ViewerGlut.cpp
	* src/lookat/lookat.cpp
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp

	OV_WITH_GL only needs to AC_REQUIRE([AC_PATH_X]), not
	AC_PATH_XTRA.

	* configure.ac
	* m4/gl.m4
	* m4/glut.m4

	Use ACX_PTHREAD (from the Autoconf Macro Archive) to check for
	pthreads. (Nvidia OpenGL implementation, for one, needs this.)

	* configure.ac
	* m4/Makefile.am
	* m4/acx_pthread.m4
	* m4/gl.m4

2002-10-30  Braden McDaniel  <braden@endoframe.com>

	Added protected default constructor, copy constructor, and
	assignment operator to FieldValue.

	* src/openvrml/OpenVRML/field.cpp
	* src/openvrml/OpenVRML/field.h

2002-10-30  S. K. Bose  <bose@pavan.barc.ernet.in>

	Autoconf macros to check for system font files and freetype
	library.

	* configure.ac
	* m4/ftflib.m4

	* ide-projects/Windows/VisualC6/config.h: include macros for
	system font files.

2002-10-29  S. K. Bose  <bose@pavan.barc.ernet.in>

	Accommodate font and defined "HAVE_CONFIG_H".

	* ide-projects/Windows/VisualC6/openvrml.dsp
	* ide-projects/Windows/VisualC6/lookat/lookat.dsp
	* ide-projects/Windows/VisualC6/openvrml-core/openvrmlcore.dsp
	* ide-projects/Windows/VisualC6/openvrml-gl/openvrmlgl.dsp

	* src/lookat/ViewerGlut.cpp: Remove "winconfig.h".

	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp: Fixed if there is
	no vector information about character in "insertText" method.

2002-10-28  S. K. Bose  <bose@pavan.barc.ernet.in>

	To support font based on scalable font (TrueType, Type1)
	present in the system using FreeType library.

	* src/openvrml/OpenVRML/font.h
	* src/openvrml/OpenVRML/font.cpp
	* src/openvrml/OpenVRML/vrml97node.cpp
	* src/openvrml/OpenVRML/vrml97node.h
	* src/opevrml/OpenVRML/node.h
	* src/openvrml/OpenVRML/Viewer.h
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.h

	std:: correctness fixes.

	* src/openvrml/OpenVRML/doc2.cpp
	* src/openvrml/OpenVRML/browser.cpp

	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp: remove "tex3"
	method.

2002-10-27  Braden McDaniel  <braden@endoframe.com>

	Fixed crash when calling ProtoNode::setFieldImpl to set the
	value of an un-IS'd exposedField.

	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/node.h

2002-10-26  Braden McDaniel  <braden@endoframe.com>

	Fixed crash when parsing IS mappings.

	* src/openvrml/OpenVRML/Vrml97Parser.cpp
	* src/openvrml/OpenVRML/Vrml97Parser.g
	* src/openvrml/OpenVRML/Vrml97Parser.hpp
	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/field.cpp
	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/node.h

2002-10-24  Braden McDaniel  <braden@endoframe.com>

	Removed optional usage of hash_map; use std::map.  hash_map is
	likely a performance win; but until there's data indicating the
	magnitude of the gain, its not worth the maintenance burden.
	Since hash_map is nonstandard, different implementations do
	different things with it.  If hash_map usage is reinstated, the
	autoconf test will need to be a good deal smarter than the one
	that is being retired with this change.

	* configure.ac
	* m4/Makefile.am
	* m4/cxxhash_map.m4
	* src/openvrml/OpenVRML/nodeptr.cpp
	* src/openvrml/OpenVRML/nodeptr.h

2002-10-20  Thomas Flynn  <tflynn@users.sourceforge.net>

	Backed out of some of the #include file cleanup due to problems
	with gcc 2.96.

	* src/openvrml/OpenVRML/Vrml97Parser.cpp
	* src/openvrml/OpenVRML/Vrml97Parser.g
	* src/openvrml/OpenVRML/VrmlMatrix.cpp
	* src/openvrml/OpenVRML/VrmlMatrix.h
	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/node.h
	* src/openvrml/OpenVRML/vrml97node.cpp

2002-10-19  Braden McDaniel  <braden@endoframe.com>

	Fixed crash (assertion failure) when encountering an
	EXTERNPROTO. Arbitrary EXTERNPROTOs still aren't supported, but at
	least we don't die on them anymore.

	* src/openvrml/OpenVRML/Vrml97Parser.cpp
	* src/openvrml/OpenVRML/Vrml97Parser.g

2002-10-18  Braden McDaniel  <braden@endoframe.com>

	Removed unnecessary inclusion of vrml97node.h.

	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/browser.h
	* src/openvrml/OpenVRML/script.h

	Replace Viewer::MatrixMultiply with Viewer::transform;
	Viewer::transform simply takes a VrmlMatrix instead of a
	float[4][4].

	* src/openvrml/OpenVRML/Viewer.h
	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/vrml97node.cpp
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.h

	* src/openvrml/OpenVRML/vrml97node.cpp: Fixed goofiness in
	TimeSensor::processSet_enabled. Route from a TimeSensor's isActive
	to its set_enabled was causing an infinite loop.

	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp: Source
	formatting changes.

	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp: More source
	formatting changes.

	#include cleanup.

	* src/lookat/lookat.cpp
	* src/openvrml/OpenVRML/Doc.h
	* src/openvrml/OpenVRML/Viewer.h
	* src/openvrml/OpenVRML/Vrml97Parser.cpp
	* src/openvrml/OpenVRML/Vrml97Parser.g
	* src/openvrml/OpenVRML/Vrml97Parser.hpp
	* src/openvrml/OpenVRML/Vrml97Frustum.cpp
	* src/openvrml/OpenVRML/VrmlMatrix.cpp
	* src/openvrml/OpenVRML/VrmlMatrix.h
	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/browser.h
	* src/openvrml/OpenVRML/bvolume.h
	* src/openvrml/OpenVRML/doc2.cpp
	* src/openvrml/OpenVRML/doc2.hpp
	* src/openvrml/OpenVRML/field.h
	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/node.h
	* src/openvrml/OpenVRML/scope.h
	* src/openvrml/OpenVRML/script.h
	* src/openvrml/OpenVRML/vrml97node.cpp
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp

	* src/openvrml/OpenVRML/script.cpp: Cleaned up error handler a
	bit.

2002-10-17  Braden McDaniel  <braden@endoframe.com>

	Use a modelview matrix stack instead of undoing transformations by
	multiplying by a transformation's inverse.

	* src/openvrml/OpenVRML/vrml97node.cpp
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.h

2002-10-16  Braden McDaniel  <braden@endoframe.com>

	* src/openvrml/OpenVRML/script.cpp: Use
	JS_ConstructObjectWithArguments when doing so.

	Refactored bound Fog node stack to FogClass.

	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/browser.h
	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/node.h
	* src/openvrml/OpenVRML/vrml97node.cpp
	* src/openvrml/OpenVRML/vrml97node.h

	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp: Source
	formatting changes.

2002-10-15  Braden McDaniel  <braden@endoframe.com>

	Allow Node::initialize to throw std::bad_alloc; initialize
	prototype objects of SF* classes in JavaScript; JavaScript
	SFNode::getProperty should return JS_TRUE if no eventOut is found
	so that the common handling code in SpiderMonkey can attempt to
	handle the property.

	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/node.h
	* src/openvrml/OpenVRML/script.cpp
	* src/openvrml/OpenVRML/script.h

	Removed dead code obsoleted by VrmlMatrix usage.

	* src/openvrml/OpenVRML/MathUtils.cpp
	* src/openvrml/OpenVRML/MathUtils.h
	* src/openvrml/OpenVRML/Viewer.h
	* src/openvrml/OpenVRML/vrml97node.cpp
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.h

2002-10-12  Braden McDaniel  <braden@endoframe.com>

	Refactored bound Background node stack to BackgroundClass; added
	render and initialize methods to NodeClass.

	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/browser.h
	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/node.h
	* src/openvrml/OpenVRML/vrml97node.cpp
	* src/openvrml/OpenVRML/vrml97node.h

2002-10-10  Thomas Flynn  <tflynn@users.sourceforge.net>

	Various JSAI bug fixes and add additional comments.

	* java/vrml/field/ConstMFColor.java
	* java/vrml/field/ConstMFInt32.java
	* java/vrml/field/ConstMFString.java
	* java/vrml/field/ConstMFVec2f.java
	* java/vrml/field/ConstMFVec3f.java
	* java/vrml/field/MFColor.java
	* java/vrml/field/MFFloat.java
	* java/vrml/field/MFInt32.java
	* java/vrml/field/MFNode.java
	* java/vrml/field/MFRotation.java
	* java/vrml/field/MFString.java
	* java/vrml/field/MFTime.java
	* java/vrml/field/MFVec2f.java
	* java/vrml/field/MFVec3f.java

	* models/TestJSAI.java: Add addtional tests for MFInt32 and
	MFString.

	* src/openvrml/OpenVRML/ScriptJDK.cpp: Start checking the results
	of calls to getFid and getFieldValue against 0 to better handle
	exceptions. Remove duplicated methods.  Fix numerous
	bugs. Implement Script::toString. Purge usage of memcpy. Add
	addional comments.

	Purge uses of memcpy in favor of std::copy.

	* src/openvrml/OpenVRML/Image.cpp
	* src/openvrml/OpenVRML/System.cpp

2002-10-09  Braden McDaniel  <braden@endoframe.com>

	* src/openvrml/OpenVRML/Doc.cpp: Fixed bug where relative URI
	paths were being corrupted in Doc::seturl.

	Removed unnecessary methods from Image.

	* src/openvrml/OpenVRML/Image.cpp
	* src/openvrml/OpenVRML/Image.h
	* src/openvrml/OpenVRML/vrml97node.cpp

	Made quat_to_axis const-correct; normalize axis vector.

	* src/openvrml/OpenVRML/MathUtils.cpp
	* src/openvrml/OpenVRML/MathUtils.h

2002-10-07  Braden McDaniel  <braden@endoframe.com>

	Changed Browser::render to take a Viewer & instead of a Viewer *.

	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/browser.h
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp

2002-09-30  Braden McDaniel  <braden@endoframe.com>

	Improved const-correctness of Viewer::setViewpoint.

	* src/openvrml/OpenVRML/Viewer.h
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.h

	Removed BVolume::dump and VrmlFrustum::dump.

	* src/openvrml/OpenVRML/VrmlFrustum.cpp
	* src/openvrml/OpenVRML/VrmlFrustum.h
	* src/openvrml/OpenVRML/bvolume.cpp
	* src/openvrml/OpenVRML/bvolume.h

	Removed private.h.

	* src/openvrml-gl/OpenVRML/GL/Makefile.am
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp
	* src/openvrml-gl/OpenVRML/GL/private.h

2002-09-29  Braden McDaniel  <braden@endoframe.com>

	Moved utility functions from OpenVRML::Viewer to
	OpenVRML::GL::ViewerOpenGL.

	* src/openvrml/OpenVRML/Viewer.cpp
	* src/openvrml/OpenVRML/Viewer.h
	* src/openvrml/OpenVRML/VrmlFrustum.cpp
	* src/openvrml/OpenVRML/common.h
	* src/openvrml/OpenVRML/private.h
	* src/openvrml/OpenVRML/vrml97node.cpp
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp
	* src/openvrml-gl/OpenVRML/GL/private.h

	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp: Corrected minor
	error in computeView.

	Corrected correction to minor error in computeView.

	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp
	* src/openvrml-gl/OpenVRML/GL/private.h

2002-09-27  Braden McDaniel  <braden@endoframe.com>

	Made intersection enumeration in BVolume a named type.

	* src/openvrml/OpenVRML/Viewer.cpp
	* src/openvrml/OpenVRML/Viewer.h
	* src/openvrml/OpenVRML/VrmlRenderContext.cpp
	* src/openvrml/OpenVRML/VrmlRenderContext.h
	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/bvolume.cpp
	* src/openvrml/OpenVRML/bvolume.h
	* src/openvrml/OpenVRML/vrml97node.cpp
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.h

	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp: Removed
	workaround for old bug in Mesa.

2002-09-27  S. K. Bose  <bose@pavan.barc.ernet.in>

	* ide-projects/Windows/VisualC6/winconfig.h: In MSVC project file,
	if macros are defined with values, it does not give the result as
	expected. Rename "winconfig.h" as "config.h" to define macros for
	MSVC project file. Inside the project file "HAVE_CONFIG_H" macro
	is defined.

2002-09-27  S. K. Bose  <bose@pavan.barc.ernet.in>

	Remove the directory regex. This library is under GPL whereas
	OpenVRML is under LGPL.

2002-09-26  S. K. Bose  <bose@pavan.barc.ernet.in>

	Create a directory under "lib" by name "regex" to put needed file
	(regex.c and regex.h) from regular expression library
	<http://ftp.gnu.org/pub/gnu/regex/regx-0.12.tar.gz>. These files
	are needed for MSVC build.

	Put Makefile.vc6 to build regex library using MSVC.

	* lib/regex/regex.h: Minor fixes for MSVC build to deal with
	"extern".

2002-09-25  Braden McDaniel  <braden@endoframe.com>

	Removed Node::toInline method.

	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/node.h
	* src/openvrml/OpenVRML/browser.cpp

	* src/openvrml/OpenVRML/field.cpp: Fixed const issue.

	* src/openvrml/OpenVRML/script.cpp: Eliminated <strstream>
	dependency; moved includes needed only by the JavaScript
	binding to the conditionally compiled section.

2002-09-23  S. K. Bose  <bose@pavan.barc.ernet.in>

	* src/openvrml/OpenVRML/field.cpp: VC++6.0 complains about
	reference to a zero-sized array at "typedef value_type &
	reference" within array_vector class definition. Though ArraySize
	is passed as an argument in template declaration.  To get rid of
	this spurious complain "enum {_ArraySize = ArraySize}" is
	declared.

	* src/openvrml/OpenVRML/field.cpp: reverse_iterator template
	definition in VC++6.0 does not take one argument and some
	other fixes for VC++6.0.

2002-09-23  Thomas Flynn  <tflynn@users.sourceforge.net>

	* src/openvrml/OpenVRML/ScriptJDK.cpp: Use std::copy instead of
	memcpy. Fix bugs in ConstSFNode::CreateObject,
	ConstMFRotation::CreateObject, ConstMFVec3f::CreateObject and
	MFVec3f::setValue. Additional documentation.

	* src/openvrml/OpenVRML/MathUtils.cpp: Removed unneeded include.

	* models/TestJSAI.java: Add tests of SFNode, ConstMFNode,
	ConstMFRotation, ConstMFTime, ConstMFVec2f and ConstMFVec3f.

	Update javadoc comments.

	* java/vrml/field/ConstMFFloat.java
	* java/vrml/field/ConstMFNode.java
	* java/vrml/field/ConstMFRotation.java
	* java/vrml/field/ConstMFTime.java

2002-09-21  Braden McDaniel  <braden@endoframe.com>

	* src/openvrml/OpenVRML/field.cpp: Fixes to MFNode::print to
	correctly print the last element, and to avoid printing null
	elements.

2002-09-16  Braden McDaniel  <braden@endoframe.com>

	Removed Group::setChildren, Group::addChildren, and
	Group::removeChildren; moved this functionality to the
	Group::process* methods.

	* src/openvrml/OpenVRML/vrml97node.cpp
	* src/openvrml/OpenVRML/vrml97node.h

2002-09-13  Braden McDaniel  <braden@endoframe.com>

	Fixed a bug in Node::resetVisitedFlag that would cause a crash for
	several node types. Added nothrow exception spec to the method.

	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/node.h

	* src/openvrml/OpenVRML/browser.cpp: Added some exception
	specifications.

	Removed deprecated method Node::inverseTransform(Viewer *).

	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/node.h
	* src/openvrml/OpenVRML/vrml97node.cpp
	* src/openvrml/OpenVRML/vrml97node.h

	* src/openvrml/OpenVRML/vrml97node.cpp: Removed some #if 0'd
	cruft.

2002-09-10  Thomas Flynn  <tflynn@users.sourceforge.net>

	* doc/conformance.html: Retest Anchor, Inline and most of PROTO.

	* src/openvrml/OpenVRML/ScriptJDK.cpp: Fix bug in
	MFInt32::getValue.  Add additional documentation.

	* models/TestJSAI.java: Add tests of MFColor and MFFloat fields.

	* java/vrml/field/MFColor.java: Update javadoc comments.

2002-09-09  Braden McDaniel  <braden@endoframe.com>

	Removed Node::getChildren. This method seemed prone to
	misunderstanding, and thus created more problems than it solved.
	Since it was just a convenience method, anyone who really needs
	this functionality can implement it as a nonmember.

	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/node.h

2002-09-08  Braden McDaniel  <braden@endoframe.com>

	* src/openvrml/OpenVRML/browser.cpp: Should now correctly handle
	fields in PROTOs that aren't IS'd to anything in the
	implementation.

2002-09-07  Braden McDaniel  <braden@endoframe.com>

	Removed code in Browser::sensitiveEvent to print the URI when the
	pointer is over the Anchor. We need to call
	Browser::setDescription, but inside the implementation of Anchor.
	Removed Anchor::getDescription and Anchor::getUrl. Modified
	Scene::loadURI to do nothing if the MFString uri argument is
	empty.

	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/vrml97node.cpp

2002-09-07  Thomas Flynn  <tflynn@users.sourceforge.net>

	* src/openvrml/OpenVRML/ScriptJDK.cpp: Additional documentation.
	Fix ConstMFColor/MFColor CreateObject methods. Fix issues with
	retrieving and setting eventOut fields. Workaround for
	BaseNode::getBrowser problems.

	Temporary workaround for getBrowser problems.

	* java/vrml/node/Script.java
	* java/vrml/BaseNode.java

	* java/vrml/ConstMFInt32.java: Update javadoc comments.

	* models/TestJSAI.java: Add additional tests of JSAI functionality.

2002-09-06  Braden McDaniel  <braden@endoframe.com>

	* src/openvrml/OpenVRML/field.cpp: Fixed size increment in
	array_vector<>::insert.

	Made Node::initialize recursive, so it no longer needs to be used
	with a NodeVisitor.

	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/node.cpp

	* src/openvrml/OpenVRML/browser.cpp: Set default [exposed]field
	values for PROTO instances. We still need some additional magic to
	handle field values that aren't IS'd to anything in the
	implementation.

2002-08-31  Braden McDaniel  <braden@endoframe.com>

	* src/openvrml/OpenVRML/nodeptr.cpp: Fixed bug in NodePtr::reset
	when 0 is passed as the argument.

2002-08-29  Thomas Flynn  <tflynn@users.sourceforge.net>

	Update javadoc comments.

	* java/vrml/BaseNode.java
	* java/vrml/MField.java
	* java/vrml/field/ConstMFColor.java
	* java/vrml/field/ConstMFFloat.java
	* java/vrml/field/ConstSFImage.java
	* java/vrml/field/ConstSFVec2f.java
	* java/vrml/field/ConstSFVec3f.java
	* java/vrml/field/SFImage.java
	* java/vrml/field/SFString.java
	* java/vrml/field/SFVec2f.java
	* java/vrml/field/SFVec3f.java

2002-08-28  Braden McDaniel  <braden@endoframe.com>

	Doc-comment fixes and code beautification.

	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/browser.h
	* src/openvrml/OpenVRML/field.cpp
	* src/openvrml/OpenVRML/field.h
	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/vrml97node.cpp

	* src/openvrml/OpenVRML/browser.cpp: More doc-comment additions.

	* src/openvrml/OpenVRML/browser.cpp: Fixed
	ProtoNode::getFieldImpl to return the default value for the field
	if it hasn't been IS'd to anything.

2002-08-27  Braden McDaniel  <braden@endoframe.com>

	Fixed Scene::loadURI to work for "#ViewpointName" syntax.

	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/browser.h

2002-08-26  Braden McDaniel  <braden@endoframe.com>

	* src/openvrml/OpenVRML/script.cpp: Fixed bug where assignments
	to elements of MF* objects in JavaScript didn't trigger an
	eventOut.

	* src/openvrml/OpenVRML/doc2.cpp: Fixed problem with
	Doc2::filename.

2002-08-25  Braden McDaniel  <braden@endoframe.com>

	Made operator== for NodeInterface inline; added doc-comment for
	operator!=.

	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/node.h

2002-08-24  Thomas Flynn  <tflynn@users.sf.net>

	Finish updating conformance test results.

2002-08-24  Braden McDaniel  <braden@endoframe.com>

	Implemented Browser::createVrmlFromStream.

	* src/openvrml/OpenVRML/browser.cpp
	* src/openvrml/OpenVRML/browser.h
	* src/openvrml/OpenVRML/script.cpp

	* src/openvrml/OpenVRML/browser.h: Oops.

2002-08-23  S. K. Bose  <bose@pavan.barc.ernet.in>

	* VrmlMatrix.cpp: If the matrix is singular then it
	prints debug message and returns instead of aborting.

	* private.h: Add macro to print debug messages.

2002-08-23  Braden McDaniel  <braden@endoframe.com>

	Modified FieldValue::clone to return an auto_ptr.

	* src/openvrml/OpenVRML/field.cpp
	* src/openvrml/OpenVRML/field.h
	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/script.cpp
	* src/openvrml/OpenVRML/ScriptJDK.cpp

	* src/openvrml/OpenVRML/script.cpp: Work around auto_ptr brain
	damage on gcc 2.96.

	* src/openvrml/OpenVRML/browser.cpp: Fixed InitVisitor to set
	the visited flag on root nodes.

2002-08-22  Braden McDaniel  <braden@endoframe.com>

	* src/openvrml/OpenVRML/ScriptJDK.cpp: Fixes to work with the
	changes to the MF* FieldValue interfaces; spotty improvements
	exception safety and Java exception propagation.

2002-08-20  Braden McDaniel  <braden@endoframe.com>

	General clean-up of FieldValue classes; print method now returns
	void.

	* src/openvrml/OpenVRML/field.cpp
	* src/openvrml/OpenVRML/field.h

	* README: Added note about Sun JDK problems under GNU/Linux.

2002-08-19  Braden McDaniel  <braden@endoframe.com>

	* src/openvrml/OpenVRML/browser.cpp: Fixed crash when calling
	Browser::loadURI.

	* src/openvrml/OpenVRML/field.cpp: Fixed const correctness
	issue in array_vector copy ctor.

	* src/openvrml/OpenVRML/browser.cpp: Fixed (?) Scene::loadURI;
	Anchor nodes should work now.

	* src/openvrml/OpenVRML/browser.cpp: Added code that should make
	createFileURL work on Win32.

2002-08-19  Thomas Flynn  <tflynn@users.sourceforge.net>

	* Continue upating conformance test results.

2002-08-18  Braden McDaniel  <braden@endoframe.com>

	Provide the resource URI to the parser in a parameter to the
	constructor.

	* src/openvrml/OpenVRML/Vrml97Parser.g
	* src/openvrml/OpenVRML/Vrml97Parser.cpp
	* src/openvrml/OpenVRML/Vrml97Parser.hpp
	* src/openvrml/OpenVRML/browser.cpp

2002-08-17  Braden McDaniel  <braden@endoframe.com>

	* src/openvrml/OpenVRML/browser.cpp: If the Scene's parent is 0,
	then a relative reference will simply be passed to the stream
	loader as-is.  This should accommodate references that refer to
	the local file system. (The reference must still parse as a URI,
	so DOS-style file system references won't work.)

	Modified implementation of the MF* types not to use a refcounted
	internal object.

	* src/openvrml/OpenVRML/Vrml97Parser.g
	* src/openvrml/OpenVRML/Vrml97Parser.cpp
	* src/openvrml/OpenVRML/field.h
	* src/openvrml/OpenVRML/field.cpp
	* src/openvrml/OpenVRML/vrml97node.h
	* src/openvrml/OpenVRML/vrml97node.cpp

2002-08-16  Braden McDaniel  <braden@endoframe.com>

	Apparently gcc 2.95.3 doesn't have basic_string<>::clear.

	* src/openvrml/OpenVRML/doc2.cpp
	* src/openvrml/OpenVRML/browser.cpp

2002-08-13  Braden McDaniel  <braden@endoframe.com>

	* lib/antlr/config.hpp, src/openvrml/OpenVRML/field.cpp: Fixes
	to build with Irix 6.5 CC.

2002-08-12  Braden McDaniel  <braden@endoframe.com>

	* src/openvrml/OpenVRML/field.cpp: Workarounds for a bug in
	gcc 3.1.

	BadURI exception destructor must not throw.

	* src/openvrml/OpenVRML/browser.h
	* src/openvrml/OpenVRML/browser.cpp

	* m4/gl.m4: Link against libm when checking for libGLU.

2002-08-04  Braden McDaniel  <braden@endoframe.com>

	Refactored VrmlScene into Browser and Scene; Node now contains a
	pointer to its associated Scene. Nodes are added to a Scene with
	Node::initialize.

2002-08-02  Thomas Flynn  <tflynn@users.sourceforge.net>

	Continue updating conformance test results.

2002-07-22  Thomas Flynn  <tflynn@users.sourceforge.net>

	Continue updating conformance test results.

2002-07-18  Thomas Flynn  <tflynn@users.sourceforge.net>

	Fix a number of problems in the JSAI code.

	Add additional javadoc comments to Java classes.

	Improve output format of SFImage::print.

	Update conformance test results.

2002-07-12  Braden McDaniel  <braden@endoframe.com>

	Removed Doc2 parameter from parser methods.  This parameter is
	unused now that we no longer use VrmlNamespace.

	* src/openvrml/OpenVRML/Vrml97Parser.g
	* src/openvrml/OpenVRML/Vrml97Parser.cpp
	* src/openvrml/OpenVRML/Vrml97Parser.hpp
	* src/openvrml/OpenVRML/VrmlScene.cpp

2002-07-11  Braden McDaniel  <braden@endoframe.com>

	* src/openvrml/OpenVRML/vrml97node.cpp:  Fixed several places
	in recalcBSphere methods where child nodes weren't checked for
	being NULL.

2002-07-10  Braden McDaniel  <braden@endoframe.com>

	Sun Forte compiler complains if callbacks passed to 'extern "C"'
	functions are not themselves 'extern "C"'.  Solution: provide
	'extern "C"' typedefs and cast to them.

	* src/lookat/ViewerGlut.cpp
	* src/lookat/lookat.cpp
	* src/openvrml/OpenVRML/Image.cpp
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp

2002-07-09  Braden McDaniel  <braden@endoframe.com>

	 Added a boolean parameter to NodeType::createNode to indicate
	whether the new node will be part of a prototype definition.
	If the node will be part of a prototype definition, it should
	not be adding itself to the scene.

	* src/openvrml/OpenVRML/VrmlScene.cpp:  For
	VrmlScene::add[node], made the absence of the node in the
	scene's node lists a precondition.

2002-07-08  Braden McDaniel  <braden@endoframe.com>

	* src/openvrml/OpenVRML/VrmlScene.cpp:  In the remove*Node
	methods, use find..erase rather than remove.  This should be
	more efficient; and it has the advantage of not producing a
	weird segfault.

2002-07-05  Braden McDaniel  <braden@endoframe.com>

	Replaced VrmlNamespace with Scope. Scopes are owned by Nodes,
	and refcounted using ScopePtr.

2002-07-04  Braden McDaniel  <braden@endoframe.com>

	* src/lookat/lookat.cpp:  Minor code cleanup.

2002-07-03  Braden McDaniel  <braden@endoframe.com>

	* src/lookat/lookat.cpp:  Code cleanup; delete the VrmlScene and
	Viewer atexit. (glut provides no mechanism for cleaning up
	resources when the window is closed.)

2002-07-01  Braden McDaniel  <braden@endoframe.com>

	Incremented version to 0.12.4.

	* configure.ac
	* README

	* m4/glut.m4:  Added "-lXmu" to libs needed by glut.

	* NEWS:  Updates for 0.12.4 release.

	* m4/gl.m4:  Fixed bug in libGL detection macro (missing comma).

2002-06-30  Braden McDaniel  <braden@endoframe.com>

	* src/openvrml/OpenVRML/doc2.cpp:  Use a reasonable value for
	the buffer size for z::filebuf.

	* NEWS:  Updates for 0.12.3 release.

2002-06-29  Braden McDaniel  <braden@endoframe.com>

	* README: Added documentation for --with-doxygen configure
	option.

2002-06-28  Braden McDaniel  <braden@endoframe.com>

	Fixes to build with gcc 2.95.3.

	* src/openvrml/OpenVRML/script.cpp
	* src/openvrml/OpenVRML/vrml97node.cpp

2002-06-25  Braden McDaniel  <braden@endoframe.com>

	* private.h: Fixes to OPENVRML_VERIFY_ macro.

	* ScriptJDK.cpp: Quelled some output about unimplemented
	functions. (Use Doxygen @todo instead.)

	* script.cpp: Utility methods to set up the JavaScript
	environment should throw std::bad_alloc on failure rather than
	return false.

2002-06-22  Braden McDaniel  <braden@endoframe.com>

	Fixes for compiling with Microsoft Visual C++ 6.0 sp5.

2002-06-22  Braden McDaniel  <braden@endoframe.com>

	Fixed a bunch of warnings and errors flagged by the Intel C++
	compiler.

	* src/openvrml/OpenVRML/VrmlMatrix.cpp:  Fixed errors
	dereferencing matrix values.

	Changed Vrml97Scanner to use a std::istream rather than an
	istream.

	* src/openvrml/OpenVRML/Vrml97Parser.g
	* src/openvrml/OpenVRML/Vrml97Parser.hpp
	* src/openvrml/OpenVRML/Vrml97Parser.cpp

2002-06-21  Braden McDaniel  <braden@endoframe.com>

	* doc/openvrml.css: Stylesheet fixes for consistency with Web
	site.

	Reverted 2002-06-19 change to ScriptNodeClass::createType
	exception specification.  This problem has apparently been
	addressed with a patch to Sun Forte update 2.

	* src/openvrml/OpenVRML/script.h
	* src/openvrml/OpenVRML/script.cpp

	OV_CHECK_GL should *not* depend on AM_PATH_XTRA; OV_CHECK_GLUT
	*should* depend on AM_PATH_XTRA.  Now, OV_CHECK_GLUT only adds X11
	libs and cflags to the GLUT_LIBS and GLUT_CFLAGS variables if X11
	is present and should be used.  But what about platforms where
	GLUT depends on platform-specific GUI libraries (Mac, Windows)?
	OV_CHECK_GLUT may need to get a good deal smarter; OTOH, we will
	eventually be eliminating the GLUT dependency altogether.

	* m4/gl.m4
	* m4/glut.m4

	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.cpp: checkError
	should take a const char *.

	Updated version to 0.12.3.

	* configure.ac
	* README

2002-06-20  Braden McDaniel  <braden@endoframe.com>

	* m4/gl.m4: AC_REQUIRE([AC_PATH_XTRA]) and add the X CFLAGS and
	LIBS to GL_CFLAGS and GL_LIBS.

	Add GL_CFLAGS and GL_LIBS to GLUT_CFLAGS and GLUT_LIBS, respectively.

	* m4/glut.m4
	* src/lookat/Makefile.am
	* src/openvrml-gl/OpenVRML/GL/Makefile.am

	* configure.ac: Don't require X.

	* m4/gl.m4: Nvidia's OpenGL links with pthreads.

	* m4/glut.m4: Fix macro documentation to reflect
	AC_SUBST([GLUT_CFLAGS]).

	Quell a bunch of warnings from gcc -Wall.

	* src/openvrml/OpenVRML/Viewer.cpp
	* src/openvrml/OpenVRML/VrmlScene.cpp
	* src/openvrml/OpenVRML/bvolume.cpp
	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/script.cpp
	* src/openvrml/OpenVRML/vrml97node.cpp

	* src/openvrml/OpenVRML/Makefile.am: Incremented libopenvrml
	library version to 2:2:0.

	* src/openvrml-gl/OpenVRML/GL/Makefile.am: Incremented
	libopenvrml-gl library version to 3:0:0.

	* NEWS: Updates for 0.12.2 release.

	* INSTALL: Removed build instructions for Windows (Visual C++)
	and Mac (CodeWarrior) since we are not presently distributing
	project files for those compilers.

2002-06-19  Braden McDaniel  <braden@endoframe.com>

	Incremented version number to 0.12.2.

	* README
	* configure.ac
	* src/openvrml/OpenVRML/ScriptJDK.cpp: Use const_cast to blow
	off const for JNI.
	* src/openvrml/OpenVRML/doc2.cpp: Use const_cast to blow off
	const in call to Doc2::stripProtocol in Doc2::filename.  This
	means a call to Doc2::filename can modify Doc2::url_ as a side
	effect.  This does not appear to be a desirable side effect;
	but it is consistent with Doc.  And since this code will be
	going away for 0.14, it's not worth spending a lot of time
	ensuring it's correct.
	* src/openvrml/OpenVRML/Image.cpp: const-correctness fix in
	imageFileType.
	* src/openvrml/OpenVRML/Image.cpp: Don't use METHODDEF macro
	for my_error_exit (libjpeg error handler).  The macro just
	expands to make the function "static", which is deprecated
	(and unnecessary since the function is in an anonymous
	namespace).
	* src/openvrml/OpenVRML/field.h: Provide typedefs for return
	values of methods that return array references. This circumvents a
	bug in Sun Forte 6 update 2.
	* src/openvrml/OpenVRML/field.cpp
	* src/openvrml/OpenVRML/script.h: Changed exception specification
	for ScriptNodeClass::createType from nothrow to match the
	exception specification for NodeClass::createType.  This
	circumvents a bug in Sun Forte 6 update 2.
	* src/openvrml/OpenVRML/script.cpp Avoid converting from
	array references to pointers when we don't need to.  Sun
	Forte 6 update 2 is iffy on some conversions.
	* src/openvrml/OpenVRML/bvolume.cpp: Avoid converting from
	array references to pointers when we don't need to.  Sun
	Forte 6 update 2 is iffy on some conversions.
	* src/openvrml/OpenVRML/vrml97node.h: Avoid converting from
	array references to pointers when we don't need to.  Sun
	Forte 6 update 2 is iffy on some conversions.
	* src/openvrml-gl/OpenVRML/GL/ViewerOpenGL.h: enum
	ViewerOpenGL::LightType needs to be public.
	* src/openvrml/OpenVRML/VrmlScene.cpp: In
	ProtoNode::processEventImpl, non-const map<>equal_range returns a
	std::pair of iterators, not const_iterators.

2002-06-17  Braden McDaniel  <braden@endoframe.com>

	Incremented version number to 0.13.0.

	* README
	* configure.ac

	#include <stddef.h>.

	* src/openvrml/OpenVRML/private.h
	* src/openvrml/OpenVRML/VrmlMatrix.h

	Removed vestigal '#include "proto.h"'.

	* src/openvrml/OpenVRML/Vrml97Parser.g
	* src/openvrml/OpenVRML/Vrml97Parser.cpp
	* src/openvrml/OpenVRML/VrmlNamespace.cpp
	* src/openvrml/OpenVRML/node.cpp
	* src/openvrml/OpenVRML/vrml97node.cpp

	* doc/openvrml.css: Changes for consistency with Web site.

2002-06-16  Braden McDaniel  <braden@endoframe.com>

	Removed "conformance.html" from the distribution.  It needs
	updating.

	* README
	* doc/Makefile.am

	* README: Fixed documentation of GLUT options; added
	documentation for zlib options; removed "Required libraries"
	section (there are no more required libraries).

2002-06-15  Braden McDaniel  <braden@endoframe.com>

	Updated libopenvrml library version to 2:0:0.

	Updated libopenvrml-gl library version to 2:0:0.

2002-06-14  Braden McDaniel  <braden@endoframe.com>

	Require Automake 1.6.2.

2002-06-13  Braden McDaniel  <braden@endoframe.com>

	Various build fixes to support conditional compilation of Java
	support and the GL renderer.

2002-06-09  Braden McDaniel  <braden@endoframe.com>

	* src/openvrml/OpenVRML/VrmlScene.cpp: Marked doc-comments for
	ProtoNode, ProtoNode::ImplNodeInterface, and ProtoNodeClass
	"internal".

2002-06-08  Braden McDaniel  <braden@endoframe.com>

	Some Doxygen love for Viewer.

	Made Viewer::scene public and eliminated accessor method.

2002-06-07  Braden McDaniel  <braden@endoframe.com>

	Doxygen love and minor cruft removal for Doc and Doc2.

	* src/openvrml/OpenVRML/VrmlScene.cpp: MS Visual C++ doesn't
	like "friend" inline in the class definition; changed for
	ProtoNode::ProtoNodeType.

	Mark ProtoNode::ProtoNodeType "internal" for Doxygen.

	* src/openvrml/OpenVRML/node.cpp: Sync'd Doxygen comments with
	code.

2002-06-06  Braden McDaniel  <braden@endoframe.com>

	* src/openvrml/OpenVRML/script.cpp: Fixed segfault introduced
	with JS_AddRoot cleanup.

	Removed --disable-debug option from configure. Add -DNDEBUG to
	CPPFLAGS instead.

2002-06-05  Braden McDaniel  <braden@endoframe.com>

	Doxygen love for VrmlScene.

	Made scene callback IDs enumerants instead of ints.

	* src/openvrml/OpenVRML/script.h: Made ScriptNode::ScriptNodeType
	a friend of ScriptNode.

	* configure.ac: Removed obsolete AC_DEFINEs:
	OPENVRML_MAJOR_VERSION, OPENVRML_MINOR_VERSION,
	OPENVRML_MICRO_VERSION.

	Moved ProtoNode, ProtoNodeClass definitions and implementation
	to VrmlScene.cpp.

	Require Autoconf 2.53.

	Tweaked SpiderMonkey detection macro to work with
	Mozilla 1.0.0.

	* src/openvrml/OpenVRML/script.cpp: Removed vestigal debug
	output from ScriptNode::setEventOut.
	* src/openvrml/OpenVRML/Doc.cpp: std:: correctness fixes.
	* src/openvrml/OpenVRML/doc2.hpp: std:: correctness fixes.
	* src/openvrml/OpenVRML/VrmlScene.cpp: Removed OPENVRML_SCOPE
	from ProtoNode, ProtoNodeClass; these classes are no longer
	part of the public API.

2002-06-04  Braden McDaniel  <braden@endoframe.com>

	Made zlib an optional dependency.

2002-05-31  Braden McDaniel  <braden@endoframe.com>

	"make install" can now install Dogygen-generated documentation
	if the build is configured --with-doxygen (the default).

2002-05-30  Braden McDaniel  <braden@endoframe.com>

	Fixed usage of JS_AddRoot with the MF* types in the JavaScript
	binding.

2002-05-29  Braden McDaniel  <braden@endoframe.com>

	Don't install openvrml-gl.pc when building --without-gl.

2002-05-28  Braden McDaniel  <braden@endoframe.com>

	* src/openvrml/OpenVRML/proto.cpp: Doxygen comments - marked
	docs for ProtoNode::NodeCloneVisitor and
	ProtoNode::RouteCopyVisitor "internal".

	Moved Node::printFields logic to Node::print.

	Added operator== and operator!= for Node::Route; gave
	Node::addRoute and ::deleteRoute a little STL love.

2002-05-26  Braden McDaniel  <braden@endoframe.com>

	* src/openvrml/OpenVRML/node.cpp: Allocate the default BSphere
	statically.

2002-05-25  Braden McDaniel  <braden@endoframe.com>

	* src/openvrml/OpenVRML/script.cpp: Changed usage of
	JS_AddRoot/JS_RemoveRoot in the JavaScript binding.

	* src/openvrml/OpenVRML/script.cpp: Use JS_SetPrivate to set the
	private data pointer to 0 after deleting the object's private
	data.  (Per recommendation from <philm@codesmiths.com.au>, to
	quell warnings from memory leak checker.)

2002-05-22  Braden McDaniel  <braden@endoframe.com>

	Doxygen love.

	* src/openvrml/OpenVRML/vrml97node.cpp
	* src/openvrml/OpenVRML/VrmlMatrix.cpp

	* java/Makefile.am: Added the generated JNI headers to
	CLEANFILES.

	Made FieldValue::print private.

	* src/openvrml/OpenVRML/field.cpp
	* src/openvrml/OpenVRML/ScriptJDK.cpp

	* src/openvrml/OpenVRML/field.cpp: Added exception
	specifications to FieldValue classes and much Doxygen love.

	* Doxyfile.in: Set EXTRACT_PRIVATE, HIDE_UNDOC_MEMBERS, and
	HIDE_UNDOC_CLASSES to YES.

2002-05-20  Braden McDaniel  <braden@endoframe.com>

	Add optionally built directories to EXTRA_DIST.

	* Makefile.am
	* src/Makefile.am

	RPM spec file updates.

	* src/openvrml/OpenVRML/proto.h: Microsoft Visual C++ 6.0
	doesn't like friend declarations included with class
	definitions.

	Overload operator<< and operator>> on FieldValue::Type for
	stream I/O.

2002-05-19  Braden McDaniel  <braden@endoframe.com>

	Document --with-gl and --with-glut configure options in
	README.

	Fixed bug in the JavaScript binding where an incompatible
	conversion from a JavaScript value to an OpenVRML::FieldValue
	value was causing an assertion failure. We now report an error
	to stdout.

2002-05-17  Braden McDaniel  <braden@endoframe.com>

	Enable building without OpenGL and GLUT.

	Make NodeClass::scene a public member instead of using an
	accessor method.

2002-05-16  Braden McDaniel  <braden@endoframe.com>

	* ScriptJDK.cpp: Updates to compile against JDK 1.4.

	Eliminated downcast methods from the FieldValue classes.

	Previous changes to compile against JDK 1.4 also work for JDK 1.3,
	as long as JNI_Onload returns JNI_VERSION_1_2.

	Moved Route class to be a member class of Node.

	Microsoft Visual C++ 6.0 doesn't like aggregates with members of
	class type.

	Provide operator!= for OpenVRML::NodeInterface.

	Doxygen comments.

2002-05-14  Braden McDaniel  <braden@endoframe.com>

	Partial Inline node support.

	Generate JNI headers.

	* macros/gl.m4: Added "-pthread" to GL_LIBS.
	* src/openvrml/OpenVRML/Makefile.am: Removed duplicate listing of
	"nodetypeptr.cpp".

2002-05-12  Braden McDaniel  <braden@endoframe.com>

	Fixed problem rendering Color nodes.

2002-05-02  Braden McDaniel  <braden@endoframe.com>

	Fixed bug where exposedField eventOuts weren't getting found by
	the ProtoNode::addIS code.

2002-05-02  Braden McDaniel  <braden@endoframe.com>

	Events now propagate out of PROTOs.  ProtoNode now has an "update"
	method, and prototype instances are polled for posted events like
	time-dependent nodes, device sensors, and scripts.

2002-04-30  Braden McDaniel  <braden@endoframe.com>

	ScriptNodes weren't getting initialized; they are now.

	Initial implementation for propagating events out of prototype
	instances; doesn't seem to be working yet.

2002-04-29  Braden McDaniel  <braden@endoframe.com>

	Changed ViewerOpenGL::d_sensitiveObject to a Node* array from a
	void* array. Only nodes are ever getting put into the array, and
	there seem to be problems converting from a void* to a Node* now
	that Node is a virtual base.

2002-04-28  Braden McDaniel  <braden@endoframe.com>

	Various bug fixes for PROTO support.

	Fixed setup problem for Billboard nodes.

2002-04-28  Thomas Flynn  <tflynn@users.sourceforge.net>

	Get ScriptJDK compiling again.

	Update JSAI Test world and class.

	Use C++ style casts instead of C-style in ScriptJDK.

	Fix a couple of bugs with MF* construction in ScriptJDK.

2002-04-25  Braden McDaniel  <braden@endoframe.com>

	Made Nodes non-copyable.

2002-04-24  Braden McDaniel  <braden@endoframe.com>

	More bug fixes for PROTOs.  Closer, but not working yet.

	* proto.cpp: Factored field value cloning into a functor; added
	cast methods for nodes in Vrml97Node namespace; moved the helper
	classes for cloning to be private friends of ProtoNode; IS
	statements weren't getting duplicated as part of the node cloning
	process; they are now--PROTOs now work (for small values of
	"work").

2002-04-23  Braden McDaniel  <braden@endoframe.com>

	Initial (non-working) rearchitected PROTO implementation.

	Various fixes to PROTO implementation; still not working yet.

2002-04-14  Thomas Flynn  <tflynn@users.sourceforge.net>

	Add additional comments to java classes.

2002-03-22  Braden McDaniel  <braden@endoframe.com>

	Some Doxygen love.

2002-03-21  Braden McDaniel  <braden@endoframe.com>

	Removed redundant getDescription method on Viewpoint.

2002-03-19  Braden McDaniel  <braden@endoframe.com>

	Removed some debug output.

2002-03-18  Braden McDaniel  <braden@endoframe.com>

	Cast methods on Node do not throw exceptions.

	Made ScriptNodeType a private member of ScriptNode.

	Removed WorldInfo::getTitle (unused method).

2002-03-17  Braden McDaniel  <braden@endoframe.com>

	Node destructors cannot throw exceptions.

2002-03-16  Braden McDaniel  <braden@endoframe.com>

	The old architecture used Transform::setField to set the dirty bit
	for the cached transformation matrix.  Since there is no more
	setField method specific to Transform, just start with the dirty
	bit set.

2002-03-15  Braden McDaniel  <braden@endoframe.com>

	Was accidentally calling Vrml97NodeType<>::dispatchEventIn
	recursively instead of calling dispatchEvenInImpl.

2002-03-14  Braden McDaniel  <braden@endoframe.com>

	* node.cpp: Include <algorithm>.

	Disabled a bunch of code that allowed VrmlScene to load a new
	scene into itself.

2002-03-13  Braden McDaniel  <braden@endoframe.com>

	Finished VrmlScene::initScope implementation.

	Fixed bug in WorldInfo node type definition.

	Made urlModifier in Doc and Doc2 return 0 in the case of no
	fragment identifier. (This is apparently what other code was
	expecting.)

	Call the SemanticException constructor with the line number in
	Vrml97Parser::routeStatement.

	Corrected end iterator for TimeSensor NodeInterfaceSet in
	VrmlScene::initScope.

	Fixed interface id matching methods on NodeType.

2002-03-12  Braden McDaniel  <braden@endoframe.com>

	Fixed a bug where iterators weren't getting initialized in the
	createType methods.

2002-03-11  Braden McDaniel  <braden@endoframe.com>

	Finished implementing nodes.  (Yea!)

2002-03-09  Braden McDaniel  <braden@endoframe.com>

	Nodes through ImageTexture are now implemented.

	Changed TextureNode interface to return nComponents, width,
	height, nFrames, and pixels individually. Long term I'd like just
	to have an SFImage accessor in place of these; but right now this
	yields the fewest code changes.

2002-03-08  Braden McDaniel  <braden@endoframe.com>

	Don't throw InvalidValue when a field value doesn't meet
	requirements established in the spec.  The checking takes too long
	and would kill performance.

	Nodes through Extrusion are implemented now.  We now compile and
	link since the createType methods of the remaining NodeClasses are
	implemented but empty.

2002-03-07  Braden McDaniel  <braden@endoframe.com>

	Use experimental URNs.

2002-03-03  Braden McDaniel  <braden@endoframe.com>

	* MathUtils.h: Changed Vset, Vscale, Vdot macros to inline
	functions.
	* MathUtils.h: Made Vlength const-correct.
	* Doxyfile.in: various tweaks.

	Initial rearchitecture checkin. Much breakage.

2002-03-02  Braden McDaniel  <braden@endoframe.com>

	More doxygen love.

	Changed some constants to lower-case in "private.h".

2002-02-25  S. K. Bose  <bose@pavan.barc.ernet.in>

	Put back "const float (&get() const)[4][4]" in VrmlMatrix as
	VC++6.0 gives error by using operator[].

	Put static_cast in assisgnWithSelfRefCheck method in script.cpp.

	Fix to handle null CLASSPATH env. variable in ScriptJDK.cpp

2002-02-21  Braden McDaniel  <braden@endoframe.com>

	* VrmlMatrix.h: Contructor that takes float args doesn't need to
	be explicit; removed set, get methods--use operator[] and
	std::copy instead; doc-comment improvements; don't check if matrix
	is identity before performing multiplication in multRight and
	multLeft; use std::equal to implement operator==; more doc-comment
	improvements.
	* ScriptJDK.cpp: Moved VrmlEvent to an unnamed namespace.
	* AUTHORS: Added Frederic Devernay as a contributor.  Updated
	Gerall Kahla's e-mail address.
	* THANKS: openvrml.org is now hosted by SourceForge; reflect
	name change VA Linux -> VA Software.

2002-02-19  Braden McDaniel  <braden@endoframe.com>

	* VrmlMatrix.h: Use std::copy instead of memcpy; improved doc-
	comments; made construction from 4x4 array explicit; removed
	automatic conversion to float*--use operator[] for this instead;
	removed assignment operator definitions--just use the compiler-
	defined operator=; removed VrmlMatrix::makeIdentity--just assign
	to a default VrmlMatrix instead; include <assert.h>.

2002-02-13  Braden McDaniel  <braden@endoframe.com>

	* doc/Makefile.am: Updated for Autoconf 2.52; added openvrml.css
	to the distribution.

	Fixed cases where the parser was returning a funky line number:
	use the "antlr::SemanicException" constructor that takes a line
	number argument.

	Fixed crash in parser when an invalid field value was
	encountered.

2002-02-11  Braden McDaniel  <braden@endoframe.com>

	Corrected incorrect application of patch from Frederic
	Devernay <Frederic.Devernay@sophia.inria.fr>.  Fixed pkg-config
	metafiles.

	Put operators in OpenVRML namespace.
	From Frederic Devernay <Frederic.Devernay@sophia.inria.fr>.

2002-02-09  Braden McDaniel  <braden@endoframe.com>

	"FieldValue::assign" can throw "std::bad_alloc", too.

	* Doxyfile.in: Fixed package name and version; don't show "used
	files" in the output.

	Doxygen stylesheet changes.

2002-02-08  Braden McDaniel  <braden@endoframe.com>

	* configure.ac: AC_PREREQ should be first.  Fixed version.
	From Frederic Devernay <Frederic.Devernay@sophia.inria.fr>.

	Fixed pkg-config compliance.
	From Frederic Devernay <Frederic.Devernay@sophia.inria.fr>.

	* openvrml.pc
	* openvrml-gl.pc

	* macros/gtkgl.m4:  Fixed OV_CHECK_GL macro name.
	From Frederic Devernay <Frederic.Devernay@sophia.inria.fr>.

	Fixed non-installation of java files.
	From Frederic Devernay <Frederic.Devernay@sophia.inria.fr>.

	* openvrml-core/java/vrml/Makefile.am
	* openvrml-core/java/vrml/field/Makefile.am
	* openvrml-core/java/vrml/node/Makefile.am

2002-02-07  Braden McDaniel  <braden@endoframe.com>

	Added a stylesheet for the Doxygen-generated docs.

2002-02-04  Braden McDaniel  <braden@endoframe.com>

	Quell some Doxygen warningspew.

2002-02-03  Thomas Flynn  <tflynn@users.sourceforge.net>

	Fix bug 465024 dealing with MovieTexture nodes.

	Add some more Javadoc comments.

	Handle null CLASSPATH env. variable.

	Fix bugs in JSAI MFString and MFColor creation.

2002-02-01  Braden McDaniel  <braden@endoframe.com>

	Refactored code to check for self-references when assigning to
	fields of a Script node into methods on "ScriptNode".

	Made "assignWithSelfRefCheck" methods on "ScriptNode" private.

	Modified JavaScript binding code to use "ScriptNode::setField"
	(and thus "assignWithSelfRefCheck") when setting fields of the
	Script node.

2002-01-31  Braden McDaniel  <braden@endoframe.com>

	Minor fix to JDK/JNI autoconf macro: just check for the "client"
	libjvm, not "classic".

	Provide meta-data files for pkg-config instead of providing our
	own dodgy autoconf macros. Client apps should use the pkg-config
	autoconf macro PKG_CHECK_MODULES to check for the
	presence/location of OpenVRML.

	Updated AC_INIT usage for autoconf 2.52.

	Require automake 1.5.  (Do it right this time.)

	Autoconf insists that AC_INIT be the very first thing.

	Added virtual "assign" method on FieldValue.

2002-01-28  S. K. Bose  <bose@pavan.barc.ernet.in>

	In "NodeLOD", accumulated modelview matrix within rendercontext is
	used to find the viewer position in local coordinate system.

	Fixed the "step" method in ViewerOpenGL to take care the "Z"
	values.

	"getPosition" method is removed from ViewerOpenGL.  This is
	no longer needed.

2002-01-25  Thomas Flynn <tflynn@users.sourceforge.net>

	Update OpenVRML autoconf macros to use namespaces.

2002-01-22  Braden McDaniel  <braden@endoframe.com>

	Fixed "ScriptJDK.cpp" to account for identifier changes to
	FieldValue::Type.

	Fixed some errors introduced through unduly aggressive use of
	"find & replace".

2002-01-22  S. K. Bose  <bose@pavan.barc.ernet.in>

	Implement three more methods (det3, det4 and getTransform) in
	VrmlMatrix.

	In ProximitySensor, getPosition and getOrientation are replaced by
	getTransform method of VrmlMatrix to find out position and
	orientation of Viewer w.r.t local coordinate system.  Fix the bug
	#466786.  Thanks to Javier Taibo
	<http://sourceforge.net/mailarchive/forum.php?thread_id=394826&forum_id=7147>
	for pointing it.

	getOrientation method is removed from ViewerOpenGL.  This is
	no longer needed.

	"build_quaternion" is shifted from MathUtils to VrmlMatrix.

2002-01-20  Braden McDaniel  <braden@endoframe.com>

	Updated documentation for configure options in README.

	Changed FieldValue::FieldType to FieldValue::Type.

	Changed FieldValue::Type enumerants to use interCaps rather
	than UPPER_CASE.

2002-01-14  S. K. Bose  <bose@pavan.barc.ernet.in>

	Implement CylinderSensor's activation method.

2002-01-14  Thomas Flynn <tflynn@users.sourceforge.net>

	Fix bug in java Makefile.

	Fix bugs in ConstSFString constructor of ScriptJDK.

	Add additional tests to TestJSAI.java

2002-01-04  S. K. Bose  <bose@pavan.barc.ernet.in>

	Apply fixes for bugs #492363, #494210 and #498903.

2001-12-13  S. K. Bose  <bose@pavan.barc.ernet.in>

	Remove java.library.path option while creating JavaVM under
	windows.  This will allow its own way to search openvrml.dll. For
	loading libraries, JDK uses same rule as windows.

	Put back d_activationMatrix in PlaneSensor node to cache inverse
	transform above PlaneSensor.  This removes jittery response from
	rotation_toy.wrl.

2001-12-12  S. K. Bose  <bose@pavan.barc.ernet.in>

	Checkin Makefiles to add Java support classes under Windows.

	Update *.dsp and Makefiles to add java support.

2001-12-10  Thomas Flynn  <tflynn@users.sourceforge.net>

	Checkin patch 488262 to fix(?) relative URL issues with Inline
	nodes.  Fixes bug 225694.

	Update JSAI test world and class to test more classes/methods.

	Various updates/fixes to ScriptJDK.

2001-11-27  S. K. Bose  <bose@pavan.barc.ernet.in>

	Fix compile problem with ScriptJDK.cpp and script.cpp for WIN32
	port.

	Update *.dsp, *.dsw and Makefiles for windows to incorporate
	recent changes in OpenVRML.

2001-11-26  Thomas Flynn  <tflynn@users.sourceforge.net>

	Commit patch 485502 that fixes a problem with events being sent at
	incorrect times.

	Update ScriptJDK.cpp to include nodeptr.h instead of
	VrmlNodePtr.h.

	Add flags to Field.java to indicate if the value is an eventIn,
	eventOut or exposedField.

	Reimplement Script_getEventIn, Script_getEventOut and
	Script_getField in ScriptJDK.cpp

	Checkin test world and class for JSAI functionality.

2001-11-25  Braden McDaniel  <braden@endoframe.com>

	Moved NodeVisitor implementation to "node.h" and "node.cpp".

	Fixed some dynamic_casts in the JavaScript binding left over from
	the renaming.

	Removed matrix operations from "MathUtils.[h,cpp]".  (Use
	VrmlMatrix instead.)

	Moved ScriptNode implementation into "script.[h,cpp]".

	Moved Visual C++ pragma from "script.cpp" to "winconfig.h".

	Moved ProtoNode implementation to "proto.[h,cpp]".

	Moved NodePtr implementation to "nodeptr.[h,cpp]".

2001-11-24  Braden McDaniel  <braden@endoframe.com>

	Placed libopenvrml members in OpenVRML namespace.  Placed
	libopenvrml-gl members in OpenVRML::GL namespace.

	Consolidated bounding volume classes in "bvolume.h" and
	"bvolume.cpp".

	Consolidated Node and NodeType in "node.h" and "node.cpp".

2001-11-24  Thomas Flynn <tflynn@users.sourceforge.net>

	Fix bug in ScriptJDK initialize call introduced with recent
	changes to scripting interface.

2001-11-19  Braden McDaniel  <braden@endoframe.com>

	Replace ScriptObject with Script.  Script has methods that more
	directly reflect the functionality expected of scripts.

2001-11-18  Thomas Flynn <tflynn@users.sourceforge.net>

	Add JSAI classes to Doxygen list.

	Read exception classes to script.jar for JSAI.

	Add additional javadoc comments to java files.

	Implement 13 more methods in ScriptJDK. Only 8 left!

2001-11-11  Braden McDaniel  <braden@endoframe.com>

	Move doc-comments to implementation files for VrmlBVolume,
	VrmlAABox, and VrmlBSphere.

	Use dynamic_cast instead of VrmlBVolume::toBSphere() and
	VrmlBVolume::toAABox().

2001-11-05  Thomas Flynn <tflynn@users.sourceforge.net>

	Implement 6 more methods in ScriptJDK.cpp.

	Attempt to conform to coding standard for line length.

2001-11-01  Braden McDaniel  <braden@endoframe.com>

	Some minor improvements to VrmlNodePtr.

	Use VrmlNode* instead of VrmlNodePtr to store references to named
	nodes in VrmlNamespace.  This avoids a circular reference (and
	should fix that annoying crash on exit).

2001-10-30  S. K. Bose  <bose@pavan.barc.ernet.in>

	Improve Navigation in "Examine Mode". Navigation speed is taken
	care.

2001-10-27  Braden McDaniel  <braden@endoframe.com>

	Give up on trying to predict where the SpiderMonkey headers live.
	Users should supply this in CPPFLAGS when running configure.

	In VrmlNodePtr constructor: assert that the value returned in the
	insertion result matches the argument VrmlNode *.

	Clean up VrmlNodePtr::dispose().

	Fixed crash on exit in VrmlNodePtr::dispose().

	Using erase() instead of remove() for the node lists in VrmlScene
	is more efficient and avoids a crash on exit.

2001-10-17  S. K. Bose  <bose@pavan.barc.ernet.in>

	Fixes for bug #213579. Problem on invariant background under all
	viewpoint transformations.

2001-10-17  Braden McDaniel  <braden@endoframe.com>

	Use variables resolved by configure to tell Java where .class
	files and libraries are installed.

	Fixed memory leak involving inappropriate use of freeze() with
	ostrstream in "ScriptJDK.cpp".

	Java .class files are nolonger installed by "make install".

	JNI headers are nolonger generated.  (They aren't strictly
	required, and automake 1.5 has problems with generated sources
	that should be neither installed nor included in the
	distribution.)

	Added checks for "javac" and "jar" to configure.

	Changed "--with-jni" option to "--with-jdk".

	Don't attempt to compile Java classes for "--without-jdk".

2001-10-15  S. K. Bose  <bose@pavan.barc.ernet.in>

	Add accumulateTransform after adding all nodes to Scene in
	"VrmlScene" to cache a pointer to ParentTransform.  It is needed
	to calculate the inverse of transformation stack above Viewpoint
	node before rendering traversal starts.

	Fix for Bug #226213 : Nested Viewpoint problem.

2001-10-15  S. K. Bose  <bose@pavan.barc.ernet.in>

	Change method names in VrmlMatrix as ECMAScript VrmlMatrix
	definition.

	Incorporated changes as suggested by Braden (Thanks to Braden)

	As defined in ECMAScript definition, remove "transform_to_matrix"
	method from VrmlNodeTransform node and put it in VrmlMatrix as
	"setTransform" method.

2001-10-15  Thomas Flynn <tflynn@users.sourceforge.net>

	Implemented Task 24920 (Use a standard container for routes).

	Fix core dumping problem with AudioClips.

	Backout of earlier, incorrect fix to Material node handling.

2001-10-12  Braden McDaniel  <braden@endoframe.com>

	Replaced "configure.in" with "configure.ac". We now require
	autoconf 2.52 for generating "configure". The file "acconfig.h"
	(that was previously used to generate "config.h") is now obsolete.

	Modifications to autoconf macros to reflect autoconf 2.52
	conventions.

	The autoconf macro to find the JNI headers/libraries now uses
	$JAVA_HOME, and should reliably detect the Sun JDK on Linux.
	Additional work will need to be done to cover other JDKs and
	platforms.

	Use preprocessor definitions determined by "configure" for
	including the SpiderMonkey header.  This addresses the problem
	where Mozilla headers may occur in "${includedir}" or
	"${includedir}/mozilla".

	Use preprocessor definitions determined by "configure" for
	including the OpenGL/GLUT headers. Most platforms put these
	headers in `${includedir}/GL'; but Mac OS X puts them in
	"${includedir}/OpenGL" and "${includedir}/GLUT".

2001-10-12  Braden McDaniel  <braden@endoframe.com>

	A bit of finesse to get the ANTLR parser in an anonymous namespace
	in the VrmlScene implementation.

	Put contents of the private headers in private namespaces:
	OpenVRML_ for libopenvrml and OpenVRML::GL_ for libopenvrml-gl.

	Use our own constants for multiples of pi insteading depending on
	M_PI, etc. (which are non-standard).

2001-10-11  Braden McDaniel  <braden@endoframe.com>

	Propagate events resulting from eventsProcessed().

2001-10-09 Thomas Flynn <tflynn@users.sourceforge.net>

	Checkin fix for bug 210073.

2001-10-07  Braden McDaniel  <braden@endoframe.com>

	Fixed a bug in SFVec3f construction in JavaScript.

2001-10-05 Thomas Flynn <tflynn@users.sourceforge.net>

	Add java exception classes as specified in spec.

	Add javadoc comments to some classes.

	Update all java classes to match spec.  (Throw exceptions as
	needed, add toString to subclasses, implement Cloneable where
	required.)

	Add clone method to VrmlEvent.h.

	Major updates to ScriptJDK.cpp. Add event propagation of eventOut
	fields (except for SFNode and MFNode).  Implement most toString
	methods. Add any missing methods found in javah output.  Other
	misc. changes.

2001-10-04 S. K. Bose  <bose@pavan.barc.ernet.in>

	A New Class VrmlMatrix is implemented.  Here the format is same as
	OpenGL standard.  So this matrix can be used transparently as
	OpenGL matrix.

	All matrix operations in core (some in gl) are replaced by objects
	of this class.

	In "Transformation node" set and unsetTransform are replaced by
	its own calculated transformation matrix for improving
	performance.

	In "Billboard node", the transformation matrix is calculated in
	core by using modelview matrix accumulated during render
	traversal.  So this transformation matrix is also accumulated in
	modelview matrix.

	For calculating local coord. from world coord. in sensor nodes
	(PlaneSensor, CylinderSensor and SphereSensor) during activation,
	the accumulated transformation matrix is used.  Though by this
	"DEF/USE" problem is not solved unless someday "Ray based picking"
	is implemented.

	Fix for bug #230460.

2001-09-27 Thomas Flynn <tflynn@users.sourceforge.net>

	Update VrmlNodeScript::addToScene to use std::string instead of
	char*.

	Cleanups to VrmlNodeScript.cpp from Henri Manson.

2001-09-20  S. K. Bose  <bose@pavan.barc.ernet.in>

	If all "iostreams" are converted to standard "iostreams"
	template classes (STL) that manipulate standard streams, then
	it gives error in constructor of "ifstream" class (doc2.cpp)
	"no appropriate default constructor available" (Is this
	problem with VC6++ STL ?). To get rid of this, "c_str()" of
	std::string is used where this string is directed to iostreams.

	Fix other compile problems for WIN32 port.

	Include "ScriptJDK" into the WIN32 build.
	From Henri Manson (patch #446396)

2001-09-16 Thomas Flynn <tflynn@users.sourceforge.net>

	Add missing class (Event.java) into the build.

2001-09-12 Thomas Flynn <tflynn@users.sourceforge.net>

	Add getFieldType to field.h/.cpp.
	From Henri Manson

	Implement insert/remove element methods in VrmlMFString
	and VrmlMFNode.

	Fix compile problem with VrmlEvent.h

	Add java support classes to the build.

	Add macro to enable/disable java in the script node support.

	Update makefiles to add java include and library paths.

	Update configure.in to check for java support.

	General updates/fixes for ScriptJDK.cpp

2001-09-08 Thomas Flynn <tflynn@users.sourceforge.net>

	Support for Java in the Script node.
	From Henri Manson (patch #446376)

2001-09-06  Braden McDaniel  <braden@endoframe.com>

	Implement getChildren() for VrmlNodeProto.
	From Luca Regini <lucaregini@libero.it>

2001-09-04  S. K. Bose  <bose@pavan.barc.ernet.in>

	Fixed Navigation problems in "Examine Mode", as it was
	mentioned in
	<http://groups.yahoo.com/group/libvrml97/message/1451>.

	Fixed some issues for bug #447971 (Navigation problems)

	Fix for bug #213579 (Backgrounds appear to move)

	Fix for bug #213970 (Headlight doesn't follow Viewpoint)

	Fix for shininess component in Material node.

	Fix for getOrientation(). In some cases it was failing.

2001-08-31  Braden McDaniel  <braden@endoframe.com>

	Removed VrmlNode::toProto() method; use dynamic_cast instead.

2001-08-30  Thomas Flynn <tflynn@users.sourceforge.net>

	Add insert/remove Element methods to all VrmlMF* types.

2001-08-25  Thomas Flynn <tflynn@users.sourceforge.net>

	Add licensing information to java support files.

2001-08-23  Braden McDaniel  <braden@endoframe.com>

	Some minor cleanup of VrmlScene.

	Changed name of "VrmlNodeType" class to "NodeType".

	Use a refcounting smart pointer for NodeTypes.

	Changed NodeType::getName() to ::getId().

2001-08-22  Thomas Flynn <tflynn@users.sourceforge.net>

	Fixed typo in README.

	Add ScriptJDK back into the build.

	Use OPENVRML_HAVE_JAVA instead of HAVE_JDK.

	Update ScriptJDK code to use std::string.

2001-08-22  Braden McDaniel  <braden@endoframe.com>

	Fixed crash in VrmlScene::readPROTO().

	Fixed event value propagation problem in VrmlNode::eventIn()
	(introduced in transition to std::string).

2001-08-19  Braden McDaniel  <braden@endoframe.com>

	Added getChildren() method to VrmlNode; implemented this for
	everything except VrmlNodeProto.

	Changed VrmlNode::setName() and ::getName() to setId() and
	getId().

2001-08-16  Braden McDaniel  <braden@endoframe.com>

	Changed reinterpret_casts in the JavaScript binding to
	static_casts.

2001-08-13  Braden McDaniel  <braden@endoframe.com>

	Changed most uses of char * to std::string.

2001-08-09  Braden McDaniel  <braden@endoframe.com>

	Changed JavaScript binding to use a wrapper class to track meta-
	data about values corresponding to Script node fields/eventOuts,
	rather than storing this data as properties on the JavaScript
	objects.

	Minor const-correctness changed to ScriptObject::activate().

	Changed VrmlMFNode implementation to use std::vector<>.

2001-08-08  Braden McDaniel  <braden@endoframe.com>

	VrmlScene now stores the root nodes as a VrmlMFNode rather than a
	Group node.

2001-08-06 Thomas Flynn <tflynn@users.sourceforge.net>

	Initial checkin for Java in the Script node support.
	From  Henri Manson

2001-08-04  Braden McDaniel  <braden@endoframe.com>

	Fixed minor bug in MFInt32::setElement() in the JavaScript
	binding.

2001-07-30  Braden McDaniel  <braden@endoframe.com>

	Removed obsolete #undef's in "acconfig.h".

	Added private macro for outputting exception messages in debug
	mode.

	Changed Viewer's constructor to take a VrmlScene reference
	rather than a pointer.

2001-07-24  Braden McDaniel  <braden@endoframe.com>

	Added warbird game to the sample worlds.
	From Joerg Scheurich

2001-07-18  S. K. Bose  <bose@pavan.barc.ernet.in>

	Win32 GL declarations are taken out from ViewerOpenGL.h and put it
	into ViewerOpenGL.cpp.

2001-07-14  Braden McDaniel  <braden@endoframe.com>

	Fixed a bug in the JavaScript binding where
	createVrmlFieldFromJsval would create a VrmlSFFloat when it should
	have been creating a VrmlSFTime.

2001-06-30  Braden McDaniel  <braden@endoframe.com>

	Changed SFRotations to require that their axis component must be a
	unit vector.  This change was incompatible with write access using
	operator[]; both read and write access using operator[] with
	VrmlSFRotation has been eliminated.

2001-06-29  Braden McDaniel <braden@endoframe.com>

	Added ommitted class initializations for the MFString and MFTime
	JavaScript types.

2001-06-25  Braden McDaniel <braden@endoframe.com>

	Moved ScriptObject's factory method from the static method on
	ScriptObject to a private method of VrmlNodeScript.  This serves
	to clean up the ScriptObject interface.  In conjunction with this
	change, the JavaScript binding code has been moved from
	"ScriptObject.cpp" to "VrmlNodeScript.cpp".

2001-06-24  Braden McDaniel <braden@endoframe.com>

	Added a private header "private.h" for macros used in the
	implementation.

	Got rid of the pre-linking step for libantlr. Now we just import
	all of libantlr's library objects into the libopenvrml.  We could
	be a bit more judicious about this, but libantlr needs to be
	refactored before we can see a significant size savings.

	In the JavaScript Script class, got rid of instance variables for
	the global object and the Browser object.  The latter was never
	used; the former can be obtained from the context.

2001-06-20  Braden McDaniel <braden@endoframe.com>

	In the JavaScript API implementation, store the pointer to the
	Script object as private data in the JSContext rather than as
	a property of the global object.

	Use JS_NewRuntime() and JS_DestroyRuntime() instead of the
	deprecated JS_Init() and JS_Finish() functions.

	Factored means of constructing a VrmlField type from its
	corresponding JavaScript class into separate per-type
	functions.

2001-06-20  S. K. Bose  <bose@pavan.barc.ernet.in>

	Update *.dsp and *.dsw to support OpenVRML WIN32 DLL and
	remove libjs.dsp and libjs.dsw as these are no longer
	needed. ANTLR parser generator is no longer needed as this
	will use the generated sources which come with the
	distribution.

	Update Makefiles for windows to support WIN32 DLLs and made
	javascript support, PNG image support and JPEG image support
	optional.

2001-06-12  Braden McDaniel <braden@endoframe.com>

	Use "std::map<>::value_type *" instead of "std::map<>::pointer" in
	VrmlNodePtr.h.  Removed #ifdef for Win32.

2001-06-15  S. K. Bose  <bose@pavan.barc.ernet.in>

	Fixed problems for "using-declaration" in ScriptObject.cpp.

2001-06-14  S. K. Bose  <bose@pavan.barc.ernet.in>

	Fixes for object construction in several places in
	vrml97node.cpp, VrmlScene.cpp, VrmlNodeType.cpp and
	VrmlNodeScript.cpp. MSVC++6.0 does not like the way it was.

	Fixed type mismatch in VrmlNodeProto.cpp and VrmlNodeProto.h

2001-06-13  S. K. Bose  <bose@pavan.barc.ernet.in>

	In "VrmlNodePtr.h" as "pointer" is not a member of std::map
	(though it is in standard) in containers library of MSVC++6.0,
	"value_type" can be used (it is also in standard). Though
	I have used "WIN32" preprocessing directive for making
	equivalent of "countPtr", but I hope this will work for other
	compiler as well.

2001-06-12  Braden McDaniel <braden@endoframe.com>

	Used classes and namespaces to organize functions in the
	JavaScript binding.

	Changed implementation of JavaScript MF* types so that they
	nolonger depend on the JavaScript Array class.  (This
	eliminates our dependency on the private JS header.)

	Moved JavaScript binding implementation to ScriptObject.cpp.
	(None of the JavaScript binding needs to be part of the public
	API.)

2001-06-10  S. K. Bose  <bose@pavan.barc.ernet.in>

	Fixed macros in *.h to support WIN32 DLLs

2001-06-08  Braden McDaniel <braden@endoframe.com>

	If it's available, use the STL hash_map rather than std::map
	in VrmlNodePtr.

2001-06-07  Braden McDaniel <braden@endoframe.com>

	Replaced SimpleVector in the parser with std::vector.

	Moved Vrml97Scanner implementation to Vrml97Parser.g.

2001-06-06  Braden McDaniel <braden@endoframe.com>

	Made PNG support (libpng) optional.

	Made JPEG support (libjpeg) optional.

2001-05-27  Braden McDaniel <braden@endoframe.com>

	Improvements (mostly cosmetic) to the Script node JavaScript
	API implementation. Use of namespaces to improve clarity of
	organization.

2001-05-23  Michael Louka <michael.louka@hrp.no>

	Updated ViewerOpenGL.cpp, ViewerGlut.cpp, and lookat.cpp
	to compile on Mac OS X.

2001-05-23  Braden McDaniel <braden@endoframe.com>

	Fixed crash on exit; don't call initialize() for a Script node
	with a null scene pointer.

2001-05-22  Braden McDaniel <braden@endoframe.com>

	Added macros to support building Win32 DLLs.

2001-05-20  Braden McDaniel <braden@endoframe.com>

	Fixed a crash when printing NULL SFNodes.

	Some minor cleanup of ScriptObject.

	JavaScript SFNode constructor now fails if the vrmlstring argument
	does not produce exactly one node.

2001-05-19  Braden McDaniel <braden@endoframe.com>

	Made all single-argument constructors for field classes "explicit".

	Fixed crash when loading a world with a Script node SFNode field
	initialized to NULL.

2001-05-09  Braden McDaniel <braden@endoframe.com>

	Fixed problem with PROTO instantiation where exposedFields
	were not handled correctly.
	From <jpw20@users.sourceforge.net>

	Fixed problem when calling getField() on a PROTO to get the
	value of a field that had not had its default value overridden.
	findField() now returns the default value in this case.  Fixes bug
	#229687:
	<http://sourceforge.net/tracker/index.php?func=detail&aid=229687&group_id=7151&atid=107151>
	From <jpw20@users.sourceforge.net>

	Fix for bug #414259:
	<http://sourceforge.net/tracker/index.php?func=detail&aid=414259&group_id=7151&atid=107151>
	From <jpw20@users.sourceforge.net>

2001-05-01  Braden McDaniel <braden@endoframe.com>

	* Doxygen comments and cosmetic adjustments to VrmlNodeType.

2001-04-26  Braden McDaniel <braden@endoframe.com>

	Added Doxygen comments for VrmlNodeChild.
	Added Doxygen comments for VrmlNodeGeometry.
	Added Doxygen comments for VrmlNodeLight.

2001-04-25  Braden McDaniel <braden@endoframe.com>

	Accommodate higher-resolution textures in the Background node.
	From Joerg Scheurich <rusmufti@helpdesk.rus.uni-stuttgart.de>

2001-04-24  Braden McDaniel <braden@endoframe.com>

	Consolidated VRML97 node types in a single header and a single
	implementation file.

2001-04-23  Braden McDaniel <braden@endoframe.com>

	Consolidated SF* and MF* types into a single header, "field.h".

2001-04-12  Thomas Flynn <tflynn@users.sourceforge.net>

	Checked in fixes for bugs 210011, 211349 and 407708.  Updated
	conformance testing results.

2001-02-16  Braden McDaniel  <braden@endoframe.com>

	Moved texture reading code to "Image.cpp". This obsoletes the
	files:
	  gifread.h
	  gifread.cpp
	  pngread.h
	  pngread.cpp
	  jpgread.h
	  jpgread.cpp
	  mpgread.h
	  mpgread.cpp

2001-02-14  Braden McDaniel  <braden@endoframe.com>

	Changed VrmlNode::eventIn() to take a reference to a VrmlField
	rather than a pointer.

2001-02-06  Braden McDaniel  <braden@endoframe.com>

	Fixed VrmlNodeGroup::removeChildren() to account for nulls in
	the MFNode array.

	Fixed VrmlNodeGroup::recalcBSphere() to account for nulls in
	the MFNode array.

	Changed VrmlMFNode::addNode() and ::removeNode() to take
	VrmlNode references (rather than pointers).

	Changed VrmlNodeType::addNode() to take a VrmlNode reference
	(rather than a pointer).

	In "VrmlNamespace.cpp", moved definitions of NodeCloneVisitor
	and NodeRouteCopyVisitor from inside the cloneNodes() method
	to an unnamed namespace at global scope.  This fixes a weird
	problem with linking under egcs 1.1.2.

	Changed erroneous dynamic_casts in NodeCloneVisitor and
	NodeRouteCopyVisitor to to[Node]() method calls.

2001-02-05  Braden McDaniel  <braden@endoframe.com>

	Removed dynamic_cast in assertions in VrmlNodeAppearance's,
	VrmlNodeElevationGrid's, and VrmlNodeShape's setters in favor
	of toNode() methods.

	Fixed problem with accumulateTransform() in VrmlNodeBillboard
	and VrmlNodeTransform where a null pointer could potentially
	be dereferenced.

	Added VrmlNode::toBillboard() and ::toCollision() methods.

	Removed size(), child() and getChildren() methods from
	VrmlNodeGroup; these are obsoleted by the getChildren() method.

2001-01-29 Michael Louka  <michael.louka@hrp.no>

	For Mac OS only:  Updated System.cpp to removed dependency on
	DriverServices system library.  Updated Lookat.mcp and
	Lookat.mcp.xml to support this update.

2001-01-28  Braden McDaniel  <braden@endoframe.com>

	Changed VrmlNodeType and VrmlNodeProto to hold their
	implementation nodes as a VrmlMFNode object, rather than a pointer
	to a VrmlMFNode.  (Since a PROTO *must* have at least one node in
	its implementation, we can tell whether the implementation has
	been retrieved by the length of the VrmlMFNode object.)

	Added a visitor class for the node hierarchy, VrmlNodeVisitor.

	Reimplemented node cloning using a visitor. This cleans up the
	VrmlNode API a bit.

2001-01-27  Braden McDaniel  <braden@endoframe.com>

	Changed VrmlNodeProto::getNodes() to return a VrmlMFNode reference
	(instead of a pointer).

	Added accessors to VrmlNodeSwitch.

	Added accessors for source to VrmlNodeSound.

	Added accessors for fontStyle to VrmlNodeText.

2001-01-24  Braden McDaniel  <braden@endoframe.com>

	Changed VrmlNodeScript copy ctor to call VrmlNodeChild copy ctor.

2001-01-23  Braden McDaniel  <braden@endoframe.com>

	Added getters/setters to VrmlNodeIndexedSet.

	Added getter/setter for level to VrmlNodeLOD.

	Added getters/setters to VrmlNodePointSet.

	Include <stddef.h> from "Viewer.h".

2001-01-22  Braden McDaniel  <braden@endoframe.com>

	Added SFNode field getters/setters to VrmlNodeIFaceSet.

2001-01-21  Braden McDaniel  <braden@endoframe.com>

	Moved definition of Route from VrmlNode.* to its own
	implementation and header files.

	Moved VrmlNode Doxygen comments to implementation file.

	Added getter/setter methods to VrmlNodeAppearance.

	Moved VrmlNodeChild implementation into its own file (from
	"VrmlNode.cpp"); added copy ctor.

	Broke VrmlNode::toChild() into const and non-const versions.

	Added getter/setter for proxy on VrmlNodeCollision.

	Added getters/setters for VrmlNodeElevationGrid.

	Added getter/setter for children on VrmlNodeGroup.

2001-01-20  Braden McDaniel  <braden@endoframe.com>

	Added getRoutes() method to VrmlNode.
	From Joe HerdMan

2001-01-19  Braden McDaniel  <braden@endoframe.com>

	Fixed misidentified token ID constant in "Vrml97Scanner.cpp".  Due
	to a typo, the identifiers for SFColor and MFColor had been given
	the same value. Thanks to Tom Flynn for reporting the bug.

2001-01-14  S. K. Bose  <bose@pavan.barc.ernet.in>

	Update Makefiles, Project files and Workspace files to build
	(WIN32) for new OpenVRML structure.

	Fixed undefined symbol problems while making "lookat" in debug
	mode using microsoft DevStudio.

2001-01-10  Michael Louka <Michael.Louka@hrp.no>

	Updated CodeWarrior 5.x files for Macintosh for new OpenVRML
	structure.

2001-01-10  Braden McDaniel  <braden@endoframe.com>

	Fixed something gcc shouldn't have allowed me to compile in
	PixelTexture rescaling.  (I was trying to allocate an an array
	on the stack with a size that wasn't a const-expression.)

	Reverted VrmlMFString's member to "char * *" from
	"const char * *".  Visual C++ apparently has problems deleting
	const objects.  Not sure what the standard has to say about this.
	After some reflection, this change is probably the Right Thing
	anyway.  Stylistically, at the very least, deleting a const object
	would seem to be Bad.

	Added include of <assert.h> to "ScriptJS.cpp".

	Added include of <assert.h> to "VrmlNodeScript.cpp".

2001-01-03  Braden McDaniel  <braden@endoframe.com>

	Removed single-value constructor from VrmlMF*.  It is unnecessary
	since the array constructor can be used with a single value, and
	with types like VrmlMFFloat, VrmlMFTime, and especially
	VrmlMFInt32, it has the potential to create ambiguous code since
	the array constructor can be used with a single value as well (to
	indicate the number of values the new object should hold).

	Fixed a minor bug with the default Extrusion.

2001-01-01  Braden McDaniel  <braden@endoframe.com>

	Doxygen comments for VrmlMFTime, VrmlMFVec2f, and VrmlMFVec3f.

	Added setLength() method to VrmlMFTime.

	Added setLength() method to VrmlSFVec2f; consolidated default
	constructor.

	Added setLength() method to VrmlSFVec3f; consolidated default
	constructor; removed non-const get() method.

2000-12-31  Braden McDaniel  <braden@endoframe.com>

	VrmlMFRotation API improvements: moved refcounted inner class
	to implementation file; added setLength() method.

2000-12-30  Braden McDaniel  <braden@endoframe.com>

	API improvements to VrmlMFNode:  added const version of operator[]
	and a non-const version that can be used as an l-value; added
	setLength method; made addNode and removeNode return bool to
	indicate the success or failure of the operation.

	Changed semantics for VrmlMFNode::addNode() and ::removeNode().
	These methods nolonger add or remove NULLs.  This trickles up to
	the addChildren and removeChildren operation on grouping nodes,
	which will nolonger add or remove NULLs as well.

	Fixed a bug in VrmlMFNode::removeNode() that caused the wrong
	node to be dereferenced.

2000-12-18  Braden McDaniel  <braden@endoframe.com>

	Const-correctness changes to Viewer and ViewerOpenGL.

	Declare GLUtesselator 'extern "C"' in "ViewerOpenGL.h".

	Added configuration file to generate documentation with
	Doxygen.

2000-12-17  Braden McDaniel  <braden@endoframe.com>

	Updated ANTLR library version to 2.7.1.

	Changed VrmlSFInt and VrmlMFInt class names to VrmlSFInt32
	and VrmlMFInt32.  These were the only field class names that
	weren't consistent with the VRML97 field type names.

2000-12-14  Braden McDaniel  <braden@endoframe.com>

	API cleanup and improvements to VrmlSFColor, VrmlSFRotation,
	VrmlSFVec2f, VrmlSFVec3f.

	Added configure option to disable JavaScript support.

2000-12-12  Braden McDaniel  <braden@endoframe.com>

	API improvements (including const-correctness) to VrmlSFVec3f and
	VrmlSFRotation.  Changed semantics for methods to match those of
	the ECMAScript binding.

	Implemented VrmlSFRotation::slerp().

2000-12-10  Braden McDaniel  <braden@endoframe.com>

	Const-correctness changes to VrmlSFImage.  Broad ramifications.
	Importantly, we now must copy the image before rescaling it in
	the ViewerOpenGL. This is less efficient, but rescaling should
	only happen once, so I doubt the copy will be too big of a
	deal.

2000-12-09  Braden McDaniel  <braden@endoframe.com>

	Changed type used to represent SFInt32 and MFInt32 from int to
	long.

	Miscellaneous const- and signed-correctness changes.

2000-12-08  Braden McDaniel  <braden@endoframe.com>

	Fixed viewpoint cockeyed-ness introduced by patch on 6 Dec.

	Changed name of "libvrml97" to "libopenvrml".

	Changed installation location for libopenvrml headers to
	"$(includedir)/OpenVRML".

	Changed name of "libvrml97gl" to "libopenvrml-gl".

	Changed installation location for libopenvrml-gl headers to
	"$(includedir)/OpenVRML/GL".

2000-12-06  Braden McDaniel  <braden@endoframe.com>

	Applied patch to fix
	<http://sourceforge.net/bugs/?func=detailbug&bug_id=124439&group_id=7151>

	This adds identification of hexadecimal integers to the lexer, and
	removes use of istrstream from the parser.

	Since Script nodes are nolonger detected in the scanner, removed
	NODE_SCRIPT identifier.

2000-12-05  Braden McDaniel  <braden@endoframe.com>

	Reverted 26 Nov change to VrmlField.h.  CodeWarrior 5/Mac is using
	ISO IOstreams, and had problems with the forward declaration.

2000-11-28  Braden McDaniel  <braden@endoframe.com>

	Made lookat prefer viewpoint descriptions to DEF names in the
	viewpoint menu.
	From Jeff Dubrule <igor@pobox.com>

2000-11-27  Braden McDaniel  <braden@endoframe.com>

	Got rid of confusing VrmlSField and VrmlMField #defines in
	VrmlField.h.

2000-11-26  Braden McDaniel  <braden@endoframe.com>

	Replaced include of <iostream.h> in VrmlField.h with a forward
	declaration of ostream.

2000-11-23  Braden McDaniel  <braden@endoframe.com>

	Corrected (and changed implementation of)
	VrmlField::fieldTypeName(); changed implemetation of
	VrmlField::fieldType(const char *).  Thanks to Jeff Dubrule
	<igor@pobox.com> for noting the problem with
	VrmlField::fieldTypeName().

2000-11-18  Braden McDaniel  <braden@endoframe.com>

	Backported the patch to Mozilla bug 24892.  We should nolonger
	need special CFLAGS to compile JavaScript under Red Hat 7.0.  This
	fixes
	<http://sourceforge.net/bugs/?func=detailbug&bug_id=122654&group_id=7151>.

2000-11-17  Braden McDaniel  <braden@endoframe.com>

	Made the parser, scanner, and ANTLR headers non-public.

	Upgraded JavaScript to 1.5RC2.

	Added another tryURLs method to Image:

	  bool tryURLs(const VrmlMFString & urls, Doc2 * relative = 0);

	This was needed as there is currently no reliable way to get the
	char** to the 2D array of strings out of VrmlMFString.  This fixes
	<http://sourceforge.net/bugs/?func=detailbug&bug_id=116908&group_id=7151>.

	Cleaned up warnings in VrmlNodeAnchor.cpp.

	In the parser, the value passed to VrmlMFColor for the number of
	color values was off by 1/3.  This fixes
	<http://sourceforge.net/bugs/?func=detailbug&bug_id=122340&group_id=7151>

2000-11-16  S. K. Bose <bose@pavan.barc.ernet.in>

	Changes in Makefile.win to include conditional generation of C++
	code from ANTLR grammar by having java or not.

2000-11-07  Braden McDaniel  <braden@endoframe.com>

	Took the ANTLR source out of the automated build.

2000-11-03  Braden McDaniel  <braden@endoframe.com>

	Changed the character variables in the Vrml97Utf8Scanner from char
	to int, since char_traits<T>::eof is an int_type, and EOF is
	typically an int.

2000-10-26  Braden McDaniel  <braden@endoframe.com>

	Modified ANTLR's config.cpp to define NO_STATIC_CONSTS for gcc
	2.96.  This fixes
	<http://sourceforge.net/bugs/?func=detailbug&bug_id=117652&group_id=7151>.

	* configure.in: Disabled the ability to disable building static
	libraries.  We need them to incrementally link against, even when
	the only desired end product are shared libraries.

2000-10-24  Braden McDaniel  <braden@endoframe.com>

	Unified typedef for Win32 and non-Win32 for TessCB in
	ViewerOpenGL.cpp.

	Removed gcc-specific compiler flags from JavaScript's Makefile.am.

2000-10-15  Braden McDaniel  <braden@endoframe.com>

	Took out the #ifdef around including <string.h> in System.cpp.  It
	should be safe to include this everywhere, and now gcc wants it
	there on Linux.

2000-09-21  Chris Morley  <cmorley@vermontel.net>

	Applied (the gist of) patches submitted by Bose, tflynn, and
	Jean-Daniel Fekete for VrmlNamespace invalid memory access,
	mpeg playback speed fix, and Cygwin support, respectively.

2000-09-09  Christopher St. John <cstjohn@acm.org>

	* vrml97parser.g:  Fixed the intValue production.  It was not
	correctly parsing hex values starting with "0x".  Generally not a
	good idea to use iostreams as a lexer, its too error prone.  Also
	fixed the sfImageValue production, it was not correctly unpacking
	longs into the byte array that a pixel texture expects.
	* VrmlField.cpp:  Fixed VrmlSFImage constructors to take the "num
	components" specification into account when computing the length
	of the image byte array, to go with the parser fix above.  Taken
	together, these changes appear to fix bug # 109949.
	* VrmlSFImage.h:  Added javadoc style comments detailing the way
	nComponents interacts with how the image byte array is interpreted.
	* VrmlNodePixelTexture.cpp:  Commented out some debug messages.

2000-09-05  Christopher St. John <cstjohn@acm.org>

	Modified to load textures using OpenGL convention of origin in
	lower left hand corner instead of upper left.  Old image loader
	code used regular convention and then munged the texture
	coordinates to turn them back right side up, which led to non-
	conformant behavior when scaling using a texture transform node.
	(See bug# 109952.)  The fixes were easy, but what about 3rd party
	loaders?

	* gifread.cpp
	* jpgread.cpp
	* mpgread.cpp
	* pngread.cpp

	Changed the texture coordinate generation code to match the new
	loader code.  Fixes also improve (but maybe don't totally fix)
	several other texture coord problems including bug #'s 110035,
	111335, 111343.

	* ViewerOpenGL.cpp
	* Viewer.cpp

2000-08-27  Christopher St. John <cstjohn@acm.org>

	* ViewerOpenGL.cpp: Changed the default zfar in setViewpoint()
	from 1000 to 30,000.  This helps with, but doesn't really properly
	fix, conformance bugs #'s 111350, 111338, 111339, 111340.  It
	might also cause problems with z-precision, likely to show up as
	z-fighting, but it seems worth a shot.

2000-08-19  Christopher St. John <cstjohn@acm.org>

	* ViewerOpenGL.cpp: Fixed a problem with the check for non -1
	terminated coord indicies in insertShellConvex(), and (partially)
	fixed a problem with normal generation in insertCone(), ref
	bug#112324.

2000-08-02  Christopher St. John <cstjohn@acm.org>

	Added cache of inverse transform in case manipulation of plane
	sensor modifies the transform hierarchy above the plane sensor.
	Fixes bug #108126.

	* VrmlNodePlaneSensor.cpp
	* VrmlNodePlaneSensor.h

2000-06-28  Chris Morley  <cmorley@vermontel.net>

	* Change license to LGPL for library code.

	Added mgiger's SphereSensor implementation and CylinderSensor
	stubs.

2000-06-27  Braden McDaniel  <braden@endoframe.com>

	Eliminated dependency on the GL header files from ViewerOpenGL.h.
	(Note that ViewerOpenGL still depends on these headers, of
	course.)

	Moved dependency on zlib.h from Doc.h to Doc.cpp.

	Changed autoconf macro prefix to 'OV'.

	Removed libvrml97js check from AM_PATH_VRML.

	Removed dependency on zlib, libpng, libjpeg, and GL from
	AM_PATH_VRML and AM_PATH_VRMLGL.  The dependencies in the headers
	has been eliminated, and since we're using libtool inter-library
	dependencies are automatically taken care of.

2000-06-27  Michael Louka <Michael.Louka@hrp.no>

	Updated CodeWarrior files for Mac OS to reflect Braden's changes
	to the handling of the JavaScript library.

2000-06-27  Michael Louka <Michael.Louka@hrp.no>

	Rewrote VrmlNodeAnchor::activate() so that relative URLs to non-
	VRML data are handled correctly.

2000-06-27  Braden McDaniel <braden@endoframe.com>

	Changed build scripts to use JavaScript 1.5 RC1 (SpiderMonkey).
	Importantly, it's being built a little differently from before.
	libvrml97js is now obsolete.  libvrml97core is now pre-linked
	against libjs (and its subordinate fdlibm).

	Finally, dependencies in the libvrml97 headers upon the libjs
	headers were eliminated:  we nolonger have to install the libjs
	headers (yea!).  So, note to future JS hackers: let's try to keep
	it that way.

2000-06-22  Christopher St. John <cstjohn@acm.org>

	* Vrml97Parser.g: There was a case missed in
	protoScriptFieldInterfaceDeclaration where a field followed by an
	IS wasn't having addField() called on it.

	Moved identification of Script nodes from the scanner into the
	parser. It was very difficult to identify all the cases where a
	SCRIPT-token (rather than a normal ID token) should be returned
	when the string "Script" was encountered, and the missing cases
	were causing parse problems.

	* Vrml97Parser.g
	* Vrml97Scanner.cpp
	* Vrml97Scanner.h

	* VrmlScene.cpp:  reordered initializations in ctr to silence
	compiler warning.

2000-06-18  Christopher St. John <cstjohn@acm.org>

	Added default values for x/zDimension in VrmlNodeElevationGrid
	ctr.

2000-06-15  Christopher St. John <cstjohn@acm.org>

	Added isOver eventout to defineType in VrmlNodeTouchSensor.cpp
	Removed debug message from VrmlNodeSwitch.cpp

2000-05-20  Christopher St. John  <cstjohn@acm.org>

	Added view frustum culling code, touched all VrmlNode*.{cpp/h}
	files.  Fixed (badly, temporarily) navigation code in
	VrmlScene/ViewOpenGL.

2000-04-19  Chris Morley  <cmorley@vermontel.net>

	Added -title arg to lookat for multiple viewers under xswallow.

2000-04-11  Braden McDaniel  <braden@endoframe.com>

	Added some infectious const lovin' with a dash of size_t.  Too
	much to list.

	In VrmlMFString, removed the method:

	  char ** getURL()

	This was redundant with the availability of

	  virtual const VrmlMFString & getUrl() const;

2000-04-09  Michael Louka <Michael.Louka@hrp.no>

	Modified System::time() for the Mac OS to provide VRML97
	compliancy.

2000-04-07  Braden McDaniel  <braden@endoframe.com>

	The VrmlSFImage constructor was assuming ownership of the pixel
	array passed to it.  This is inconsistent with the behavior of the
	similar constructors for MF* types, which copy the data in the
	buffer passed to them.  I modified the VrmlSFImage constructor to
	instead make a copy of the pixel buffer passed to it.

	Also changed the constructor's signature from

	  VrmlSFImage(int w = 0, int h = 0, int nc = 0, unsigned char * pixels = 0);

	to

	  VrmlSFImage(int w = 0, int h = 0, int nc = 0, unsigned char const * pixels = 0);

	Changed VrmlMFColor constructor from

	  VrmlMFColor(int n, float * values);

	to

	  VrmlMFColor(int n, float const * values);

	Changed VrmlMFFloat constructor from

	  VrmlMFFloat(int n, float * values);

	to

	  VrmlMFFloat(int n, float const * values);

	Changed VrmlMFInt constructor from

	  VrmlMFInt(int n, int * values);

	to

	  VrmlMFInt(int n, int const * values);

	Changed VrmlMFRotation constructor from

	  VrmlMFRotation(int n, float * values);

	to

	  VrmlMFRotation(int n, float const * values);

	Changed VrmlMFVec2f constructor from

	  VrmlMFVec2f(int n, float * values);

	to

	  VrmlMFVec2f(int n, float const * values);

	Changed VrmlMFVec3f constructor from

	  VrmlMFVec3f(int n, float * values);

	to

	  VrmlMFVec3f(int n, float const * values);

2000-04-06  Braden McDaniel  <braden@endoframe.com>

	Changed the signature of VrmlNode::nodeType from

	  virtual NodeType * nodeType();

	to

	  virtual NodeType & nodeType() const = 0;

	Previously, the default implementation returned 0. As this isn't
	really useful behavior, the method now returns a reference to the
	NodeType (cannot be null) and requires that concrete subclasses
	implement it.

2000-04-05  Chris Morley  <cmorley@vermontel.net>

	Initial support for MPEG files in MovieTexture nodes.

2000-04-05  Braden McDaniel  <braden@endoframe.com>

	Changed VrmlNamespace::findNode to a const method.

2000-04-03  Braden McDaniel  <braden@endoframe.com>

	Beginning the process of replacing the SGI lex/yacc parser with an
	open source parser based on ANTLR.

	Added MFTime field type.

	Added a Doc2 class. This is a Doc work-alike, except Doc2 provides
	a C++ istream rather than a C file pointer for file access.

	Modified the Doc class to interoperate with the Doc2 class.

	Modified VrmlScene to use a Doc2 rather than a Doc. The new
	scanner (Vrml97Utf8Scanner) takes an istream as input.

2000-03-28  Braden McDaniel  <braden@endoframe.com>

	Added libantlr to the build. The new parser will use this.

2000-03-28  Chris Morley  <cmorley@vermontel.net>

	Added a -notitle arg to lookat so xswallow works again.

2000-03-26  Chris Morley  <cmorley@vermontel.net>

	Finished implementing getField for Nodes so Scripts can access
	exposedFields.

	Fixed the upside down textures on some IFSs.

2000-03-13  Chris Morley  <chris@quiller.morley.com>

	Put in S K Bose's Billboard code and the MathUtils for the axis-
	aligned bbox culling.

	Fixed the last reported crashes with the NIST tests (invalid
	VrmlNamespace references by EXTERNPROTOs).

2000-03-11  Braden McDaniel  <braden@endoframe.com>

	Named the render mode enumerant in Viewer;
	Viewer::getRenderMode() now returns RenderMode.  Static type
	checking is cool.

2000-03-10  Chris Morley  <cmorley@vermontel.net>

	Add a Viewpoints menu on the right mouse button.
	Navigation is so broken right now.

	Define VrmlNodeNavigationInfo::getField.

	Make createVrmlFromUrl a little more robust (don't crash if no
	valid vrml nodes are read).

2000-03-09  Chris Morley  <cmorley@vermontel.net>

	Ensure that lighting is turned back on when rendering Appearance
	nodes, so not all geometry following a missing Material node is
	unlit (problem reported by Michael Louka).

2000-03-09  Chris Morley  <cmorley@vermontel.net>

	Fix elevationGrid color/normal per vertex.

2000-03-08  Chris Morley  <cmorley@vermontel.net>

	Don't attempt to render null strings. Duh.

2000-03-07  Braden McDaniel <braden@endoframe.com>

	Made Viewer's protected member functions computeCylinder,
	computeExtrusion, computeSphere, and computeView all static, as
	there seems no reason for them not to be.

2000-03-07  Chris Morley  <cmorley@vermontel.net>

	Apply textures to cone and cylinder tops & bottoms.

2000-01-23  Braden McDaniel <braden@endoframe.com>

	Corrected lookat's floating point handling on FreeBSD.
	From Stuart Anderson <anderson@metrolink.com>

2000-01-21  Braden McDaniel <braden@endoframe.com>

	JavaScript 1.5 beta 1 has been added to the project and
	incorporated into the GNU build, replacing the Arbitrary CVS
	Snapshot that had been in use.

2000-01-19  S. K. Bose <bose@pavan.barc.ernet.in>

	Incorporated additions in System.cpp to support "http" under
	windows and also replaced "System::" with "theSystem->" to support
	virtual function-call mechanism.

2000-01-16  Braden McDaniel <braden@endoframe.com>

	Submissions from S. K. Bose <bose@pavan.barc.ernet.in>: Added
	"std::" in a number of places where it was needed, as well as
	conditional inclusion of the file "winconfig.h" (which now resides
	in libvrml97core/win32) for the MS Visual C++ Windows build.

2000-01-03  Braden McDaniel <braden@endoframe.com>

	In lbvrml97core, changed the toString() function in ScriptJS.cpp
	to use the standard, cross-platform means of freeing the buffer
	required by the ostrstream.  Squashing #ifdefs gives me warm
	fuzzies.

1999-12-14  Michael N. Louka <michael.louka@hrp.no>

	Now tests HAVE_SOUND in Audio::setURL() to check whether to load
	audio files.  Previously audio files were (down)loaded even if
	HAVE_SOUND was not true.

	Suppressed "couldn't read AudioClip from URL" error message in
	VrmlNodeAudioClip::update() if HAVE_SOUND is not true.

1999-12-03  Michael N. Louka <michael.louka@hrp.no>

	Incorporated modifications to support Mac OS 8/9. This was mainly
	additions to System.cpp and Doc.cpp as well as some Macintosh
	specific header file inclusions and other minor modifications to
	other files.

	Added CodeWarrior projects for Mac OS (in macos directories for
	lookat and libvrml97core).

	Added HAVE_CONFIG_H checks to a number of files that were missing
	them.

	Replaced output to stderr with output via theSystem in setURL() in
	Audio.cpp

1999-11-21  Braden McDaniel <braden@endoframe.com>

	Cleaned up some old #ifdefs in VrmlScene.cpp, Image.cpp,
	pngread.c, and jpgread.c that would have prevented images and
	gzipped files from working.

1999-10-19  Braden McDaniel <braden@endoframe.com>

	Displaced lookat, xmlookat, and gtklookat to their own packages.
	This removed these files from libvrml97core:

	lookat.cpp
	ViewerGlut.cpp
	ViewerGlut.h
	ViewerXt.cpp
	ViewerXt.h
	ViewerXm.h
	gtklookat.cpp
	ViewerGtk.cpp
	ViewerGtk.h
	gtkglarea.c
	gtkglarea.h
	gdkgl.c
	gdkgl.h

	This eliminated dependence on X, Motif, and GTK+ from the build.

	Displaced ViewerOpenGL.* and OpenGLEvent.* to libvrml97gl,
	eliminating dependence on OpenGL and glut.

	Removed ViewerHOOPS.* and HOOPSEvent.*.  These could potentially
	be made into their own package and provide an alternative to the
	OpenGL renderer.

	Displaced plugin to its own package.

	Removed win32Lookat.  This, too, belongs in its own package. But
	I'll leave the specifics of that package to the Win32 developers.

	Removed the javascript subtree and added a newer version of libjs
	to src/vrml97/libjs, and incorporated it into the automake build.

	Nuked the OLD directory.  These build scripts certainly would need
	a good deal of reworking after the reorg I've done, and hopefully
	the use of automake means they are nolonger necessary.  If anyone
	needs they can be found in an older tarball.

1999-10-17  Braden N. McDaniel  <braden@endoframe.com>

	OpenGL renderer displaced from libvrml97core and placed in
	libvrml97gl.

	Helper functions from MathHelper.cpp in libvrml97core placed in an
	unnamed namespace in ViewerOpenGL.cpp.

	OpenGLEvent.c renamed to OpenGLEvent.cpp.
