Commit Graph

2239 Commits

Author SHA1 Message Date
c67bd49e56 Code cleanup: use 'const' for arrays (editors) 2014-04-27 00:25:15 +10:00
f2f3ef8692 Fix Knife bug T39617: midpoint snap should affect intermediate points.
This reverts to the 2.69 behavior, where the snap-to-midpoint option
affected the intermediate crossed edges as well as the endpoints.
2014-04-16 14:19:36 -04:00
7d45ddae33 Add Edge sharp/smooth to 3DView shading panel, as well as new Vert sharp/smooth. 2014-04-16 15:26:48 +02:00
a15b3c4d11 Code cleanup: use bool 2014-04-11 11:33:29 +10:00
412826a504 Mempool: delay allocating an initial chunk, its not always used 2014-04-08 12:58:56 +10:00
5873160242 Code cleanup: strict flags for bmesh_log 2014-04-03 17:13:31 +11:00
617557b08e Code cleanup: remove TRUE/FALSE & WITH_BOOL_COMPAT define 2014-04-01 15:22:28 +11:00
2a25676168 Fix for inset bug (edge rail had feedback loop with direction)
also disable edge-rail by default.
2014-03-28 21:38:12 +11:00
5256a5d66c BMesh: let vert-connect make degenerate faces when only 2 verts selected 2014-03-27 12:52:34 +11:00
a91247c2b4 Code cleanup: unreachable break/return 2014-03-19 12:47:09 +11:00
7da2175271 KDTree: deprecate 'normal' argument
Normals for each kdtree node were allocated but never used,
and search args only use in particles/boids code.
2014-03-18 09:14:47 +11:00
ec4e12d9a2 Code cleanup: comments and typos 2014-03-18 05:40:18 +11:00
caf8684b50 EditMesh: Support contracting the selection as well as extending
This allows for holding ctrl while switching from face->edge modes to
select an edge-ring.
2014-03-17 00:25:34 +11:00
35ed7486c7 Mesh API: rename 'octree' to 'spatial' since internally its using kdtree 2014-03-13 01:49:47 +11:00
5bceb00a61 Mesh API: replace octree mirror with kdtree 2014-03-13 01:49:47 +11:00
57dba73917 View3d: take pixelsize into account for selection distance 2014-03-11 15:34:19 +11:00
276ef3b3b5 Editmesh: Toggle between all edge-loop boundaries when selecting
Now Alt+RMB,RMB will select all connected boundaries.

There are times when you just want to select an entire boundary loop
ignoring face topology, previously there was no way to do this.
2014-03-07 10:39:31 +11:00
a7a7a032a6 Mesh: loopselect return cancelled when no selection made
also un-indent main function body.
2014-03-07 10:39:30 +11:00
c1be7e12ee Fix T37510 Knife missed cuts on small faces.
For very thin faces, knife sometimes missed cutting a few.
Problem was that a test for edges being totally inside a face
was being applied in inappropriate circumstances. An assumed
invariant about the knife hit structure is not true when
actually in the middle of making cuts.
Also make a 'big epsilon' a little smaller, though don't think
that was the problem in this bug.
2014-03-06 10:55:12 -05:00
d3ec3fd968 Fix Snap to Symmetry failing to select the vertex from the right side 2014-03-01 15:40:20 +11:00
13ea967cce Code cleanup: correct abs use and quiet warnings 2014-03-01 14:26:18 +11:00
1e05956a0b Fix T38872: Crazyspace could use stale derivedMesh data. 2014-02-28 20:12:45 +11:00
ea269c21ea Code cleanup: move edit-derivedmesh free to BKE_editmesh_free_derivedmesh 2014-02-28 20:12:45 +11:00
a815e04f72 Fix T38834: Knife constraint is offset after moving the view 2014-02-27 13:28:25 +11:00
59a0828ac1 Fix T38856: mark seam in search menu clearing the seam in some cases.
It should not remember the operator property for the next time here.
2014-02-26 20:56:36 +01:00
cf0120b189 Fix for own regression: remove doubles deselected faces 2014-02-26 23:42:47 +11:00
b5b1ce9d21 BMesh: add overwrite option to BM_mesh_elem_hflag_enable/disable_test 2014-02-26 23:42:47 +11:00
081a3412a9 Paint API: add BKE_paint_select_elem_test: to check on paint selection 2014-02-26 16:00:54 +11:00
073a1f8f7c Revert "Fix T38819: Mark Seam misbehaves when accessed through spacebar search"
This reverts commit d47d030275.

This isn't a bug.
2014-02-25 14:06:37 +11:00
Dalai Felinto
d47d030275 Fix T38819: Mark Seam misbehaves when accessed through spacebar search 2014-02-24 22:48:46 -03:00
08f5e3897c Modifier: rename triangulate scanfill to ear-clip 2014-02-21 15:03:34 +11:00
77290fccd5 Fix random select in edge/face mode
patch D336 from Henrik Aarnio
2014-02-21 08:51:30 +11:00
13870d5177 Fix T38655: Face path select fails with edge/vert select enabled too 2014-02-18 08:31:08 +11:00
cc7cfd6617 Mesh Tool: removes degenerate edges, faces and face ears. 2014-02-17 11:41:19 +11:00
96d5e05e48 Mesh Inset: following existing edges is now optional 2014-02-15 13:51:54 +11:00
b3afbcab8f ListBase API: add utility api funcs for clearing and checking empty 2014-02-08 06:24:05 +11:00
d900f5be55 Code cleanup: use bools where possible 2014-02-03 19:35:44 +11:00
fed1b8b16d Code cleanup: suffix vars to make obvious they are squared 2014-02-03 02:46:45 +11:00
42b68c2b1d BMesh: optimize loop_find_regions, reserve array size 2014-02-02 17:41:59 +11:00
c4345a808c Smallhash: add reserve option to avoid resizing when size is known 2014-02-02 17:08:26 +11:00
a5c35fb27f Code cleanup: use booleans where appropriate 2014-01-28 04:00:04 +11:00
5568d7c3a1 EditMesh: add delete loose operator (access from Cleanup menu) 2014-01-17 14:55:06 +11:00
38e683cbb1 Fix T38217: Fix glitch adding Monkey with view align
added an option so view-align can default to a different axis.
2014-01-16 23:54:04 +11:00
e618d8238e Fix T38054: High CPU usage with many objects
This is a regression since threaded dependency graph landed to master.
Root of the issue goes to the loads of graph preparation being done
even if there's nothing to be updated.

The idea of this change is to use ID type recalc bits to determine
whether there're objects to be updated. Generally speaking, we now
check object and object data datablocks with DAG_id_type_tagged()
and if there's no such IDs tagged we skip the whole task pool creation
and so,

The only difficult aspect was that in some circumstances it was possible
that there are tagged objects but nothing in ID recalc bit fields.

There were several different circumstances when it was possible:

* When one assigns object->recalc flag directly DAG flush didn't
  set corresponding bits to ID recalc bits. Partially it is fixed
  by making it so flush will set bitfield, but also for object
  types there's no reason to assign recalc flag directly. Using
  generic DAG_id_type_tag works almost the same fast as direct
  assignment, ensures all the bitflags are set properly and for the
  long run it seems it's what we would actually want to.

* DAG_on_visible_update() didn't set recalc bits at all.

* Some areas were checking for object->recalc != 0, however it is was
  possible that object recalc flag contains PSYS_RECALC_CHILD which
  was never cleaned from there.

  No idea why would we need to assign such a flag when enabling
  scene simplification, this is to be investigated separately.

* It is possible that scene_update_post and frame_update_post handlers
  will modify objects. The issue is that DAG_ids_clear_recalc is called
  just after callbacks, which leaves objects with recalc flags but no
  corresponding bit in ID recalc bitfield. This leads to some kind of
  regression when using ID type tag fields to check whether there objects
  to be updated internally comparing threaded DAG with legacy one.

  For now let's have a workaround which will preserve tag for ID_OB
  if there're objects with OB_RECALC_ALL bits. This keeps behavior
  unchanged comparing with 2.69 release.
2014-01-13 15:57:51 +06:00
7ae1949517 Select Random: add option to de-select
also made metaball operator behave like the others.

Path originally from Walid Shouman, with own edits.
2014-01-13 20:39:12 +11:00
62aa004c25 Style Cleanup: whitespace 2014-01-12 22:05:24 +11:00
e47a41e3fc Code Cleanup: style 2014-01-09 11:44:59 +11:00
49aa701645 Add profile control parameter to Bevel.
Parameter controls concavity / convexity.
    <.25 means: concave inward
    .25 means: straight slanted
    >.25 means: concave outward
    .5 means: circular (the default)
    1 means: straight along original sides
For now, there is a hard lower limit of .15
because more work is needed to get decent
results in the range below that.

The profile is actually a superellipse, and the
parameter is 1/4 of the exponent in the implicit equation
for a superellipse, except at the extreme values of 0 and 1.
2014-01-08 07:40:01 -05:00
6734936c13 RNA API: use bool's for enum itemf callbacks. 2014-01-04 18:10:01 +11:00
091740f858 Mesh Bisect: add header info message for modal operation
Fixes T37700

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D166
2014-01-04 05:41:58 +01:00