COLLADA Tools v3.05B
--------------------------------------------------

1.0 NEW FEATURES

1.1 FCollada:
    - FCDETechnique plugins allow you to generate structures directly for your COLLADA extra data,
      with full archiving support.
    - FMArray::insert(iterator, size_t, const T&) function now has optional 4th argument to specify if the new elements are initialized.
    - FCDocument now imports/exports its <extra> elements.
    - FCDCamera now uses an enumerated type for its projection type.
    - FUFileManager::GetModuleFolderName was added to determine the directory that the FCollada dll is in (rather than the application).
    - FUFileManager::GetFolderFromPath was added as a helper function.
    - FUSemaphore and FUCriticalSection was added for OS independent synchronization.
    - FUSynchronizableObject was added as a convenience class for coarse synchronization of an entire class.
    - FUThread was added for OS independent threading.
    - Added parameterization through-out FCollada. The FREE version of the SDK does contain the FCDParameterAnimatable
      which allows you to access the FCDAnimated* directly for a parameter, rather than going through FCDocument->FindAnimatedValue.


1.1.1 IMPORTANT: non-backward compatible change.
    - Animations on FCDGeometrySources are not "Stride-aware" anymore. 
      There is no backward compatibility for per-vertex position/color animations.


1.2 ColladaMax:
    - Can now import and export .MAX external references. These may generate incoherent files, since COLLADA doesn't
      define the behavior of a mixed-format document.
    - Added support for 64-bit compilation and 3dsMax 2008.

1.3 ColladaMaya:
    - Added support for 64-bit compilation.

1.4 ColladaMotionBuilder:
    - A large number of bug fixes to make this tool much more convenient.


2.0 API CHANGES

2.1 FCollada:
    - FCollada::LoadDocument has been renamed to FCollada::LoadDocumentFromFile.
    - The version of the FCollada::LoadDocument function that returns a FCollada document is now deprecated.
    - Please use FCollada::NewTopDocument and FCollada::LoadDocumentFromFile instead.
    
    - FCollada::RegisterPlugin is deprecated. Please use FCollada::GetPluginManager()->RegisterPlugin instead.
    - FColladaPluginManager::AddPlugin and FColladaPluginManager::AddArchivingPlugin have been merged into
    - FColladaPluginManager::RegisterPlugin.

    - FColladaPluginManager::LoadDocument has been renamed to FColladaPluginManager::LoadDocumentFromFile
    - FColladaPluginManager::SaveDocument has been renamed to FColladaPluginManager::SaveDocumentToFile

    - The FCDVersion class is now placed in its own files and its comparison functions
      have been replaced by logical operators.

    - FCDLight::GetPenumbraAngle and FCDLight::SetPenumbraAngle are deprecated. The penumbra is redundant information that can be 
      represented using the outer angle and falloff angle. Add FCDLightTools::LoadPenumbra to help convert from penumbra to the
      outer angle and falloff angle representation.

    - FCDLight::HasMayaExtras and FCDLight::SetHasMayaExtras are deprecated. Please check the extra member to determine this yourself.
    - FCDLight::HasMaxExtras and FCDLight::SetHasMaxExtras are deprecated. Please check the extra member to determine this yourself.

    - FCDCamera::IsPerspective and FCDCamera::IsOrthographic are deprecated. Please use FCDCamera::GetProjectionType instead.
    - FCDCamera::SetPerspective and FCDCamera::SetOrthographic are depreacted. Please use FCDCamera::SetProjectionType instead.

    - FCDSceneNode::IsJoint is deprecated. Please use FCDSceneNode::GetJointFlag instead.
    - FCDPhysicsRigidConstraint: enabled and interpenetrate are now floats and correctly animatable.

    - FCDEffectParameterList has been taken out and all the FCDEffect search functions are now within the FCDEffectTools namespace.
      Due to the large amount of code this is deprecating, we have NOT kept all these functions as deprecated: they are simply deleted.
    - The FCDMaterialInstance::FlattenMaterial, FCDMaterial::Flatten and all the related functions have been deprecated. Feeling Software
      does not use or recommend the usage of these/equivalent functions.

    - The OPACITY texture channel has been removed from FCollada and ColladaMax.
      Always use TRANSLUCENCY instead of OPACITY.

    - The macros DEBUG_OUT1, DEBUG_OUT2, ERROR_OUT1, ERROR_OUT2, WARNING_OUT1 and WARNING_OUT2 have been modified
      to use preprocessor variable argument lists. You can simply use DEBUG_OUT, ERROR_OUT and WARNING_OUT instead.

    - FUObject has now been split into its RTTI and tracker versions:
      FUObject is a very simple, light-weight class that enables RTTI functionalities.
      FUTrackable is used for containment and tracking. Containment and tracking is useful
      to avoid dangling pointers: the FUTracker-based object or list template will be informed of the release of the object.

      FUObjectPtr has been renamed FUTrackedPtr and only accepts FUTrackable.
      FUObjectRef remains FUObjectRef, but multi-containment is not allowed anymore:
      the feature remained completely un-used for more than one year...
      FUObjectList has been renamed FUTrackedList and only accepts FUTrackable.
      FUObjectContainer remains FUObjectContainer, but multi-contained is not allowed anymore for similar reasons.

    - FCDEffectParameters are now two templates for the value parameters: FCDEffectParameterInt, FCDEffectParameterBool
      and FCDEffectParameterString are based on a non-animatable parameter template. FCDEffectParameterFloat,
      FCDEffectParameterFloat2, FCDEffectParameterFloat3, FCDEffectParameterVector and FCDEffectParameterMatrix are based
      on an animatable parameter template. We're also adding the FCDEffectParameterColor3 and FCDEffectParameterColor4
      template definitions for the standard effect color values.
      IMPORTANT: The main impact of this change is that they now use a common accessor and mutator for the values: GetValue
      and SetValue.


2.2 FColladaTools:
    - FCProcessMeshes now accepts three flag arguments to indicate whether to triangulate, generate texture tangents, or fix the meshes 
      (GenerateUniqueIndices and FitIndexBuffers). Any combination of the flags will work as well.



3.0 BUGZILLA ISSUES RESOLVED

    ID     Product     Summary 
    -----  --------    ------------
    3.05B
    -----  --------    ------------
    573    ColladaMax  Animated visibility  
    576    ColladaMax  Transforms on instances of skinned meshes  
    578    ColladaMax  3.05 r8687 FREE - Animation curve export introduces new k...  
    581    ColladaMB   3.05 r8687 FREE - MB export disfigures some meshes  
    582    ColladaMaya Sampling of IK chains is broken in 3.05A  
    583    ColladaMaya 3.05 r8687 FREE - Maya 2008 improperly exports rigged mes...  
    587    ColladaMaya 3.05 r8687 FREE - Maya import rotates texture and causes ...  
    589    All Tools   Uninstalling plugins on Vista leaves all Start Menu links  
    590    ColladaMax  Scale animations using ScaleXYZ controller aren't exported  
    591    ColladaMaya Instancing problem, and patch that adds option to avoid it.  
    592    ColladaMB   r9168 - MB exports bezier curve tangents with incorrect a...  
    -----  --------    ------------
    3.05A
    -----  --------    ------------
    365    FCollada    Can't access data in top-level <extra>  
    534    FCollada    Build system not consistent in the FArchiveXML dir  
    558    ColladaMaya Character with multiple target blendshape  
    559    ColladaMax  Triangulated mesh export leads to normal problems on import  
    561    ColladaMaya colorSets export problem (using first color instead of wh...  
    562    FCollada    Non null-terminated string used in Linux  
    564    ColladaMaya ColladaMaya fails to export influence weights for morphed...  


4.0 IMPORTANT REVISION CHANGELOG

    3.05B
    [9196 by glaforte] ColladaMB: fixed the export of animation key tangents. 
    [9176 by glaforte] ColladaMaya: added Maya 2008 configuration on the Mac OSX. Also, the MacOSX and Linux are now based on top of <stdint.h> 
    [9159 by staylor] ColladaMax: Fixed export of ScaleXYZ controllers - used Max fn IsAnimated rather than keyframe test to determine export requirements 
    [9148 by staylor] ColladaMax: Fixed 2008 build path proj setting Fixed UV coordinate, mirror and wrap export/import.  The derived algorithm is robust and 100% accurate within the capabilities of the system.  Importing both a frame translation and a UV offset in Max will throw a warning and import only the UV offset. FMath: Trivial change removes an unnecessary cast FCollada: Added new warning for unsupported UV's parameters in Max 
    [9107 by glaforte] FCollada: fixed the FCDGeometryPolygons::Triangulate tool to work with long strips.. 
    [9069 by vlaforte] FCollada: Recursively clone a scene node's children if the top node was required to. This is a user-suggested fix. 
    [9060 by glaforte] ColladaMax: added languages 407 and 408 to the installer 3dsMax search.
    [9037 by glaforte] ColladaMaya: fixed the support for sampling. 
    [9030 by glaforte] ColladaMB: consider any skinned mesh that has no influences as a static mesh. 
    [9010 by glaforte] ColladaMB: added post-processing in order to properly set/reset the deformable flag. Fixed the export of rotation angle animations through the non-sampling export process. 
    [8985 by glaforte] ColladaMax: import the position curves as 3 float curves, rather than 1 3D position curve. 
    [8792 by glaforte] FArchiveXML: this ensures that the '#' sign correctly prefixes the <skeleton> element content. 
    [8741 by glaforte] FCollada: more laxity with regards to imported entity IDs. 
    [8607 by glaforte] FArchiveXML: fixed (again), the cloning on export of the light extra parameters and the visibility extra parameters. 
    [8582 by glaforte] FCollada: Added SconsCommon.py to the installer and incremented the release build letter. 
    
    3.05A
    [8566 by glaforte] ColladaMaya: fixed the Linux build. 
    [8545 by glaforte] FViewer: a small fix within the support for video textures and integrated a fix for an important memory-out-of-bounds-write exception already fixed on the main branch that wasted a lot of my time. 
    [8531 by glaforte] COLLADA Tools: some fixes for x64 compilation. 
    [8517 by glaforte] Fixed the import of Maya cameras in 3dsMax. Fixed the import of morph target weight animations. 
    [8513 by vlaforte] Adding a user-fix in a few classes that didn't have an implementation of DeleteThis(). 
    [8493 by glaforte] FCollada: small fix in the asset-standardization of <lookAt> transforms: don't scale the Up vector by the length factor. 
    [8470 by glaforte] Fixed up the ColladaMaya and ColladaMax installers. Added 3dsMax 2008 support to the ColladaMax installer. Fixed up the FCProcessImages project to correctly link against the 32-bit or 64-bit version of DevIL. Added XCopies and IF NOT EXIST in some post-build steps as well. 
    [8455 by glaforte] ColladaMaya: fixed up ColladaMaya after the globalBuilder removal task. Also includes one user-suggested fix to the controller library. 
    [8362 by glaforte] FUtils: fixed some Linux-found issues. 
    [8346 by glaforte] FCollada: fix the cloning of material instances. 
    [8350 by glaforte] FArchiveXML: fixed the export of <triangles>/<polylist>. This fix comes from the main branch... 
    [8347 by glaforte] FCollada: fixed the cloning of material instances. 
    [8148 by glaforte] ColladaMaya: Fixed the no-visual scene import of material libraries. 
    [8137 by glaforte] Added support for 3ds Max 2008 and fixed all the warnings/deprecations.. 
    [8092 by glaforte] ColladaMaya: Fixed bad crash when inter-changing the material of an imported mesh. 
    [8082 by glaforte] FViewer: improved the support for multiple UV sets. Was related to the shader format and the vertex format not agreeing about the maximum number of uv sets.. Now: both support three UV sets. Also, added PREMIUM_AMBIENT_OCCLUSION. This #define is NOT SET BY DEFAULT. This spares us the secondary color vertex data used by that algorithm (4 bytes per vertex). 
    [8077 by glaforte] Fixed a couple of typos in the ColladaMaya/Maya 2008 installer. 
    [8067 by glaforte] FViewer: Partial revert of the sizeof(FMVector3) removal: some are meant to be sizeof(FMVector3).. 
    [8059 by glaforte] Don't output an error on valid, empty, polygons sets, just a warning. Also corrected a couple of memory leak with regards to FCollada::CancelLoading. 
    [8053 by glaforte] Merged in revision 8051 from the main branch. 
    [8020 by glaforte] FViewer: removed annoying ERROR_OUT in FTransform, fixed the import of lines/fans/strips, added assertion for the bad vertex-packing code.. 
    [8017 by glaforte] FCollada: a couple of files missing from the previous check-in. 
    [8003 by glaforte] FCollada: Fixed FCDGeometryPolygons::TestPolyType(). FViewer: Fixed the tesselating of n-sided polygons. 
    [7972 by glaforte] FViewer: Corrected another issue with the import of ColladaFX shaders in the viewer. Corrected one performance issue in FCollada. 
    [7970 by glaforte] FRenderer: fixed ColladaFX shader generation and fixed import of cube maps. 
    [7968 by glaforte] PhysicsAgeia: fixed the debugging rendering information: BeginDynamicRendering and EndDynamicRendering must now be called within the PostRender callback of the plug-in. 
    [7954 by vlaforte] Merged revision 7953 from the main branch to the ColladaPremium branch. 
    [7943 by glaforte] Fixed the build II. Also fixed a typo. 
    [7891 by glaforte] ColladaMax: reverted the changes to the VCPROJ from the previous revision.. we're not really interested in Release debug symbols. 
    [7888 by glaforte] ColladaMax: fixed inter-operability between 3dsMax and Maya with regards to texture placement parameters. 
    [7870 by glaforte] FCollada: A couple of fixes for the up-axis conversion tool. 
    [7858 by glaforte] ColladaMaya: if we didn't create the "colladaDocuments" global DG node, delete it and create our own. Fixed the ever-increasing-color-set-size issue. 
    [7853 by glaforte] ColladaMaya: fixed the export of missing color values in the color sets to use white rather than the whatever value the first color may have. This fix is strongly based on a proposed fix by Ray Donnelly. 
    [7799 by glaforte] FArchiveXML: Write out the correct primitive count for LINES polygons sets. 
    [7781 by glaforte] ColladaMax: added check the consistency of the TriObject output by the importer and fixed it too.. 
    [7767 by glaforte] ColladaMB: Fixed the export of strips when MB was generating 1-triangle strips... we were not offseting the index retrieval properly. 
    [7747 by glaforte] COLLADA Tools: Ensure that the installation folder is created before attempting to blindly create the uninstaller. 
    [7673 by glaforte] Parameterized the rigid body parameters on the entity class. 
    [7666 by vlaforte] glaforte The Feeling Viewer now uses shared libraries on Linux. 
    [7622 by glaforte] FCollada: user submitted fixes for physics material instance export and retrieving the number of curves in an animated value. Also on my own: removed by GetValues() from FCDAnimated. 
    [7547 by glaforte] FViewerGUI: Added my own parameter editor, based on wxGrid. Currently works for the edition of primitive types (float, int32, vectors..) and expands all existing object/list parameters. FCollada: Added parameters for the FCDLibrary template. Fixed up the FCDParameterObject::GetObject function. 
    [7544 by aleung] ColladaMaya: fixed the build caused by the FUObjectList change: we don't support casting from FUObjectContainer to pvector
    [7535 by glaforte] ColladaMax: Fixed crashes when importing line lists. 
    [7486 by glaforte] FCollada: parameters prototype 3 includes FCDParameterList and (hopefully) fixes the build. NOTE: there's a new "StructureChanged" flag that competes with "NewChild" flag. Fixed the FCollada solution matches for project configurations. Fixed the assigned of a FUObjectPtr to a FUObjectRef. 
    [7484 by aleung] FViewer: added optional parameter to SetDocument which determines whether to reset the camera or not SetUpAxis no longer sets the transform to a hard-coded value; it uses the same eye and target values, and only changes the up value 
    [7478 by glaforte] FCollada: new parameter organization that will allow us to have FCDParameterAnimatable in non-PREMIUM versions of the SDK. This is useful for a better handling of the FCDAnimated objects. 
    [7476 by glaforte] FCollada: FCDParameter prototype upgrade. Now has template layer in between the #macro and the interface to reduce the code produced for each parameter. Also includes the basic animatable parameter. New types for FMVector2/3/4 and FMMatrix44.. 
    [7468 by ewhittom] FViewer: includes the removal of the static FViewer instance, so right now the application manage the created FViewer instances, and can have more than one. 
    [7462 by aleung] FCollada: semaphore's initial value can be equal to the maximum value 
    [7447 by glaforte] FViewerGUI: Correctly release the FTMouse interface when closing the main frame. 
    [7434 by aleung] FCollada: removed the Initialize and Release called for FCollada in DllMain; we cannot safely call LoadLibrary and FreeLibrary from DllMain 
    [7426 by aleung] FViewer: FTMouse is now an FUObject, which makes tracking it much easier since it is given to the application 
    [7415 by aleung] FCollada: fixed exception when FreeLibrary with bad data; need to initialize all the members of PluginLibrary 
    [7402 by aleung] FCollada: added FUThread, an OS independent thread, though only implemented for Windows for now. 
    [7274 by aleung] FCollada: added FUCriticalSection, currently only support WIN32 added FUSynchronizableObject, which is a convenience class with a critical section in it... currently this class is not being used; I'll delete it in a few days if there's no real need for it 
    [7201 by ewhittom] FViewer & related: Added the FViewer::SetDocument method, which performs maintenance operations related to basic document loading. This replaces the now deprecated function FViewer::LoadDocument and its equivalents. 
    [7157 by staylor] FMath: Added GetAxis function to FMMatrix44 to return references to its axis as FMVector3 Added XYZ and TRANS enum to allow named access to matrix axis/vector components etc. FViewer: Disabled the transform reset on animated cameras.  This reset meant that it was impossible to modify the camera code from an external source. FIntersect: Added closest approach function for a point and line. FTransform: Implemented custom camera transform handling code.  Although implemented, this is a work in progress and needs much more testing and tweaking. 
    [7124 by staylor] FCollada: Integrated the NewChild flag into mainstream collada operation, replacing DirtyFlag at all AddXXXX/RemoveXXXX functions. FViewer: Synchronize now also checks for the NewChild flag. FUtils: Changed the function signature for FUDebug::DebugOut.  This is because a public function and private function, both with var_args and identical initial signatures are actually pretty ambigous to the compiler, and it is possible it will link you to the wrong function (giving an Error: Private function). 
    [7047 by ewhittom] FCollada: Set the default falloff exponent to 1.0f for lights. 
    [7045 by ewhittom] FViewer: Fixed lighting and refactored the "spotlight effect" shader code. Spot lights with no penumbra work again. 
    [6990 by aleung] FColladaTools: added the FCSetDefaultCamera tool which will add the FS_EXTRA_CURRENT_CAMERA extra to the document with a reasonable camera position 
    [6987 by aleung] FViewer: added some helper functions for default camera operations to the IRenderer interface added the FS_EXTRA_CURRENT_CAMERA <extra> tag to indicate what the current camera's transform is load the FS_EXTRA_CURRENT_CAMERA <extra> tag if it is present FViewerGUI: when saving, append an extra on the COLLADA node to specify what the current camera's transform is
    [6952 by aleung] FCollada: fixed GenerateTextureTangentBasis so it does not create more tangent indices than position indices.  The problem was due to rounding errors with IsEquivalent because of different comparisons for filling and retrieving from the TangentVertexList; fixed by using pointer comparison instead of float equivalence. FColladaTools: FCProcessMeshes now accepts an optional "-gi" to also call GenerateUniqueIndices 
    [6944 by glaforte] ColladaMax: Fixed the project file, so that it compiles. Yes, LIBCMTD is *very* important in this plug-in. 
    [6911 by vlaforte] Modified the compile scripts so that the installation step will work in Retail. 
    [6889 by vlaforte] Modifications that are Linux-related. All four projects now compile under the Fedora machine. 
    [6887 by vlaforte] Adding the scripts to compile all 4 projects. Modifying code that we know doesn't compile on Linux (environ vs _environ). 
    [6883 by glaforte] FArchiveXML: Fixed issue with doubly-loading the per-vertex sources. FCollada: fixed the over-generation of COLLADA ids. 
    [6870 by glaforte] FCollada: Added archiving of the "set" attribute for per-vertex sources, using the "set" information from the first polygons set. This allows us to move all texture coordinate/tangent/binormal sources into the per-vertex sources during GenerateUniqueIndices and still archiving in/out fine! 
    [6851 by vlaforte] PluginManager: Removing the .dll file extension from the files the manager look at.. it's not necessary and will speed things up at initialization time. (In IE and Firefox, there is a /plugins/ subdirectory with a bunch of dll's that FCollada looks through..) 
    [6847 by staylor] Fixed extraction of audio from videos for uploads  
    [6836 by aleung] FCollada & ColladaMaya: fixed tangents for complex spotlight animation: in FCDLightTools::LoadPenumbra and DaeAnimationLibrary::OffsetAnimationWithAnimation, fixed the tangent resolution... we shouldn't interpolation the tangents between keys. We should instead add the tangent of the offset animation. This means we can merge two passes into one. 
    [6822 by aleung] FCollada: removed/deprecated the hasMaxExtras and hasMayaExtras variables and their getters/setters 
    [6820 by aleung] FCollada: added interpolation for the inTangents and outTangents on bezier when calling FCDLightTools::LoadPenumbra. This is required because we are offsetting the outputs by a non-constant amount ColladaMaya: fixed incorrect export of tangents (made possible by fix in FCollada) fixed possible crash if not using beziers for penumbra animation 
    [6815 by jffortin] Added a COLLADA tool to save/export files (FCExport).
    [6805 by aleung] FCollada: deprecated penumbra; it now just returns a value that can be set and get but does not do anything with it! Do not use it. FArchiveXML: on import, translate the penumbra to the falloff and outer angles. Means we can import Maya spotlights in Max! no longer care about exporting penumbra ColladaMaya: no longer uses FCollada penumbras implemented import of falloff and outer angles currently exporting does not work for penumbras... this will be fixed next week 
    [6788 by aleung] ColladaMaya: continue animation refactoring moved the sampling code back into the HIAnimCache better use of visibility in HIAnimCache and DaeSceneGraph removed the CSceneWalker and moved the few remaining methods to DaeSceneGraph 
    [6784 by aleung] ColladaMaya: continue animation refactoring pretty up the code, remove unnecessary include 
    [6781 by ewhittom] FViewer: Fixed bug with shared contexts. Fixed framerate issue in video production. 
    [6772 by ewhittom] FViewer: Fixed pbuffer creation (win32). Cg shaders and parameters are, apparently, tied to the GLRC at creation time. Rendering with a different GLRC will completely invalidate the Cg programs. I refactored the PBuffer creation in FRenderer_Win32.cpp, and eleminated these DUMMY_CONTEXT macros. Added render context management methods to the IFSVideoProductionListener interface, which is now mandatory. Doing so gives us the possibility to multithread video production in the application. 
    [6766 by aleung] ColladaMaya: refactor the animation export to not store all the plugs, only those with animations attached to them (this is the minimum necessary for driven curves) small optimization in DaeAnimationCurve where we are doing the same work for all the keys (just take it out of the loop) removed DaeAnimatedElement.necessary, which is not being used removed CAnimCache::IsPhysicsConstraint, which is not being used replicated r6762 to main branch to fix exporting of driven curves so I can work with them properly 
    [6750 by glaforte] FCollada: Public Bugzilla #365: Added support for <extra> at the <COLLADA> element level. 
    [6745 by glaforte] FCollada: the sample counter extra-technique plug-in is now working again. May need to profile to see what the impact really is. 
    [6741 by glaforte] FCollada: PluginManager refactoring: renamed a few functions and re-structured it for the upcoming task of making extra-technique plug-ins a permanent reality. The FCDocument object now records all the internal extra trees. Finally, fixed FColladaTest and split FCDVersion into its own files. 
    [6728 by jffortin] Fixed misspelling in the doxygen comments of the FCDPhysicsShape::OwnsPhysicsMaterial function. 
    [6713 by staylor] Fixed regression in Morph targets 
    [6707 by glaforte] FViewer: Some performance optimizations: don't run through empty opaque/translucent queues, computational improvements to the per-polygon depth sorting algorithm. 
    [6694 by ewhittom] Ensures the compatibility with any number of lights. This fixes possible issues with revision 6684. 
    [6685 by glaforte] Modified the FRShaderManager::Use function so it's more readable. 
    [6680 by staylor] FViewer: Fixed small regression in XRef scene update introduced by Update/Render optimizations. Removed extra Render function with dirty boolean from FRSceneNode, it is no longer possible to evaluate. 
    [6676 by staylor] FViewer: Fixed missing FRSceneNode::UpdateScene call not merged correctly from 3.04? Text-replace on GL_CHECK macro to remove the possibility of different control flow for each configuration. 
    [6595 by ewhittom] FViewer: Fixed the shader degression. We now discard the Phong|Blinn models before discarding lights or texture units. Optimized (thanks to Christian) the worst case scenario shader to less than 64 instructions (for noting! our test machine still refuses to load the program! - I won't optimize this to less than 48 instructions...). 
    [6569 by ewhittom] FViewer: Added the FRShaderLimits class. It retrieves the implementation-dependent constants related to ARB shader support. 
    [6557 by ewhittom] FCollada: Added FCDExtra::HasContent method. FArchiveXML: Checks if the library extra is empty or not before discarding the write. 
    [6531 by ewhittom] FViewer: Added warnings in extension loading. 
    [6525 by ewhittom] Added basic support of animated look-at transform. 
    [6505 by staylor] Fixed release of XML data on save Began process of removing uneccessary FACurve translations. Fixed small memory leak on release of Shader parameters when creating default orange shader 
    [6482 by staylor] Fixed memory leak on ImportObject Fixed debug profile to generate code consistent with the solution profiles. (Fixes linking warnings) Fixed hanging pointer on FULogFile deletion 
    [6476 by glaforte] FRenderer: Let the FR cameras have a FOV closer to the FCollada ones. 
    [6457 by staylor] Fixed assert behaviour by setting a Functor callback to handle failed assert events. 
    [6388 by ewhittom] FViewer: Added the UpdateDataStore method in FRIndexBuffer, updates the buffer data on the GPU. Adder the FRIndexBufferComparator class. It can sort arrays of indicies for both TRIANGLES and QUADS polygon types. The sort works by adding the polygon vertex positions in model space, and then doing an orthogonal projection of this position against the camera forward vector in model space. FCollada: Added some template specializations for the FMath::Wrap method. 
    [6375 by staylor] Removed call to CloneMorphControllers: After investigation it is not needed, and actually will destroy data in the scene through repeated load/save iterations Added some sanity checks for loaded geometry data, to try and not crash the system on bad data load.  TODO: Evaluate further potential vulnerabilities and de-vulnerabilize them. Removed DEBUG checks for index consistency in FRControllerInstance, as the FUAssert keeps crashing ActiveX. 
    [6365 by ewhittom] FViewer: Added utility to fetch video dimensions. 
    [6355 by vlaforte] Fiewer: Implemented the GetBackgroundColor function, which previously always returned 0. 
    [6352 by jffortin] Added a callback to check if we should cancel the loading of the FCOLLADA document. 
    [6339 by ewhittom] FViewer: Added texture filters in the engine. Currently, only the HSV filter is available. Filtering occurs at translation, when the image loads. It is supported in theory by all image types (1D, 2D, video, 3D and cube), but currently only tested with 2D images. 
    [6317 by jffortin] Added a length parameter to the ImportFileFromMemory functions. 
    [6300 by staylor] Fixed URI GetPath with query. 
    [6281 by staylor] Fixed threading issue with video release order 
    [6205 by ewhittom] FViewer: Added application-driven sound playback for video textures. Only available on Windows. It currently uses 8 buffers of 1 second each. These buffers are filled concurrently by another thread, and queued in the audio device. Currently, pausing the sound streams forces synchronization. 
    [6173 by ewhittom] FViewer: Added the BGR image format, and removed the software RGB-BGR conversion. Began to work with video sounds. 
    [6169 by ewhittom] FViewer: Added video textures for Win32. It uses the user's local video codec to decode AVI files. Added a dependency to the "Video For Windows" library (Vfw32.lib). Added the FRImageVideo class. It does not contain much, but in the future it will handle streaming and such. Cleaned FRTexture (unused types). 
    [6115 by staylor] Minor refactor of the animation clips, moving to a more COLLADA like structure with animation_instances rather than saved curves also removed bunch of obsolete includes I noticed 
    [6080 by glaforte] Added copyright headers to the archiving files. 
    [6075 by vlaforte] FArchiveXML: Fixed bug#121 in Bugzilla: made it possible for texture params to be directly under the technique common or effect, not only the profile common node.
    [6053 by glaforte] Fixed up the import of animation channel targets with matrix elements. This is especially important for morph weight animations and per-vertex position animations.
