Age | Commit message (Collapse) | Author |
|
Following removal from C source code.
See: 8c68ed6df16d8893
|
|
|
|
|
|
Other files with the same purpose already used 'query'.
|
|
This commit contains the minimum to make clang build/work with blender, asan and ninja build support is forthcoming
Things to note:
1) Builds and runs, and is able to pass all tests (except for the freestyle_stroke_material.blend test which was broken at that time for all platforms by the looks of it)
2) It's slightly faster than msvc when using cycles. (time in seconds, on an i7-3370)
victor_cpu
msvc:3099.51
clang:2796.43
pavillon_barcelona_cpu
msvc:1872.05
clang:1827.72
koro_cpu
msvc:1097.58
clang:1006.51
fishy_cat_cpu
msvc:815.37
clang:722.2
classroom_cpu
msvc:1705.39
clang:1575.43
bmw27_cpu
msvc:552.38
clang:561.53
barbershop_interior_cpu
msvc:2134.93
clang:1922.33
3) clang on windows uses a drop in replacement for the Microsoft cl.exe (takes some of the Microsoft parameters, but not all, and takes some of the clang parameters but not all) and uses ms headers + libraries + linker, so you still need visual studio installed and will use our existing vc14 svn libs.
4) X64 only currently, X86 builds but crashes on startup.
5) Tested with llvm/clang 6.0.0
6) Requires visual studio integration, available at https://github.com/LazyDodo/llvm-vs2017-integration
7) The Microsoft compiler spawns a few copies of cl in parallel to get faster build times, clang doesn't, so the build time is 3-4x slower than with msvc.
8) No openmp support yet. Have not looked at this much, the binary distribution of clang doesn't seem to include it on windows.
9) No ASAN support yet, some of the sanitizers can be made to work, but it was decided to leave support out of this commit.
Reviewers: campbellbarton
Differential Revision: https://developer.blender.org/D3304
|
|
|
|
|
|
`BM_mesh_normals_update` was converted from OMP to new parallel iterator code,
basic test with heavily subdivided cube (24.5k faces) gives:
- old OMP code: average 10ms per run.
- new BLI_task code: average 6ms per run.
So new code seems to be easily 40% quicker, in addition to getting rid of OMP. ;)
Reviewers: sergey, campbellbarton
Differential Revision: https://developer.blender.org/D2930
|
|
Fast-path for bmesh split operator which duplicates and deletes.
Use when only separating faces, currently used by the intersect tool.
|
|
Rewrote to work with ngons and and more complex topology, now uses separate function.
Fixes T48009.
|
|
currently for bmesh
|
|
Differential Revision: https://developer.blender.org/D1662
|
|
Isolate edge-net splitting in preparation for other functions to be added here.
|
|
- 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`.
|
|
Ability to quickly add 2x edge loops on either side of selected loops.
|
|
|
|
Access from Mesh -> Cleanup
|
|
Also add:
- generic callback for bmesh elements.
- ability to pass an existing array to a bmesh operator.
|
|
Select operator that takes multiple selected face regions and
selects any number of matching regions (when they have distinguishing features to isolate them).
UI access next.
|
|
Modeling tool to cut intersections into geometry (like boolean, without calculating inside/outside).
Faces are split along intersections, leaving new edges selected.
Access from Face menu.
|
|
|
|
|
|
|
|
|
|
This is a proper design if we want to use the beautify routine elsewhere
(e.g., in the triangulate modifier)
|
|
changes to tool args would rebuild far too many files and these are mainly by modifiers outside of bmesh.
|
|
plane as an argument, handles concave ngons which need multiple cuts.
|
|
* fill-holes operator now takes advantage of new edge-net fill, works in many more cases then it did before.
* face-create that uses edge-net now initializes the normals based on surrounding geometry, only running normal calculation if there are no connected faces for a reference.
|
|
previous code created faces with mixed face-flipping and could get very slow,
test with ~60,000 edges here hung my system for over 2min (didnt wait for it to finish), new code executes in about 1 second.
new code doesn't attempt to flip faces correctly, its quite involved to do so, especially when the new faces are not created adjacent to eachother.
so simpler to calculate normals afterwards.
|
|
exceed a given angle threshold
(access from the 'Mesh -> Clean' menu).
|
|
unlike other face creation tools it copies data from surrounding faces.
|
|
|
|
|
|
only use this when 2 vertices are selected, otherwise use the same behavior as before.
This works a little like a fast knife tool, but it only cuts straight lines and doesnt depend on the view-port.
Examples:
- http://www.graphicall.org/ftp/ideasman42/mesh_connect_pair.png
- http://www.graphicall.org/ftp/ideasman42/mesh_connect_pair_curve.png
|
|
- Ctrl+RMB only worked for edges & faces
- Menu item 'Select Shortest Path' only worked for vertices.
Now Ctrl+RMB works for vertices and the menu item works for verts/edges/faces (depending on the current selection).
|
|
also added the underlying subdivision as a standalone operator in the edge menu, named: subdivide edge-ring.
http://www.graphicall.org/ftp/ideasman42/bridge_subd.png
|
|
|
|
This uses 2 edge loops and fills them with a grid, taking into account curvature of surrounding edges.
Access from face menu: Ctrl+F,G
http://www.graphicall.org/ftp/ideasman42/grid_fill.png
|
|
- rewrite bridge tool to use the new functions (using edge & vertex arrays was quite cumbersome).
|
|
|
|
by Francisco De La Cruz (xercesblue), with some of my own changes/improvements.
Converts faces to triangle-fans (useful to run on ngons).
To access select a group of faces and press "Alt+P" or alternatively select the operator from the Faces menu (Ctrl+F)
|
|
|
|
connecting geometry existed inside the loop.
In this case edgenet_fill operator failed and it would fallback to filling as unordered vertices which was mostly fine but failed on some concave loops.
Add a new bmesh operator 'edgeloop_fill' fills in closed loops even if they don't make a valid edge-net.
|
|
|
|
|
|
|
|
Resolved conflicts:
release/datafiles/startup.blend
source/blender/editors/space_nla/nla_buttons.c
Also updated source/blender/blenkernel/intern/linestyle.c as a follow-up of
recent changes for the use of bool.
|
|
in bmo_subdivide.c.
also only initialize random numbers when fractal option is set.
|
|
Conflicts resolved:
release/datafiles/startup.blend
release/scripts/startup/bl_ui/properties_render.py
source/blender/SConscript
source/blender/blenloader/intern/readfile.c
|
|
BM_mesh_triangulate() function. Gives ~2x speedup in my tests on an optimized build.
|