Skip to content
Snippets Groups Projects
Commit 9e79e812 authored by Shon Ferguson's avatar Shon Ferguson
Browse files

Added change log and license files.

parent b6f24dc9
No related branches found
No related tags found
No related merge requests found
==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.
==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.
==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.
==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.
==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.
\ No newline at end of file
Copyright (c) 2005, NIF File Format Library and Tools
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of the NIF File Format Library and Tools
project nor the names of its contributors may be used to endorse
or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment