pycollada Changelog

0.8 (2024-01-07)

Bug Fixes

  • Add huge_tree support for lxml to fix large XML document loading.

  • Allow base class exceptions to be passed to ignore list, and fix FloatSource shape mismatch.

  • Fix various typos.

  • Stop using nsmap of lxml to support multiple name space.

Backwards Compatibility Notes

  • Support for Python versions prior to 3.8 dropped.

  • Support for Python 3.12 has been added.

  • Make numpy an explicit install requirement.

New Features

  • Add node name property.

  • Fixes and formatting to make pycollada pass flake8.

  • Make material optional when creating geometry.

0.7.2 (2021-12-12)

Bug Fixes

  • Properly close files in constructor.

  • Fix some warnings.

  • Make examples python3 compatible.

  • DaeUnsupportedError fails due to missing cast

  • docs: Fix a few typos

  • removed redundancy in unit normals and reformatted

  • Remove deprecated ElementTree…getchildren() method calls

  • Fix angle units documentation in RotateTransform.

New Features

  • Convert from Travis CI to Github Actions.

0.7.1 (2020-01-23)

Bug Fixes

  • Fix package_data in 0.7 release.

0.7 (2019-10-10)

Bug Fixes

  • Fix bug with namespaces with xml.etree.

  • Fix bug when parsing whitespace-only numerical elements.

Backwards Compatibility Notes

  • Support for Python 3.3 and 3.4 has been dropped.

0.6 (2017-11-19)

New Features

  • tristrips and trifans are now supported.

  • Add support for Python 3.6

Bug Fixes

  • Fix python-dateutil dependency setup.

  • Fix flaky test (#61).

Backwards Compatibility Notes

  • Drop support for Python 2.6 and 3.2.

0.5 (2017-03-16)

New Features

  • Added function to get effect properties from underneath the technique tag.

  • Add example how to visualize DAE file using OpenGL API.

Bug Fixes

  • Fix Python 3 image loading.

  • Fix missing import.

  • changed string_ to unicode_ for numpy string array parsers.

  • changed itervalues() to values() for compatibility with python3.

  • Change iteritems() to items() in getInputList. Add test. Fixes #40.

  • Fixing conversion from unsupported texcoord. input.

  • use ‘from PIL import Image’ instead of ‘import Image’.

  • Fix case where getitem is called before normal indices are set up.

  • Fixed shader compilation error. Old GLSL compilers do not like precision statement.

  • Apply patch to fix ctypes-usage issue.

  • Convert some Windows-style files to Unix format (linebreaks).

  • Fix the bug with relative path to default dae file.

0.4 (2012-07-31)

Backwards Compatibility Notes

  • Python 2.5 is no longer supported. Supported versions are now 2.6, 2.7 and 3.2.

New Features

  • Added support for reading the opaque attribute from <transparent> tag.

  • Normals and texture coordinate indices are now available in shapes (Triangle and Polygon).

  • Library is now compatible with python’s built-in ElementTree API instead of requiring lxml. lxml is still recommended.

  • Added support for Python 3.2. Supported versions are now 2.6, 2.7 and 3.2.

  • Added support for index_of_refraction in <effect>.

  • Added optional parameter to Collada that does XML schema validation when saving.

  • Automatically corrects broken files that don’t have correct xfov, yfov, and aspect ratio in cameras.

Bug Fixes

  • Fix the default value for transparency in Effect. Now correctly defaults to 1.0 when opaque mode is A_ONE, and 0.0 when opaque mode is RGB_ZERO.

  • Fixed bug where BoundPolylist was not returning the correct length value.

  • Removed support for RGB from Effect since it’s not valid in the spec. If an RGB is given, a fourth A channel is automatically added as 1.0.

  • Made instance_geometry not write an empty bind_material if it’s empty since it breaks validation.

  • Made saving strip out empty <library_*> tags since it breaks validation.

0.3 (2011-08-31)

Backwards Compatibility Notes

  • If using the old Camera object, this has been changed to an abstract class with types for PerspectiveCamera and OrthographicCamera

  • If using the old Collada.assetInfo dictionary to read asset information, this has been changed to an object. See documentation for more information.

New Features

  • Added support for bump maps inside the extra tag of an effect

  • Added texbinormal and textangent to triangle sets

  • Added a method to generate texture tangents and binormals

  • Added detection for double_sided

  • Added an optional parameter to specify what filename inside an archive to use when loading from zip

  • Added support for loading multiple sets of library_* nodes

  • Refactored asset information into a separate module. Fixed #12

  • Refactored Camera into PerspectiveCamera and OrthographicCamera, inheriting from Camera

Bug Fixes

  • Changed Collada IndexedLists attributes to be properties. Fixed Issue #14

  • Updated scene to use a local scope when nodes are instantiated inside a scene

  • Changed parsing to raise DaeMalformedError when an lxml parser exception is thrown

  • Fixed bug when loading an <image> tag local to an <effect> not showing up in Collada.images

  • Fixed bug when loading an empty <polygons>

  • Fixed bug in if statement when loading morph controllers

  • Fixed bug when triangulating a length-0 polylist

  • Updated install instructions for OS X and Ubuntu problems

  • Fixed bugs in IndexedList from Issue #13

  • Fixed a bug where using the same map twice in an effect would cause incorrrect output

  • Changed geometry export to delete any sources in the vertices tag that no longer exist

  • Changed library output to not output empty library nodes so validator doesn’t complain

  • Add same checks in scene loading that was done in library_nodes loading so that if nodes are not found yet while loading, it will keep trying

  • Changed the way library_nodes is loaded so that if a referenced node from instance_node is not loaded yet, it will keep trying

  • Fixed bug where a triangles xml node would try to set an attribute to None

  • Fixed bug in handling joints that influence 0 vertices

0.2.2 (2011-05-03)

  • Changed the way instance_node is handled to actually maintain the mapping so it’s not lost when saving

  • Added setdata function to CImage and made Effect compare only image path

  • Fixed a bug when rewriting geometry sources

  • Change primitive sources to point to the <vertices> tag when possible since other importers don’t like not having a <vertices> tag

  • Export source data with only 7 decimal precision for better file size

  • Prevent NaN from being the result of a normalize_v3 call

  • Fixed bug where effect was not correctly reading all four color values

  • Fixed a bug where a triangleset would not create its xml node when generated from a polylist

  • Big speed increases for converting numpy data to strings

  • Moved getInputs function to Primitive

  • Added functions to triangleset to generate normals and get an input list

  • Fixed bug in saving a scene node if there was no id

  • Fixed some bugs/optimizations with saving

  • Added function to test if an Effect is almost equal to another Effect

  • Adding dynamic dependencies to setup.py

0.2.1 (2011-04-15)

  • Fixed bug with saving existing files that didn’t have some library_ tags.

0.2 (2011-04-15)

  • Many bugfixes

  • polylist support

  • polygons support without holes

  • lines support

  • blinn and constant material support

  • More effect attributes

  • Better support for auxiliary texture files

  • Lights (directional, ambient, point, spot)

  • lookat transform

  • Experimental controller support (skin, morph)

  • polygons/polylist can be triangulated

  • Automatic computation of per-vertex normals

0.1 (2009-02-08)

  • Initial release

  • Triangles geometry

  • Reads vertices and normals

  • Multiple texture coordinate channels

  • Phong and Lambert Materials

  • Texture support using PIL

  • Scene support for geometry, material and camera instances

  • Transforms (matrix, rotate, scale, translate)

Releasing

  1. Generate log:

    git log $(git describe --tags --abbrev=0)..HEAD --pretty=format:"* %s"
    

    Add this to docs/changelog.rst.

  2. Update setup.py to change version to new version.

  3. Update collada/__init__.py to new version.

  4. Update docs/conf.py to change version string to new version.

  5. Commit changes.

  6. Tag version:

    git tag v0.x HEAD
    git push origin master
    git push --tags
    
  7. Build source distribution:

    python setup.py sdist
    twine upload dist/pycollada-0.7.tar.gz -u __token__