0d7d317755
BMesh: add checks for duplicates in a face
...
These could go un-noticed, causing errors later on.
2015-12-26 15:34:55 +11:00
77c3ecf88c
BMesh: check at least 2 edges in each loops vert
...
Also no need to check twice
2015-12-26 15:34:55 +11:00
5cd1b530c8
Cleanup: use enum for bmesh_elem_check
2015-12-25 02:10:00 +11:00
8b1b320c9f
BMesh: utility function to split off wire edges
2015-12-17 05:02:14 +11:00
bb4bff3576
BMesh: Add BM_face_kill_loose
...
Removes edges/verts that become unused.
2015-12-11 12:01:22 +11:00
86cb772eb7
Cleanup: variable names, ascii diagram
2015-11-20 08:22:44 +11:00
410ca0ed92
Recent change to bmesh_jekv caused assert
...
Note that the mesh was valid, this just stops the radial check from failing.
2015-11-20 08:22:44 +11:00
8bdb884289
Fix related to T46804 - BMesh validate code would use invalid pointers after checking them!
...
Note that this does not fix the issue reported in T46804, juts makes it crash later down in code...
2015-11-19 20:42:46 +01:00
9c044b4773
BMesh: new API call to collapse an edge
...
Existing collapse functions were strict regarding the number of verts sharing an edge.
BM_edge_collapse allows any edge to be passed in without first having to manipulate geometry.
2015-11-19 22:52:17 +11:00
93fb07fbd5
BMesh: bmesh_jekv check for degenerate faces
...
Move check for degenerate faces from BM_vert_collapse_faces into bmesh_jekv.
2015-11-19 22:52:17 +11:00
ebb2a78c7a
Error in last commit
2015-11-05 22:25:09 +11:00
3863660c37
Fix face creation using incorrect loop-custom-data
...
Custom-data on newly created face data was often rotated.
Now the API doesn't copy data from adjacent loops when creating faces.
Most functions were already overwriting this anyway.
Since such decisions are better made at a higher level, now it's the responsibility of the caller.
2015-11-05 20:19:09 +11:00
534c0af4d3
Fix BMesh memory leak w/ multires data
2015-11-05 19:07:22 +11:00
f75d6c4a8f
BMesh: add BM_loop_interp_multires_ex which takes cached vars
...
Avoid recalculating face centers (for each loop) when interpolating multires.
2015-11-03 18:28:13 +11:00
073ae9c572
Fix flip normals w/ multires
...
Needs Z axis flip to maintain the shape.
2015-11-03 15:50:59 +11:00
5f0f861b1d
BMesh: avoid mdisp lookups (minor optimization)
2015-11-03 15:50:52 +11:00
09e40a4956
Cleanup: spelling
2015-09-14 02:22:22 +10:00
10c93a582b
Check for no-op edge separates to quiet asserts when inset individual.
...
This causes no change in behavior, since code was alreadying doing
a no-op in bmesh_edge_separate if the edge is a boundary.
But it tripped an assert, annoying in debug builds.
We want to leave assert in bmesh_edge_separate in case callers
expect there to be separate loops after this always.
So putting test in caller.
(Same worry about bmesh_urmv_loop? I checked callers and they
appear OK to me - they deal with the no-op return.)
2015-09-03 10:42:16 -04:00
2e2dc9b9e3
Refactor translation code out of blenfont
...
- Add blentranslation `BLT_*` module.
- moved & split `BLF_translation.h` into (`BLT_translation.h`, `BLT_lang.h`).
- moved `BLF_*_unifont` functions from `blf_translation.c` to new source file `blf_font_i18n.c`.
2015-08-18 07:01:26 +10:00
fa823dc828
Cleanup: style
2015-06-16 10:32:41 +10:00
3e0c6a8ca2
BMesh: util functions to get edge loops from verts
2015-05-28 11:46:58 +10:00
f01c6e185f
Cleanup: typos
2015-05-23 22:38:47 +10:00
5d30c23c35
doxygen: corrections/updates
...
Also add depsgraph & physics
2015-05-20 14:12:22 +10:00
31e96cbf96
Cleanup: style, spelling
2015-05-15 23:38:53 +10:00
dd48ddd605
BMesh: utility to split isolated loop regions
2015-05-03 06:16:59 +10:00
de031b7c89
BMesh: replace radial count with simple checks
2015-05-03 04:41:39 +10:00
f283b959e7
BMesh: BM_vert_separate double edge fix
...
Splitting edges could give duplicates.
2015-05-02 16:24:35 +10:00
a5869945c6
Cleanup: bmesh src/dst order in API args
2015-05-02 15:46:03 +10:00
6111da3629
BMesh: add bmesh_disk_vert_replace
2015-05-01 06:18:04 +10:00
3ef27ec807
BMesh: add BM_face_loop_separate_multi
...
New utility function to handle splitting off multiple loops from a face at once.
2015-04-30 06:24:33 +10:00
53662bcaf1
BMesh: simplify/optimize loop splitting logic
...
To split off a single loop, was splitting all fans off the vertex, then merging back together (except for one).
Now simply splits off one loop.
2015-04-30 06:24:33 +10:00
26541b7488
BMesh: refactor edge-vert swapping into API call
2015-04-30 06:24:32 +10:00
67fcb04bbf
BMesh: minor change to swap-vert api
...
- assert if the verts not in the edge (all callers assume success)
- rename to bmesh_disk_vert_swap
- swap src/dst arg order.
2015-04-30 06:24:32 +10:00
3acc1ba49c
Add macro BLI_SMALLSTACK_AS_TABLE
...
Use for edge-split (a little less overhead compare to popping each item).
2015-04-29 23:59:48 +10:00
7232157357
Correct comment
2015-04-29 20:16:40 +10:00
65a9592660
BMesh: optimize edge split
...
Avoid hashing edges when splitting into fans,
Instead, walk & split fans until they're all done, gives approx 40% speedup.
2015-04-29 19:43:32 +10:00
179ffefce5
BMesh: replace smallhash flag for checking doubles
2015-04-29 19:43:21 +10:00
e1ecd39f0e
BMesh: avoid over-counting vert-edges
2015-04-29 19:42:06 +10:00
7e36c280c2
Cleanup: redundant checks
2015-04-28 16:47:45 +10:00
89f5a09ab4
Cleanup: use 8 space indent for multi-line args
2015-04-25 20:15:20 +10:00
240c5704e4
BMesh: Missed normal from example /w skip-cd flag
...
We may still want to use the normal as a reference but skip customdata.
2015-04-15 20:56:11 +10:00
d36429b930
initialize members in-order
2015-04-14 18:41:01 +10:00
690b90f1e2
BMesh: minor optimization counting adjacent data
...
add BM_***_count_is_over(), _count_is_equal()
Useful if we only want to know if the count is a smaller value.
2015-04-12 17:38:14 +10:00
cdd14ea96d
Cleanup: use bit-shift for bmesh_elem_check
2015-02-24 13:10:15 +11:00
87208fa699
Fix for edge-order flipping on subdividing wire
...
Extruding a subdivided edge would create flipped faces.
2014-09-18 13:39:10 +10:00
dece09d827
BMesh: add assert for correct args to creation functions
2014-08-21 13:08:13 +10:00
baea85b449
BMesh: add BM_vert_splice_check_double
...
checks if splicing verts creates duplicate edges
2014-08-18 15:59:14 +10:00
f5cee25a12
Fix T41149: Dissolve Crash Due to AutoSmooth.
...
bmesh's 'Join Edge Kill Vert' was using own code to delete loops, instead of
using `bm_kill_only_loop()`, which did not tag loop indices as dirty (causing
the crash), but also did not free loop's CDData...
2014-07-24 09:18:33 +02:00
1ce15f8efa
Fix for bmesh_vert_separate adding to visithash multiple times
2014-07-17 17:46:55 +10:00
58659fc207
BMesh: Add BM_vert_pair_share_face_check
...
Use to assert if BM_vert_splice is used incorrectly
2014-07-17 08:20:04 +10:00