Skip to content

Version history

Zuzu-Typ edited this page Oct 23, 2021 · 19 revisions
  • Fixed tuple type checking (#153)
  • Added official support for Python 3.10
  • Fixed mvec instantiation (#152)
  • Enhancements related to #139
    • rotate, translate and scale no longer require an input matrix
    • Added support for matrix initialization from quaternions (mat3, mat4)
    • Added support for iterable arguments for min and max
    • Added support for homogenous multiplication (#140)
  • Improved performance comparison (#144)
  • Allowing for C contiguity in matrix initialization from buffers (#138)
  • Fixed a bug where NxM buffers would be interpreted as MxN matrices
  • Fixed a few other bugs (2dd31f3)
  • Added bitwise operators to int vec types (#135)
    • Added invert operator
    • Added bitwise-and operator
    • Added bitwise-or operator
    • Added bitwise-xor operator
    • Added lshift operator
    • Added rshift operator
  • Improved array sorting algorithm
  • Fixed CodeQL alerts
  • Fixed Python 3.10 incompatibility
  • Added to_bytes() and from_bytes() methods to all types (#130)
  • Added reinterpret_cast() method to arrays
  • Fixed a bug in pickMatrix(), where the center argument was validated instead of the delta argument (#127)
    (Fix authored by @benraziel )
  • Added split_components() and reduce() methods to the array type (#123)
  • Fixed compilation on clang (#124)
  • Silenced a compiler warning (#124)

Changes authored by @obiwac

  • Improved array_getbuffer compatibility with different flags.
  • Fixed array initialization from non fortran-contiguous matrix buffers.
  • Added option for custom diagonal matrix elements (#120)
  • Removed checks for strides in mat_getbuffer and checks for non-fortran-contiguity in the remaining getbuffer methods. (#61)

(See changes below)

  • Fixed buffer type-checking.
  • Improved names and map

    • Improved name getter routine for repr() functions
    • Added ctype keyword argument to map() function
  • Added rotate_vector extension ( #114 )

    • Added rotateX, rotateY, rotateZ and orientation function.
    • Extended rotate and slerp functions.
  • Small fixes

  • Added missing boolean operators for bvecs ( #111 )
  • Added missing vector_relational documentation
  • Added many features to arrays
  • Fixed the way matrices are printed
  • Fixed the buffer protocol for matrices and arrays
  • Improved documentation
  • And much more
  • Updated documentation (#26)
  • Fixed mvec functions (#96)
  • Added setSeed() function (#97)
  • Added support for GLM_GTX_matrix_transform_2d extension (#98)
  • Added support for numeric datatypes to arrays
  • Updated PyGLM vs NumPy comparison
  • Using pytest to test now

Added support for pickling (#91)

Added support for setattr scalars (#89)

  • Added hash() function support
  • Added @ (matmul) operator
  • Fixed number checker
  • Updated Traivs-CI script

And a few minor changes

Fixed missing number object conversion functionality that allows PyGLM to use non-standard number types, such as numpy.float32 (#84).

PyGLM is now (fully) compatible with lists / tuples or buffer protocol types, such as NumPy's arrays. Performance is slightly touched due to these measures - sometimes in a good and sometimes in a bad way.

  • Added array type Specifically setting the locale to english now ( #73 ) Fixed quaternion order (#77) Should fix #75
  • Updated docs + fixes
  • Fixed type checker issue with quats interpreted as vecs
  • Added quat conversion constructor
  • Added and improved wiki and README Update .travis.yml (#81)
  • Updated type checker format types
  • Updated README
  • Added norm, fixed div/0
  • Added the norm extension ( #63 )
  • Fixed #65 for types ~ Moved silence to warnings.h ~ Fixed a few minor issues
  • Added decompose extension #68 is done
  • Fixed clamp, min and max for int types Fixed #66 Temporary workaround / fix for g-truc/glm#1009
  • Improved setattr for vec types Should fix #67
  • Updated tests Should fix #70 (thanks to @aforren1)

This should / might / could automatically upload the releases to the PyPI

  • Organized File Structure (and fixes) Moved PyGLM's code to it's own files. Also fixed #60 And fixed #61
  • [for gcc] Added newlines (+ a few fixes)
  • [for gcc] Added include for forward_declatations
  • Using ifndef guards (gcc is broken)
  • fix (gcc is still broken)
  • Update PyGLM.cpp
  • Added to_list and to_tuple functionality Every type can now be converted to a list / tuple using their to_list and to_tuple functions
  • Fixed dquat to_list and to_tuple Also added tests Build wheel Win, Linux, and Mac using Travic CI (#59)

Typo fixes for item assignment in vec4 and mvec4. (#55) z was used for the 3rd index in both cases, rather than w.

Fixed typecodes for vector buffer protocol Improved buffer protocol tests Update to GLM v0.9.9.7

  • removed GLM_LICENSE from MANIFEST.in
  • Updated licenses
  • Added the license information as 'license' in PyGLM
  • Switched to the unmodified MIT license in COPYING
  • Removed GLM_LICENSE
  • Updated tests added check for version and license
  • Added support for polar_coordinates
  • Switched from RML to SlashBack

Fixed invalid license title

Fixed vec3 constructor (#44) Fixed #43

Update .travis.yml Update PyGLM_test.py Fixed Vec type checking Should fix #43

  • Added support for copy and deepcopy from the copy module.

Updated README

Fixed and silenced a few warnings Fixed a few Warnings Entered "Stable" status Updated README Quickfix

Fixed big performance loss due to GetBuffer checking

  • Added support for all stable extensions
  • Using glm as gtc and detail namespaces now. Waiting for fix of several glm issues
  • Better tests and some fixes The test suite now tests every one of PyGLM's functions. A bunch of errors were fixed along the way. Updated README Should fix #35
  • Added support for PyObject_GetBuffer in the unpack functions
  • Added different print-strings for repr
  • Types display correctly now
  • Now using pythonic "." namespace separators instead of "::"

Fixed the macro generator function for (mat4x4, vec3). Fixed #17

  • Added travis file
  • Update PyGLM_test.py Now forcing type initialization to avoid types not being uninitialized by accident.
  • Added support for double, int64, int32, int16, int8, uint64, uint32, uint16, uint8 and bool datatypes. (in the process, all functions were rewritten, so some might not work correctly)
  • Added glm.silence() function
  • Updated README
  • Changed frexp behaviour
  • Fixes #27 Plus a few other changes.

fix building with clang (#30) fixes #29 fixed frexp and ldexp Should resolve #31 Also updated to latest glm version

  • func_packing
  • func_integer Added support for minimal version Updated to glm 0.9.9.5
  • Added frexp, ldexp
  • removed glm/gtx
  • added identity
  • added make_mat* functions
  • added quatLookAt* functions
  • setup.py now checks compatibility
  • updated a few docs and licenses

PyGLM was completely rewritten in C++ to provide actual bindings for glm's types and functions. Therefore support for Python 2, 3.3 and 3.4 had to be dropped, because glm requires C++11 or higher.

Fixed #23

Fixed #22

Fixed #20

Fixed wrong not equal comparison behavior Changed MIT license to zlib/libpng

  • Added the Happy Bunny License for GLM_LICENSE and COPYING
  • Added additional Info in the value_ptr() description
  • Fixed fma() description
  • Fixed conjugate()
  • Fixed tquat.__mul__()
  • Fixed tquat missing CHECKTYPES flag
  • Fixed sizeof() missing for tquat
  • Fixed divmod memory leaks (from #6 )
  • Fixed tvec4(tvec4) initialization
  • Fixed grad4
  • Fixed 3D-simplex noise
  • Fixed angleAxis (METH_O -> METH_VARARGS)
  • Corrected glm.fma() description
  • (other minor fixes)
  • Fixed translate() function ( #17 ) Fixes and improvements

fix error message in scale()/scale_slow() (#15)

  • Fixed #16
  • Fixed most of #6
  • Removed old unpacking behaviour
  • INCREF and DECREF col_type and row_type of tmatn
  • Fixed tmat2x2's __repr__ and __str__ functions.
  • Changed *.__str__() output
  • Replaced temporary pointers with temporary objects
  • Improved unary functions
  • Fixed a few memory leaks from #6
  • Fixed a typo
  • Changed development status to BETA
  • Uncommented a lot of now unused internal functions.
  • Self-advertisement
  • Added sizeof to gtc namespace
  • Switched tmatn's str and repr functions.
  • Fixed a typo
  • Added glm.sizeof(x)
  • Fixed wrong row_types
  • Removed unnecessary calls in internal pack_* functions (subissue of #6 )
  • Fixed tmatn's iadd and isub functions for Python 2
  • Created a new README syntax "readmelang" (.rml), which can be converted to RestructuredText and Markdown
  • Updated README

Py_BuildValue incr ref count for 'O' specifier, we need to decrease it after use add Py_TPFLAGS_CHECKTYPES to each PyTypeObject, it's required for python 2.7 else binary ops with different type raise a TypeError

  • Now using NotImplemented instead of calling the right-side function
  • Checking for Int type
  • Setup files

Get an attribute name is different with python2, this fix a segfault when attempting to get/set an attribute like a = vec2(); a.x with python 2.7

  • Fixed #7 .
  • Fixed tmatn.__imul__ and tmatn.__i[true]div__ crashing with tvecn as argument.
  • Fixed a couple of memory leaks from #6 .

PyGLM has been completely rewritten in C.

Fixed a bunch of errors (thanks to pyLint) Went back to numpy instead of trying to improve performance using cython.

  • epsilon, functions, noise, reciprocal, type_ptr (should allow for #1 to be solved)
  • type_float, type_int (maybe re-add them later) whoopsie.. I accidentally trashed matrix getitem() functionality

Some small performance enhancements for quaternion.

  • fixed matrix rotation
  • updated README

Now all of glm's detail is using numpy Fixed some python 2/3 compatibility issues

  • one very small quaternion performance enhancement

First pure Python version. Very limited featureset.