Commit Graph

183 Commits

Author SHA1 Message Date
Campbell Barton
f5bb4635c6 fix [#30852] Wrong Material ID applied for the new faces 2012-04-09 05:17:07 +00:00
Campbell Barton
4fc6ef1cf5 style cleanup: pep8 some C/style 2012-04-08 08:09:37 +00:00
Campbell Barton
c1e475e527 code cleanup:
- remove unused vars
- no need to hard code version number for collada.
- cleanup some typos in comments.
- movieclip_calc_length was passing arg which should be unsigned to BLI_stringdec()
2012-04-08 07:34:09 +00:00
Campbell Barton
8fa17c5362 code cleanup: no functional changes
- memset(..., -1) is used incorrectly even though it worked: MOD_solidify.c - thanks Halley from IRC for noticing this. use fill_vn_i() instead.
- quiet warnings in editmesh_slide.c
- cleanup comments in bmesh and some other minor comment additions.
2012-04-07 12:37:15 +00:00
Francisco De La Cruz
6482351ed9 Added Vertex Slide: Slides a vertex along a selected and connected edge (Shift+Ctrl+V)
-
BMop: "vertslide vert=%e edge=%hfev distance_t=%f"
2012-04-07 03:15:20 +00:00
Campbell Barton
ea1539ce43 fix for memory leak when using the bmesh python api - would allocate customdata layers and overwrite them when converting a mesh to a bmesh (without freeing). 2012-04-05 12:51:17 +00:00
Campbell Barton
784beb4338 adjust limited dissolve to take face angle into account when dissolving vertices between manifold edges.
stops artifact with zig-zag patterns between _almost_ planer faces.
2012-04-05 01:20:32 +00:00
Campbell Barton
4f2fb41fb6 fix [#30809] Limited dissolve leaves edges behind 2012-04-04 15:10:20 +00:00
Campbell Barton
1635d8e873 add option not to delete edges/verts when joining faces, needed so we can loop over edges and join them without having to check if they have been removed. 2012-04-04 14:48:10 +00:00
Joseph Eagar
1246a0d88b Changed BM_mesh_bm_from_me to copy customdata layout for empty meshes. 2012-04-04 01:35:27 +00:00
Campbell Barton
5f46fdadfd fix [#30797] Shape keys on linked duplicate get corrupted 2012-04-04 00:45:40 +00:00
Campbell Barton
3bb72e33df fix for reconstructing shape keys (found when looking into bug [#30797], but not a fix for this bug). 2012-04-04 00:02:48 +00:00
Brecht Van Lommel
b44ae0c387 Fix #30791: BMEdge.is_manifold also returned true for edges with only one face
attached to it. A manifold edge should have exactly 2 faces attached to it,
sticking to the standard definition for "manifold".
2012-04-03 17:09:47 +00:00
Campbell Barton
285970753e fix/workaround an error related to [#30735]
when a single face in a loop is hidden, loop cut will subdivide edges on both sides.
creating an edge between the hidden faces.

without this workaround the edge ends up hidden and selected.

added a check in BM_mesh_validate() for hidden/selected elements.
2012-04-03 07:31:11 +00:00
Campbell Barton
db9c9f6c64 fix [#30772] No more than two subdivions give correct result when adding an icosphere
bug was introduced in r45297, which inadvertently broke testing for multiple flags at once.

added BM_elem_flag_test_bool() and BMO_elem_flag_test_bool() to get TRUE/FALSE results rather then the flag value.
2012-04-03 02:38:27 +00:00
Campbell Barton
3f3b88ff42 bmesh iterators were passing the BMesh as data argument to BM_iter_new(), harmless but incorrect.
replace these cases with iterator macro.
2012-04-03 00:28:38 +00:00
Campbell Barton
9fff51e83d code cleanup: BM_select_mode_set had loops over verts and edges but did nothing (set 0 flags), turns out setting any flags isnt needed since flushing manages this so '#if 0' for now. 2012-04-02 23:17:56 +00:00
Campbell Barton
c56bc8cb0f style cleanup: multi-line if's & whitespace. 2012-04-02 22:40:02 +00:00
Campbell Barton
3c1b5b5632 stule cleanup: edits for files which were recently cleaned up. 2012-04-02 22:26:00 +00:00
Campbell Barton
4253e52771 fix [#30768] Project from View UV map tool includes hidden geometry r45323
select all could select hidden faces, now BM_mesh_elem_flag_enable/disable_all takes an argument to skip hidden elements.
2012-04-02 04:45:44 +00:00
Andrea Weikert
b1951ac1ba fix for [#30738] Shading smooth/flat instability
Committing patch from Francisco De La Cruz ([#30753] Shade smooth not preserved when toggling editmode)
Thanks for researching this and providing fix.
2012-04-01 10:36:54 +00:00
Nicholas Bishop
c7aed8b2af For BMesh functions that test flags, add enabled/disabled variants. 2012-03-30 17:30:49 +00:00
Nicholas Bishop
bbbbe1b00e Add BMO function to append to a buffer slot. 2012-03-30 17:30:24 +00:00
Nicholas Bishop
83ec6dd1bd Fix out-of-date slot type sizes.
The BMO_OPSLOT_TYPEINFO array was out of date, the last two entries
were off by one. Updated with correct values and added comments to
make it easier to match up in future.

Also changed the alloc string for mapping slot's ghash to something
more descriptive than "bemsh op".
2012-03-30 13:49:32 +00:00
Campbell Barton
28889a3500 fix [#30732] bmesh: loop select continues through hidden sections. 2012-03-30 09:27:54 +00:00
Campbell Barton
0e972b6293 partial fix for [#30732] bmesh: loop select continues through hidden sections.
loop cut and edge ring select still need to be fixed.
2012-03-30 08:43:47 +00:00
Campbell Barton
e0d94b7244 minor speedup converting a BMesh to a Mesh - avoid loop over all faces to count how many loops to use, since BMesh stores totloop.
also use camel case for UndoMesh (convention)
2012-03-30 06:45:13 +00:00
Campbell Barton
bf21f02ad0 fix [#30718] Selecting vertices, edges, faces and undoing - results in wrong header status info
converting mesh to bmesh resulted in incorrect stats.
2012-03-30 00:23:22 +00:00
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
Campbell Barton
f87c5b3453 fix [#30715] bmesh: select linked not ignoring hidden verts/edges/faces
add optional flag to ignore hidden elements.
also remove loop mask flag - since it wasnt used and vert/edge/face is enough.
2012-03-29 13:09:07 +00:00
Campbell Barton
30d128c7a7 bmesh: be more strict with operator string formatting, no tabs and only accept slot=%x style. 2012-03-28 08:42:19 +00:00
Campbell Barton
274e243a67 own error r45225
- move defines to the top of the func.
- rename T -> EPS
- undefine at the end.
2012-03-28 03:17:22 +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
Brecht Van Lommel
606057b3af Fix tweak for #30638: use same BMesh Face area computation functions as Mesh,
it's a bit fuzzy how to compute area for ngons, but at least should be consistent.
2012-03-27 18:26:41 +00:00
Nicholas Bishop
cd882a446a Spelling fix, sentine -> sentinel.
'sentine' apparently means "A place for dregs and dirt; a sink; a sewer" :)
2012-03-27 10:55:20 +00:00
Campbell Barton
09f29c0b70 style/name cleanup: have EDBM_* functions match our style guide and also match BM_ function naming conventions 2012-03-27 04:46:52 +00:00
Campbell Barton
2743f2bb3f fix [#30257] bmesh: Rip "V" don't work on end vertex
added option to edgesplit bmesh operator to take tagged vertices as well so an edge at a boundary can split without splitting off the boundary vertex.

the behavior/speed of the edge split modifier and tool remainss the same, this is only used for rip.
2012-03-26 12:02:41 +00:00
Antony Riakiotakis
c379b78d8a fix #30668 and the rest of #30638.
Port angle stretch code for uvs to bmesh.

Also added comment to clarify previous commit.
2012-03-25 21:18:44 +00:00
Antony Riakiotakis
8c6fc392c2 Comment out the projection to ngon normal plane when calculating ngon area. This is hardly worth the cost since we use an approximation anyway. 2012-03-25 19:13:50 +00:00
Antony Riakiotakis
eb10402365 Fix #30638 and part of #30646.
Problem was that area calculation of polygons was done relative to the xy plane, and with a very obscure (to me at least) algorithm. That meant that vertical ngons would get 0 area. 

Commented initial code in case this is a strange optimization case that someone wants to use and used a cleaner algorithm: first project vertices to the ngon plane, defined by the normal of the ngon and the center (mean) of the ngon vertices. This will only be exact for convex and mostly planar ngons, still it is much better than the previous code.

Also fixed memory leak when stretch display was on.
2012-03-25 19:02:28 +00:00
Campbell Barton
fffe342d87 bmesh inset: another small improvement - use the shared edge vector rather then the cross product between 2 faces if the faces infact share an edge - works best for non planer faces.
also added utility function - BM_loop_other_vert_loop
2012-03-25 14:44:48 +00:00
Campbell Barton
81d8f17843 style cleanup: pep8, indentation 2012-03-24 07:36:32 +00:00
Campbell Barton
2f348d8b5d style cleanup: mainly for mesh code, also some WM function use. 2012-03-24 02:51:46 +00:00
Campbell Barton
3c11379e26 code cleanup: move bmesh inline funcs to headers (avoids compiling the C files). 2012-03-24 01:24:58 +00:00
Campbell Barton
eab6c9498a fix for error with console command history not working, using previous settings. 2012-03-23 07:08:28 +00:00
Campbell Barton
2363ce3ff3 fix [#30632] Edge Split Modifier (creates invalid mesh)
bug was caused by modifying loops vert value in a BM_LOOPS_OF_VERT iterator.
2012-03-23 05:43:56 +00:00
Campbell Barton
24119cb79b minor speedup to vertex split function, avoid a hash lookup when its not needed. 2012-03-23 05:18:03 +00:00
Campbell Barton
7044d80639 code cleanup: remove BMesh * args from query functions which don't need it 2012-03-22 07:53:11 +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
Antony Riakiotakis
95f66f162c Fix #30504 selecting self-intersecting face loop won't work correctly.
Added generic secondary hash to walker. In faceloop select it is used to remember if edge has been previously visited, in addition to the hash used for faces. This solves the case where walker stops if it finds an already added face.
2012-03-21 21:40:42 +00:00