From 90c30f4e5d1eedfd4dc6c6a227d349fde27397b9 Mon Sep 17 00:00:00 2001 From: Shon Ferguson <shonferg@users.sourceforge.net> Date: Sat, 22 Jul 2006 18:23:01 +0000 Subject: [PATCH] Updated change log for version 0.5.6 --- change_log.txt | 648 +++++++++++++++++++++++-------------------------- 1 file changed, 298 insertions(+), 350 deletions(-) diff --git a/change_log.txt b/change_log.txt index 0916cc46..1daf4715 100644 --- a/change_log.txt +++ b/change_log.txt @@ -1,364 +1,312 @@ ==Version 0.2== -2005/10/13 - * Made NiSkinData and the bone nodes it references aware of each other so they - can be properly destroyed. - * Added BlocksInMemory() function to verify that all blocks are now dying when - the root block dies. - * Made the bone influence flag automatic. - * Changed NiNode Print() function to asString() as it should have been and - moved it to the cpp file. - * Added a readout of a list of skin data blocks that are connected to each - NiNode for testing. - * Fixed other functions that were still Print() instead of asString() -2005/10/14 - * Finished up NiSkinData block. -2005/10/15 - * Automated NiSkinInstance Skeleton Root attribute and AController Target Node - attribute. All back references should now be automatic. -2005/10/16 - * Fixed bug in Bounding Box attribute Write() function - * Added Write() Function for NiKeyFrameData, NiTextKeyExtraData, and - NiStringExtraData - * Added AExtraData class with a proper index attribute. ExtraData blocks will - now be part of the tree as they should have been. - * Added IKeyframeData interface. - * Fixed a bug that was causing multiple copies of the same block to be written - by WriteNifTree() - * Fixed a bug that was causing the Skeleton Root in NiSkinInstance to be - calculated incorrectly. - * Added QueryKeyframeData() function. - * Finished support for NiTextKeyExtraData. - * Added Write() function for NiMoprhData - * Finished NiMorphData interface and functions. - * Added template directives for new key templates to pyniflib.i. + * Made NiSkinData and the bone nodes it references aware of each other so they + can be properly destroyed. + * Added BlocksInMemory() function to verify that all blocks are now dying when + the root block dies. + * Made the bone influence flag automatic. + * Changed NiNode Print() function to asString() as it should have been and + moved it to the cpp file. + * Added a readout of a list of skin data blocks that are connected to each + NiNode for testing. + * Fixed other functions that were still Print() instead of asString() + * Finished up NiSkinData block. + * Automated NiSkinInstance Skeleton Root attribute and AController Target Node + attribute. All back references should now be automatic. + * Fixed bug in Bounding Box attribute Write() function + * Added Write() Function for NiKeyFrameData, NiTextKeyExtraData, and + NiStringExtraData + * Added AExtraData class with a proper index attribute. ExtraData blocks will + now be part of the tree as they should have been. + * Added IKeyframeData interface. + * Fixed a bug that was causing multiple copies of the same block to be written + by WriteNifTree() + * Fixed a bug that was causing the Skeleton Root in NiSkinInstance to be + calculated incorrectly. + * Added QueryKeyframeData() function. + * Finished support for NiTextKeyExtraData. + * Added Write() function for NiMoprhData + * Finished NiMorphData interface and functions. + * Added template directives for new key templates to pyniflib.i. ==Version 0.2.1== -2005/10/21 - * Changed Float3, Matrix33, and Matrix44 from C arrays to structures that - mimic C arrays ensure accessibility from scripting languages. - * Made Get() functions for Matrix33, Matrix44, and Float3 return a value - instead of a reference. - * Fixed broken SWIG wrapper; still needs some more fixing... - * Added Makefile for building the python wrapper on linux/cygwin - -2005/10/22 - * Some fixes to the SWIG wrapper file. - -2005/10/23 - * Removed the idea of getting attributes by index, instead returning a vector - of attributes. - * Changed Set(float, float, float) to Set(Float3&) in IAttr and relevant - descendent classes. - * Added a Set(float, float, float) function to the Float3 struct to allow - setting all values in one call. - * Changed IBlock::GetAttrList() to GetAttrs() to be more consistent with other - functions. - * Made some changes to help Niflib work better with GCC. - * All the cpp files now seem to compile in GCC. - * Added list<blk_ref> template to SWIG file. - -2005/10/24 - * Capitalized interface ID constants. - * Added support for [] operator to attr_ref in Python. - * Added Python support for [] to Matrix33, Matrix44, and Float3 - * Added __setitem__ operators to blk_ref for Python. - * Un-commented attr_ref operator=(blk_ref) function. - * Changed MatrixRowN types to FloatN, merging MatrixRow3 and Float3. - * Added Matrix22 and Float2 types. - * Changed bump mapping members in Texture struct to use Matrix22. - * Changed members in BoundingBox struct to use Vector3 and Matrix33 types. + * Changed Float3, Matrix33, and Matrix44 from C arrays to structures that + mimic C arrays ensure accessibility from scripting languages. + * Made Get() functions for Matrix33, Matrix44, and Float3 return a value + instead of a reference. + * Fixed broken SWIG wrapper; still needs some more fixing... + * Added Makefile for building the python wrapper on linux/cygwin + * Some fixes to the SWIG wrapper file. + * Removed the idea of getting attributes by index, instead returning a vector + of attributes. + * Changed Set(float, float, float) to Set(Float3&) in IAttr and relevant + descendent classes. + * Added a Set(float, float, float) function to the Float3 struct to allow + setting all values in one call. + * Changed IBlock::GetAttrList() to GetAttrs() to be more consistent with other + functions. + * Made some changes to help Niflib work better with GCC. + * All the cpp files now seem to compile in GCC. + * Added list<blk_ref> template to SWIG file. + * Capitalized interface ID constants. + * Added support for [] operator to attr_ref in Python. + * Added Python support for [] to Matrix33, Matrix44, and Float3 + * Added __setitem__ operators to blk_ref for Python. + * Un-commented attr_ref operator=(blk_ref) function. + * Changed MatrixRowN types to FloatN, merging MatrixRow3 and Float3. + * Added Matrix22 and Float2 types. + * Changed bump mapping members in Texture struct to use Matrix22. + * Changed members in BoundingBox struct to use Vector3 and Matrix33 types. ==Version 0.3== -2005/10/25 - * updated Makefile to compile the complete library - * fixed small error in NiStringExtraData asString() function - -2005/11/07 - * Began work on multiple version support. - * Added NiParticleSystemController block and started on particlegroup - attribute. - * Changed the type name of some attributes to match DocSys database. - * Changed IndexAttr to LinkAttr for consistency. Type name is now "link." - * Fixed inheritance of light blocks - didn't notice they didn't work since no - official file seems to use them. - -2005/11/12 - * Finished basic version support - still need to implement new block reading - scheme for version 5 and up. - * Updated all basic blocks with correctly versioned attributes from DocSys - database. - * Updated all data blocks except for NiSkinPartition and NiControllerSequence - to react correctly to known version differences up to 10.1.0.0. - * All blocks but the above now have both a Read and a Write function. - * Sped up CreateBlock and AddAttr functions. - -2005/11/13 - * Implemented the new header scheme for reading. - * Fixed up the new header scheme for reading. All 10.0.1.0 files can now be - read as long as they don't contain unsupported block types. - * Updated the WriteNifTree function to write the correct version string and - hex number for the version requested. Still doesn't support the new header - layout. - -2005/11/14 - * Made a few fixes as I updated the Maya importer to the changes. - -2005/11/17 - * NiSkinPartition and NiLODNode are now read fully and can be examined by - calling the asString function or written back out to a file unchanged. - * NiTriStripsData has been given a public interface, ITriStripsData, so that - the triangle strips it contains can be extracted. - -2005/11/22 - * added autoconf/automake files + small changes to make things GCC compatible - again - * libtool fix in automake for compilation of shared libraries under Cygwin - * Fixed GCC compilation issues. - * Decided to start putting generated files on CVS. - * automake small improvement (now only builds the python wrapper independent - of additional library files) - -2005/11/25 - * Removed py_wrap.cpp and added a simple windows compilation script for use - with the MS Visual C++ Toolkit. - -2005/11/26 - * Fixed bug in Matrix33.Set(...) - * Matrix22.Set(...) bugfix - * Python wrapper fixes & improvements. - -2005/11/27 - * Python wrapper exception support fix. - * More Python wrapper fixes and upgrades. - * Fixed AShapeData::SetVertexCount to allow for zero normals and/or colors. - * Removed some other recent changes. - * Suppressed all the warnings except one. - -2005/11/28 - * Changed attr_nodeancestor to attr_controllertarget and fixed it so it - recognizes any controllable block, not just nodes. - * Made all struct types consistent with proper constructors. - * Cleaned up the attributes a bit, inheriting some from others so that code - isn't duplicated and special arguments are no longer needed to create any - type of attribute. - * "Name" is an attribute again; special functions to set it have been - removed. - * Synced supported blocks to the DocSys, adopting the new position of the - AParticleModifier block. - * SetTriangles() bugfix and added range checking on vertex & triangle counts. - -2005/11/29 - * Fix writing NIF header + small fix in AShapeData - * Python SWIG support for strings in structure members - -2005/12/01 - * Starting to write code for exporting x*.kf and x*.nif files. (unfinished) - -2005/12/04 - * Fixed a bug in TargetControllerAttr. - * Added IsController function. - * Added ParentAttr for use in the AParticleModifier block. - * Minor fixes for the Python wrapper. Initial try to write XKf and XNif - files. - * Rewrote children of AKeyedData using NifStream function, and added public - interfaces for them. - * Added some const qualifiers. - * Fixed NiTextKeyExtraData read & write. - -2005/12/05 - * Finished code that creates XNif & XKf files; fixed bug in - AttrControllerTarget. - * Fixed a bug I introduced yesterday. - -2005/12/08 - * Killed a zombie. - -2005/12/09 - * Added const correctness; fixed a few GCC compilation problems. - * Fixed a few bugs I introduced because I forgot to add a few consts. :oops: - * Added a function to calculate an X-aligned bone matrix from the bone vector - and the bone roll, which is convenient to have for the Blender exporter. - * Attempted to fix NiSkinData to be const friendly. - -2005/12/10 - * Fixed a bug that was introduced in the reference bone reference tracking. - -2005/12/11 - * Bone matrix calculation function (Blender helper function) fixed. - -2005/12/12 - * Removed BoneToMatrix44 helper functions. (They will be implemented in - Python in the Blender exporter.) - -2005/12/14 - * Fixed a little bug I introduced earlier. :oops: - * Corrected default state of node flags. - * Added SCons support for building niflib. - -2005/12/16 - * Corrected skeleton root calculation. - * Fixed error that caused an invalid number to be written in the unknown 4 - floats within NiSkinData. Now simply write 4 zeros. - -2005/12/18 - * Re-implemented NiMorphData with NifStream function, fixing a bug in its - Write function at the same time. - * Changed several of the attributes of NiPixelData to attributes in - preparation for creating an interface for it. - * Fixed a bug in AExtraData for version 10.0.1.0+ - -2005/12/20 - * Started adding Doxygen format documentation comments to niflib.h. - * Renamed Color structure to Color4. - * More documentation comments added. - * Renamed TextureSource to TexSource and Texture to TexDesc. - * Fixed overall transformation in NiSkinData. - -2005/12/21 - * Added more documentation. - * Renamed INode functions dealing with bind position so that each function - clearly expresses the type of matrix its dealing with - local or world. - * Removed the GNU buildsystem; SCons supersedes it. - + * updated Makefile to compile the complete library + * fixed small error in NiStringExtraData asString() function + * Began work on multiple version support. + * Added NiParticleSystemController block and started on particlegroup + attribute. + * Changed the type name of some attributes to match DocSys database. + * Changed IndexAttr to LinkAttr for consistency. Type name is now "link." + * Fixed inheritance of light blocks - didn't notice they didn't work since no + official file seems to use them. + * Finished basic version support - still need to implement new block reading + scheme for version 5 and up. + * Updated all basic blocks with correctly versioned attributes from DocSys + database. + * Updated all data blocks except for NiSkinPartition and NiControllerSequence + to react correctly to known version differences up to 10.1.0.0. + * All blocks but the above now have both a Read and a Write function. + * Sped up CreateBlock and AddAttr functions. + * Implemented the new header scheme for reading. + * Fixed up the new header scheme for reading. All 10.0.1.0 files can now be + read as long as they don't contain unsupported block types. + * Updated the WriteNifTree function to write the correct version string and + hex number for the version requested. Still doesn't support the new header + layout. + * Made a few fixes as I updated the Maya importer to the changes. + * NiSkinPartition and NiLODNode are now read fully and can be examined by + calling the asString function or written back out to a file unchanged. + * NiTriStripsData has been given a public interface, ITriStripsData, so that + the triangle strips it contains can be extracted. + * added autoconf/automake files + small changes to make things GCC compatible + again + * libtool fix in automake for compilation of shared libraries under Cygwin + * Fixed GCC compilation issues. + * Decided to start putting generated files on CVS. + * automake small improvement (now only builds the python wrapper independent + of additional library files) + * Removed py_wrap.cpp and added a simple windows compilation script for use + with the MS Visual C++ Toolkit. + * Fixed bug in Matrix33.Set(...) + * Matrix22.Set(...) bugfix + * Python wrapper fixes & improvements. + * Python wrapper exception support fix. + * More Python wrapper fixes and upgrades. + * Fixed AShapeData::SetVertexCount to allow for zero normals and/or colors. + * Removed some other recent changes. + * Suppressed all the warnings except one. + * Changed attr_nodeancestor to attr_controllertarget and fixed it so it + recognizes any controllable block, not just nodes. + * Made all struct types consistent with proper constructors. + * Cleaned up the attributes a bit, inheriting some from others so that code + isn't duplicated and special arguments are no longer needed to create any + type of attribute. + * "Name" is an attribute again; special functions to set it have been + removed. + * Synced supported blocks to the DocSys, adopting the new position of the + AParticleModifier block. + * SetTriangles() bugfix and added range checking on vertex & triangle counts. + * Fix writing NIF header + small fix in AShapeData + * Python SWIG support for strings in structure members + * Starting to write code for exporting x*.kf and x*.nif files. (unfinished) + * Fixed a bug in TargetControllerAttr. + * Added IsController function. + * Added ParentAttr for use in the AParticleModifier block. + * Minor fixes for the Python wrapper. Initial try to write XKf and XNif + files. + * Rewrote children of AKeyedData using NifStream function, and added public + interfaces for them. + * Added some const qualifiers. + * Fixed NiTextKeyExtraData read & write. + * Finished code that creates XNif & XKf files; fixed bug in + AttrControllerTarget. + * Fixed a bug I introduced yesterday. + * Killed a zombie. + * Added const correctness; fixed a few GCC compilation problems. + * Fixed a few bugs I introduced because I forgot to add a few consts. :oops: + * Added a function to calculate an X-aligned bone matrix from the bone vector + and the bone roll, which is convenient to have for the Blender exporter. + * Attempted to fix NiSkinData to be const friendly. + * Fixed a bug that was introduced in the reference bone reference tracking. + * Bone matrix calculation function (Blender helper function) fixed. + * Removed BoneToMatrix44 helper functions. (They will be implemented in + Python in the Blender exporter.) + * Fixed a little bug I introduced earlier. :oops: + * Corrected default state of node flags. + * Added SCons support for building niflib. + * Corrected skeleton root calculation. + * Fixed error that caused an invalid number to be written in the unknown 4 + floats within NiSkinData. Now simply write 4 zeros. + * Re-implemented NiMorphData with NifStream function, fixing a bug in its + Write function at the same time. + * Changed several of the attributes of NiPixelData to attributes in + preparation for creating an interface for it. + * Fixed a bug in AExtraData for version 10.0.1.0+ + * Started adding Doxygen format documentation comments to niflib.h. + * Renamed Color structure to Color4. + * More documentation comments added. + * Renamed TextureSource to TexSource and Texture to TexDesc. + * Fixed overall transformation in NiSkinData. + * Added more documentation. + * Renamed INode functions dealing with bind position so that each function + clearly expresses the type of matrix its dealing with - local or world. + * Removed the GNU buildsystem; SCons supersedes it. + ==Version 0.4== -2005/12/22 - * Deleted redundant autoconf macro file. - -2005/12/23 - * Zombie killed. - -2005/12/25 - * Improved compiler flags for windows build. - -2006/01/03 - * fixed key type in NiMorphData - -2006/01/03 - * Started work on 10.x compatibility. - * Added GetMorphKeyType, and SetMorphKeyType to IMorphData interface. - -2006/01/13 - * Supported new header formats for version 5.0.0.1 to version 20.0.0.4 in - WriteNifTree function. - * Updated texsource and texdesc attributes to the latest DocSys info. - * Finished updating all existing blocks to the latest DocSys info. - * Added NiBoolData and APSysData blocks. - * Fixed new attr_bool and attr_unk292bytes attributes so that they can be - used by blocks. - -2006/01/14 - * added -fPIC to cppflags to resolve amd64 compilation issue under linux - * fixed GCC compilation issue - * removed linux library prefix for the python wrapper - * Made internal cross-reference system more general. - * Implemented NiControllerSequence block and interface. - -2006/01/15 - * Implemented NiBoneLODController. Problems with writing connected NiSkinData - blocks, however. - * Some internal changes. - * Fixed destructor of NiControllerSequence to remove itself as the parent of - blocks it points to if it is destroyed. - * Implemented NiLookAtInterpolator. - * Several fixes to blocks that didn't have arrays expanded in the DocSys. - * DocSys is now fully implemented, so all versions 4.x and 10.x files that - it supports are now supported. - * Fixed one warning in GCC. - * Implemented GetLinks() functions for NiBoneLODController and - NiControllerSequence blocks so that their internal links will be followed - when writing files. - * scons example program compilation (see comments in SConstruct) - -2006/01/16 - * Merged NiKeyframeData and NiTransformData under AKeyframeData. - * Implemented most of the IPixelData interface. - * adding cygwin support - -2006/01/17 - * Attempted to implement IPixelData and IPalette interfaces. Yet to be - thoroughly tested. - * Debugged and tested IPixelData functions. - -2006/01/18 - * Fixed a bug that was causing a Segmentation Fault when Nif files that - had NiSourceTexture blocks were read by code compiled with GCC. - * updated python wrapper interface - * niftexture workaround - -2006/01/20 - * CPPFLAGS fix in compile examples. - * Removed two more memset calls just in case. - * fixed NiPixelData bugs - * fixed GCC warnings, fixed NIF footer - * Fixed a few more bugs in IPixelData. + * Deleted redundant autoconf macro file. + * Zombie killed. + * Improved compiler flags for windows build. + * fixed key type in NiMorphData + * Started work on 10.x compatibility. + * Added GetMorphKeyType, and SetMorphKeyType to IMorphData interface. + * Supported new header formats for version 5.0.0.1 to version 20.0.0.4 in + WriteNifTree function. + * Updated texsource and texdesc attributes to the latest DocSys info. + * Finished updating all existing blocks to the latest DocSys info. + * Added NiBoolData and APSysData blocks. + * Fixed new attr_bool and attr_unk292bytes attributes so that they can be + used by blocks. + * added -fPIC to cppflags to resolve amd64 compilation issue under linux + * fixed GCC compilation issue + * removed linux library prefix for the python wrapper + * Made internal cross-reference system more general. + * Implemented NiControllerSequence block and interface. + * Implemented NiBoneLODController. Problems with writing connected NiSkinData + blocks, however. + * Some internal changes. + * Fixed destructor of NiControllerSequence to remove itself as the parent of + blocks it points to if it is destroyed. + * Implemented NiLookAtInterpolator. + * Several fixes to blocks that didn't have arrays expanded in the DocSys. + * DocSys is now fully implemented, so all versions 4.x and 10.x files that + it supports are now supported. + * Fixed one warning in GCC. + * Implemented GetLinks() functions for NiBoneLODController and + NiControllerSequence blocks so that their internal links will be followed + when writing files. + * scons example program compilation (see comments in SConstruct) + * Merged NiKeyframeData and NiTransformData under AKeyframeData. + * Implemented most of the IPixelData interface. + * adding cygwin support + * Attempted to implement IPixelData and IPalette interfaces. Yet to be + thoroughly tested. + * Debugged and tested IPixelData functions. + * Fixed a bug that was causing a Segmentation Fault when Nif files that + had NiSourceTexture blocks were read by code compiled with GCC. + * updated python wrapper interface + * niftexture workaround + * CPPFLAGS fix in compile examples. + * Removed two more memset calls just in case. + * fixed NiPixelData bugs + * fixed GCC warnings, fixed NIF footer + * Fixed a few more bugs in IPixelData. ==Version 0.5== - -2006/06/25 - * Niflib can now operate on most or all files from the following games: - Oblivion, Civilization IV, Zoo Tycoon 2, Dark Ages of Camelot, - and Morrowind - * Cloning support for both single NIF classes and entire NIF trees. - * Major API redesign featuring: - - Type-aware smart pointers instead of a single generic blk_ref. - - Direct access to functions of all classes instead of interfaces. - - Ability to test whether one class is derived from another and do dynamic - and static casting between compatible types. - - No more attributes, values are accessed directly with functions in the - classes that hold them instead. - - Math structures now feature operations such as matrix inverse, as well - as operators such as multiplying matrices and vertices. - - Much faster operation overall due to hard-coded read and write functions - generated from the XML and no sting look-ups when accessing attributes. - - New skin API which makes skin morphed vertices availiable and makes - moving the mesh to the bind position optional. - - All symbols are now enclosed in the Niflib namespace - - Most old interfaces transitioned directly to new equivalents to reduce - code re-writing when upgrading from previous versions. - + + * Niflib can now operate on most or all files from the following games: + Oblivion, Civilization IV, Zoo Tycoon 2, Dark Ages of Camelot, + and Morrowind + * Cloning support for both single NIF classes and entire NIF trees. + * Major API redesign featuring: + - Type-aware smart pointers instead of a single generic blk_ref. + - Direct access to functions of all classes instead of interfaces. + - Ability to test whether one class is derived from another and do dynamic + and static casting between compatible types. + - No more attributes, values are accessed directly with functions in the + classes that hold them instead. + - Math structures now feature operations such as matrix inverse, as well + as operators such as multiplying matrices and vertices. + - Much faster operation overall due to hard-coded read and write functions + generated from the XML and no sting look-ups when accessing attributes. + - New skin API which makes skin morphed vertices availiable and makes + moving the mesh to the bind position optional. + - All symbols are now enclosed in the Niflib namespace + - Most old interfaces transitioned directly to new equivalents to reduce + code re-writing when upgrading from previous versions. + ==Version 0.5.4== -2005/07/15 - * Added a != operator to Vector3. - * Initialized TexCoord values to 0.0f. - * Added Visibility flag functions to NiAVObject.cpp - * Fixed NiTexturingProperty::SetTexture to set the internal hasXTexture - variables correctly. - * Fix DAoC bug with kob_m_head01.nif - * Cycle type is now set correctly on controllers created or modified by - MergeNifTrees function. - * Changed default for new controllers to 12; Active/Clamped. Should get - cycle type from NiControllerSequence. - * Add a default value for the new controller so that its active. - 1. Update niflib with bspline interpolation abilities - 2. Change mergeniftrees to default phase to 0.0f instead of 1.0f as its - a better default value. - * Determined that there are references to NiBSplineData and - NiBSplineBasisData in all NiBSplineInterpolator derived classes. - Consolidated the various references from the derived classes to the - NiBSplineInterpolator class in the XML and in Niflib. - * We can't have functions on compounds as all files for them are generated. Removed CalcNumTriangles so Niflib programs will link. - * Applied latest XML changes. - * Split some things that were previously part of NIF_IO.h into their own - files to make SWIG wrapping work better. - * Made the MergeNifTree function set the start time, stop time, and - frequency of the controller it attaches an interpolator to. - * Made the MergeNifTree function create a controller of the right type and - attach it to the specified node if one does not already exist. - * Fixed an include statement to be relative. - * Add extra targets getter/setter for multitargeter controller. Probably - need to fix GetRefs() at some point get return weak pointer references as - well as strong ones. - * Fix Math so that it decomposes rotations back to stored rotation and not - the inverse. Fix Scale so that it returns the correct value rather than - x+y + (z/3). - * Add helper methods for useful flags for importing data in avobject and - controller sequence. - * Suppressed most SWIG warnings. - * Tried to implement MergeNifTrees for KF files with a NiControllerSequence - root. Untested. - * Minor change to Python wrapper file. \ No newline at end of file + * Added a != operator to Vector3. + * Initialized TexCoord values to 0.0f. + * Added Visibility flag functions to NiAVObject.cpp + * Fixed NiTexturingProperty::SetTexture to set the internal hasXTexture + variables correctly. + * Fix DAoC bug with kob_m_head01.nif + * Cycle type is now set correctly on controllers created or modified by + MergeNifTrees function. + * Changed default for new controllers to 12; Active/Clamped. Should get + cycle type from NiControllerSequence. + * Add a default value for the new controller so that its active. + 1. Update niflib with bspline interpolation abilities + 2. Change mergeniftrees to default phase to 0.0f instead of 1.0f as its + a better default value. + * Determined that there are references to NiBSplineData and + NiBSplineBasisData in all NiBSplineInterpolator derived classes. + Consolidated the various references from the derived classes to the + NiBSplineInterpolator class in the XML and in Niflib. + * We can't have functions on compounds as all files for them are generated. Removed CalcNumTriangles so Niflib programs will link. + * Applied latest XML changes. + * Split some things that were previously part of NIF_IO.h into their own + files to make SWIG wrapping work better. + * Made the MergeNifTree function set the start time, stop time, and + frequency of the controller it attaches an interpolator to. + * Made the MergeNifTree function create a controller of the right type and + attach it to the specified node if one does not already exist. + * Fixed an include statement to be relative. + * Add extra targets getter/setter for multitargeter controller. Probably + need to fix GetRefs() at some point get return weak pointer references as + well as strong ones. + * Fix Math so that it decomposes rotations back to stored rotation and not + the inverse. Fix Scale so that it returns the correct value rather than + x+y + (z/3). + * Add helper methods for useful flags for importing data in avobject and + controller sequence. + * Suppressed most SWIG warnings. + * Tried to implement MergeNifTrees for KF files with a NiControllerSequence + root. Untested. + * Minor change to Python wrapper file. + +==Version 0.5.6== + + * Added code to ensure that bones have their flag set properly, even if they + are not so in the original NIF file. + * Added SendNifTreeToBindPos function to set a whole file to the bind + position. + * NiTriStripsData::GetTriangles no longer returns triangles that have + matching vertices and, thus, no surface area. + * Added a SetBoneWeights function to NiTriBasedGeom which automatically + calculates the correct bone center and radius. + * The NiSkinData::SetBoneWeights function now requires the radius and center + as arguments. + * Removed lingering cout statements except those within debug defines. + * NiNode flags now default to 8 for "Not a skin influence." + * The code I added to make NiTriBasedGeom select the correct skeleton root + was wrong and has been re-written and tested. It now seems to select the + same skeleton root as real NIF files. + * The NiTriBasedGeomData::SetUVSetCount function now sets the hasUVs bool + value correctly. + * Fixed some skin related bugs in ComplexSh::Split. + * Created a new ComplexShape class which can currently be used to + automatically split the sort of complicated mesh that contains + per-point-per-face attributes into NiTriShape classes. Should support + skinning as well, but has not been tested. + * Added TexCoord == operator. + * Changed type of Triangle members to unsigned short. + * Color4 now defaults to all zeros. + * NiAVObject::AddProperty now takes a const argument. + * Fixed exception in NiTexturingProperty to throw a runtime_error instead of + a string. + * NiTriBasedGeom::BindSkin should now automatically finds the skeleton root + by itself. The skeleton_root argument has been removed. -- GitLab