Commit Graph

164 Commits

Author SHA1 Message Date
b3afbcab8f ListBase API: add utility api funcs for clearing and checking empty 2014-02-08 06:24:05 +11:00
fed1b8b16d Code cleanup: suffix vars to make obvious they are squared 2014-02-03 02:46:45 +11:00
c4345a808c Smallhash: add reserve option to avoid resizing when size is known 2014-02-02 17:08:26 +11:00
04a902965e BMesh optimize face splitting by taking loops rather then verts
- add BM_vert_pair_share_face
- add BM_loop_is_adjacent
- remove BM_verts_connect
2013-12-24 11:13:58 +11:00
c1c26c36f6 Style Cleanup: remove preprocessor indentation (updated wiki style guide too) 2013-12-22 14:12:19 +11:00
93b24b91a9 Knife Tool: incorrect sized vector args (harmless but misleading) 2013-12-03 09:10:03 +11:00
5da703e915 BMesh/Mesh: replace scanfill with polyfill 2013-11-30 22:13:52 +11:00
84334bde01 Fix 37571: Knife Select should be disabled when no faces are selected
also check a similar case for bisect
2013-11-26 09:44:08 +11:00
238d2f962d BMesh Refactor: BKE_bmbvh_new can now be created without an EditMesh.
This adds BM_bmesh_calc_tessellation() so we can get triangles from a
bmesh without having to have an editmesh available.
2013-11-18 18:25:47 +11:00
0d1a499366 knife tool: Remove unused 'extend' variable 2013-11-08 18:01:07 +00:00
b144f15579 knife tool: Clean up line hits when starting a new cut
Fixes intersection points of the previous cut still being drawn when
starting a new cut.
2013-11-08 18:01:05 +00:00
3143536b08 Fix knife bug exposed by valgrind.
Was reading cage coordinate from those of existing
BMVerts even for newly created verts that don't
have cage coordinates there.
2013-11-06 15:27:19 +00:00
538a6ed57a Rewrote a lot of knife tool. Now allows cut-through
to make new vertices in the middle of faces.
This also fixes knife bugs:
#36678, #35945, #35943, #35387, #35045, #35002.
2013-11-05 16:24:00 +00:00
e8c54b682a Add 'cut-through' option for Knife Project operator.
If enabled, it makes knife project act as the
cut-through (Shift-K) version of knife.
This option will soon be more useful when a better
cut-though Knife change is submitted, allowing
this to work for cuts within faces in addition
to cuts across them.
2013-11-01 11:42:11 +00:00
7267221715 remove return argument from wmOperatorType->cancel, was only ever returning OPERATOR_CANCELLED. 2013-10-30 23:08:53 +00:00
dee671276d rename BM_vert_at_index -> BM_vert_at_index_find (since this searches the mempool).
needed for other changes - coming.
2013-10-27 10:01:35 +00:00
eabf7ab335 code cleanup: utility function for getting a bool as a string. 2013-10-13 00:32:31 +00:00
e220d3228f add MEM_SIZE_OPTIMAL to avoid memory fragmentation & waste lost to slop-space. 2013-10-10 18:18:13 +00:00
ec4a7fcad1 fix for lasso selection (in non-zbuf mode) when the line intersected its self.
isect_point_poly_v2() - add argument to check overlapping areas.
2013-10-04 10:48:24 +00:00
1fa59cdf4d allow knife-project to use sub-pixel length edges. 2013-10-01 15:52:29 +00:00
f06b440d63 quiet warnings (converting pointer to boolean) 2013-09-26 10:35:41 +00:00
8bbe81db4d knife was projecting vertex locations to the screen when it wasnt needed. 2013-09-25 11:38:30 +00:00
8c7eb60ba0 fix [#36780] Knife Project broken
was regression in r59665 (fix for [#35002]).

now when checking a segment that lies on the same plane as the triangle intersects,
clip the segment by the triangle bounds so we know the points remain inside the triangle.
2013-09-25 08:23:31 +00:00
7d7adf4488 Prevent assert failure in knife.
It seems sometimes a knife edge with the same
vertex on both ends was created sometimes.
2013-09-19 13:35:43 +00:00
67fa1a57ba Fix potential crash in knife.
A crash was reported but without info to reproduce.
This is a likely crash introduced by previous fix
to allow linehits to snap to vertices.
The function to find connected linehits can't
assume all linehits have edges any more.
2013-09-19 12:47:35 +00:00
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
35cd649c66 rename cursor setting functions to make modal set/restore more clearly related functions. 2013-09-06 22:34:29 +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
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
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
5fafc222f0 style cleanup 2013-08-17 08:21:40 +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
4982f200fa move alloca define into its own header since its not related to BLI_array 2013-07-28 10:38:25 +00:00
19496ab62a internal bmesh api change: BM_elem_attrs_copy() no longer copies the selection flag.
this was slowing down modifiers since the selection flags would be copied and flushed to connected geometry.
2013-07-24 19:31:58 +00:00
58a748431e correct cast to uintptr_t for smallhash use. 2013-05-31 00:19:38 +00:00
ec8d277c64 BLI_math rename functions:
- mult_m4_m4m4 -> mul_m4_m4m4
- mult_m3_m3m4 -> mul_m3_m3m4

these temporary names were used to avoid problems when argument order was switched.
2013-05-26 18:36:25 +00:00
df502ffd5f knife tool: use faster method for sort_by_frac_along(), no need to call
line_point_factor_v3().
2013-05-08 12:56:31 +00:00
a2221cad15 knife tool: use the squared distance for comparison. 2013-05-08 12:56:24 +00:00
02c1e6162c knife tool: use 2d vectors for screen coords. 2013-05-08 12:56:17 +00:00
2a78a14369 knife sort_by_frac_along was re-calculating the reference factor for every test, change to only calculate once and use line_point_factor_v3().
also add zero division check for line_point_factor_v3() since the 2d version already checked for this.
2013-05-03 05:57:33 +00:00
e5344adda3 fix error running ED_view3d_project_float_v3_m4 on 2d vec (thanks Sergey for pointing out!), also remove redundant vector copy in knife project. 2013-05-01 17:03:00 +00:00
36e7a98459 fix [#35007] clipping border error
add clip option to ED_view3d_win_to_ray(), ED_view3d_win_to_segment()
2013-04-22 20:00:37 +00:00
6db3375e4f code cleanup: removed unneeded null check in object drawing, some warnings, style. 2013-04-18 15:09:30 +00:00
8a06acfd7a add mesh distort display mode (highlights distorted faces) 2013-04-18 04:24:18 +00:00
9cceec40c4 use modified vertex coords for calculating display thickness and intersections.
internal improvement to editmesh_bvh.c

- optionally pass cage-coords as an arg, rather then calculating the coords in BKE_bmbvh_new(),
  since all callers already have coords calculated.
- de-duplicate coords creation function from knife and bmbvhm, move into own generic function: BKE_editmesh_vertexCos_get()
2013-04-18 01:20:04 +00:00
9f5006a967 add distance arg to BKE_bmbvh_ray_cast(). currently unused. 2013-04-16 15:16:48 +00:00
37e73aa368 code cleanup: use BKE naming conventions for functions in BKE_editmesh.h and BKE_editmesh_bvh.h 2013-04-16 05:59:48 +00:00