blender-staging.git
8 years agosvn merge ^/trunk/blender -r43693:43733
Campbell Barton [Thu, 26 Jan 2012 19:20:33 +0000 (19:20 +0000)]
svn merge ^/trunk/blender -r43693:43733

8 years agoFix orthogonality check for mat3 and mat4
Sv. Lockal [Thu, 26 Jan 2012 17:11:43 +0000 (17:11 +0000)]
Fix orthogonality check for mat3 and mat4

8 years agoFix #29957: Texture "Generate" mapping work as global with cloth modifier
Sergey Sharybin [Thu, 26 Jan 2012 17:03:30 +0000 (17:03 +0000)]
Fix #29957: Texture "Generate" mapping work as global with cloth modifier

Make Cloth modifier deformation only so now it applies on orco dm properly.

8 years agoCycles: fixes for OpenCL build after pass changes, patch by Daniel Genrich.
Brecht Van Lommel [Thu, 26 Jan 2012 15:37:33 +0000 (15:37 +0000)]
Cycles: fixes for OpenCL build after pass changes, patch by Daniel Genrich.

8 years agoColor channels used for tracking is now a part of default tracking settings and also...
Sergey Sharybin [Thu, 26 Jan 2012 15:33:16 +0000 (15:33 +0000)]
Color channels used for tracking is now a part of default tracking settings and also a part of presets.

8 years agoMovie clip editor: default tracking settings can be copied from active track now
Sergey Sharybin [Thu, 26 Jan 2012 15:04:25 +0000 (15:04 +0000)]
Movie clip editor: default tracking settings can be copied from active track now

8 years agoFix #29960: fields option should not be used for external engine rendering.
Brecht Van Lommel [Thu, 26 Jan 2012 14:55:46 +0000 (14:55 +0000)]
Fix #29960: fields option should not be used for external engine rendering.

8 years agoFix #29966: cycles elapsed time not resetting in viewport after changes.
Brecht Van Lommel [Thu, 26 Jan 2012 14:55:39 +0000 (14:55 +0000)]
Fix #29966: cycles elapsed time not resetting in viewport after changes.

8 years agoCycles: fix issues rendering second render layer passes, and avoid unnecessary
Brecht Van Lommel [Thu, 26 Jan 2012 14:55:25 +0000 (14:55 +0000)]
Cycles: fix issues rendering second render layer passes, and avoid unnecessary
clear of buffer.

8 years agoMovie clip editor: curves view shouldn't jump back to top when click on it
Sergey Sharybin [Thu, 26 Jan 2012 13:13:48 +0000 (13:13 +0000)]
Movie clip editor: curves view shouldn't jump back to top when click on it

Also it should now re-store position after toggling it.

8 years agoFix #29958: Search Menu keeps hiding first character(s) after long input
Sergey Sharybin [Thu, 26 Jan 2012 12:48:36 +0000 (12:48 +0000)]
Fix #29958: Search Menu keeps hiding first character(s) after long input

- ui_check_but() in ui_textedit_move() is necessary because this function clips
  but->drawstring to fit text entry widget and it confuses cursor movement stuff.
  ui_check_but copies editstring to drawstring, so displaystring would be clipped
  again in correct way.
- If the whole drawstring fits widget, no need to set button's offset.

8 years agoFix #29895 Fast Alt-Mousewheel toggling of Mapping Modes scrubs timeline
Sergey Sharybin [Thu, 26 Jan 2012 12:44:31 +0000 (12:44 +0000)]
Fix #29895 Fast Alt-Mousewheel toggling of Mapping Modes scrubs timeline

Issue was caused by changing button state to EXIT, so there's no active button just after
applying Alt-Wheel event. Setting this state is needed to prevent button trigger cancel
callback when mouse is leaving hovered menu button.

Using the same "post activate" trick used by Tab button allows to make prevent canceling
button and makes this button active again after applying all handlers.

There's still issues with Alt-Scroll if changing active element in menu leads to interface
changes (like file format in render buttons) -- in this case button simple doesn't receive
wheel events and it's actually not connected to this issue.

8 years agoFix [#29984] Loop select crash on some wire edge meshes
Andrew Wiggin [Thu, 26 Jan 2012 12:39:48 +0000 (12:39 +0000)]
Fix [#29984] Loop select crash on some wire edge meshes

Crash was because the loop walker's wire edge handling wasn't general enough (handled only wire edges that were connected to exactly one other wire edge)

8 years agoMore curves view improvements for clip editor:
Sergey Sharybin [Thu, 26 Jan 2012 11:49:38 +0000 (11:49 +0000)]
More curves view improvements for clip editor:

- Renamed graph_jump_to_current_frame to graph_center_current_frame
  which makes more sense.
- Curve view now can be locked to time cursor (Lock to Time Cursor in
  Display panel or L button in curve view). Not sure if offset from
  locked position will make much sense here.
- Added hotkey for solving -- Shift-S.

8 years agoPossible fix for implicit declaration of av_rescale_q on some platforms.
Sergey Sharybin [Thu, 26 Jan 2012 11:16:49 +0000 (11:16 +0000)]
Possible fix for implicit declaration of av_rescale_q on some platforms.

8 years agoFix implicit declaration of guardedalloc functions in avi's endian.c.
Sergey Sharybin [Thu, 26 Jan 2012 10:59:31 +0000 (10:59 +0000)]
Fix implicit declaration of guardedalloc functions in avi's endian.c.
Discovered by debian building system.

8 years agoFix build on debian ports that differs from generic i386/x86_64 like kFreeBSD
Sergey Sharybin [Thu, 26 Jan 2012 10:36:36 +0000 (10:36 +0000)]
Fix build on debian ports that differs from generic i386/x86_64 like kFreeBSD

Patch by Kevin Roy, thanks!

8 years agoMovie clip editor: graph view now can be toggled using Z key
Sergey Sharybin [Thu, 26 Jan 2012 09:53:58 +0000 (09:53 +0000)]
Movie clip editor: graph view now can be toggled using Z key

8 years agoTracks curves fixes and improvements:
Sergey Sharybin [Thu, 26 Jan 2012 09:29:49 +0000 (09:29 +0000)]
Tracks curves fixes and improvements:

- Use proper poll functions for tracks curve operators.
- Darken frames outside of scene frame range in curves view.
- Implemented view all operator.
- Implemented jump to current frame operator.

8 years agoReplace hard-coded structures in selection callbacks in view3d_select with typedef...
Sergey Sharybin [Thu, 26 Jan 2012 08:12:12 +0000 (08:12 +0000)]
Replace hard-coded structures in selection callbacks in view3d_select with typedef-ed structures.

Should be no functional changes, but this discovered inconsistency in structures
used for armature circle selection, not sure how harmful this were, but it's not
nice to have such inconsistencies. Anyway, it's resolved now.

8 years agoFix for layer toggling always sticking to extend policy.
Sergey Sharybin [Thu, 26 Jan 2012 07:33:14 +0000 (07:33 +0000)]
Fix for layer toggling always sticking to extend policy.

Reported by Dalai in IRC, thanks for pointing to issue.

8 years agoFix #29991: Broken Hotkeys for rotation in custom Maya-Navigation. >rev43375
Sergey Sharybin [Thu, 26 Jan 2012 07:18:26 +0000 (07:18 +0000)]
Fix #29991: Broken Hotkeys for rotation in custom Maya-Navigation. >rev43375

Issue was caused by incorrect operator property set in revision 43376.

8 years agocorrect comments
Campbell Barton [Thu, 26 Jan 2012 06:39:51 +0000 (06:39 +0000)]
correct comments

8 years agofix [#28577] TODO: Make Face (Fkey) fails with isolated verts
Campbell Barton [Thu, 26 Jan 2012 06:26:17 +0000 (06:26 +0000)]
fix [#28577] TODO: Make Face (Fkey) fails with isolated verts

8 years agoadded support for USB Spaceball5000, also a partial attempt to accept button presses...
Mike Erwin [Thu, 26 Jan 2012 03:27:10 +0000 (03:27 +0000)]
added support for USB Spaceball5000, also a partial attempt to accept button presses from unidentified 3D mice (for ancient serial devices)

8 years agodisable toggle option for BGE boolean property, not sure why this was set.
Campbell Barton [Thu, 26 Jan 2012 01:46:16 +0000 (01:46 +0000)]
disable toggle option for BGE boolean property, not sure why this was set.

8 years agoparticle system now ensures tessfaces are available.
Campbell Barton [Thu, 26 Jan 2012 00:16:14 +0000 (00:16 +0000)]
particle system now ensures tessfaces are available.

now sintels heir works in the 3D viewport, (need to work on subsurf next)

8 years agoavoid storing over allocated arrays in tesselated custom data, was reserving initial...
Campbell Barton [Wed, 25 Jan 2012 23:59:28 +0000 (23:59 +0000)]
avoid storing over allocated arrays in tesselated custom data, was reserving initial arrays wrong the wrong array length.

8 years agofix for own error in tesselating as quad
Campbell Barton [Wed, 25 Jan 2012 22:55:12 +0000 (22:55 +0000)]
fix for own error in tesselating as  quad

8 years agofix [#29987] scene.frame_set method doesn't take in account camera change done via...
Campbell Barton [Wed, 25 Jan 2012 22:13:08 +0000 (22:13 +0000)]
fix [#29987] scene.frame_set method doesn't take in account camera change done via markers

8 years agohrmf, fix for fix [#29988] Segfault when unwrap default cube with smart project ...
Campbell Barton [Wed, 25 Jan 2012 22:06:53 +0000 (22:06 +0000)]
hrmf, fix for fix [#29988] Segfault when unwrap default cube with smart project / follow active quads

I think that we need a check here for thick wrapped strings but for now we dont have any thick wrapped strings with default values so comment it.

8 years agoenable tesselating 4 sided faces to quads.
Campbell Barton [Wed, 25 Jan 2012 21:33:37 +0000 (21:33 +0000)]
enable tesselating 4 sided faces to quads.

will help for particles and tangents

8 years agoFix #29989: Ctrl + T to show seconds in timeline, python error
Sergey Sharybin [Wed, 25 Jan 2012 21:23:34 +0000 (21:23 +0000)]
Fix #29989: Ctrl + T to show seconds in timeline, python error

Issue seems to be caused by refactoring from rev43376.

8 years agoremove cellalloc, from my tests jemalloc beats cellalloc, so we better just use a...
Campbell Barton [Wed, 25 Jan 2012 20:18:12 +0000 (20:18 +0000)]
remove cellalloc, from my tests jemalloc beats cellalloc, so we better just use a better malloc replacement.

See Details:

http://wiki.blender.org/index.php/User:Ideasman42/BMeshBranchReview#Update_43694

8 years agosvn merge ^/trunk/blender -r43685:43693
Campbell Barton [Wed, 25 Jan 2012 18:13:58 +0000 (18:13 +0000)]
svn merge ^/trunk/blender -r43685:43693

8 years agoCycles: Render Passes
Brecht Van Lommel [Wed, 25 Jan 2012 17:23:52 +0000 (17:23 +0000)]
Cycles: Render Passes

Currently supported passes:
* Combined, Z, Normal, Object Index, Material Index, Emission, Environment,
  Diffuse/Glossy/Transmission x Direct/Indirect/Color

Not supported yet:
* UV, Vector, Mist

Only enabled for CPU devices at the moment, will do GPU tweaks tommorrow,
also for environment importance sampling.

Documentation:
http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Passes

8 years agoFix #29892: Properties of objects in nested custom collections stop being animatable...
Sergey Sharybin [Wed, 25 Jan 2012 16:14:24 +0000 (16:14 +0000)]
Fix #29892: Properties of objects in nested custom collections stop being animatable once an object get added to an unrelated custom collection.

Issue was caused by attempting to find rna path in all property collections
which lead to overwritting already found path.

8 years agoVarious fixes for camera tracking stuff
Sergey Sharybin [Wed, 25 Jan 2012 13:37:11 +0000 (13:37 +0000)]
Various fixes for camera tracking stuff

- Fixed tooltip displaying for track sequence forwards in clip editor
- Corrected detection of 8 tracks so it wouldn't count tracks disabled
  on keyframes.
- Scale track preview to actual track widget size instead of scaling the
  whole preview image with given zoom ratio, so no extra memory needed to
  store zoomed margin would be used.
- Track's statistics text will fit pattern position instead of search if
  marker is disabled on current frame.
- Fixed toggle selection operator if selected track is hidden due to
  "Hide Disabled" policy.

8 years agoFix typo for sharpen graph post-processing so fac1+fac2+fac3 always equals 1.0
Sv. Lockal [Wed, 25 Jan 2012 10:10:15 +0000 (10:10 +0000)]
Fix typo for sharpen graph post-processing so fac1+fac2+fac3 always equals 1.0

8 years agoFix typo in camera reconstruction context creation.
Sergey Sharybin [Wed, 25 Jan 2012 09:27:18 +0000 (09:27 +0000)]
Fix typo in camera reconstruction context creation.

Thanks to Lockal to pointing out!

8 years agoCucumber left over: new scene needs a default ESC key
Dalai Felinto [Wed, 25 Jan 2012 01:39:38 +0000 (01:39 +0000)]
Cucumber left over: new scene needs a default ESC key

8 years agosvn merge ^/trunk/blender -r43676:43685
Campbell Barton [Tue, 24 Jan 2012 22:44:48 +0000 (22:44 +0000)]
svn merge ^/trunk/blender -r43676:43685

8 years agofound a bug by accident.
Campbell Barton [Tue, 24 Jan 2012 22:15:25 +0000 (22:15 +0000)]
found a bug by accident.
- bugfix for setting string defaults in rna functions (incorrect pointer use and would copy past string length).
- Object.dm_info was setting a default when it didnt need to.

8 years agodefine to enable tesselate to quads, this way files from trunk tesselate back into...
Campbell Barton [Tue, 24 Jan 2012 20:58:43 +0000 (20:58 +0000)]
define to enable tesselate to quads, this way files from trunk tesselate back into their original geometry with the same face order.

this will be needed for tangents and most likely hair if its to load correctly from trunk.

disabled for now until this is working correctly - hair still needs more work.

8 years agoNode UI:
Thomas Dinges [Tue, 24 Jan 2012 20:56:19 +0000 (20:56 +0000)]
Node UI:
* Make sure to check on snode_id, raised errors if no world datablock was active.

8 years agofix for memory leak when particles have 0 elements.
Campbell Barton [Tue, 24 Jan 2012 20:33:26 +0000 (20:33 +0000)]
fix for memory leak when particles have 0 elements.

8 years agoImprovement for last commit, only do redraw when actually needed (in world shader...
Thomas Dinges [Tue, 24 Jan 2012 20:19:26 +0000 (20:19 +0000)]
Improvement for last commit, only do redraw when actually needed (in world shader type)

8 years agosvn merge ^/trunk/blender -r43664:43676
Campbell Barton [Tue, 24 Jan 2012 20:19:09 +0000 (20:19 +0000)]
svn merge ^/trunk/blender -r43664:43676

8 years agoFix compilation error caused by recent changes in file browser stuff
Sergey Sharybin [Tue, 24 Jan 2012 20:13:44 +0000 (20:13 +0000)]
Fix compilation error caused by recent changes in file browser stuff

8 years agoCycles Node Editor:
Thomas Dinges [Tue, 24 Jan 2012 20:10:37 +0000 (20:10 +0000)]
Cycles Node Editor:
* Add Use Nodes button for World shader type
* UI was not redrawing the Node area, when enabling "Use nodes", added check for it to the listener.

8 years agouse a struct to pass normals to normal draw derived mesh callbacks (no functional...
Campbell Barton [Tue, 24 Jan 2012 19:57:34 +0000 (19:57 +0000)]
use a struct to pass normals to normal draw derived mesh callbacks (no functional changes)

8 years agoEnable 16 bit format for float textures by default after discussion with Morten and...
Antony Riakiotakis [Tue, 24 Jan 2012 19:54:18 +0000 (19:54 +0000)]
Enable 16 bit format for float textures by default after discussion with Morten and Sergey on irc. Rationale is that for most cases when people create a float texture they will expect the extra precision in the 3D view.

This shouldn't be a problem on any graphics card since internally a very old texture format (GL 1.1) is used. In the case of any unlikely screams, a revert of this commit can be done.

8 years agofix for 3 issues when applying a deform modifier in editmode.
Campbell Barton [Tue, 24 Jan 2012 19:37:18 +0000 (19:37 +0000)]
fix for 3 issues when applying a deform modifier in editmode.
- drawing face normals was broken (using wrong index).
- drawing flat faces in solid mode would display ugly tesselation normals (as if the model was made of triangles).
- drawing smooth faces in solid mode would show vertex normals based on tesselation (heavily slant in 1 direction).

now the normals are calculated and stored per polygon (will save some memory too for non tri meshes).

8 years agoDynamic Paint:
Miika Hamalainen [Tue, 24 Jan 2012 18:29:01 +0000 (18:29 +0000)]
Dynamic Paint:
* Converted some more functions to use mpolys/mloops instead of tessellated faces.
* Fixed some bmesh related issues.

8 years agoremove redundant casts.
Campbell Barton [Tue, 24 Jan 2012 18:24:19 +0000 (18:24 +0000)]
remove redundant casts.

8 years agosimplify editmesh mapping lookups.
Campbell Barton [Tue, 24 Jan 2012 18:20:33 +0000 (18:20 +0000)]
simplify editmesh mapping lookups.

this really has no effect since they were not created or used, however if we want to use emDM_getEdge or emDM_getTessFace this will need to be called.

8 years agoFix #29946: Recover Auto Save defaults to "Short List" View -- Cannot determine dates
Sergey Sharybin [Tue, 24 Jan 2012 18:18:51 +0000 (18:18 +0000)]
Fix #29946: Recover Auto Save defaults to "Short List" View -- Cannot determine dates

Added option display_type to WM_operator_properties_filesel which defines which file
display type (short/list/icons/default) should be used for file browser.

All current operators are using FILE_DEFAULTDISPLAY display type which means display
type will still be calculated based on type of opening file and user preferences
settings. Recover Auto Save operator is now using long display type so file date can
easily be checked now.

Reviewed by Andrea, thanks!

8 years agoDynamic Paint:
Miika Hamalainen [Tue, 24 Jan 2012 17:28:50 +0000 (17:28 +0000)]
Dynamic Paint:
* Fix: Substep update failed if brush was parented to a canvas vertex. Now substeps are ignored in such case.
* Fix: Wave "open borders" option didn't work for image sequence format.
* Fixed a possible crash after changing surface format to image sequence.
* Some code cleanup.

8 years agocorrect error in recent merge.
Campbell Barton [Tue, 24 Jan 2012 16:54:21 +0000 (16:54 +0000)]
correct error in recent merge.

8 years agoBrightness/Contrast Node for Cycles
Dalai Felinto [Tue, 24 Jan 2012 16:32:31 +0000 (16:32 +0000)]
Brightness/Contrast Node for Cycles

Contrast helps to adjust IBL (HDR images used for background lighting).
Note: In the UI we are caling it Bright instead of Brightness. This copy what Blender composite is doing.
Note2: the algorithm we are using produces pure black when contrast is 100. I'm not a fan of that, but it's a division by zero. I would like to look at other algorithms (what gimp does for example). But that would be only after 2.62.

8 years agosvn merge ^/trunk/blender -r43639:43664
Campbell Barton [Tue, 24 Jan 2012 16:18:20 +0000 (16:18 +0000)]
svn merge ^/trunk/blender -r43639:43664

8 years agocomment unused assignment.
Campbell Barton [Tue, 24 Jan 2012 15:51:44 +0000 (15:51 +0000)]
comment unused assignment.

8 years agoquiet some warnings & (possible/unlikely error)
Campbell Barton [Tue, 24 Jan 2012 15:37:50 +0000 (15:37 +0000)]
quiet some warnings & (possible/unlikely error)

8 years agoNew fix for [#29940] Stretch To constraint breaks scaling in Transform constraint...
Bastien Montagne [Tue, 24 Jan 2012 13:17:32 +0000 (13:17 +0000)]
New fix for [#29940] Stretch To constraint breaks scaling in Transform constraint, previous one caused bug [#29962] linked objects not correct on r4361, should be fixed now.

Org code was working with isotropic scaling, but when scaling only one axis, it was broken. First fix just disabled completly scale handling. This version only takes into account scaling along local Y axis, as this is the only one affecting that constraint!

Sorry for the mistake, hope this time it will be ok.

8 years agoFix #29975: Track Preview color channels not filtering correctly
Sergey Sharybin [Tue, 24 Jan 2012 12:25:03 +0000 (12:25 +0000)]
Fix #29975: Track Preview color channels not filtering correctly

Typo in checking bitflags

8 years agoBugfix: Circle-select in Pose Mode disregarded layer visibility, selecting
Joshua Leung [Tue, 24 Jan 2012 08:43:39 +0000 (08:43 +0000)]
Bugfix: Circle-select in Pose Mode disregarded layer visibility, selecting
invisible bones too

8 years agoFix #29965: Crash: Memory psys node array: end corrupt
Sergey Sharybin [Tue, 24 Jan 2012 08:43:17 +0000 (08:43 +0000)]
Fix #29965: Crash: Memory psys node array: end corrupt

Original indices from right operand were used in boolean result derived mesh
which lead to crash if right operand has got more entities (faces/edges/vertices)
than left operand.

8 years agoAdd the .Identity() classmethod to mathutils matrices. This allows the user
Andrew Hale [Tue, 24 Jan 2012 01:56:44 +0000 (01:56 +0000)]
Add the .Identity() classmethod to mathutils matrices. This allows the user
to create an identity matrix of a specific size without having to specify
all the values in the matrix and then use the .identity() method.

8 years agocommented smoke collision derived mesh,
Campbell Barton [Tue, 24 Jan 2012 01:21:43 +0000 (01:21 +0000)]
commented smoke collision derived mesh,

was storing its own copy of the collision mesh but never using it.

8 years agoremove unneeded re-tessellation converting metaball to mesh.
Campbell Barton [Tue, 24 Jan 2012 00:52:26 +0000 (00:52 +0000)]
remove unneeded re-tessellation converting metaball to mesh.

8 years agofix leak in mirror modifier.
Campbell Barton [Tue, 24 Jan 2012 00:26:12 +0000 (00:26 +0000)]
fix leak in mirror modifier.

8 years agofix for crash with mesh undo with shape keys
Campbell Barton [Mon, 23 Jan 2012 23:53:21 +0000 (23:53 +0000)]
fix for crash with mesh undo with shape keys

'undomesh' was also used in confusing way (relied on mesh being first member).

8 years agocomment unused code.
Campbell Barton [Mon, 23 Jan 2012 23:39:51 +0000 (23:39 +0000)]
comment unused code.

8 years agoMisc picky edits to UI messages.
Bastien Montagne [Mon, 23 Jan 2012 22:57:46 +0000 (22:57 +0000)]
Misc picky edits to UI messages.

8 years agofix for crash applying solidift after subsurf
Campbell Barton [Mon, 23 Jan 2012 21:04:56 +0000 (21:04 +0000)]
fix for crash applying solidift after subsurf

8 years agoassertion when bvhtree_from_mesh_faces is called and tessfaces dont exist.
Campbell Barton [Mon, 23 Jan 2012 20:46:38 +0000 (20:46 +0000)]
assertion when bvhtree_from_mesh_faces is called and tessfaces dont exist.

8 years agorst bge touch ups: making the title of the examples slightly more noticeable
Dalai Felinto [Mon, 23 Jan 2012 19:53:23 +0000 (19:53 +0000)]
rst bge touch ups: making the title of the examples slightly more noticeable
-  it's still not correct, comparing to the other examples, but at least it looks okish.
-  fixed some small typos

8 years agoBLI_array_reserve from bmesh.
Campbell Barton [Mon, 23 Jan 2012 19:42:22 +0000 (19:42 +0000)]
BLI_array_reserve from bmesh.

8 years agoFix #29970: Crash trying to track disabled marker
Sergey Sharybin [Mon, 23 Jan 2012 19:32:00 +0000 (19:32 +0000)]
Fix #29970: Crash trying to track disabled marker

8 years agoFix compilation error caused by code cleanup
Sergey Sharybin [Mon, 23 Jan 2012 17:49:56 +0000 (17:49 +0000)]
Fix compilation error caused by code cleanup

8 years agoCarve booleans: corrected copyright header
Sergey Sharybin [Mon, 23 Jan 2012 17:44:19 +0000 (17:44 +0000)]
Carve booleans: corrected copyright header

8 years agoCarve booleans: code and style cleanup
Sergey Sharybin [Mon, 23 Jan 2012 17:44:05 +0000 (17:44 +0000)]
Carve booleans: code and style cleanup

8 years agoFix #29934: New Carve library can't execute boolean operations in some cases
Sergey Sharybin [Mon, 23 Jan 2012 17:43:41 +0000 (17:43 +0000)]
Fix #29934: New Carve library can't execute boolean operations in some cases

Issue was caused by left boolean operand consist of several intersecting manifolds
which make Carve triangulator confused and which can't be resolved in general case.
Added mesh pre-processing before actual applying boolean operator on it. This
preprocessing applies union operation on intersecting manifolds of the same object
so intersection edge loop with second object wouldn't confuse tesselator and correct
result would be returned.
Detecting of intersecting manifolds is based on AABB intersection check which leads
to some extra union operation called, but it's possible to speed things up from
Carve side so union operation of two not intersecting meshes would work faster.
Additional condition for running union for manifold is this manifolds intersects
AABB of second operand, so mesh topology wouldn't be changed at all in areas
where there's definitely no intersection between operands. It might be improved
so only manifolds which actually intersects second operand would be joined
together, but it'll slow things down a bit and prefer to do it only if it'll
be really a problem.

Additional change is fixed memory leak when boolean operation fails to run -
it was missed "delete" call if exception happens in Carve library.

From side effects of this change might be named boolean operation between
suzanne and another object: suzanne is consist of three intersecting open
manifolds, so this new meshes preprocessing leads to missed eyes in result
because of failure of merging two open manifolds. Don't think making suzanne
work for all setups should really be a goal, it's a bit crappy mesh for CSG
algorithms.

8 years agoBMesh: Fix for previous own fix (re-enable DynamicPaint previews in Object mode).
Bastien Montagne [Mon, 23 Jan 2012 17:17:08 +0000 (17:17 +0000)]
BMesh: Fix for previous own fix (re-enable DynamicPaint previews in Object mode).

In fact, we have to add a CD_WEIGHT_MCOL layer (if not yet present) when updating CD_WEIGHT_MLOOPCOL, else with modifiers modifying the topology (like subsurf), it will sigsev.

That step should probably be done at tesselation time, though…

8 years agosvn merge ^/trunk/blender -r43616:43639
Campbell Barton [Mon, 23 Jan 2012 16:46:35 +0000 (16:46 +0000)]
svn merge ^/trunk/blender -r43616:43639

8 years agoBMesh: Fix (re-enable) DynamicPaint previews in Object mode.
Bastien Montagne [Mon, 23 Jan 2012 16:32:11 +0000 (16:32 +0000)]
BMesh: Fix (re-enable) DynamicPaint previews in Object mode.

Also simplifies DM_update_weight_mcol: no need to update CD_WEIGHT_MCOL here, as it is anyway recreated from CD_WEIGHT_MLOOPCOL at tesselation time. Only commented out code for now.

8 years agouse same default as trunk for cylinder depth
Campbell Barton [Mon, 23 Jan 2012 14:03:09 +0000 (14:03 +0000)]
use same default as trunk for cylinder depth

8 years agoreplace BLI_array_growone() with BLI_array_growitems() when the size of the increase...
Campbell Barton [Mon, 23 Jan 2012 13:51:44 +0000 (13:51 +0000)]
replace BLI_array_growone() with BLI_array_growitems() when the size of the increase is known ahead of time, will reduce reallocs and give some speedup.

8 years agospeedup for mesh -> bmesh conversion
Campbell Barton [Mon, 23 Jan 2012 13:50:00 +0000 (13:50 +0000)]
speedup for mesh -> bmesh conversion
- was looping over all verts/edges/faces to setup the selection store, even when there was no selection store (mselect), since this is fairly common case, add a check.

also use BLI_array_growitems rather then BLI_array_growone to allocate in larger steps.

8 years agofix for leak in bmesh_jekv() when large ngons were being used.
Campbell Barton [Mon, 23 Jan 2012 13:44:57 +0000 (13:44 +0000)]
fix for leak in bmesh_jekv() when large ngons were being used.
also make BLI_array use more efficient.

8 years agoreplace BLI_array_staticdeclare with BLI_array_fixedstack_declare()
Campbell Barton [Mon, 23 Jan 2012 13:41:28 +0000 (13:41 +0000)]
replace BLI_array_staticdeclare with BLI_array_fixedstack_declare()

This has the advantage that it only does 1 alloc at the beginning if the stack variable is too small.
(rather then constantly check to grow one, which is a really huge macro too).

8 years agominor refactor to main tesselation function
Campbell Barton [Mon, 23 Jan 2012 13:36:11 +0000 (13:36 +0000)]
minor refactor to main tesselation function
- reserve the array sizes to avoid re-allocing (even though its a lower limit it still helps)
- increase array size in larger steps then 1 by 1.
- avoid a few array lookups.
- use more obvious variable naming to make the function more readable.

8 years agoIn order to maintain consistency with other uses of .remove(), these functions will...
Andrew Hale [Mon, 23 Jan 2012 13:29:29 +0000 (13:29 +0000)]
In order to maintain consistency with other uses of .remove(), these functions will be removed and reimplemented after the BMesh merge.

The main issue in an implementation of these functions is the need to constantly edit the vertex array and subsequently update the face and edge arrays.

8 years agoimprove editmode triangulation by re-using the loop array when
Campbell Barton [Mon, 23 Jan 2012 13:25:06 +0000 (13:25 +0000)]
improve editmode triangulation by re-using the loop array when
possiblem, this has to guess when the size is too big so as to re-
well.

If this isnt done, then the number of faces is used to allocate the
initial array to at least avoid many small allocs.

added BLI_array_reserve() to reserve elements and avoid reallocing many
small arrays when the loop starts.

8 years agoavoid using resizing array for transform (size is known to begin with, use single...
Campbell Barton [Mon, 23 Jan 2012 13:15:40 +0000 (13:15 +0000)]
avoid using resizing array for transform (size is known to begin with, use single alloc)

8 years agoFix for compilation error when using scons and carve is disabled
Sergey Sharybin [Mon, 23 Jan 2012 08:48:52 +0000 (08:48 +0000)]
Fix for compilation error when using scons and carve is disabled

8 years agomodifier Apply as Shape is now Apply as Shape Key. Was confusing some users
Daniel Salazar [Mon, 23 Jan 2012 03:13:55 +0000 (03:13 +0000)]
modifier Apply as Shape is now Apply as Shape Key. Was confusing some users

8 years agoCloth: Add "velocity damping" to damping options. This will help with the "cloth...
Daniel Genrich [Mon, 23 Jan 2012 01:35:14 +0000 (01:35 +0000)]
Cloth: Add "velocity damping" to damping options. This will help with the "cloth wobbling" problem which accurs quite often when having animated characters with cloth.

8 years agoFix for "[#29911] Crash on reading BL_ActionActuator.channelNames"
Mitchell Stokes [Sun, 22 Jan 2012 23:15:35 +0000 (23:15 +0000)]
Fix for "[#29911] Crash on reading BL_ActionActuator.channelNames"

The crash occurred when an action actuator was attached to a non-armature object because objects that aren't armatures do not have pose data. A NotImplementedError is now raised if someone tries to access any of the following with an action actuator attached to a non-armature object:

BL_ActionActuator.channelNames
BL_ActionActuator.getChannel()
BL_ActionActuator.setChannel()

8 years agoCycles UI:
Thomas Dinges [Sun, 22 Jan 2012 23:13:24 +0000 (23:13 +0000)]
Cycles UI:
* Add World ID Block to World Shader Nodes.