Commit Graph

904 Commits

Author SHA1 Message Date
Campbell Barton
f781780cc0 - blend_m3_m3m3 and blend_m4_m4m4 now support matrices with negative scales.
- python/mathutils api matrix.lerp(other, factor)
- new function mat3_to_rot_size(), like mat4_to_loc_rot_size but with no location.
2010-11-22 10:39:28 +00:00
Campbell Barton
5a09368957 use 'const char *' for imbuf and file ops. 2010-11-19 02:14:18 +00:00
Campbell Barton
1e245cc589 option to write images to a files on single frame renders, this isn't accessed by the UI at the moment, but could eventually be used for saving test-renders.
The main reason to have this is so renders can be scripted to write to a specific file without having to do annoying tricks like set a dummy start/end frame range, render an animation and work out the current frame image will be written to, then rename after rendering.

Also made some 'char *' args into 'const char *'
2010-11-16 14:40:46 +00:00
Campbell Barton
7f96852176 fix for creating movie paths with non utf8 names.
button test if non utf8 chars are allowed was inverted.
2010-11-16 08:53:55 +00:00
Campbell Barton
7e0f9229d6 fix for fix, r33086.
- incorrect range check broke ZYX euler rotations, use MIN/MAX constants so this doesn't happen again.
- BGE Armature PyAPI also wasn't using correct min/max with rotation modes.
- clamp on file read rather then when calling the rotation functions, so developers don't use invalid args without realizing it.
- added assert() checks for debug builds so invalid axis constants don't slip through.
2010-11-16 01:19:37 +00:00
Ton Roosendaal
e3ace7ee62 Bugfix, reported in IRC
The enum "rotmode" was read using an array, without checking for boundary
cases, causing crashes on bad input. (Wahooney report 2, thanks!)
2010-11-15 13:33:38 +00:00
Campbell Barton
ee7bf4dab5 take delta's into account when applying the objects matrix (dloc, drot, dsize).
Now object_apply_mat4() can be used as the reverse of object_to_mat4().

Noticeable result is fly mode and 'Apply Visual Transform' dont jump when deltas are used, also means setting matrix from python works as expected.
2010-11-12 11:16:04 +00:00
Campbell Barton
030253cdf6 fix for building, also use const char in more places. 2010-11-11 07:51:12 +00:00
Campbell Barton
c40725fe5e remove BLI_bfile, has been in blenders source for quite some time but remains unused.
can add back in if its ready to be used ofcourse.
2010-11-07 16:02:17 +00:00
Campbell Barton
ed61900e5e - avoid loop within loop for unique naming function (even though it wasnt likely to run often).
- off by 1 error with outliner naming length. was 1 too short.
2010-11-07 09:33:10 +00:00
Campbell Barton
20b16e4074 de-duplicate unique naming logic, was used in 7 different places, convert into a function call. 2010-11-07 08:49:07 +00:00
Campbell Barton
fe8d5b81b0 use c90 compatible static initializers. 2010-11-03 06:31:53 +00:00
Campbell Barton
369a5cc29e fix for compiling with the c90 standard, support for non-static variable initializers is a c99 feature. 2010-11-02 13:12:30 +00:00
Campbell Barton
daa4feaaea bugfix [#24477] Can easily create bones with duplicate names
- fixed this error 7 different functions (deform groups, uv layers & similar).
- support for numbers over 999.
- renamed splitIDname() to BLI_split_name_num(), moved to BLI_path_utils
2010-11-01 07:19:41 +00:00
Campbell Barton
d9a7358b4c bugfix [#24462] UV Layouts saved as PNG results in two files (one is 0 KB, other has corrupted filename) 2010-11-01 01:46:26 +00:00
Campbell Barton
c2b9dfaff2 fix for own mistake with mat4_to_loc_rot_size(), flipping the scale on negative matrix isn't correct. 2010-10-30 19:52:40 +00:00
Campbell Barton
90e9970094 change mat4_to_eulO, mat3_to_eulO to calculate 2 rotations and return the smallest one.
mat4_to_eul & mat3_to_eul are already working this way.

Without this we get problems with constraints, eg:
 rotation on the Y axis over 90d can be represented by setting the X and Z to -PI, Y would decrease to 0 (infact 180d).
2010-10-30 19:29:11 +00:00
Janne Karhu
082e9b329d Fix for [#24458] Problem with Axis Angle rotation
* Added checks to handle zero axis vector.
2010-10-30 17:42:08 +00:00
Campbell Barton
001259ccb6 warning/portability fixes. 2010-10-30 17:16:37 +00:00
Campbell Barton
a49d1c20f1 Convenience defines SEP and ALTSEP (python has these), move BLI_*_slash function into path_util.h since these are not fileops. 2010-10-27 06:41:48 +00:00
Campbell Barton
a44f4dd400 dont use const for matrix arg, since it needs to be cast in most cases. 2010-10-26 20:41:16 +00:00
Campbell Barton
f8ec6b8654 move matrix decomposition out of object.c into BLI_math_matrix function: mat4_to_loc_rot_size(), use this now for pchan_apply_mat4() to support negative scale, visual keying now uses compatible eulers.
also added access to this in python's mathutils.Matrix()
 loc, quat, scale = matrix.decompose()
2010-10-26 12:48:07 +00:00
Campbell Barton
619a8b6952 bugfix [#24357] Font folder can be specified but is not opened
- open operator was incorrectly checking if the font path was set.
- rna ID editable check was also incorrect, checking the ID name rather then the filename.
- use define FO_BUILTIN_NAME rather then "<builtin>".
2010-10-24 07:02:19 +00:00
Nathan Letwory
c821fc85d3 index for openmp loop needs to be signed int. 2010-10-22 10:18:58 +00:00
Nathan Letwory
6540bb1375 Add some missing const's 2010-10-22 10:17:55 +00:00
Campbell Barton
2fe940f8df Fix for snapping pose bones with axis-angle rotation.
- armature_mat_pose_to_bone() was missing axis-angle check.
- added loc_axisangle_size_to_mat4() for completeness.
- use 'const' prefix where possible in math rotation functions.
2010-10-22 03:56:50 +00:00
Campbell Barton
bcac1def4c eulO_to_quat wasn't functional for XZY, YXZ, ZYX rotation orders.
it also modified the input rotation value which isn't expected for these functions.
2010-10-22 03:27:01 +00:00
Campbell Barton
8259321a5f fix warnings 2010-10-21 22:45:54 +00:00
Campbell Barton
a044486d7d [#24267] Hook fails after Solidify
Solidify modifier wasn't assigning origindex values.

- BLI_math.h array functions: range_vni(), mul_vn_fl(), mul_vn_vn_fl(), add_vn_vn(), fill_vni().
- define 'AT' as __FILE__ ":" STRINGIFY(__LINE__), useful for quick debug prints.
2010-10-20 09:18:55 +00:00
Campbell Barton
13d684f7bb fix for implicit declaration, not sure why this happens but OpenSuse 11.1 wouldn't build. 2010-10-19 04:25:16 +00:00
Campbell Barton
58683fa993 enable DEBUG define in CMake and scons, also change booleans debug option to BOP_DEBUG, which was used inconsistently, and had to add a define for superlu. 2010-10-18 11:21:22 +00:00
Nathan Letwory
a293f76cdf Use DEBUG instead of NDEBUG 2010-10-18 06:52:10 +00:00
Campbell Barton
4d37cf90b9 remove G.sce, use G.main->name instead.
Both stored the filename of the blend file, but G.sce stored the last opened file.
This will make blender act differently in some cases since a relative path to the last opened file will no longer resolve (which is correct IMHO since that file isnt open and the path might not even be valid anymore).

Tested linking with durian files and rendering to relative paths when no files is loaded however we may need to have some operators give an error if they are used on the default startup.blend.
2010-10-18 06:41:16 +00:00
Campbell Barton
7db9558cf6 bugfix [#24291] Error parenting a child with any negative scaling coordinate
the bug was in object_apply_mat4(), caused by applying a non-normalized matrix to the rotation.
Blender 2.4x also had this problem, surprising nobody noticed!.
2010-10-18 02:36:43 +00:00
Campbell Barton
8268a4be71 most unused arg warnings corrected.
- removed deprecated bitmap arg from IMB_allocImBuf (plugins will need updating).
- mostly tagged UNUSED() since some of these functions look like they may need to have the arguments used later.
2010-10-16 14:32:17 +00:00
Campbell Barton
1807beabf5 - UNUSED macro wasn't throwing an error with GCC if a var become used.
- made interface, windowmanager, readfile build without unused warnings.
- re-arranged CMake's source/blender build order so less changed libs are build later, eg: IK, avi
2010-10-16 02:40:31 +00:00
Campbell Barton
25bbf99a79 replace SIDE_OF_LINE macro with line_point_side_v2() inline function.
made a number of files build without unused warnings.
2010-10-15 05:18:45 +00:00
Campbell Barton
3d73a37b64 hex color input wasnt clamped. 2010-10-14 08:15:10 +00:00
Campbell Barton
843d8859a7 bugfix [#23355] Square Color picker moving by itself and locking up 2010-10-13 13:53:49 +00:00
Campbell Barton
c79e054538 quat_apply_track had incomplete comments 2010-10-08 07:36:33 +00:00
Campbell Barton
65b0893df0 bugfix [#21483] Twisting when Dupliframing a Surface Circle (Nurbs) along a Curve.
use the curve's twist for follow path constraint and parent-path.
2010-10-08 07:29:08 +00:00
Campbell Barton
5e232548d3 fix for error in track rotation, found while looking into adding an up axis to this function. 2010-10-08 03:50:01 +00:00
Campbell Barton
c6e2e7aa93 move tracking functions into math_rotation.c (no functional changes) 2010-10-08 02:08:11 +00:00
Campbell Barton
8a4fe62843 misc fixes found with clang's static checker. 2010-10-07 10:04:07 +00:00
Campbell Barton
02d0084db9 changes to path searching
- don't search CWD/foldername anymore, only CWD/2.54/foldername, since this is the new default build systems use.
- local source paths (./release/scripts) are now treated as system path, otherwise when this is used you cant test ~/.blender/2.54/scripts at the same time.
2010-10-03 21:13:52 +00:00
Campbell Barton
ab8aa13b82 bugfix [#24087] Blender can not install add-ons unless running with root priviledges
now addon path is created using the same path functions and selecting where to save the startup.blend

also made some minor changes to path handling funcs.
2010-10-03 20:00:22 +00:00
Campbell Barton
b0b5db57da build systems have been updated, remove use of ~/.blender/ directly, ~/.blender/*version*/ instead. 2010-10-03 16:16:00 +00:00
Campbell Barton
157d1205a4 added len_squared_v2v2, use instead of len_v3v3 for font handle tests, also fixed some warnings. 2010-10-03 14:16:27 +00:00
Campbell Barton
a6e7823942 make fly mode border draw into a area drawing callback rather then using a flag (no functional change). 2010-10-02 19:31:23 +00:00
Campbell Barton
5faa29b01d move window matrix translation into its own function. (no functional changes) 2010-10-02 19:06:20 +00:00