blender.git
7 years agocode cleanup
Campbell Barton [Sat, 25 Feb 2012 09:02:05 +0000 (09:02 +0000)]
code cleanup
* correct cmake/clang warning.
* use same include guard names as everywhere else for BLI math inline.
* correct define for madd_sh_shfl

7 years agoremove redundant NULL check in draw_new_particle_system()
Campbell Barton [Sat, 25 Feb 2012 08:37:51 +0000 (08:37 +0000)]
remove redundant NULL check in draw_new_particle_system()

7 years agoCollada export: bone parenting is actually against the tail.
Juha Mäki-Kanto [Fri, 24 Feb 2012 21:45:59 +0000 (21:45 +0000)]
Collada export: bone parenting is actually against the tail.

Don't know the reasoning for having it be against the tail and not the head.

7 years agoCollada export: fix no polylist after bmesh-merge
Juha Mäki-Kanto [Fri, 24 Feb 2012 21:15:58 +0000 (21:15 +0000)]
Collada export: fix no polylist after bmesh-merge

Just needed a call to BKE_mesh_tessface_ensure when exporting geometries.

7 years agoFix for #30336: Couldn't playback from Python without having played back via logic...
Joerg Mueller [Fri, 24 Feb 2012 19:34:29 +0000 (19:34 +0000)]
Fix for #30336: Couldn't playback from Python without having played back via logic bricks once.

Thanks Colin Nickerson for reporting.

7 years agoOSX: set ffmpeg back in darwin-config according librenaming
Jens Verwiebe [Fri, 24 Feb 2012 18:31:09 +0000 (18:31 +0000)]
OSX: set ffmpeg back in darwin-config according librenaming

7 years agobmesh bridge - copy UVs and face data whem available.
Campbell Barton [Fri, 24 Feb 2012 17:47:51 +0000 (17:47 +0000)]
bmesh bridge - copy UVs and face data whem available.

7 years agoPython: add MeshLoop.index, same as already existed for vert/edge/face/poly.
Brecht Van Lommel [Fri, 24 Feb 2012 15:53:26 +0000 (15:53 +0000)]
Python: add MeshLoop.index, same as already existed for vert/edge/face/poly.

7 years agoCycles: tweak for AMD opencl compile of advanced shading, from Daniel Genrich,
Brecht Van Lommel [Fri, 24 Feb 2012 15:53:19 +0000 (15:53 +0000)]
Cycles: tweak for AMD opencl compile of advanced shading, from Daniel Genrich,
still does not work correct but should compile if you have enough memory.

7 years agoBlender should now compile fine with older FFmpeg libraries used.
Sergey Sharybin [Fri, 24 Feb 2012 15:34:57 +0000 (15:34 +0000)]
Blender should now compile fine with older FFmpeg libraries used.

7 years agoMore consistent variable naming.
Sergey Sharybin [Fri, 24 Feb 2012 14:03:18 +0000 (14:03 +0000)]
More consistent variable naming.

7 years agoTODO item: zoom to mouse location in image editor
Sergey Sharybin [Fri, 24 Feb 2012 14:01:42 +0000 (14:01 +0000)]
TODO item: zoom to mouse location in image editor

7 years agobmesh py api - fix for error creating a new face
Campbell Barton [Fri, 24 Feb 2012 13:50:36 +0000 (13:50 +0000)]
bmesh py api - fix for error creating a new face

7 years agoCode clean-up and make zoom in/out operator store mouse coordinate
Sergey Sharybin [Fri, 24 Feb 2012 13:44:45 +0000 (13:44 +0000)]
Code clean-up and make zoom in/out operator store mouse coordinate
so exec() callback will zoom in/out properly.

7 years agoCLIP_OT_view_zoom (Ctrl-MMB) now takes into account Zoom to Mouse Position setting
Sergey Sharybin [Fri, 24 Feb 2012 13:31:18 +0000 (13:31 +0000)]
CLIP_OT_view_zoom (Ctrl-MMB) now takes into account Zoom to Mouse Position setting

7 years agobmesh python api:
Campbell Barton [Fri, 24 Feb 2012 12:57:05 +0000 (12:57 +0000)]
bmesh python api:
 bm.verts.get(verts) / bm.faces.get(verts)

 - use to find an edge or face from a vertex list passed.

7 years agoFixed crash in UV project modifier.
Sergey Sharybin [Fri, 24 Feb 2012 12:30:49 +0000 (12:30 +0000)]
Fixed crash in UV project modifier.

7 years agochange default name of Texture face layer to UVMap, while we fake UV's and texface...
Campbell Barton [Fri, 24 Feb 2012 12:10:41 +0000 (12:10 +0000)]
change default name of Texture face layer to UVMap, while we fake UV's and texface as being the same.

7 years agobmesh py api - bmesh.utils.face_flip
Campbell Barton [Fri, 24 Feb 2012 11:04:09 +0000 (11:04 +0000)]
bmesh py api - bmesh.utils.face_flip

7 years agobmesh: minor speedup, use 1 iterator rather then 2 when normalizing verts.
Campbell Barton [Fri, 24 Feb 2012 10:40:32 +0000 (10:40 +0000)]
bmesh: minor speedup, use 1 iterator rather then 2 when normalizing verts.

7 years agobmesh py api - normal_update() functions for vert/edge/face.
Campbell Barton [Fri, 24 Feb 2012 10:35:52 +0000 (10:35 +0000)]
bmesh py api - normal_update() functions for vert/edge/face.

7 years agobmesh py api, minor change - edges now take a seq of 2: bm.verts.new((v1, v2), exampl...
Campbell Barton [Fri, 24 Feb 2012 10:17:30 +0000 (10:17 +0000)]
bmesh py api, minor change - edges now take a seq of 2: bm.verts.new((v1, v2), example=None)

7 years agobmesh docs now written in sphinx doc generator.
Campbell Barton [Fri, 24 Feb 2012 09:53:29 +0000 (09:53 +0000)]
bmesh docs now written in sphinx doc generator.
* http://www.blender.org/documentation/blender_python_api_2_62_0/bmesh.types.html
* http://www.blender.org/documentation/blender_python_api_2_62_0/bmesh.utils.html

7 years agoChanges in FFV1 codec settings
Sergey Sharybin [Fri, 24 Feb 2012 09:49:44 +0000 (09:49 +0000)]
Changes in FFV1 codec settings

Since FFmpeg 0.10 release FFV1 codec supports alpha channel which is getting
enabled when using PIX_FMT_RGB32 pixel format. This leads to incompatibility of
videos rendered in Blender with almost all external players (especially in OSX).

Seems that PIX_FMT_BGR0 is recommended to be used to make videos compatible with
older players which doesn't support alpha channel in FFV1.

Also added an option to switch to RGBA rendering if FFV1 codec is used and if RGBA
rendering is used FFV1 will be using PIX_FMT_RGB32 format which supports alpha channel.

7 years agotypo cleanup, no functional changes.
Campbell Barton [Fri, 24 Feb 2012 06:44:04 +0000 (06:44 +0000)]
typo cleanup, no functional changes.

7 years agobmesh py api (some api changes and doc additions)
Campbell Barton [Fri, 24 Feb 2012 05:56:06 +0000 (05:56 +0000)]
bmesh py api (some api changes and doc additions)
* remove 'select' and 'hide' from BMLoop
* remove BMesh.update
* add BMesh.normal_update(skip_hidden=False)
* add BMElemSet.index_update(), eg: bm.verts.index_update()

bmesh api
* BM_mesh_normals_update() now takes skip_hidden as an argument
(previously this was default behavior), however this isnt good when
using BMesh modifiers, where you want all normals to be recalculated.
* add bm_iter_itype_htype_map[], to get the iter type from a BMesh
iterator.

7 years agobmesh python api - add/improve rst docstrings.
Campbell Barton [Fri, 24 Feb 2012 04:59:13 +0000 (04:59 +0000)]
bmesh python api - add/improve rst docstrings.

7 years agoFix #30325: bmesh edges were marked as sharp by default, after recent
Brecht Van Lommel [Thu, 23 Feb 2012 21:23:49 +0000 (21:23 +0000)]
Fix #30325: bmesh edges were marked as sharp by default, after recent
refactor to reuse BM_ELEM_SMOOTH flag for sharp flag.

7 years agoFix #30268: cloth collision and springs not working after bmesh merge,
Brecht Van Lommel [Thu, 23 Feb 2012 21:07:22 +0000 (21:07 +0000)]
Fix #30268: cloth collision and springs not working after bmesh merge,
these cloth and collision modifiers require tesselation still.

7 years agoFix #30326: calling e.g. bpy.ops.object.proxy_make(object = 'Lamp') would
Brecht Van Lommel [Thu, 23 Feb 2012 20:31:51 +0000 (20:31 +0000)]
Fix #30326: calling e.g. bpy.ops.object.proxy_make(object = 'Lamp') would
not pick the right object. This operator had two properties "object" and
"type", but the latter was used while the former had the right description.
Now changed it to have only an "object" property, so that the above code works.

7 years agoFix #30140: cycles multi GPU rendering with one device supporting full
Brecht Van Lommel [Thu, 23 Feb 2012 20:27:17 +0000 (20:27 +0000)]
Fix #30140: cycles multi GPU rendering with one device supporting full
shading and the other not can't work correct, disabled that now.

7 years agoFix #30246: rendering multiple render layers with CUDA still not working,
Brecht Van Lommel [Thu, 23 Feb 2012 19:48:18 +0000 (19:48 +0000)]
Fix #30246: rendering multiple render layers with CUDA still not working,
should really be fixed now.

7 years agoFix #30323: Graph view in the Movie Clip Editor does not stay open
Sergey Sharybin [Thu, 23 Feb 2012 18:51:24 +0000 (18:51 +0000)]
Fix #30323: Graph view in the Movie Clip Editor does not stay open

In fact, Graph View wasn't been supposed to be opened in Clip show editor mode.
Made curves view unavailable from Clip view mode and store it's alignment in
a runtime flag in SpaceClip structure.

7 years agobmesh py api - ensure data layers to store bmesh pointers exist - removing all elemen...
Campbell Barton [Thu, 23 Feb 2012 17:22:37 +0000 (17:22 +0000)]
bmesh py api - ensure data layers to store bmesh pointers exist - removing all elements could free them for eg.

7 years agobmesh py api
Campbell Barton [Thu, 23 Feb 2012 17:14:53 +0000 (17:14 +0000)]
bmesh py api
bmesh.utils.face_join(faces)

added a utility function for converting a list of python BMesh elements into a C array.
use for this face_join as well as BMesh.faces.new()

7 years agoFix #30306: crash duplicating object with action actuator but no animation data.
Brecht Van Lommel [Thu, 23 Feb 2012 16:12:36 +0000 (16:12 +0000)]
Fix #30306: crash duplicating object with action actuator but no animation data.

7 years agobmesh split tool (Ykey), was only splitting off faces, unlike EditMesh which could...
Campbell Barton [Thu, 23 Feb 2012 16:00:53 +0000 (16:00 +0000)]
bmesh split tool (Ykey), was only splitting off faces, unlike EditMesh which could also split edges.
make this behavior optional and default to off (match EditMesh).

7 years agoprevious fix wasnt working in edge mode, now selection +/- works in vert/edge/face...
Campbell Barton [Thu, 23 Feb 2012 15:47:18 +0000 (15:47 +0000)]
previous fix wasnt working in edge mode, now selection +/- works in vert/edge/face modes.

7 years agofix [#30318] increase/decrease selection won't work (select-more/less)
Campbell Barton [Thu, 23 Feb 2012 15:22:29 +0000 (15:22 +0000)]
fix [#30318] increase/decrease selection won't work (select-more/less)

This was a problem with bmesh merge, now it works as expected again.

7 years agoFix #30298: fluid simulation from older files not working when loaded into 2.62,
Brecht Van Lommel [Thu, 23 Feb 2012 15:10:26 +0000 (15:10 +0000)]
Fix #30298: fluid simulation from older files not working when loaded into 2.62,
this was due to a wrong version patch which leaves simulation speed to 0.

7 years agoCycles: fix cuda kernel not getting rebuilt correctly after changes, due to
Brecht Van Lommel [Thu, 23 Feb 2012 15:10:10 +0000 (15:10 +0000)]
Cycles: fix cuda kernel not getting rebuilt correctly after changes, due to
refactoring that changed variable names, also fixed OpenCL compile issue with
advanced shading.

7 years agofix for meshes not showing up in the game engine.
Campbell Barton [Thu, 23 Feb 2012 14:24:45 +0000 (14:24 +0000)]
fix for meshes not showing up in the game engine.

7 years agobmesh py api, added: bmesh.utils.edge_rotate(edge, ccw=False)
Campbell Barton [Thu, 23 Feb 2012 14:15:26 +0000 (14:15 +0000)]
bmesh py api, added: bmesh.utils.edge_rotate(edge, ccw=False)

    also improved docstrings.

7 years agoquiet error message when saving (WM_OT_save_as_mainfile.use_mesh_compat not found).
Campbell Barton [Thu, 23 Feb 2012 13:14:59 +0000 (13:14 +0000)]
quiet error message when saving (WM_OT_save_as_mainfile.use_mesh_compat not found).

7 years agoelsyiun theme
Campbell Barton [Thu, 23 Feb 2012 13:08:42 +0000 (13:08 +0000)]
elsyiun theme
* too light unselected vertex color.
* active color was darker then selected color (make active a lighter tint of selected).

7 years agoFix #30320: Shading issue with boolean modifier
Sergey Sharybin [Thu, 23 Feb 2012 12:28:18 +0000 (12:28 +0000)]
Fix #30320: Shading issue with boolean modifier

Seems that after converting tessfaces into faces normals should be re-calculated.
At least that's what happening in some other modifiers and what makes boolean
work fine with smooth normals.

7 years agoadding icosphere was broken with own recent commit
Campbell Barton [Thu, 23 Feb 2012 12:11:27 +0000 (12:11 +0000)]
adding icosphere was broken with own recent commit

7 years agoSegments and rings for UV Sphere were swapped.
Sergey Sharybin [Thu, 23 Feb 2012 12:06:49 +0000 (12:06 +0000)]
Segments and rings for UV Sphere were swapped.

7 years agobmesh py api, new elements now take optional 'example' arguments, so the new data...
Campbell Barton [Thu, 23 Feb 2012 11:27:22 +0000 (11:27 +0000)]
bmesh py api, new elements now take optional 'example' arguments, so the new data copies from the existing.

7 years agouse __ prefix on header guards to avoid mixing up defines with api functions / classes.
Campbell Barton [Thu, 23 Feb 2012 10:41:31 +0000 (10:41 +0000)]
use __ prefix on header guards to avoid mixing up defines with api functions / classes.

7 years agoBugfix: don't read from a write-only VBO when updating grid buffers.
Nicholas Bishop [Thu, 23 Feb 2012 10:35:23 +0000 (10:35 +0000)]
Bugfix: don't read from a write-only VBO when updating grid buffers.

7 years agobmesh py api functions:
Campbell Barton [Thu, 23 Feb 2012 10:29:04 +0000 (10:29 +0000)]
bmesh py api functions:
bmesh.utils.vert_collapse_edge, vert_collapse_faces, vert_dissolve, face_split

7 years agobmesh api cleanup, remove unused header.
Campbell Barton [Thu, 23 Feb 2012 10:24:20 +0000 (10:24 +0000)]
bmesh api cleanup, remove unused header.

7 years agoFix #30315: Temporary proxy files are not erased and old proxys are not updated if...
Sergey Sharybin [Thu, 23 Feb 2012 10:18:10 +0000 (10:18 +0000)]
Fix #30315: Temporary proxy files are not erased and old proxys are not updated if the proxy is built more then once (windows)

Two issues are fixed here:
- On windows rename() doesn't actually renames file if destination file is already exist.
  Solved by ulinking previously built proxy/timecode.
- IMB_TC_MAX_SLOT was set to incorrect value leading to record run timecode calculating
  several times.

7 years agoBGE is compilable by MSVC again
Sergey Sharybin [Thu, 23 Feb 2012 09:40:10 +0000 (09:40 +0000)]
BGE is compilable by MSVC again

Compilation error was mostly caused by trying to use namespace std before it was
actually defined (e.g. before any include of stl header).
It's not actually good idea to use namespaces in header files -- it's really easy to
run into namespace conflicts and so. Resolved by not using "using namespace" in header
files and using full quality accessing to stl collections (e.g. std::vector).

7 years agobmesh minor api refactor
Campbell Barton [Thu, 23 Feb 2012 09:26:53 +0000 (09:26 +0000)]
bmesh minor api refactor
* BM_vert_in_face now loops over a vert's faces rather then every vert in the face.
* rename bmesh_radial_find_first_facevert --> bmesh_radial_find_first_faceloop
* rename bmesh_radial_find_next_facevert --> bmesh_radial_find_next_faceloop
* rename BM_vert_collapse_edges --> BM_vert_collapse_edge (only collapses one)

7 years ago* Fixed some typos in the code, patch [#30247] by Vladimir Rutsky (rutsky). Thanks!
Thomas Dinges [Thu, 23 Feb 2012 09:23:29 +0000 (09:23 +0000)]
* Fixed some typos in the code, patch [#30247] by Vladimir Rutsky (rutsky). Thanks!

7 years agoCycles:
Thomas Dinges [Thu, 23 Feb 2012 09:11:17 +0000 (09:11 +0000)]
Cycles:
* Remove obsolete comments in the Oren Nayar code.

7 years agoRefresh all cached ibmufs used by sequencer after all proxies are built.
Sergey Sharybin [Thu, 23 Feb 2012 08:41:13 +0000 (08:41 +0000)]
Refresh all cached ibmufs used by sequencer after all proxies are built.

Hopefully this will fix #30196: Proxies Not Visible in VSE Preview Window until Blender Reboot

7 years agoCode cleanup: replace some common CCG operations with functions.
Nicholas Bishop [Thu, 23 Feb 2012 07:21:33 +0000 (07:21 +0000)]
Code cleanup: replace some common CCG operations with functions.

The new functions are ccg_gridsize, ccg_edgesize, ccg_spacing, and
ccg_edgebase. These target most of the left-shift operations in the
code.

7 years agobmesh py api, new submodules
Campbell Barton [Thu, 23 Feb 2012 05:20:09 +0000 (05:20 +0000)]
bmesh py api, new submodules
* bmesh.types, just allows access to BMVert, BMEdge etc.
* bmesh.utils, so far only added edge_split() function, this module will give access to mesh editing functions.

7 years agoswap arg order for BM_edge_split(), makes sense to have edge as first
Campbell Barton [Thu, 23 Feb 2012 05:17:07 +0000 (05:17 +0000)]
swap arg order for BM_edge_split(), makes sense to have edge as first
arg.

7 years ago- swap arg order for BM_face_copy() boolean options.
Campbell Barton [Thu, 23 Feb 2012 04:26:24 +0000 (04:26 +0000)]
- swap arg order for BM_face_copy() boolean options.
- use edge example for BM_face_split().

7 years agobmesh py api, more wrapped funcs:
Campbell Barton [Thu, 23 Feb 2012 04:19:25 +0000 (04:19 +0000)]
bmesh py api, more wrapped funcs:
* BMFace.copy(verts=True, faces=Trur)
* BMEdge.other_vert(vert)

7 years agobmesh py api: functions for getting the area/angle/center of BMesh elements.
Campbell Barton [Thu, 23 Feb 2012 03:39:39 +0000 (03:39 +0000)]
bmesh py api: functions for getting the area/angle/center of BMesh elements.

7 years agocode cleanup: dont set the namespace in STR_String.h - 'using namespace std', since...
Campbell Barton [Thu, 23 Feb 2012 02:36:30 +0000 (02:36 +0000)]
code cleanup: dont set the namespace in STR_String.h - 'using namespace std', since this is included in many places.

7 years agocode style cleanup, no functional changes.
Campbell Barton [Thu, 23 Feb 2012 02:23:42 +0000 (02:23 +0000)]
code style cleanup, no functional changes.

7 years agostyle cleanup for blenkernel, no functional changes.
Campbell Barton [Thu, 23 Feb 2012 02:17:50 +0000 (02:17 +0000)]
style cleanup for blenkernel, no functional changes.

7 years agoMove PBVH bitmap to separate header in blenlib.
Nicholas Bishop [Wed, 22 Feb 2012 23:57:31 +0000 (23:57 +0000)]
Move PBVH bitmap to separate header in blenlib.

The implementation was also changed in a couple ways: use unsigned
integers as its base type rather than unsigned chars, and uses macros
rather than functions. (These could be changed to inline functions.)

Currently it is still only used during PBVH building, but now it's
accessible elsewhere.

7 years agoCode cleanup: de-duplicate code in GPU_build_grid_buffers() with a macro.
Nicholas Bishop [Wed, 22 Feb 2012 23:30:56 +0000 (23:30 +0000)]
Code cleanup: de-duplicate code in GPU_build_grid_buffers() with a macro.

7 years agoCode cleanup: split up some long functions in sculpt_undo.c.
Nicholas Bishop [Wed, 22 Feb 2012 23:13:05 +0000 (23:13 +0000)]
Code cleanup: split up some long functions in sculpt_undo.c.

Should be no functional changes.

7 years agoCode cleanup: don't use GHash for GPU_build_mesh_buffers().
Nicholas Bishop [Wed, 22 Feb 2012 22:48:34 +0000 (22:48 +0000)]
Code cleanup: don't use GHash for GPU_build_mesh_buffers().

At the point where GPU_build_mesh_buffers is called, the
face_vert_indices map has already been built; it contains the same
data in an easier-to-access format.

7 years agoCode cleanup: remove unused 'skip' field from PBVH iterator.
Nicholas Bishop [Wed, 22 Feb 2012 22:41:08 +0000 (22:41 +0000)]
Code cleanup: remove unused 'skip' field from PBVH iterator.

7 years agoCode cleanup: move the PBVH iterator's initialization into a function.
Nicholas Bishop [Wed, 22 Feb 2012 22:37:01 +0000 (22:37 +0000)]
Code cleanup: move the PBVH iterator's initialization into a function.

Should be no functional changes, just shortens the amount of code
living in the macro.

7 years agofix scons compilation, hopefully for all platforms that have a problem.
Antony Riakiotakis [Wed, 22 Feb 2012 20:31:19 +0000 (20:31 +0000)]
fix scons compilation, hopefully for all platforms that have a problem.

7 years agoArmature pose evaluation: more factorization of code.
Bastien Montagne [Wed, 22 Feb 2012 20:06:33 +0000 (20:06 +0000)]
Armature pose evaluation: more factorization of code.

Now constraints' space conversion code also uses generic armature_mat_(pose_to_bone/bone_to_pose). Previous own function (constraint_pchan_diff_mat) was somewhat inconsistent too with Hinge/NoScale/LocalLocation options...
As with previous similar changes, this might break some old rigs, in very specific cases (when constraint-evaluating an hinge/noscale/local_location bone in local space).

In the same part of code, removed unnecessary matrices copying, mult_m4_m4m4 can take the same matrix as input and output, nowadays...

Also found a bug-generator weakness in those armature_mat_ functions (if both input and output mat where the same, result was wrong, now systematically copying input mat, as done in LIB's matrix funcs).

Finally, factorized offset bone matrix generation into its own small function too, as it is used in two different places in armature.c (pchan_to_pose_mat itself, and restpose's where_is_armature_bone).

Note: I think all parts of blender's code related to that topic have now been tackled, but yet have to check BGE, it’s probably using that stuff too, one way or the other...

7 years agoFix blenderplayer linking with recent additions to bmesh python. We should really...
Antony Riakiotakis [Wed, 22 Feb 2012 18:57:17 +0000 (18:57 +0000)]
Fix blenderplayer linking with recent additions to bmesh python. We should really start building with player on so that mistakes like this can be detected early.

7 years agocode cleanyp - no functional changes.
Campbell Barton [Wed, 22 Feb 2012 16:52:06 +0000 (16:52 +0000)]
code cleanyp - no functional changes.

7 years agoMore style edits (adding a space between statements and parenthesis, if (foo) blah...
Bastien Montagne [Wed, 22 Feb 2012 16:21:17 +0000 (16:21 +0000)]
More style edits (adding a space between statements and parenthesis, if (foo) blah;), to follow wiki.blender.org/index.php/User:Nazg-gul/CodeStyle proposition.

7 years agobmesh python api change in internal behavior.
Campbell Barton [Wed, 22 Feb 2012 16:08:30 +0000 (16:08 +0000)]
bmesh python api change in internal behavior.

* Only have 1 python object per bmesh, vertex, edge, loop, face.
* Store pointers back to the python data in a custom data layer so as not to use more memory for normal editing operations (when pythons not running).
* Currently this data is created and freed along with the BMesh PyObject.
* Incidentally - this fixes comparisons for bmesh elements which wasnt working before.

7 years agoStyle code cleanup and consistancy (mainly spaces around assignements, C++ comments...
Bastien Montagne [Wed, 22 Feb 2012 15:35:42 +0000 (15:35 +0000)]
Style code cleanup and consistancy (mainly spaces around assignements, C++ comments to C, and misc spaces/tabs cleanup). No functional change.

7 years agoCycles: improve the Oren-Nayar BSDF (roughness value for Diffuse), to avoid
Brecht Van Lommel [Wed, 22 Feb 2012 15:04:22 +0000 (15:04 +0000)]
Cycles: improve the Oren-Nayar BSDF (roughness value for Diffuse), to avoid
undesired dark rings, and give more accurate lighting when the light is
behind the object. As a bonus, the code is simpler & faster.

Patch by Yasuhiro Fujii, detailed explanation here:
http://mimosa-pudica.net/improved-oren-nayar.html

7 years agofix 2 small bugs
Campbell Barton [Wed, 22 Feb 2012 14:55:12 +0000 (14:55 +0000)]
fix 2 small bugs
* Ctrl+Click extrude wasnt normalizing the quaternion (was printing warnings)
* bmesh bevel was supposed to add a float layer and remove, but removing passed the mask define of the customdata layer.

7 years agoMulti File Output Node:
Thomas Dinges [Wed, 22 Feb 2012 14:19:39 +0000 (14:19 +0000)]
Multi File Output Node:
* Some small UI tweaks, grey out image settings rather than hide and made it a bit more compact.

7 years agoFix freeing of NULL pointer in array modifier.
Sergey Sharybin [Wed, 22 Feb 2012 13:15:29 +0000 (13:15 +0000)]
Fix freeing of NULL pointer in array modifier.

7 years agoFixed compilation error after recent node commit.
Sergey Sharybin [Wed, 22 Feb 2012 12:59:43 +0000 (12:59 +0000)]
Fixed compilation error after recent node commit.

7 years agoadd slice access to bmesh sequences.
Campbell Barton [Wed, 22 Feb 2012 12:54:53 +0000 (12:54 +0000)]
add slice access to bmesh sequences.
eg:
 verts = bm.verts[1:-7]

7 years agoBMesh-py attributes (readonly):
Campbell Barton [Wed, 22 Feb 2012 12:28:32 +0000 (12:28 +0000)]
BMesh-py attributes (readonly):
* is_valid (all types)
* is_wire (verts/edges)
* is_boundry (edge only)
* is_manifold (verts/edges)

also corrected own error, missed updating BMesh operator formatting char (broke erase only-faces)

7 years agoAdds a new node type for saving multiple image files from a single node.
Lukas Toenne [Wed, 22 Feb 2012 12:24:04 +0000 (12:24 +0000)]
Adds a new node type for saving multiple image files from a single node.

Unlike the existing file output node this node has an arbitrary number of
possible input slots. It has a base path string that can be set to a general
base folder. Every input socket then uses its name as an extension of the base
path for file organization. This can include further subfolders on top of the
base path. Example:

Base path: '/home/user/myproject'
Input 1: 'Compo'
Input 2: 'Diffuse/'
Input 3: 'details/Normals'

would create output files
in /home/user/myproject: Compo0001.png, Compo0002.png, ...
in /home/user/myproject/Diffuse: 0001.png, 0002.png, ... (no filename base
given)
in /home/user/myproject/details: Normals0001.png, Normals0002.png, ...

Most settings for the node can be found in the sidebar (NKEY). New input sockets
can be added with the "Add Input" button. There is a list of input sockets and
below that the details for each socket can be changed, including the sub-path
and filename. Sockets can be removed here as well. By default each socket uses
the render settings file output format, but each can use its own format if
necessary.

To my knowledge this is the first node making use of such dynamic sockets in
trunk. So this is also a design test, other nodes might use this in the future.

Adding operator buttons on top of a node is a bit unwieldy atm, because all node
operators generally work on selected and/or active node(s). The operator button
would therefore either have to make sure the node is  activated before the
operator is called (block callback maybe?) OR it has to store the node name
(risky, weak reference). For now it is only used in the sidebar, where only the
active node's buttons are displayed.

Also adds a new struct_type value to bNodeSocket, in order to distinguish
different socket types with the same data type (file inputs are SOCK_RGBA color
sockets). Would be nicer to use data type only for actual data evaluation, but
used in too many places, this works ok for now.

7 years agoFix #30290: Shape Keys not working as expected
Sergey Sharybin [Wed, 22 Feb 2012 12:11:56 +0000 (12:11 +0000)]
Fix #30290: Shape Keys not working as expected

New method of vertex shapekey propagation didn't restored coordinates in
me->mvert array which lead to unwanted deformation of basis mesh and
lead to issues like described in the report.

7 years agobmesh py api add connectivity attributes - to access adjacent data.
Campbell Barton [Wed, 22 Feb 2012 12:04:44 +0000 (12:04 +0000)]
bmesh py api add connectivity attributes - to access adjacent data.

7 years agobmesh py api - function to remove vert/edge/faces
Campbell Barton [Wed, 22 Feb 2012 11:52:56 +0000 (11:52 +0000)]
bmesh py api - function to remove vert/edge/faces

7 years agobmesh python api - add BMEdge.verts, also had to add VERTS_OF_EDGE iterator in bmesh...
Campbell Barton [Wed, 22 Feb 2012 11:31:07 +0000 (11:31 +0000)]
bmesh python api - add BMEdge.verts, also had to add VERTS_OF_EDGE iterator in bmesh's api.

7 years agobmesh py api - generalize bmesg sequences to use the iterator type and optionally...
Campbell Barton [Wed, 22 Feb 2012 10:41:07 +0000 (10:41 +0000)]
bmesh py api - generalize bmesg sequences to use the iterator type and optionally another bmesh element.

This allows BMFace.verts to be added without defining a new sequence type.

7 years agoinitial bmesh python api.
Campbell Barton [Wed, 22 Feb 2012 09:19:53 +0000 (09:19 +0000)]
initial bmesh python api.

corrently allows to create and loop over verts/edges/faces, access selection and selection modes.

this is still WIP, access to face, edge verts is still missing, no access to UV's, no access to editing operations yet.

When the api is ready it will be documented by sphinx like mathutils, blf, aud.

7 years agoutility functions to convert between flags / sets, without depending on RNA API.
Campbell Barton [Wed, 22 Feb 2012 09:15:46 +0000 (09:15 +0000)]
utility functions to convert between flags / sets, without depending on RNA API.

7 years agocorrect exception - was using a TypeError when should be a ValueError.
Campbell Barton [Wed, 22 Feb 2012 09:13:29 +0000 (09:13 +0000)]
correct exception - was using a TypeError when should be a ValueError.

7 years agoFix #30276: mesh subdivision shorcut with maya preset
Sergey Sharybin [Wed, 22 Feb 2012 08:25:14 +0000 (08:25 +0000)]
Fix #30276: mesh subdivision shorcut with maya preset

Added subdivisions shortcut for mesh editing mode to maya preset.
Not actually sure such shortcut present in Maya, but seems to be logical
to have it both object and edit modes.

7 years agoMade Maya keymap working again.
Sergey Sharybin [Wed, 22 Feb 2012 08:16:12 +0000 (08:16 +0000)]
Made Maya keymap working again.
Keypam for midpoint knife cutting was disabled for a while due to
midpoint toggle was moved to a model keymap and i'm not sure how to
start operator with midpoint enabled by default.

7 years agoFix #30231: Drag and Droping Parenting from Outliner giving unnecessary Loop Error
Sergey Sharybin [Wed, 22 Feb 2012 07:56:15 +0000 (07:56 +0000)]
Fix #30231: Drag and Droping Parenting from Outliner giving unnecessary Loop Error

In fact, error was much deeper and DND parenting in outliner used to parent all selected
objects to drop target, not just currently dragging object.

This was caused by code sharing between Parent Set operator and this DND operator which
was iterating all selected objects in scene and was setting parent to it.

Solved issue by separating actual parenting code which makes specified object be parented
to specified parent and moved iterating to Parent Set exec callback.

Now both of discovered issues (unneeded loop error and parenting all selected objects)
are solved, but more extensive testing of this changes are welcome.