Commit Graph

311 Commits

Author SHA1 Message Date
Campbell Barton
47ec91e8d3 code clenup: comments and some style edits on ghost/osx (odd indentation) 2012-09-06 02:10:09 +00:00
Campbell Barton
df51ab27ed code cleanup: BM_face_legal_splits() was doing some redundant assignments. 2012-09-05 23:22:47 +00:00
Howard Trickey
5c2d9022d9 Fix knife bug #30764, failure to cut sometimes.
Two bugs: first, the point-in-face function had a bug that made it fail for the xz or yz planes.
Second, in ortho mode, simultaneous linehits need careful sorting.
Also, in orth mode it is somewhat random whether the edges exactly behind the front ones are reported 'hit' by bvh tree, so put in code to prevent cuts along the parallel-to-view faces when not in cut-through mode.
2012-09-03 14:37:34 +00:00
Brecht Van Lommel
fe9b1c644f Fix #32458: changing UV image in image editor not working when the active face
was not selected. Now changed it so that the active face must also have its
UVs shown in the image editor to be used as the source of the image shown.
2012-08-31 15:01:40 +00:00
Campbell Barton
ee96cde864 style cleanup: whitespace 2012-08-26 11:35:43 +00:00
Campbell Barton
32e4e0f873 add conjugate_qt_qt(), also some code cleanup and use const for 'rotOrders' var in math_rotation.c 2012-08-25 17:42:15 +00:00
Campbell Barton
ed0489bb6e style cleanup: also spelling 2012-08-24 23:22:34 +00:00
Campbell Barton
b5e90d6b1c fix [#32357] Subdivide fails on newly created edge
problem since bmesh merge, new edges were not selected.
2012-08-24 14:54:14 +00:00
Brecht Van Lommel
0dd42fd513 Fix #32387: some mesh modifications breaking other shape keys.
The vertex shapekey index is now no longer copied, and propagation of offsets
in the basis to other shapekeys is disabled if new vertices were added. The
reason being that the propagation will only be done for the old vertices leaving
the new ones behind, and so doing e.g. subdivide + translate on the basis would
create a mess on other shape keys.
2012-08-23 13:54:30 +00:00
Campbell Barton
e91e1814d0 fix own error in BM_data_interp_from_edges() from recent commit. 2012-08-23 09:20:15 +00:00
Campbell Barton
6e90903baf - add BM_data_interp_from_edges() function (matches BM_data_interp_from_verts).
- bridge-merged now merges edge customdata and flags for verts and edges.
2012-08-23 05:19:40 +00:00
Campbell Barton
c0c575751d bmesh tool: support for merged-bridge (like bridge, collapsing), with a
factor to blend between loops.
2012-08-23 04:55:59 +00:00
Campbell Barton
cf3d58512b - fix for error in ndof patch.
- ColorBalanceModifierData wasn't aligned on 32bit systems.
- BM_vert_find_first_loop() was missing NULL check.
2012-08-19 15:56:49 +00:00
Campbell Barton
27b4b45543 utility functions: BLI_findptr, BLI_rfindptr --- use for finding an item in a linked list by a pointer. 2012-08-18 16:16:13 +00:00
Campbell Barton
9e742ffc2b style cleanup: also correct some doxy comments 2012-08-18 13:07:48 +00:00
Campbell Barton
e9caa21830 fix own error in recent smoothview cleanup, also correct some cross references in bmesh docs. 2012-08-17 14:43:20 +00:00
Campbell Barton
ca7d1ec39d style cleanup: use <pre> for doxygen ascii art 2012-08-13 15:17:15 +00:00
Campbell Barton
c41e1e434a code cleanup: replace MIN2/MAX2 with minf/maxf 2012-07-29 16:59:51 +00:00
Sergey Sharybin
718569dc16 Fix #32199: Smooth Vertex no longer has X, Y and Z options. 2012-07-27 17:35:02 +00:00
Campbell Barton
d9fcbe2f59 remove BMO_OP_FLAG_RATIONALIZE_NORMALS option which wasnt used anywhere. 2012-07-21 01:09:11 +00:00
Campbell Barton
90d215535e add option so operators can be called with a flag, currently the only flag is to respect hidden geometry.
this is useful for bmesh tools that operate in object mode or for modifiers which would previously use hidden faces in some cases.
2012-07-21 00:58:02 +00:00
Campbell Barton
c8db1e832d minor edits for bmesh api 2012-07-20 09:49:54 +00:00
Campbell Barton
32cf7fcdb1 code cleanup: spelling 2012-07-16 23:23:33 +00:00
Campbell Barton
75a5eab8d1 code cleanup 2012-07-08 21:37:59 +00:00
Campbell Barton
84bf3e48c0 style cleanup: use c style comments in C code 2012-07-06 23:56:59 +00:00
Bastien Montagne
1b6a4c1c9b Fix [#32003] Triangulate fails for simple case.
Main problem was in poly_rotate_plane() (which rotates a ngon to make its normal aligned with Z axis), it did not handled the case where the normal was aligned but opposite to the Z axis (which had the consequence that, as with the T mesh of the given blend, all tested new edges inside face were detected as outside, and vice-versa...).

Additionnaly, I made a mistake in previous Triangulate commit (r48243) in bm_face_goodline, which could allow a few invalid triangles in some specific cases, fixed!

And done a bit of cleanup, as I was at it.
2012-07-06 07:40:54 +00:00
Bastien Montagne
558721ab59 More spell checking. 2012-07-04 15:04:38 +00:00
Campbell Barton
2ed69a95f4 add bmesh/python operator support for vector and matrix args.
also rename BMO_OP_SLOT_PNT to BMO_OP_SLOT_PTR (matches RNA and sounds less like 'point')
2012-07-02 20:28:43 +00:00
Campbell Barton
69a7e0af02 rename bmesh ops since they are exposed in an api now. 2012-06-30 15:27:13 +00:00
Campbell Barton
e6d55c97dd add support for passing lists of verts/edges/faces to bmesh operators 2012-06-30 12:58:04 +00:00
Campbell Barton
3e99ec8d3d all bmesh operators can now be accessed from bmesh.ops.* using a generic wrapper,
argument parsing still needs to have support added for vector, matrix and element types.
2012-06-30 11:14:10 +00:00
Campbell Barton
35d8424273 code cleanup: rename some members of bmesh operators, 'slots' is a C++ keyword which confuses some IDE's.
also added missing BMO_op_vinitf args to comments.
2012-06-30 09:55:04 +00:00
Antony Riakiotakis
6264579f6b Fix #31951 Subdivide with multires splits uvs.
The bug is related to 31581 and the main cause is the small offset that
BM_loop_interp_from_face introduces before calculating barycentric
weights. Solved by only calculating displacement layer.
2012-06-29 10:12:42 +00:00
Campbell Barton
32478997ec style cleanup 2012-06-27 18:29:47 +00:00
Antony Riakiotakis
ae2f3a4e5e Fix for #31581, UVs shrink on edge slide.
Issue is that all loops of a face adjacent to the sliding verts were 
getting project-corrected. Introduced a test to only project the
affected loops. 

The projection code introduces a small offset to the boundaries so that
any boundary tests can work as expected, but this leads to shrinking of
the barycentric coordinates of the projection, causing a shrink of the
uvs in turn. This even affects the uvs that -should- be affected though
the unfixed behavior works strangely in a correctish way (my guess is
because the projection uses the same face as the opposite sliding loop).

I fixed the behaviour by taking the mean value of the uvs. This won't
support seams but current code doesn't either. Also, all CustomData to
exhibit this unfixed behaviour. I only fixed the uv case, other data
(Vcolors, etc) will have discontinuities when edge sliding. I expect
that the CorrectUV code I am working on may address some of these
issues.

Also, added NULL checks for utility function (was intended for this bug
but wasn't needed after all)
2012-06-27 17:08:12 +00:00
Antony Riakiotakis
df201548ea Utility function to get the first loop of a vert. Behaves identical to
the iterator initialization function.
2012-06-27 15:39:14 +00:00
Campbell Barton
3e305c1018 bmesh.ops module for bmesh operator access, only remove_doubles and convex_hull at the moment. 2012-06-26 21:40:01 +00:00
Bastien Montagne
df9ca0455c Fix [#31807] Ngon triangulation error
Notes:
*This implements a quite simple algorithm, which simply checks angles (actually, absolute cosines) of created tri and remaining face (which may be a tri, quad, or more NGon), so that both are "best" (ie avoid as much as possible too much narrow/wide corners), and also checks the new edge is OK (i.e. does not goes "out" of original face).
*Incidently, it fixes a typo in that bm_face_goodline() func!
*It's quite performant (a bit quicker than previous code, as far as I have tested it) and prevent creation of completely flat triangles as much as possible, but it's far from being a "best" solution (as it is still a "progressive" one)!
*It also introduces a new math func (in BLI_math_vector.h), cos_v3v3v3, which computes cosine (ie dot product of normalized vectors) and is roughly a quicker replacement for angle_v3v3v3, when real angles are not needed.
2012-06-24 16:19:19 +00:00
Campbell Barton
74c9c24d27 style cleanyp 2012-06-23 23:22:19 +00:00
Joseph Eagar
bd9192670b Added option in shift-g to select verts by number of connected edges (valence). 2012-06-15 01:43:01 +00:00
Nicholas Bishop
a18b303a76 Fix incorrectly deleted elements in array modifier caps.
Add check for merging vertices into vertices that are themselves
marked for merge, was already done for array eleements but not end
caps.

Fixes bug [#31695] Array Modifier: End Cap fails if all vertices are merged

Also corrected some reversed assert arguments.
2012-06-11 09:41:08 +00:00
Campbell Barton
113968aa15 quiet warning 2012-06-10 20:20:37 +00:00
Campbell Barton
d5032657ed style cleanup 2012-06-06 22:38:39 +00:00
Campbell Barton
032d83ecc4 style cleanup: defines with braces 2012-05-27 20:13:59 +00:00
Campbell Barton
b33f0ef0e3 style cleanup 2012-05-27 19:40:36 +00:00
Campbell Barton
405f6a7c77 code cleanup:
style and remove BM_face_find_longest/shortest_edge functions,
... instead use BM_face_find_longest/shortest_loop()->e
2012-05-27 11:10:27 +00:00
Campbell Barton
3fc3c9f3b4 style cleanup: relating to skin modifier 2012-05-22 16:09:31 +00:00
Campbell Barton
cdba862223 use faces longest edge when orienting the manipulator to the active face
also small speedup for finding the longest edge
2012-05-22 15:49:41 +00:00
Nicholas Bishop
5e22802fae Add new BMesh length query functions.
BMEdge *BM_face_find_shortest_edge(BMFace *f);
BMEdge *BM_face_find_longest_edge(BMFace *f);

Reviewed by Campbell Barton.
2012-05-22 15:19:33 +00:00
Andrew Hale
c63602286c Fix for customdata layer copying. Issue was caused by mixing up of destination and source in copy function. Also fixed an error in Py API, check to see if layers were different should be check to see if they're the same. 2012-05-22 12:03:56 +00:00