Commit Graph

1405 Commits

Author SHA1 Message Date
Bastien Montagne
1b4487e813 Fix [#29728] Explode Modifier Causes Crash.
The problem was in fact in recent BLI_edgehash changes: a typo in the new macro EDGE_ORD made v0 > v1, instead of v0 < v1. This caused the bug in explode modifier, which (ab)uses that ordering feature a bit…
2011-12-31 15:10:38 +00:00
Sergey Sharybin
3c6e818b22 Object tracking integration
This commits merges object tracking implementation from tomato branch.

Summarized changes from branch:

- Added list of objects to be tracked. Default there's only one object called
  "Camera" which is used for solving camera motion. Other objects can be added
  and each of them will have it;s own list of tracks. Only one object can be used
  for camera solving at this moment.
- Added new constraint called "Object Tracking" which makes oriented object be
  moving in the save way as solved object motion.
- Scene orientation tools can be used for orienting object to bundles.
- Object has got scale to define "depth" in camera space.
- All tools which works with list of tracks or reconstruction data now
  gets that lists from active editing object.
- All objects and their tracking data are available via python api.
- Improvements in witness cameras workflow,
2011-12-30 18:06:02 +00:00
Campbell Barton
d14edecabf optimized mempool iterator from bmesh 2011-12-29 03:39:59 +00:00
Campbell Barton
85a97f64a7 add UNLIKELY / LIKELY util defines to help optimize iterators that are called a lot, only defined for gcc at the moment.
also some cmake formatting edits.
2011-12-29 01:46:58 +00:00
Campbell Barton
269c087dda file missing from cmake listing 2011-12-28 22:57:25 +00:00
Sergey Sharybin
c2ae77e5bd Merging r42896 through r42944 from trunk into soc-2911-tomato 2011-12-28 18:31:32 +00:00
Campbell Barton
5b88e16306 WIP loading bmesh in trunk, some conversion functions for this purpose. 2011-12-28 13:50:33 +00:00
Campbell Barton
ca94cb1237 merge bleshes BLI_array header lib into trunk. 2011-12-28 13:40:14 +00:00
Brecht Van Lommel
b9ff5840a6 Code refactoring: add unified image buffer functions for doing float => byte,
byte => float, float => float, byte => byte conversions with profile, dither
and predivide. Previously code for this was spread out too much.

There should be no functional changes, this is so the predivide/table/dither
patches can work correctly.
2011-12-28 13:29:33 +00:00
Campbell Barton
2e92b14bc6 copy BLI_edgehash changes from bmesh branch, main change is use of mempool. 2011-12-28 10:20:37 +00:00
Sergey Sharybin
fd134927dd Merging r42800 through r42895 from trunk into soc-2011-tomato 2011-12-27 10:11:07 +00:00
Campbell Barton
65104d49e0 patch from debian from Kevin 'kiniou' Roy
added __GNU__ and __GLIBC__ to conditional defined in order to compile on KFreeBSD
2011-12-26 00:13:03 +00:00
Campbell Barton
3b7aa6bb12 patch [#29667] Fix for potential memory corruption in path_util.c
from Andrew Wiggin (ender79)
2011-12-21 20:56:49 +00:00
Sergey Sharybin
9774c93435 Merging r42770 through r42799 from trunk into soc-2011-tomato 2011-12-21 14:50:05 +00:00
Brecht Van Lommel
1dd72692cd Code refactoring: move MD5 out of imbuf into blenlib. 2011-12-21 13:48:51 +00:00
Sergey Sharybin
921b2ee2d4 Merging r42723 through r42769 from trunk into soc-2011-tomato 2011-12-20 17:24:20 +00:00
Campbell Barton
b70174cb93 move topology mirror out into its own functions - needed for bmesh branch so we can use then for bmeshes own internal mirror calculations. 2011-12-20 10:05:58 +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
Sergey Sharybin
737648a0bf Merging r42648 through r42722 from trunk into soc-2011-tomato 2011-12-19 10:39:40 +00:00
Campbell Barton
d0aa012b0a change BLI_assert() so it can be included in other defines. 2011-12-19 03:06:44 +00:00
Campbell Barton
b49463c439 cleanup of weight paint color setting code, no functional changes 2011-12-18 12:54:50 +00:00
Campbell Barton
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
Campbell Barton
ad96dacbc5 style edit only - move parenthesis onto second line of function definition (in keeping with most of blenders code)
also split some long lines in own code.
2011-12-17 00:52:36 +00:00
Brecht Van Lommel
4d6c34462c Fix #29640: make duplicates release keep hierarchy and parent properties not
working for multiple objects.

ID.newid only worked for one object, now it uses a hash instead.
2011-12-16 23:56:18 +00:00
Brecht Van Lommel
3311164b24 Math lib: matrix multiplication order fix for two functions that were
inconsistent with similar functions & math notation:

mul_m4_m4m4(R, B, A) => mult_m4_m4m4(R, A, B)
mul_m3_m3m4(R, B, A) => mult_m3_m3m4(R, A, B)

For branch maintainers, it should be relatively simple to fix things manually,
it's also possible run this script after merging to do automatic replacement:
http://www.pasteall.org/27459/python
2011-12-16 19:53:12 +00:00
Campbell Barton
2253b63c97 static functions for getting power of 2 values were being copied about too much, add to the BLI_math api.
- is_power_of_2_i
- power_of_2_min_i
- power_of_2_max_i
2011-12-16 09:25:07 +00:00
Sergey Sharybin
ba16e7d631 Object tracking: object with object solver constraint is now parented to scene's camera
Made Object Solver operator parent object to scene's camera. Behavior is pretty much
familiar to Child Of constraint -- it stores inverted transformation matrix which gives
constant offset in parent's space.
Current files would open incorrect, to make object aligned well again, just press
"Set Inverse" button in Object Solver constraint.
Fixed orientation operators so now they should work in all cases.
Also changed behavior of Set Origin operator which now sets origin to the median
point of all selected tracks/
2011-12-15 16:09:57 +00:00
Campbell Barton
3d5330f789 vertex group changes,
use more api functions more (some vertex group editing functions were copied about), also make some functions int oapi calls.

- remove defgroup_find_index(), use BLI_findlink instead since they both work the same way.
- move static function getNearestPointOnPlane() to BLI_math api function closest_to_plane_v3()
- ED_vgroup_give_parray() added option to return an array where unselected verts are NULL (simplifies code & works for lattice when it didn't before).
- more consistant error checking of ob->actdef.
2011-12-14 21:08:08 +00:00
Campbell Barton
3e7ad0e271 fix [#29537] file/save crashes when target path isnt found
bug was that uiPupMenuSaveOver(...) could run the WM API call function which freed the operator, within the low level invoke function which kept using the freed memory.

Changed uiPupMenuSaveOver(...) to only show a popup so the caller needs to check if the file exists and should be immediately written (which was done everywhere except for blend saving anyway).

* added note that operators invoke/exec funcs cant call WM_operator_call(...) on themselves, ends up using freed memory.
* added BLI_is_file(path), checks the file exists and isnt a directory.
2011-12-12 18:06:36 +00:00
Campbell Barton
eb233d9332 syncing some minor formatting edits from bmesh branch. 2011-12-04 23:04:43 +00:00
Sergey Sharybin
3eaf5e93fd Fix for movie clips weren't remapped properly on file save 2011-12-04 17:16:22 +00:00
Campbell Barton
3fdc28b736 add a new object member to store the dsize, since with my recent commit broke forward compatibility. now the new values are copied into 'dscale' and existing ones remain.
this is annoying since now we have dsize and dscale, will look into a way to deprecate struct members next.
2011-12-04 03:35:54 +00:00
Campbell Barton
06c3d5bd09 de-duplicate dominant axis calculation, exact same checks were in 6 different places.
added function:  axis_dominant_v3(...)
2011-12-02 22:14:20 +00:00
Campbell Barton
1ca7c2e4f3 BLI_mempool_findelem() only worked when no elements were freed, use the iterator for now. 2011-11-27 21:11:17 +00:00
Campbell Barton
8423b1b33a mempool utility function to get the element at an index BLI_mempool_findelem(), not used yet. 2011-11-27 01:20:08 +00:00
Campbell Barton
6736576f6d replace FILE_MAXDIR + FILE_MAXFILE with FILE_MAX 2011-11-26 04:07:38 +00:00
Konrad Kleine
03398cfa88 (See http://codereview.appspot.com/5431064/ for review of patch)
I've written a convenient function that returns the sibling of a node in the
red-black tree implementation originally implemented by Joshua Leung.

I want to use this get_sibling() function in the future to implement the missing
removal function of the red-black tree implementation.

For now the get_sibling() function just simplifies the get_uncle() function.

Just like the rest of the red-black tree implementation this diff is based on
Wikipedia: http://en.wikipedia.org/wiki/Red%E2%80%93black_tree#Removal
2011-11-24 14:58:42 +00:00
Sergey Sharybin
51014d8e4f Fix #29384: Mesh without polygons + Modifier crashes when switching to sculpt mode
There were some issues with PBVH which prevented working it for meshes without faces.

Discussed with Brecht, for benefits of dynamic-topology-sculpting and so better to
make PBVH survive such things.

Added some extra NULL-pointer checks for this.
2011-11-24 13:39:43 +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
5d9f1d3b9d fix [#29337] Duplicate long shapekey names crash Blender
- added BLI_strncat_utf8.
- ensure resulting strings are valid utf8.
2011-11-21 11:53:29 +00:00
Campbell Barton
e5f40a1aac - pyapi mathutils.geometry.intersect_plane_plane
- isect_plane_plane_v3 uses better method
- minor refactor - arg name changes & some args as const.
2011-11-20 05:56:21 +00:00
Campbell Barton
4924abaad6 replace fabs with fabsf where both input and output are floats. 2011-11-19 01:10:05 +00:00
Konrad Kleine
096f7c06b1 Fixed comment in BLI_dlrbTree_search_exact 2011-11-17 08:02:36 +00:00
Antony Riakiotakis
68fa959de5 BLI_mempool redefined causing compile time error, removing duplicate typedef 2011-11-16 22:20:17 +00:00
Campbell Barton
3dcc9aef96 merge mempool changes from bmesh (adds mempool iterator). 2011-11-16 19:31:42 +00:00
Campbell Barton
1af839081b minor edits, move mempool stack vars into the nested scope when they aren't likely to be used, also formatting edits (was quite un-blender like). 2011-11-16 16:50:30 +00:00
Campbell Barton
697726468e fix for own error, BLI_replace_extension would strip the filename if there wasn't already an extension. 2011-11-15 07:35:28 +00:00
Campbell Barton
49ccf975f2 minor cleanup
- use NULL rather then 0 for pointers
- use static functions where possible
- add own includes to ensure func's and their declarations don't get out of sync.
2011-11-14 16:05:44 +00:00
Campbell Barton
c993ee678a new math utility function isect_plane_plane_v3 2011-11-13 16:28:52 +00:00
Campbell Barton
2e32ce0ed2 add the ocean modifier to bpath visitor 2011-11-13 14:50:19 +00:00