Commit Graph

41 Commits

Author SHA1 Message Date
cf0d350b51 Fixing first part of [#31760] Assignments not working properly for Object.dimensions
Problem was in fact that non-linear-contiguous axis assignement was broken (i.e. location.xy would work as expected, but location.xz would only affect .x part)... Now all possibilities should work fine.

Did not try to fix the problem specific to obj.dimension (when assigning multiple times to this array, only the last one is taken into account - in fact, a simple print() shows that assigning to dimension is not taken into account immediately), not sure whether this is normal behavior, or if we need a specific "update" of some kind for this prop?
2012-06-11 18:58:34 +00:00
6520aa97a9 add 'idprop' module so we can document idprop.types.*, currently doc generator has no access to ID Property types. 2012-04-15 14:54:15 +00:00
89b83f0060 patch to add __deepcopy__ to mathutils types, this is no different to __copy__, except some py utilities expect __deepcopy__ to exist, so better have them. 2012-03-30 11:35:58 +00:00
11d12d945e style cleanup: python api 2012-03-26 06:55:09 +00:00
02f707e9da minor mathutils code cleanup - use mathutils callbacks as unsigned chars everywhere. 2012-03-17 10:46:02 +00:00
70d3d1aca6 style cleanup: py/capi 2012-03-16 21:39:56 +00:00
c2d93e8d4a comment cleanup 2012-03-14 22:39:56 +00:00
ee9a00948b mathutils py api:
Vector.angle_signed(other)
  for 2D vectors to get the clockwise angle between them.

  in BLI math its called - angle_signed_v2v2()

shorthand for...

  atan2f((v1[1] * v2[0]) - (v1[0] * v2[1]), dot_v2v2(v1, v2))

also corrects compile error in last commit.
2012-03-14 06:14:15 +00:00
89a963fb7f style cleanup: comment blocks 2012-03-09 18:28:30 +00:00
3590076193 style cleanup - comment formatting 2012-03-03 20:36:09 +00:00
b81bfd86b4 use ValueError when vector/matrix multiplications sizes are not supported, was using TypeError for mat*vec and ValueError for vec*mat. 2012-02-11 14:27:36 +00:00
1f74789d12 Correct mathutils documentation, also correct some python spelling errors and add makefile target check_spelling 2012-02-08 04:37:37 +00:00
5a221dd0de Fix for possible memory leak on creation of a vector using Vector.Range.
It was possible to allocate an array of size<2 which would then raise an error on vector creation without freeing.

Fix to ensure the behaviour of Vector.Range was the same as for builtin range() function. When specifying 3 arguments, the step argument wasn't being used to correctly calculate the vector size.

Minor formatting edits for error messages.
2012-02-02 01:07:04 +00:00
f0e3c3c68f fixes to mathutils from Andew Hale
- docstring edits
- normalize ignores W axis as its supposed to.
2012-01-03 14:34:41 +00:00
f48fb385ea formatting edits & minor corrections 2011-12-26 00:42:35 +00:00
67effc8aef use docstrings for mathutils getset's, also some formatting edits, no functional changes. 2011-12-25 11:36:26 +00:00
f3ac865cc0 picky formatting of mathutils 2011-12-24 13:26:30 +00:00
b42497b460 mathutils get/set function rename + minor changes to matrix functions (no functional changes) 2011-12-24 04:58:01 +00:00
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
01de7c2979 fix for mathutils mat*vec for non sqyare matrices by Andrew Hale 2011-12-21 11:36:28 +00:00
ea88a0bec5 recent commit missed swapping args for MATRIX_ITEM in mathutils_Vector.c, breaking matrix*vector. 2011-12-20 11:37:55 +00:00
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
3d8ee28750 __str__ functions for other mathutils types 2011-12-20 03:37:55 +00:00
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
9c9099a805 formatting edits in py api, no functional changes 2011-12-18 08:50:06 +00:00
414370b8d4 Support for arbitrary sized vectors - (was limited by 2-4 previously)
patch http://codereview.appspot.com/5482043
from Andrew Hale

* Text from the submission *

This patch adds the ability to use arbitrary sized vectors from mathutils.
Currently vectors are only of size 2, 3 or 4 since they are generally restricted
to geometric applications. However, we can use arbitrary sized vectors for
efficient calculations and data manipulation.
2011-12-18 07:27:11 +00:00
9d9fbae7bc treat 4d vectors as 3d for vector.angle(other) 2011-11-29 19:40:27 +00:00
3b9b6051d9 rename mathutils constructors to match other parts of the bpy/api (no functional changes) 2011-11-24 04:45:36 +00:00
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
ba7fbf6ae7 formatting edits & doc correction, no functional changes. 2011-11-16 03:56:34 +00:00
72a7101576 include invalid type name in mathutils error messages. 2011-11-13 09:20:04 +00:00
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
82c84f4b58 Remove some more $Id$ that still were left after r41227 and r41228. 2011-10-23 19:01:59 +00:00
6105199668 Remove the svn:keywords property. 2011-10-23 18:38:16 +00:00
276e5f7095 formatting edits & remove debug print. 2011-10-13 01:29:08 +00:00
05683f8e52 edits to argument parsing for Euler.rotate_axis, also corrected some exception messages and minor style edits. 2011-09-19 15:13:16 +00:00
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
e98074d327 remove support for deprecated Vector() * Matrix(), eventually this will be added back as row_vector_multiplication bu to avoid confusion for a bit just disable it altogether so script authors get an error on use and update their scripts. 2011-08-16 13:10:46 +00:00
165e6dbc07 Adding a readonly length_squared property to mathutils.Vector. This is simply vector.dot(vector), so nothing new is really added, but it's nice for writing more intent revealing code. In other words:
if vec.dot(vec) > some_distance*some_distance:
    do_something()

might not be quite as obvious looking as:

if vec.length_squared > some_distance*some_distance:
    do_something()

As to why you'd want to use length_squared over length is that length uses a square root, which isn't always necessary for simple distance checks (e.g., closest object, checks like the ones above, ect).
2011-08-11 09:40:14 +00:00
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
3a6158a8bf move mathutils into its own lib. 2011-07-15 04:01:47 +00:00