Commit Graph

631 Commits

Author SHA1 Message Date
Nicholas Bishop
9c5907cc79 Small code cleanups related to arrays.
* Added helpful comment on 'keepverts' slot of bmop finddoubles.
* Removed unused macro 'E' from MOD_array.
2012-03-29 23:13:44 +00:00
Nicholas Bishop
7816eb7bd8 Fix "First Last" merge option in array modifier (partial fix for bug 30195) 2012-03-29 20:58:25 +00:00
Nicholas Bishop
7474397f85 More array modifier fixes.
* Skip calculation of merge indices if merging isn't enabled
* Clean up usage of BMesh operators to fix small memory leak
* Fix harmless BLI_assert in CustomData_bmesh_merge
* Another null-initialization fix in CustomData_bmesh_merge
2012-03-29 11:31:44 +00:00
Nicholas Bishop
b8bb3f2e3c Partial fix for array modifier vertex merge (bug 30195).
Two fixes:

* The find-doubles operator was overriding the "dirty" element
  indices, so vertices were not being mapped correctly.

* In some cases a vertex can be set to merge with a vertex that is
  also set to be merged, so added a loop to find the first unmerged
  vert in this case.

Not yet working is the "First Last" merge option.

Also made some cleanups and added comments in the array/remove doubles
code.
2012-03-28 22:03:46 +00:00
Campbell Barton
c9e1ced4dd code cleanup: (dont include ';' in defines), last commit also missed changes to paint_image.c 2012-03-28 01:06:43 +00:00
Nicholas Bishop
df5e551535 Fix bug 30697, strange shading on array modifier with offset object.
* An offset object can rotate output, so need to update normals to
  reflect that. Fix by adding a normals recalc, but only if there's an
  offset object.

* Added BMESH_TODO comment to check whether there are other cases were
  normals need to be updated.
2012-03-27 13:08:40 +00:00
Nicholas Bishop
57f7aca8ee Fix for position of array-modifier end cap when not using a fixed count.
Moved calculation of final offset so that correct count value has been set.
2012-03-26 19:50:45 +00:00
Nicholas Bishop
f02d679183 Fix run-time warning of freeing null pointer in array modifier. 2012-03-26 19:44:25 +00:00
Campbell Barton
7d9f0bfe76 fix [#30598] Bad 3D view display & render with smooth mesh
Sergey's suggestion - just call calc normals fixes.
2012-03-26 09:38:38 +00:00
Campbell Barton
94b8b8913e rename lattice influence to strength from r45144 (other deform modifiers call it strength too) 2012-03-26 00:42:21 +00:00
Thomas Dinges
aede928bdc Patch: [#30652] Influence slider for Lattice Modifier
* This patch adds a influence slider for the lattice modifier, which affects the strength of the deformation. 

Patch by Patrick Boelens (senshi), thanks a lot!
2012-03-25 22:14:21 +00:00
Campbell Barton
b8a71efeba style cleanup: follow style guide for/with/if spacing 2012-03-24 07:52:14 +00:00
Campbell Barton
5a90ea77bc style cleanup: follow style guide for formatting of if/for/while loops, and else if's 2012-03-24 06:24:53 +00:00
Campbell Barton
7ff77ed4ea code cleanup: use zero_v3 2012-03-23 20:18:09 +00:00
Bastien Montagne
9751653410 Renaming CD_WEIGHT_MCOL/MLOOPCOL and their masks from WEIGHT to PREVIEW, as this layer is now also used for various preview tasks in Object mode.
“Cleanup” commit, no functional changes.
2012-03-22 08:41:50 +00:00
Campbell Barton
675628d24d bmesh: debugging function to help resolve issues with corrupt mesh data - BM_mesh_validate() 2012-03-22 05:13:43 +00:00
Daniel Genrich
8186c5e429 Smoke bugfix: Fix copy paste + bad "if's" resulting in missing releation in depsgraph (smoke collision groups not working, collision object relations wrong). 2012-03-20 17:51:14 +00:00
Alexander Kuznetsov
f11a6d3a84 Adds support for utf paths on Windows.
Not all file formats/calls are supported yet. It will be expended.

Please from now on use BLI_fopen, BLI_* for file manipulations.
For non-windows systems BLI_fopen just calls fopen.
For Windows, the utf-8 string is translated to utf-16 string in order to call UTF version of the function.
2012-03-20 02:17:37 +00:00
Campbell Barton
deea1f38b1 real fix for booleans and face shading this time.
CDDM_tessfaces_to_faces wasbt updating the polyindex (missed incrementing the polyindex pointer).

also added an assert so non release builds will complain when CDDM_calc_edges_tessface() needs to run before CDDM_tessfaces_to_faces().
2012-03-20 01:33:24 +00:00
Campbell Barton
1362523ce6 CDDM_calc_edges_tessface was being called twice for boolean and explide modifiers, now leave it up to the caller to run. 2012-03-20 00:59:51 +00:00
Campbell Barton
cdfffafd20 partial fix for bug where booleans were using invalid face/poly normals.
the problem remains (though not quite as bad) but think this is because of a bug elsewhere.
2012-03-20 00:51:37 +00:00
Nicholas Bishop
9beef61199 Fix format string warnings (gcc) by using string literals.
gcc 4.6 was giving warnings like this:
"warning: format not a string literal and no format arguments [-Wformat-security]"
2012-03-19 21:38:35 +00:00
Brecht Van Lommel
f18dab65ad Fix #30531: mirror modifier with vertex groups did not add both the left and
right groups to merged vertices, only one. This made the result asymmetric,
now merged vertices will be part of both groups with half weight.
2012-03-19 21:09:16 +00:00
Bastien Montagne
53b7078343 Fix [#30234] Various problems with CD layers and tesselation, related to modifiers stack.
Should also fix [#30266], [#29451], and partly [#30316].

Here are the changes made by this commit:
* It adds a "dirty" flag to DerivedMesh struct (for now, only DM_DIRTY_TESS_CDLAYERS, but more might be added as needed).
* It adds a new func, DM_update_tessface_data, which assumes tessfaces themselves are valid, but updates tessellated customdata from their poly/loop counter parts.
* At end of modstack, when valid tessellated faces are present in finaldm , but the cdlayers dirty flag is set, call that function (instead of recomputing the whole tessellation).
* Edits to the codes concerned (UVProject, DynamicPaint, and Subsurf modifiers).
* Also add to subsurf dm generation code the creation of a CD_POLYINDEX layer (mandatory for DM_update_tessface_data to work well, and imho all tessellated dm should have one).

Note: some pieces of old code are just #if 0’ed, will clean them later.
2012-03-18 22:06:57 +00:00
Campbell Barton
4f19c1a995 spelling cleanup 2012-03-18 07:38:51 +00:00
Bastien Montagne
1f6ae5e4fb Minor UI messages fixes, and enabling i18n for all modifier_setError() error messages. 2012-03-17 14:27:46 +00:00
Campbell Barton
eab24df950 bmesh: being back bevel modifier from 2.62 stable.
this is no big improvement but at least its not a regression.

using the new operator for the bevel modifier can be enabled again be uncommenting a define.
2012-03-15 23:56:46 +00:00
Nicholas Bishop
7081abf51f Remove unused parameter from multires_dm_create_from_derived. 2012-03-15 04:08:57 +00:00
Nicholas Bishop
b37a355c8e Copy hidden flag to vertices when applying multires modifier. 2012-03-14 06:32:13 +00:00
Nicholas Bishop
38d4848020 Don't wait for sculpt stroke to create PBVH.
This idea is borrowed from the multires modifier, which already
checked if the object was in sculpt mode and, if so, created the
PBVH. That check is now moved higher up the chain into
mesh_build_data(), so that it occurs for CDDerivedMesh too.

This also replaces an assert in cdDM_getPBVH for tesselated mesh faces
with a call to create them if missing.
2012-03-14 06:30:55 +00:00
Campbell Barton
b330abc290 remove Object member from BMesh struct - was only used for undo and BMEditMesh already stores an object pointer.
also fix for own mistake with mesh conversion refactor, shape key index was off by 1 when switching editmode.
2012-03-11 19:58:56 +00:00
Campbell Barton
c21c58f44c style cleanup, also remove unused externs. 2012-03-11 19:09:01 +00:00
Campbell Barton
89a963fb7f style cleanup: comment blocks 2012-03-09 18:28:30 +00:00
Campbell Barton
79d97ca509 style cleanup - spelling. 2012-03-08 04:12:11 +00:00
Campbell Barton
52db32bb53 fix for 2 crashes from missing NULL checks. 2012-03-08 00:23:28 +00:00
Campbell Barton
46045fbb09 style cleanup - braces & else / if's 2012-03-07 04:53:43 +00:00
Campbell Barton
31d2ee9bf7 style cleanup, brackets in else/if, some indentation. 2012-03-06 18:40:15 +00:00
Campbell Barton
3882f7cde7 quiet some warnings and fix build error with strict casting rules. 2012-03-06 12:51:17 +00:00
Campbell Barton
bd83487dab fix [#30459] BMesh Edge Split Hangs.
edge split result is still not correct in this case but at least avoid eternal loop.

also - dont tag sharp edges with <2 faces for splitting.
2012-03-05 21:17:24 +00:00
Campbell Barton
f6ae27daef style cleanup - comment spelling + translate some dutch. 2012-03-04 04:35:12 +00:00
Campbell Barton
ea13ec1699 Spelling Cleanup 2012-03-01 12:20:18 +00:00
Campbell Barton
2a7f1af61e Code Cleanup:
- apply some rules for function naming conventions, added to main bmesh doc in bmesh.h.
- remove unused function BM_loops_to_corners().
2012-02-28 19:10:53 +00:00
Campbell Barton
130668b12f minor bmesh api naming edits. 2012-02-27 14:07:19 +00:00
Campbell Barton
e17bf02c2d Code Cleanup:
* made bmesh_structure.h function names more consistant.
* remove unused code in bmesh_structure.c
* removed 'Edge Flip' operator (missing from bmesh but looked into trunk feature and dont think its worth keeping).
* tagged  some BMESH_TODO's
2012-02-27 13:47:53 +00:00
Campbell Barton
47c373c7a9 style cleanup (mostly whitespace) 2012-02-27 10:35:39 +00:00
Campbell Barton
c956e5d2d9 modified fix for "Fix [#30351] Solidify Modifier High Quality Normals fails." from r44464.
rather then recalc polygon normals - solidify is simple enough to just flip the normals of the copied faces, the rim faces normals are already re-calculated so copy them.
2012-02-26 18:12:01 +00:00
Bastien Montagne
5970adaccf Fix [#30351] Solidify Modifier High Quality Normals fails.
Don't really know why, but appears we need to recalc normals when this option is ON.

Also small perf improvement (avoid to compute twice each face normals).
2012-02-26 15:38:28 +00:00
Campbell Barton
c65b3b73fd bmesh api cleanup
* better type safety for BM_elem_flag_* and BM_elem_index_* functions.
* add BMElem type to be used where BMFace/Edge/Vert/Loop can be interchanged.
* fix bug in select manifold, found when making functions more strict.
2012-02-25 22:23:40 +00:00
Campbell Barton
98aececc8e bmesh code cleanup
* change BMO_elem_flag_* defines to inline functions.
* BMO_slot_map_insert() is too big for an inline function - un-inline it.
* remove redundant casts.
2012-02-25 20:58:03 +00:00
Sergey Sharybin
aff0c6c0f4 Fixed crash in UV project modifier. 2012-02-24 12:30:49 +00:00