assimp/port/PyAssimp/pyassimp
Bill Roeske 2494608927 [pyassimp] Fix py3.3 + 64bits issues
64-bit Compatibility:

The first four characters of a String material property would be cut
off. A String's length is defined in structs.py as a c_size_t
variable, which is 8 bytes wide on 64-bit Python. However, when an
aiString is used as an aiMaterial property in C/C++, the length is
truncated down to a 4-byte value on 64-bit machines (see
MaterialSystem.cpp aiMaterial::AddProperty() for details). A new
struct was declared in structs.py (MaterialPropertyString) and used
in core._get_properties().

Python 3.3 Compatibility:

The built-in function hasattr() changed in Python 3.2 to not
trap exceptions, which means a NULL pointer ValueException now
escaped when checking if a pointer was valid (hasattr(obj,
'contents') in core.call_init()) (see
http://bugs.python.org/issue9666 for details). A new helper
function was defined that preserves the legacy functionality of
trapping the exceptions (helper.hasattr_silent()) and used
throughout the code as a replacement for hasattr().

String objects would import as "bytes" rather than as a
string. This was most noticeable in the key names for
material properties, where the trailing ' of a bytes object
would remain after it was converted to a string. The
solution was to call decode() on the bytes object using
utf-8 decoding. This applies to various parts of core.py.

Closes #35
2013-06-03 10:38:30 +02:00
..
__init__.py [pyassimp] Make it easier to import pyassimp 2013-03-30 14:35:21 +01:00
core.py [pyassimp] Fix py3.3 + 64bits issues 2013-06-03 10:38:30 +02:00
errors.py searches assimp-library automatically 2008-09-18 13:36:34 +00:00
helper.py [pyassimp] Fix py3.3 + 64bits issues 2013-06-03 10:38:30 +02:00
postprocess.py - add missing files from the last commit 2012-11-10 16:01:55 +00:00
structs.py [pyassimp] Fix py3.3 + 64bits issues 2013-06-03 10:38:30 +02:00