Age | Commit message (Collapse) | Author |
|
Saves 8 bytes per vert/edge/face.
Gives overall ~20-25% memory saving for dyntopo sculpting
and modifiers that use BMesh.
|
|
|
|
|
|
Opted to keep includes if they are used indirectly (even if removing is possible).
|
|
handling.
Most notably, BM_LOOP and BM_FACE index recompute should now be fully decoupled.
|
|
|
|
|
|
defaults in places),
add macros for initializing BMAllocTemplate's, also add assert on invalid use of bmesh_sfme()
|
|
vertex and edge),
also replace BM_face_create_quad_tri_v with BM_face_create_verts
|
|
|
|
|
|
add arguments to calculate normals when converting to bmesh:
BM_mesh_bm_from_me, DM_to_bmesh
This gives some speedup to undo (which didnt need to re-calculate vertex normals), and array modifier which doesnt need to calculate face normals at all
|
|
many modifiers were calculating normals, when those normals were ignored by the next modifier.
now flag normals as dirty and recalculate for modifiers that set use `dependsOnNormals()` callback.
Quick test on mesh with 12 modifiers (mostly build type), calculated normals 6 times, now it only runs once - so this will give some speedup too.
|
|
would be smart here).
also reserve the exact number of vert/face/edge/loops when creating a bmesh during undo.
|
|
replace with alloca
|
|
BKE_editmesh_bvh.h
|
|
EditDerivedBMesh.tc -> em. ('tc' is odd name which isn't used elsewhere).
|
|
faces since the loops are already in order, will speedup modifiers that use bmesh.
|
|
derivedMesh type isn't a CDDM.
|
|
unless they are needed.
configurable in 'Geometry Data' panel, will be added when running crease edges transform for example.
|
|
Issue was customdata wasnt being initialized for layers in the destination BMesh but not in the source data.
|
|
|
|
entering Edit Mode
DM_to_bmesh_ex could merge a 'dm' into an existing BMesh, in that case CD_ORIGINDEX values needed to be set to ORIGINDEX_NONE.
|
|
Thanks for Sergey for finding the bug & patching, This fix works a bit differently.
Theres no need to allocate the customdata in the first place - since its written into. So add a flag for vert/edge/face/loop creation functions so they can skip customdata creation.
|
|
- define array sizes for functions that take vectors.
- quiet some -Wshadow warnings.
- some copy/paste error in readfile.c made it set the same particle recalc flag twice.
|
|
saves running extra loop on vert/edge/face data if these values are needed after.
|
|
|
|
crash caused by own commit r50969, the fix exposed a crash in an area of code that must have never been used before.
|
|
|
|
to BLI_array macros.
|
|
Added missing CD_BWEIGHT layer for the modifier's DerivedMesh.
|
|
* Array modifier creates BMesh from DM; add missing CD_CREASE layer
for edge creases.
* With a modifier stack like mirror+subsurf+array, face normals were
wrong. Fix by removing CD_NORMAL layer from CCGDM output. Previously
the elements in this layer were simply copied, so they did not
reflect subdivision correctly.
* Minor style fixes in bmo_dupe.c.
Issues not yet addressed:
* Subsurf's optimal draw setting for hiding subdivision edges is not
respected by the array output.
* Slowdown issue; array modifier is much slower than in 2.62.
|
|
|
|
BMEditMesh already stores an object pointer.
also fix for own mistake with mesh conversion refactor, shape key index was off by 1 when switching editmode.
|
|
the mouse was before a character it would select the previous, even if the cursor was closer to the space between the next 2 chars.
now find the closest point inbetween both chars.
|
|
Was caused by recent code cleanup.
|
|
|
|
- spelling - turns out we had tessellation spelt wrong all over.
- use \directive for doxy (not @directive)
- remove BLI_sparsemap.h - was from bmesh merge IIRC but entire file commented and not used.
|
|
also correct bad assert() in previous commit.
|
|
|
|
* add DM_to_bmesh_ex, DM_to_bmesh for converting a derived mesh to a BMesh (rather than a BMEditMesh)
* have a generic variable for allocsize: bm_mesh_allocsize_default, rather than copying the values about.
|
|
the input to be a CDDM.
remove conversions to CDDM for edge split and bevel (will give some
speedup).
|
|
These changes are to make the bmesh api more consistent and easier to learn, grouping similar functions which is convenient for autocomplete.
This uses similar convention to RNA.
* use face/loop/edge/vert as a prefix for functions.
* use 'elem' as a prefix too for functions that can take any type with a BMHeader.
* changed from camel case to underscore separated (like RNA).
|
|
|
|
|
|
|
|
|
|
replace 0/1 with TRUE/FALSE define.
|
|
increase is known ahead of time, will reduce reallocs and give some speedup.
|
|
- were tesselating 2 times and didnt need to.
also comment array modifier from flushing selection flags.
|