Commit Graph

2127 Commits

Author SHA1 Message Date
Dalai Felinto
7fa2d32de3 bugfix: [#34663] Cannot rotate view while using Knife tool with Maya preset
fix as suggested by Ton Roosendaal in tracker:
"the knife tool has a "MODE_PANNING" state, it could be nice to set this
in the modal map as well, to define the shortcut(s) that have to be passed on."
2013-09-17 20:35:17 +00:00
Dalai Felinto
5aeade4c60 add support for trackpad navigation while in knife operator
I caught this while looking at:
[#34663] Cannot rotate view while using Knife tool with Maya preset

(though it's not the original report).
I'll look at the other operators, there are probably a few in the same
situation as knife.
2013-09-17 15:20:44 +00:00
0b22cfb1d1 fix [#36246] Weight tools do not mirror properly in vertex selection mask mode.
Weight mirror is now supported by invert/clean/levels/blend.
2013-09-17 07:03:13 +00:00
b380dd9378 fix [#36537] "Grid Floor Scaling" can have some unexpected behaviour on new objects
curves and metaballs now behave the same as meshes wrt grid scaling.
remove WM_operator_view3d_distance_invoke(), and replace with a function called from exec which initializes defaults, this way operators can have their own invoke functions.
2013-09-16 04:19:48 +00:00
7e2977b051 move make_prim_radius_prop into a generic function. 2013-09-16 00:18:09 +00:00
8beb565c59 code cleanup: headers - doxy comments. 2013-09-12 03:02:50 +00:00
a4f12a3e31 fix [#36697] Topology mirror causes vertices to jump?
don't give up too early finding unique geometry by keeping track of edges with matching vertex hashes and keep checking for unique topology as long as the total of these edges keeps increasing.
2013-09-11 02:36:37 +00:00
83b2eefd09 Usual UI messages fixes... 2013-09-09 20:22:01 +00:00
00bd7da674 correct error in recent changes for building with openmp.
rename DM_OMP_LIMIT to BKE_MESH_OMP_LIMIT and set to 0 when in debug mode, same for BM_OMP_LIMIT.
2013-09-09 05:42:26 +00:00
fdce634310 screw tool used uninitialized normal to detect flipping direction.
lookes like bug from bmesh merge, restored from 2.4x.
2013-09-08 22:52:48 +00:00
0423d2b252 changes to grid fill
- use 4 weights for vertex customdata blending (was previously only using 2)
- option for simple blending, which blends locations using weights too and doesn't attempt to maintain the shape,
  useful for flat surfaces or times when keeping the shape gives odd results.
2013-09-07 08:13:39 +00:00
35cd649c66 rename cursor setting functions to make modal set/restore more clearly related functions. 2013-09-06 22:34:29 +00:00
e045e324a4 error in recent gridfill commit, calculating span last failed. 2013-09-06 02:59:25 +00:00
ac60079ef2 grid-fill now detects non-square grids (this is what users would expect)
http://www.graphicall.org/ftp/ideasman42/gridfill_detect_nonsquare.png
2013-09-05 22:58:35 +00:00
3b72f1824c rename positive_mod to mod_i, make it work with nagative numbers (matching pythons modulo), and use in a few more places.
allow mesh-checker-deselect to have a negative offset.
2013-09-05 20:54:32 +00:00
2e0422b17f add function for rotating linked list so at item is last. 2013-09-05 11:40:38 +00:00
8f49054b77 grid-fill can now fill a single, closed edge loop.
the active vertex is used when possible, else the corner vertex is detected.

this should replace the grid-fill-manager addon by Alexander Nedovizin.
2013-09-05 11:07:49 +00:00
29efa96940 style cleanup 2013-09-04 03:30:41 +00:00
aa3bea133a Fix a possible bug in knife detected by coverity.
A selection copy may have been passed a null pointer.
Also quieted a couple other complaints by coverity.
2013-09-03 11:37:47 +00:00
01a2634d61 fix [#36412] Pivot of active element switches to last selected face after duplicating vertices. 2013-09-02 04:39:48 +00:00
e8605f9df9 quiet compiler warnings 2013-08-30 16:52:54 +00:00
86f8470a5d Some knife fixes. Avoids duplicating verts; better handling of cut-through ortho.
Now cut lines detect vertices that they pass (almost) exactly over
and snap to them, to avoid making verts vert close to other ones.

Added radius arg to BKE_bmbvh_ray_cast so that can detect an obscuring
face when the ray might otherwise go exactly between two triangles.
Needed an isect_line_tri_epsilon function for similar reason.

Fixes last part of bug #35002. Other knife bugs still present but
getting this commit in now before continuing bug fixing.
2013-08-30 16:34:44 +00:00
de8dbe36a0 execute bisect immediately (without starting modal input) if the plane is already set or if there is no 3d view available. 2013-08-30 12:48:39 +00:00
02773c7f28 don't show screen-space-line start/end points in operator redo panel. 2013-08-29 19:02:07 +00:00
07994d6f50 mesh bisect can now be defined with mouse input
(using cursor + numeric values was too clumsy for defining orientation).

once the cut is done numeric input still works as before
2013-08-29 18:45:04 +00:00
09a52f18b6 ghash: reserve size when its known or can be guessed close enough.
also avoid allocs per node in pbvh_bmesh_node_limit_ensure()
2013-08-24 17:33:47 +00:00
3cf14f0b3a style cleanup: space around for loop wrappers 2013-08-24 10:05:29 +00:00
587796170a Fix compile in Visual Studio 2008:
* isfinite is not defined, in Blender code we use 'finite' instead
2013-08-23 18:02:23 +00:00
09ff49755f math api edits - replace point-normal form for a plane with dist_to_plane_v3()
also correct python mathutils api, was missing vector checks.
2013-08-23 14:37:22 +00:00
a55857c653 new mesh bisect had a problem not selecting faces with fill option in face mode. 2013-08-23 14:07:22 +00:00
c752346cfa new mesh bisect tool, available in the mesh menu.
cuts the mesh in half based on the cursor location and the viewport,
optionally supports filling the cut area (with uvs. vcols, etc),
and removing geometry on either side of the cut.
2013-08-23 11:46:08 +00:00
6f4b79d5af edits to new symmetrize tool
- snap axis-aligned verts to the center.
- expose the threshold for detecting if a vertex is on the axis.
2013-08-23 05:32:43 +00:00
6cba2b8d73 move bmesh tools into their own include,
changes to tool args would rebuild far too many files and these are mainly by modifiers outside of bmesh.
2013-08-23 04:22:07 +00:00
c4e1d40022 replace symmetrize code with calls to bmesh operators.
calls: bisect, duplicate, scale, flip, weld.

resolves report [#36475] Symmetrise does not keep uv/weight

also fixes issues with faces that cross the axis more then once.
2013-08-22 18:02:36 +00:00
9470754fd3 bmesh api cleanup, face creation args now accept an example face (as with vertex and edge),
also replace BM_face_create_quad_tri_v with BM_face_create_verts
2013-08-21 07:51:47 +00:00
8937a8b839 use BM_CREATE_NOP arg rather then zero, with pointer and bool args in either side in some cases it gets a bit confusing.
also correct edge-rotate where bool->flag conversion worked by accident.
2013-08-21 05:39:46 +00:00
21ac0515e4 fix [#36352] Inset individual, uncheck "select outer" selects zero faces
rewrite individual inset not to remove and re-create faces, makes re-selection simpler.
2013-08-20 16:59:04 +00:00
9f7961b6b1 Optimization and threading fix for shapekeys weights calculation
This commit fixes two different issues, which were caused by
how weights are being calculated for relative shapekeys.

Weights for key block used to saved in KeyBlock DNA structure,
which lead to situations when different objects could start
writing to the same weights array if they're sharing the same
key datablock.

Solved this in a way so weights are never stored in KeyBlock
and being passed to shapekeys routines as an array of pointers.
This way weights are still computed run-time (meaning they're
calculated before shapekey evaluation and freed afterwards).

This required some changes to GameEngine as well, to make it
never cache weights in the key blocks.

Another aspect of this commit makes it so weight for a given
vertex group is only computed once. So if multiple key blocks
are using the same influence vertex group, they'll share the
same exact weights array. This gave around 1.7x speedup in
test chinchilla file which is close enough to if we've been
caching weights permanently in DNA (test machine is dual-code
4 threads laptop, speedup measured in depsgraph_mt branch,
trunk might be not so much high speedup).

Some further speed is optimization possible, but it could be
done later as well.

Thanks Brecht for idea of how the things might be solved in
really clear way.

--
svn merge -r58786:58787  ^/branches/soc-2013-depsgraph_mt
2013-08-19 10:36:39 +00:00
6bdff7e2ad fix [#36481] When "Rip Edge" cannot be completed, Blender crashes weirdly 2013-08-19 10:00:17 +00:00
fa3481cf07 correct own error in recent linked stack edits. 2013-08-18 04:06:49 +00:00
5fafc222f0 style cleanup 2013-08-17 08:21:40 +00:00
d7cc2be2b7 add linklist stack macros, use where over allocating an array was previously done. 2013-08-17 05:33:55 +00:00
7a6f3d9e43 fix [#36349] Separate mesh by material creates meshes with all the materials from the original 2013-08-14 14:36:43 +00:00
7d67261a7b fix bug with editmesh rip, active edge could be left on the unselected side of the edge loops. 2013-08-14 09:14:33 +00:00
5a9c012d86 fix for bug in rip tool, isolated verts would remain selected after ripping. 2013-08-13 01:52:36 +00:00
49411a6e37 fix own regression, rip tool wasn't handling selection. 2013-08-13 01:00:07 +00:00
fd14c344e0 switch arg order for BM_elem_select_copy(), would like to make this constant for all bmesh functions eventually. 2013-08-13 00:35:23 +00:00
880a86230f bmesh_vert_separate: remove unused return value 2013-08-12 23:49:56 +00:00
76cb6829e5 edge-split now leaves split edges selected 2013-08-10 23:22:35 +00:00
00b39c4e5b code cleanup: more confusion with 0/NULL/false 2013-08-07 03:55:21 +00:00