Wild Magic 4.1 to 4.2 Update Log

//----------------------------------------------------------------------------
4.0.1 (2007/01/15) ToolImportExport/Max9ToWm4/*.*

Renamed Max8ToWm4.* files to Max9ToWm4.* and created the project directory
Max9ToWm4.  Replaced Max8ToWm4 by Max9ToWm4 in WClassDesc.cpp and
WSceneExport.cpp.  The MAX8_PATH environment variable is renamed to
MAX9_SDK.  A new environment variable is MAX9_PLUGINS.  (Autodesk now has
a separate directory tree for the Max SDK.)

//----------------------------------------------------------------------------
(2007/01/12) The file WildMagic4p1FoundationImagics.zip contains only the
LibFoundation and LibImagics projects, which are free to use without ownership
of 3D Game Engine Design, second edition. If you have Wild Magic 4.0 from the
book CD-ROM and you have installed WildMagic4p1Update.zip, you do not need to
install WildMagic4p1FoundationImagics.zip. That said, the LibImagics projects
in WildMagic4p1FoundationImagics.zip have references to files that do not
exist in the distribution. These were part of contract work and not available
to others. The project files also had Visual Source Safe information embedded
in them. The references and source control information now have been removed.
 
//----------------------------------------------------------------------------
4.0.1 (2007/01/11) LibFoundation/Intersection/Wm4IntrCircle2Circle2.cpp

The Find() function computes the sqrt of a number that is theoretically
nonnegative.  Numerical round-off errors can make that number slightly
negative, so it must be clamped to be nonnegative before sqrt is called.
//----------------------------------------------------------------------------
4.0.2 (2007/01/08) LibRenderers/OpenGLRenderer/Wm4OpenGLResourcesLR.cpp

In OnLoadTexture, the switch statement had a case for
SamplerInformation::SAMPLER_CUBE.  This case fails to set the wrap modes for
the texture (so the CLAMP_EDGE default was always being used).  Lines of code
have been added to set the wrap mode that the texture requests.
//----------------------------------------------------------------------------4.0.2 (2006/12/21) LibGraphics/Terrain/Wm4ClodTerrain.cpp

When simplifying the ClodTerrainPage objects, ClodTerrain::Simplify() was
using the ClodTerrain model-eye and model-dir values. This caused the pages
after wrap-around to simplify incorrectly. Now the world-eye and world-dir
values are inverted to model-eye and model-dir on a per-page basis after the
wrap-around, leading to correct simplification.
//----------------------------------------------------------------------------
4.0.1 (2006/12/02) LibFoundation/Distance/Wm4DistSegment2Segment2.cpp
4.0.1 (2006/12/02) LibFoundation/Distance/Wm4DistSegment3Segment3.cpp

The case of parallel segments had an incorrect expression (fS1 needed to use
-fLambda, not fB0).  The lambda value now uses an average related to b0 and
b1 to guarantee symmetry of the function call:  dist(seg0,seg1) =
dist(seg1,seg0).
//----------------------------------------------------------------------------
4.0.3 (2006/11/25) LibGraphics/Rendering/Wm4Renderer.h
4.0.3 (2006/11/25) LibGraphics/Rendering/Wm4Renderer.inl

Added set/get access to the m_pkGeometry member.  This is needed for global
effects to access the geometry.  Promoted SetGlobalState, RestoreGlobalState,
ApplyEffect, SetWorldTransformation, and RestoreWorldTransformation from
protected to public to allow global effects to use them.
//----------------------------------------------------------------------------
4.0.3 (2006/11/25) LibGraphics/Rendering/Wm4Renderer.cpp

Renderer::Draw(Geometry*) had an assertion that the attached effect was
a ShaderEffect.  An incorrectly designed Effect-derived class might cause
its objects to attach themselves to the Geometry object, causing the
assertion to fire.  The assert has been commented out and the drawing occurs
only if the effect is a ShaderEffect.  You may uncomment the assert to trap
the problem.
//----------------------------------------------------------------------------
4.0.2 (2006/11/24) LibGraphics/ObjectSystem/Wm4StreamVersion.h
4.0.2 (2006/11/24) LibGraphics/ObjectSystem/Wm4StreamVersion.cpp
4.0.1 (2006/11/24) LibGraphics/SceneGraph/Wm4IndexBuffer.h
4.0.1 (2006/11/24) LibGraphics/SceneGraph/Wm4IndexBuffer.inl
4.0.1 (2006/11/24) LibGraphics/SceneGraph/Wm4IndexBuffer.cpp
4.0.4 (2006/11/24) LibRenderers/Dx9Renderer/Wm4Dx9DrawElements.cpp
4.0.2 (2006/11/24) LibRenderers/OpenGLRenderer/Wm4OpenGLDrawElements.cpp
4.0.3 (2006/11/24) LibRenderers/SoftRenderer/Wm4SoftDrawElements.cpp

Added an "offset" data member to IndexBuffer.  This allows an application to
specify the starting index to be used when drawing a geometric primitive.
//----------------------------------------------------------------------------
[NO VERSION] (2006/11/14) WildMagic4/makefile.wm4
[NO VERSION] (2006/11/14) LibApplications/OpenGLApplication/makefile.wm4
[NO VERSION] (2006/11/14) LibApplications/SoftApplication/makefile.wm4
[NO VERSION] (2006/11/14) LibFoundation/makefile.wm4
[NO VERSION] (2006/11/14) LibFoundation/makeprj.wm4
[NO VERSION] (2006/11/14) LibGraphics/makefile.wm4
[NO VERSION] (2006/11/14) LibGraphics/makeprj.wm4
[NO VERSION] (2006/11/14) LibImagics/makefile.wm4
[NO VERSION] (2006/11/14) LibImagics/makeprj.wm4
[NO VERSION] (2006/11/14) LibPhysics/makefile.wm4
[NO VERSION] (2006/11/14) LibPhysics/makeprj.wm4
[NO VERSION] (2006/11/14) LibRenderers/OpenGLRenderer/makefile.wm4
[NO VERSION] (2006/11/14) LibRenderers/SoftRenderer/makefile.wm4
[NO VERSION] (2006/11/14) SampleFoundation/makeapp.wm4
[NO VERSION] (2006/11/14) SampleFoundation/makefile.wm4
[NO VERSION] (2006/11/14) SampleGraphics/makeapp.wm4
[NO VERSION] (2006/11/14) SampleGraphics/makefile.wm4
[NO VERSION] (2006/11/14) SampleImagics/makeapp.wm4
[NO VERSION] (2006/11/14) SampleImagics/makefile.wm4
[NO VERSION] (2006/11/14) SamplePhysics/makeapp.wm4
[NO VERSION] (2006/11/14) SamplePhysics/makefile.wm4

Added support for CYGWIN.
//----------------------------------------------------------------------------
[NO VERSION] (2006/11/14) LibRenderers/OpenGLRenderer/GTglExtensions.h

Minor modification to support __CYGWIN__.
//----------------------------------------------------------------------------
4.0.1 (2006/11/14) LibApplications/Dx9Application/TreeControl/TreeControl.cpp
4.0.1 (2006/11/14) LibApplications/OpenGLApplication/TreeControl/TreeControl.cpp
4.0.1 (2006/11/14) LibApplications/SoftApplication/TreeControl/TreeControl.cpp

Cygwin does not support InitCommonControlsEx.
//----------------------------------------------------------------------------
4.0.1 (2006/11/14) LibFoundation/System/Wm4Platforms.h

Added support for Cygwin 1.5.21_1 and changed the preprocessor define MINGW
to __MINGW32__.
//----------------------------------------------------------------------------
4.1.0 (2006/11/05) LibFoundation/NumericalAnalysis/Wm4PolynomialRootsR.h
4.1.0 (2006/11/05) LibFoundation/NumericalAnalysis/Wm4PolynomialRootsR.cpp
4.0.6 (2006/11/05) LibFoundation/Wm4Foundation.h
4.0.5 (2006/11/05) LibFoundation/Wm4FoundationPCH.h

New files to support more robust root finding for polynomials of degrees 1
through 4, using rational arithmetic.
//----------------------------------------------------------------------------
