Updated docs for second rev of 0.9.7

This commit is contained in:
Robert Osfield 2004-08-17 07:43:30 +00:00
parent d565d92cc8
commit c86fbe2efa
6 changed files with 135 additions and 146 deletions

View File

@ -1,10 +1,13 @@
OSG News (most significant items from ChangeLog)
================================================
13th August 2004 - OpenSceneGraph-0.9.7-2
17th August 2004 - OpenSceneGraph-0.9.7-2
Build fixes for VisualStudio6.0.
Fixes for osgFX registry support.
Fixes to osg::Image::flipVertical() adding support for mipmaps and
compressed textures.
DDS plugin now can vertically flip images by using "flip" Options string.
Added support in osgTerrain for reading imagery with color tables.

View File

@ -47,6 +47,24 @@ dependencies
at all. A plugin is only needed if you need to load that specific file
format,
so it is not critical if you don't have all the required dependencies. <br>
<br>
Under UNIX you can take advantage of flexibility in the build system
that allows you to manually define the external dependencies that are
installed on your system.&nbsp; To override the default dependencies
copy the Make/dependencies file to a directory of choosing, and then
point to this file by setting the OSG_DEPENDENCIES environmental
variable to point to this file.&nbsp; Then edit this file to reflect
which dependencies are present. i.e<br>
<br>
&nbsp;&nbsp;&nbsp; cd /home/osguser/OpenSceneGraph<br>
&nbsp;&nbsp;&nbsp; cp Make/dependencies my_custom_osg_dependencies<br>
&nbsp;&nbsp;&nbsp; export
OSG_DEPENDENCIES=/home/osguser/OpenSceneGraph/my_custom_osg_dependencies<br>
&nbsp;&nbsp;&nbsp; myfavorite-editor my_custom_osg_dependencies<br>
<br>
When editing the file, simple change the no to yes, and visa-versa
where apporpriate.<br>
<br>
<hr>
<h3> <a name="Windows dependency arhives"></a><u>Windows dependency
archives</u></h3>
@ -92,7 +110,8 @@ guessed it, Producer...</li>
<i><a href="http://www.andesengineering.com/Producer">http://www.andesengineering.com/Producer</a></i>
</ul>
<br>
<li>src/osgTerrain - The optional osgTerrain library depends upon GDAL to load large scale imagery and DEM's.</li>
<li>src/osgTerrain - The optional osgTerrain library depends upon
GDAL to load large scale imagery and DEM's.</li>
<br>
<ul>
<i><a href="http://www.remotesensing.org/gdal/">http://www.remotesensing.org/gdal/</a></i>
@ -126,7 +145,7 @@ type fonts via the freetype library.
<i><a href="http://www.freetype.org/">http://www.freetype.org/</a></i>
</ul>
<br>
<li> src/osgTerrain & src/osgPlugins/gdal</li>
<li> src/osgTerrain &amp; src/osgPlugins/gdal</li>
<br>
The GDAL plugin uses GDAL to load large scale imagery and DEM's.
<ul>

View File

@ -120,10 +120,10 @@
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline unsigned char* <B><A HREF="#DOC.2.119.37">data</A></B>(int column, int row=0, int image=0) const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.119.38">flipHorizontal</A></B>(int image=0)
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.119.38">flipHorizontal</A></B>()
<DD><I>Flip the image horizontally</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.119.39">flipVertical</A></B>(int image=0)
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.119.39">flipVertical</A></B>()
<DD><I>Flip the image vertically</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.119.40">ensureValidSizeForTexturing</A></B>(GLint <!1><A HREF="Extensions.5.html#DOC.2.240.57.26">maxTextureSize</A>)
@ -156,10 +156,7 @@
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline unsigned char* <B><A HREF="#DOC.2.119.53">getMipmapData</A></B>(unsigned int mipmapNumber) const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.119.54">computeMipMaps</A></B>()
<DD><I>converts a single image into mip mapped version image</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>bool <B><A HREF="#DOC.2.119.55">isImageTranslucent</A></B>() const
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>bool <B><A HREF="#DOC.2.119.54">isImageTranslucent</A></B>() const
<DD><I>return true of this image is translucent - ie.</I>
</DL></P>
@ -170,40 +167,40 @@
<P><DL>
<DT><H3>Protected Fields</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>std::string <B><A HREF="#DOC.2.119.58">_fileName</A></B>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>std::string <B><A HREF="#DOC.2.119.57">_fileName</A></B>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>int <B><A HREF="#DOC.2.119.59">_s</A></B>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>int <B><A HREF="#DOC.2.119.58">_s</A></B>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>int <B><A HREF="#DOC.2.119.60">_t</A></B>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>int <B><A HREF="#DOC.2.119.59">_t</A></B>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>int <B><A HREF="#DOC.2.119.61">_r</A></B>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>int <B><A HREF="#DOC.2.119.60">_r</A></B>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>GLint <B><A HREF="#DOC.2.119.62">_internalTextureFormat</A></B>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>GLint <B><A HREF="#DOC.2.119.61">_internalTextureFormat</A></B>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>GLenum <B><A HREF="#DOC.2.119.63">_pixelFormat</A></B>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>GLenum <B><A HREF="#DOC.2.119.62">_pixelFormat</A></B>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>GLenum <B><A HREF="#DOC.2.119.64">_dataType</A></B>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>GLenum <B><A HREF="#DOC.2.119.63">_dataType</A></B>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>unsigned int <B><A HREF="#DOC.2.119.65">_packing</A></B>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>unsigned int <B><A HREF="#DOC.2.119.64">_packing</A></B>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Image.html#DOC.2.119.11">AllocationMode</A> <B><A HREF="#DOC.2.119.66">_allocationMode</A></B>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Image.html#DOC.2.119.11">AllocationMode</A> <B><A HREF="#DOC.2.119.65">_allocationMode</A></B>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>unsigned char* <B><A HREF="#DOC.2.119.67">_data</A></B>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>unsigned char* <B><A HREF="#DOC.2.119.66">_data</A></B>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>unsigned int <B><A HREF="#DOC.2.119.70">_modifiedTag</A></B>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>unsigned int <B><A HREF="#DOC.2.119.69">_modifiedTag</A></B>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Image.html#DOC.2.119.49">MipmapDataType</A> <B><A HREF="#DOC.2.119.71">_mipmapData</A></B>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Image.html#DOC.2.119.49">MipmapDataType</A> <B><A HREF="#DOC.2.119.70">_mipmapData</A></B>
</DL></P>
<P><DL>
<DT><H3>Protected Methods</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual <B><A HREF="#DOC.2.119.56">~Image</A></B>()
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual <B><A HREF="#DOC.2.119.55">~Image</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Image.html">Image</A>&amp; <B><A HREF="#DOC.2.119.57">operator = </A></B>(const <!1><A HREF="Image.html">Image</A>&amp;)
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Image.html">Image</A>&amp; <B><A HREF="#DOC.2.119.56">operator = </A></B>(const <!1><A HREF="Image.html">Image</A>&amp;)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.119.68">deallocateData</A></B>()
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.119.67">deallocateData</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.119.69">setData</A></B>(unsigned char* <!1><A HREF="Image.html#DOC.2.119.35">data</A>, <!1><A HREF="Image.html#DOC.2.119.11">AllocationMode</A> allocationMode)
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.119.68">setData</A></B>(unsigned char* <!1><A HREF="Image.html#DOC.2.119.35">data</A>, <!1><A HREF="Image.html#DOC.2.119.11">AllocationMode</A> allocationMode)
</DL></P>
</DL>
@ -462,12 +459,12 @@ If source is NULL then no operation happens, this Image is left unchanged.
<DL><DT><DD></DL><P>
<A NAME="flipHorizontal"></A>
<A NAME="DOC.2.119.38"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void flipHorizontal(int image=0)</B></TT>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void flipHorizontal()</B></TT>
<DD>Flip the image horizontally
<DL><DT><DD></DL><P>
<A NAME="flipVertical"></A>
<A NAME="DOC.2.119.39"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void flipVertical(int image=0)</B></TT>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void flipVertical()</B></TT>
<DD>Flip the image vertically
<DL><DT><DD></DL><P>
<A NAME="ensureValidSizeForTexturing"></A>
@ -533,78 +530,73 @@ the host machine.
<A NAME="DOC.2.119.53"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline unsigned char* getMipmapData(unsigned int mipmapNumber) const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="computeMipMaps"></A>
<A NAME="DOC.2.119.54"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void computeMipMaps()</B></TT>
<DD>converts a single image into mip mapped version image
<DL><DT><DD></DL><P>
<A NAME="isImageTranslucent"></A>
<A NAME="DOC.2.119.55"></A>
<A NAME="DOC.2.119.54"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>bool isImageTranslucent() const </B></TT>
<DD>return true of this image is translucent - ie. it has alpha values that are less 1.0 (when normalized).
<DL><DT><DD></DL><P>
<A NAME="~Image"></A>
<A NAME="DOC.2.119.56"></A>
<A NAME="DOC.2.119.55"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual ~Image()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="operator = "></A>
<A NAME="DOC.2.119.57"></A>
<A NAME="DOC.2.119.56"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Image.html">Image</A>&amp; operator = (const <!1><A HREF="Image.html">Image</A>&amp;)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_fileName"></A>
<A NAME="DOC.2.119.58"></A>
<A NAME="DOC.2.119.57"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>std::string _fileName</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_s"></A>
<A NAME="DOC.2.119.59"></A>
<A NAME="DOC.2.119.58"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>int _s</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_t"></A>
<A NAME="DOC.2.119.60"></A>
<A NAME="DOC.2.119.59"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>int _t</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_r"></A>
<A NAME="DOC.2.119.61"></A>
<A NAME="DOC.2.119.60"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>int _r</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_internalTextureFormat"></A>
<A NAME="DOC.2.119.62"></A>
<A NAME="DOC.2.119.61"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>GLint _internalTextureFormat</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_pixelFormat"></A>
<A NAME="DOC.2.119.63"></A>
<A NAME="DOC.2.119.62"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>GLenum _pixelFormat</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_dataType"></A>
<A NAME="DOC.2.119.64"></A>
<A NAME="DOC.2.119.63"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>GLenum _dataType</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_packing"></A>
<A NAME="DOC.2.119.65"></A>
<A NAME="DOC.2.119.64"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>unsigned int _packing</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_allocationMode"></A>
<A NAME="DOC.2.119.66"></A>
<A NAME="DOC.2.119.65"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Image.html#DOC.2.119.11">AllocationMode</A> _allocationMode</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_data"></A>
<A NAME="DOC.2.119.67"></A>
<A NAME="DOC.2.119.66"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>unsigned char* _data</B></TT>
<DL><DT><DD></DL><P>
<A NAME="deallocateData"></A>
<A NAME="DOC.2.119.68"></A>
<A NAME="DOC.2.119.67"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void deallocateData()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="setData"></A>
<A NAME="DOC.2.119.69"></A>
<A NAME="DOC.2.119.68"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void setData(unsigned char* <!1><A HREF="Image.html#DOC.2.119.35">data</A>, <!1><A HREF="Image.html#DOC.2.119.11">AllocationMode</A> allocationMode)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_modifiedTag"></A>
<A NAME="DOC.2.119.70"></A>
<A NAME="DOC.2.119.69"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>unsigned int _modifiedTag</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_mipmapData"></A>
<A NAME="DOC.2.119.71"></A>
<A NAME="DOC.2.119.70"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Image.html#DOC.2.119.49">MipmapDataType</A> _mipmapData</B></TT>
<DL><DT><DD></DL><P></DL>
<HR>

View File

@ -143,9 +143,9 @@
<DT>
<IMG ALT="o" SRC=icon2.gif>inline unsigned char* <B>data</B>(int column, int row=0, int image=0) const
<DT>
<IMG ALT="o" SRC=icon2.gif>void <B>flipHorizontal</B>(int image=0)
<IMG ALT="o" SRC=icon2.gif>void <B>flipHorizontal</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>void <B>flipVertical</B>(int image=0)
<IMG ALT="o" SRC=icon2.gif>void <B>flipVertical</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>void <B>ensureValidSizeForTexturing</B>(GLint <!1><A HREF="Extensions.5.html#DOC.2.240.57.26">maxTextureSize</A>)
<DT>
@ -173,8 +173,6 @@
<DT>
<IMG ALT="o" SRC=icon2.gif>inline unsigned char* <B>getMipmapData</B>(unsigned int mipmapNumber) const
<DT>
<IMG ALT="o" SRC=icon2.gif>void <B>computeMipMaps</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>bool <B>isImageTranslucent</B>() const
</DL></P>

View File

@ -327,7 +327,7 @@ grow
to appreciate.
<p>The project is currently in beta, which means the main core features
are now in
place, with a 1.0 release in second half of 2003. Despite the beta
place, with a 1.0 release in second half of 2004. Despite the beta
development status,
the project has already earned the reputation as the leading open
source scene
@ -388,6 +388,10 @@ page.
</p>
<h3>
<u>Learning how to use the OpenSceneGraph</u></h3>
<p>The main collections of resources for learning how to use the
OpenSceneGraph can be found on openscenegraph.org documentaiton page,
please check this out regular for new entries.<br>
</p>
<p>The OpenSceneGraph distribution comes with a reference guide for
each of
the component libraries - osg, osgDB, osgUtil, osgText, osgSim,
@ -402,7 +406,15 @@ the beginnings of a <a
href="http://www.c2.com/cgi/wiki?OpenSceneGraphFaq">Wiki
based FAQ</a> which may help answer a few of the common queries.
</p>
<p>A programming guide will be available in form of a OpenSceneGraph
<p>Two sets of online tutorial been written by members of the
OpenSceneGraph community:<br>
&nbsp;&nbsp;&nbsp; Jason McVeigh's <a
href="http://www.tersesolutions.net/osgt/">OpenSceneGraph Tutorials</a><br>
&nbsp;&nbsp;&nbsp; Joseph Sullivan's&nbsp; <a
href="http://www.nps.navy.mil/cs/sullivan/osgTutorials/index.html">OpenSceneGraph
Tutorials</a><br>
&nbsp;<br>
A programming guide will be available in form of a OpenSceneGraph
book
which is being written by Don Burns and Robert Osfield, parts of it
will

View File

@ -1,112 +1,77 @@
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Mozilla/4.77 [en] (X11; U; Linux 2.4.3-20mdk i686) [Netscape]">
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta name="GENERATOR"
content="Mozilla/4.77 [en] (X11; U; Linux 2.4.3-20mdk i686) [Netscape]">
<title>Plans for future developments</title>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#0000FF" vlink="#990066" alink="#FF0000">
<img SRC="images/OpenSceneGraphBanner_Distribution.jpg">
<body text="#000000" bgcolor="#ffffff" link="#0000ff" vlink="#990066"
alink="#ff0000">
<img src="images/OpenSceneGraphBanner_Distribution.jpg">
<table>
<tbody>
<tr>
<td><a href="index.html">Index</a></td>
<td><a href="introduction.html">Introduction</a></td>
<td><a href="contents.html">Contents</a></td>
<td><a href="install.html">Install</a></td>
<td><a href="dependencies.html">Dependencies</a></td>
<td><a href="examples.html">examples</a></td>
<td><a href="data.html">Data</a></td>
<td><a href="osgviewer.html">Viewer</a></td>
<td><a href="stereo.html">Stereo</a></td>
<td><a href="osgdem.html">osgdem</a></td>
<td><a href="plan.html">Plan</a></td>
<td><a href="documentation.html">Reference Guides</a></td>
</tr>
</tbody>
</table>
<h2>
<u>Plans for future developments</u></h2>
Now we have reached the beta phase (0.9.x) of OpenScenegGraph project,
and are now working towards the full 1.0 release, with a likely
release date in second half of 2003.
<h3>
Future work include:</h3>
and are now working towards the full 1.0 release, with a likely release
date in second half of 2004.
<h3>Future work include:</h3>
<ul>
<li>
StateSet composite structure for managing multi-pass effects and alternate rendering implemations.
This will allow one to manage the use of extensions and provide effecient fallback rendering paths.</li>
StateSet composite structure for managing multi-pass effects and
alternate rendering implemations. This will allow one to manage the use
of extensions and provide effecient fallback rendering paths.</li>
<li>
Clean up the API for managing multi-stage and multi-pass rendering within
Clean up the API for managing multi-stage and multi-pass rendering
within
the scene graph.</li>
<li>
Support for clustering in Open Producer and osgProducer.</li>
<li>
Enhance osgDB and plugins to allow them to be used with alternate input streams. Add support for native binary
file format for rapid loading and saving of scene graphs.
</li>
<li>
Development of virtual texture support for rendering in real-time massive images, such as whole earth textures.</li>
<li>
Introduce a new library osgEnvironment, which adds support for creating
shapes and environmental effects such as stars, planets, cloud layers, oceans and
Enhance osgDB and plugins to allow them to be used with alternate input
streams. Add support for native binary file format for rapid loading
and saving of scene graphs.</li>
<li>Introduce a new library osgEnvironment, which adds support for
creating
shapes and environmental effects such as stars, planets, cloud layers,
oceans and
ground planes.</li>
<li>
Integrate unit tests for all classes, using the osgUtx Unit Test Framework.</li>
Integrate unit tests for all classes, using the osgUtx Unit Test
Framework.</li>
</ul>
<h3>
Books, tutorials and demonstrations</h3>
<ul>
<li>
Don Burns and Robert Osfield to write the OpenSceneGraph book!</li>
<li>
Development of tutorials to published as part of the distribution and on
Development of tutorials to published as part of the distribution and
on
the bazaar</li>
<li>
Development of technology demonstrations for shows, presentations and training.</li>
Development of technology demonstrations for shows, presentations and
training.</li>
</ul>
<h3>
Professional services</h3>
<ul>
<li>
Set up a support contract and support systems for confidential, email,
phone and onsite support.</li>
<li>
Set up the Open Scene Graph Professional License (OSGPL) which is conventional
proprietary license that allows companies to distribute projects that do
not comply with the terms of the LGPL, such as turn key systems.</li>
<li>
Develop training courses.</li>
</ul>
For further details on osgMP, osgSim, OSGPL licensing, professional support,
training and consultancy services contact Robert Osfield at <a href="mailto:robert@openscenegraph.com">robert@openscenegraph.com</a>
or Don Burns at <a href="mailto:don@andesengineering.com">don@andesengineering.com.</a>
<br>
<a href="mailto:don@andesengineering.com"></a>
</body>
</html>