Commit Graph

35 Commits

Author SHA1 Message Date
Campbell Barton
986e62f3b6 fix for a bug in mathutils when a vector was accessing a matrix and the matrix size increased, future access too the vector would write past the allocated bounds. now raise an exception. 2011-12-26 00:05:41 +00:00
Campbell Barton
67effc8aef use docstrings for mathutils getset's, also some formatting edits, no functional changes. 2011-12-25 11:36:26 +00:00
Campbell Barton
f3ac865cc0 picky formatting of mathutils 2011-12-24 13:26:30 +00:00
Campbell Barton
2a80368005 mathtils, convenience attributes added 'row' and 'col', this makes the row/col swap a lot easier to deal with, since
now you can still use column access

previously...
  mat[2] = 1, 2, 3

needed to be converted into...
  mat[0][2] = 1
  mat[1][2] = 2
  mat[2][2] = 3

but with column access you can do...
  mat.col[2] = 1, 2, 3


Having 'row' attribute is a bit redundant since direct indexing on a matrix uses row but included for completeness.
2011-12-24 07:03:19 +00:00
Campbell Barton
28a5549ecf fix for error with matrix access and negative indices with recent row/col swap. 2011-12-24 06:13:58 +00:00
Campbell Barton
b42497b460 mathutils get/set function rename + minor changes to matrix functions (no functional changes) 2011-12-24 04:58:01 +00:00
Campbell Barton
89db50a712 patch [#29534] Change Matrix Representation and Access in Python to Conform with Standard Notation
from Andrew Hale

Scripts which access matrix row/columns directly and scripts that create new matrices with elements defined will need updating.


For more info see...

* Guide for updating scripts
  http://wiki.blender.org/index.php/User:TrumanBlending/Matrix_Indexing

* Discussion thread
  http://markmail.org/message/4bpqpxkcvq4wjyfu
2011-12-22 01:05:03 +00:00
Campbell Barton
26f69488ca Matrix.translation wrapper vector, continent accessing to matrix[3][0:3].
this is a part of patch 29534, being applied separately

from patch [#29534] Change Matrix Representation and Access in Python to Conform with Standard Notation
by Andrew Hale (trumanblending)
2011-12-21 23:12:16 +00:00
Campbell Barton
840dfcd56d cleanup and some fixes to mathutils by Andrew Hale
* 1. Resize 4x4, code was ridiculously complex (cleanup only)
* 2. matrix * matrix checking for compatibility wasn't working right (bug in last release)
* 3. fix for result size for matrix * vector if matrix is 4x4 and vector size 3 (bug in recent patch)
* 4. fix for result size vector * matrix if matrix is 4x4 and vector size 3 (bug in recent patch)
2011-12-21 21:21:27 +00:00
Campbell Barton
436295026a patch [#29662] Modifications to Mathutils Vectors for Consistency with Commit 42752
from Andrew Hale
2011-12-20 05:48:35 +00:00
Campbell Barton
a8ed803b66 rename internal matrix struct member vars to avoid confusion
Matrix.contigPtr --> matrix
Matrix.row_size --> num_col
Matrix.col_size --> num_row
2011-12-20 04:11:23 +00:00
Campbell Barton
3d8ee28750 __str__ functions for other mathutils types 2011-12-20 03:37:55 +00:00
Campbell Barton
553cf289a7 patch [#29651] Add a __str__ Method to Matutils Matrices so print(matrix) Shows Columns as Columns
from Andrew Hale

converted from python string formatting to using BLI_dynstr
2011-12-20 02:54:25 +00:00
Campbell Barton
53f88b231a corrections to some comments 2011-12-19 05:23:52 +00:00
Campbell Barton
0bc83a2f35 - mathutils matrix creation - use memcpy rather than copying every matrix row/col individually.
- creating a new non-square matrix would use uninitialized memory.
2011-12-19 05:14:09 +00:00
Campbell Barton
c3675c0e90 remove mathutils internal variable for storing pointers to each matrix row, instead use macros to access row/column's.
also add an assert so invalid index access will raise an error in debug mode, without this it was quite easy to access invalid memory without meaning to.

no functional change.
2011-12-19 03:12:10 +00:00
Campbell Barton
9c9099a805 formatting edits in py api, no functional changes 2011-12-18 08:50:06 +00:00
Campbell Barton
083297fbf1 formatting edits (120 width max) and remove some redundant casts 2011-11-29 20:22:35 +00:00
Campbell Barton
6e28ac2d7b pep8 edits and avoid naming conflicts with python builtins 2011-11-24 19:36:12 +00:00
Campbell Barton
3b9b6051d9 rename mathutils constructors to match other parts of the bpy/api (no functional changes) 2011-11-24 04:45:36 +00:00
Campbell Barton
c62d33c540 patch: [#29382] Arbitrary Length Array Function Additions and Modifications
from Andrew Hale (trumanblending), with some edits to use these in mathutils.Vector added.

Added Functions:
- dot_vn_vn - Dot product of two arrays
- normalize_vn_vn - Normalize an array and store the result in a second array
- normalize_vn - Normalize an array inplace

Renamed Functions:
Some functions have been renamed to make them consistent with the naming conventions used by fixed length array functions.
- fill_vni to fill_vn_i
- fill_vn to fill_vn_fl
2011-11-24 04:12:16 +00:00
Campbell Barton
ba7fbf6ae7 formatting edits & doc correction, no functional changes. 2011-11-16 03:56:34 +00:00
Campbell Barton
72a7101576 include invalid type name in mathutils error messages. 2011-11-13 09:20:04 +00:00
Campbell Barton
057bf2a02b misc doc edits
- remove recently added sphinx reference workaround.
- tested doxygen, correct some warnings, set tab width and added pymathutils group.
- added convenience target 'make doc_doxy'
2011-11-05 01:48:10 +00:00
Guillermo S. Romero
82c84f4b58 Remove some more $Id$ that still were left after r41227 and r41228. 2011-10-23 19:01:59 +00:00
Guillermo S. Romero
6105199668 Remove the svn:keywords property. 2011-10-23 18:38:16 +00:00
Campbell Barton
67c15da97d docs / clenup (no functional code changes)
- added API examples for mathutils.Color/Euler/Quaternion/Matrix.
- corrected own bad spelling matricies --> matrices.
- minor pep8 edits.
- update CMake ignore file list.
2011-10-17 02:20:53 +00:00
Campbell Barton
276e5f7095 formatting edits & remove debug print. 2011-10-13 01:29:08 +00:00
Campbell Barton
0f5d3a3ddb add back mathutils Matrix() * Vector(), this is row_vector multiplication.
some minor changes to exception messages.
2011-09-19 14:29:21 +00:00
Campbell Barton
9d3b1f708f Move function out of mathutils to: BLI_math_rotation --- single_axis_angle_to_mat3(mat3, axis, angle), copied out from mathutils, axis arg is a char 'X/Y/Z' rather then a vector like axis_angle_to_mat3(). 2011-09-19 13:08:01 +00:00
Campbell Barton
ced8f1dffc deprecate multiplication orders:
vector * matrix
 vector *= matrix
 vector * quaternion
 vector *= quaternion 

Use the reverse order instead, enable WITH_ASSERT_ABORT in cmake to promote the warnings into errors.
2011-07-25 01:44:19 +00:00
Campbell Barton
314fdb941e revert recent matrix multiplication patch:
[#28032] Python Mathutils: Matrix Multiplication Error

Since they ended up reversing the order we better keep old code unless its proven to be incorrect.
also change Matrix.__repr__ function args to evaluate correctly (need to be inside a tuple).
2011-07-21 02:00:29 +00:00
Campbell Barton
8b5e7f2650 patch [#28032] swapped matrix multiplication order, reverse it back, tested with FBX, BVH import/export which are very sensitive to changes in matrix rotation. 2011-07-20 06:41:51 +00:00
Campbell Barton
0ed523a8dd patch [#28032] Python Mathutils: Matrix Multiplication Error
from Scott Giese (sgiese)
2011-07-20 05:57:38 +00:00
Campbell Barton
3a6158a8bf move mathutils into its own lib. 2011-07-15 04:01:47 +00:00