Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-07-14Cleanup: sort header, cmake pathsCampbell Barton
2020-07-09UV: path selection supportCampbell Barton
This adds support for path selection for vertex edge & face selection modes, matching mesh editing behavior, useful with the UV rip tool. Region select & edge tagging are currently not supported, although they could be added eventually.
2020-07-09Cleanup: move BMesh UV queries into their own fileCampbell Barton
2020-06-05Cleanup: rename suffix 'conv' to 'convert'Campbell Barton
2020-01-23CMake: Refactor external dependencies handlingSergey Sharybin
This is a more correct fix to the issue Brecht was fixing in D6600. While the fix in that patch worked fine for linking it broke ASAN runtime under some circumstances. For example, `make full debug developer` would compile, but trying to start blender will cause assert failure in ASAN (related on check that ASAN is not running already). Top-level idea: leave it to CMake to keep track of dependency graph. The root of the issue comes to the fact that target like "blender" is configured to use a lot of static libraries coming from Blender sources and to use external static libraries. There is nothing which ensures order between blender's and external libraries. Only order of blender libraries is guaranteed. It was possible that due to a cycle or other circumstances some of blender libraries would have been passed to linker after libraries it uses, causing linker errors. For example, this order will likely fail: libbf_blenfont.a libfreetype6.a libbf_blenfont.a This change makes it so blender libraries are explicitly provided their dependencies to an external libraries, which allows CMake to ensure they are always linked against them. General rule here: if bf_foo depends on an external library it is to be provided to LIBS for bf_foo. For example, if bf_blenkernel depends on opensubdiv then LIBS in blenkernel's CMakeLists.txt is to include OPENSUBDIB_LIBRARIES. The change is made based on searching for used include folders such as OPENSUBDIV_INCLUDE_DIRS and adding corresponding libraries to LIBS ion that CMakeLists.txt. Transitive dependencies are not simplified by this approach, but I am not aware of any downside of this: CMake should be smart enough to simplify them on its side. And even if not, this shouldn't affect linking time. Benefit of not relying on transitive dependencies is that build system is more robust towards future changes. For example, if bf_intern_opensubiv is no longer depends on OPENSUBDIV_LIBRARIES and all such code is moved to bf_blenkernel this will not break linking. The not-so-trivial part is change to blender_add_lib (and its version in Cycles). The complexity is caused by libraries being provided as a single list argument which doesn't allow to use different release and debug libraries on Windows. The idea is: - Have every library prefixed as "optimized" or "debug" if separation is needed (non-prefixed libraries will be considered "generic"). - Loop through libraries passed to function and do simple parsing which will look for "optimized" and "debug" words and specify following library to corresponding category. This isn't something particularly great. Alternative would be to use target_link_libraries() directly, which sounds like more code but which is more explicit and allows to have more flexibility and control comparing to wrapper approach. Tested the following configurations on Linux, macOS and Windows: - make full debug developer - make full release developer - make lite debug developer - make lite release developer NOTE: Linux libraries needs to be compiled with D6641 applied, otherwise, depending on configuration, it's possible to run into duplicated zlib symbols error. Differential Revision: https://developer.blender.org/D6642
2019-10-20Fix T70864: Separate loose parts runs indefinitelyCampbell Barton
Large objects with many separate pieces became unstably slow (run for hours and not finish). The entire original mesh was being duplicated twice per loose part. In own tests, millions of vertices and thousands of loose parts now run in around 5-15 seconds.
2019-09-12BMesh: New tool `BM_mesh_intersect_edges`mano-wii
Along with the new utility `BM_vert_weld_linked_wire_edges_into_linked_faces`
2019-04-24Cleanup: sort CMake include pathsCampbell Barton
2019-04-17ClangFormat: apply to source, most of internCampbell Barton
Apply clang format as proposed in T53211. For details on usage and instructions for migrating branches without conflicts, see: https://wiki.blender.org/wiki/Tools/ClangFormat
2019-04-16CMake: add libs needed for gtestsCampbell Barton
2019-04-16CMake: add library deps to CMakeLists.txtCampbell Barton
Tested to work on Linux and macOS. This will be enabled once all platforms are verified. See D4684
2019-04-16CMake: cleanup, arg rename, add definitions lastCampbell Barton
2019-04-14CMake: prepare for BLENDER_SORTED_LIBS removalCampbell Barton
No functional change, this adds LIB definition and args to cmake files. Without this it's difficult to migrate away from 'BLENDER_SORTED_LIBS' since there are many platforms/configurations that could break when changing linking order. Manually add and enable WITHOUT_SORTED_LIBS to try building without sorted libs (currently fails since all variables are empty). This check will eventually be removed. See T46725.
2019-02-05Cleanup: remove contributors for CMake filesCampbell Barton
Following removal from C source code. See: 8c68ed6df16d8893
2019-01-25Cleanup: sort cmake file listsCampbell Barton
2018-09-28Cleanup: Remove bmo_similar.c and small renamingDalai Felinto
2018-06-30Cleanup: rename bmesh_queries -> bmesh_queryCampbell Barton
Other files with the same purpose already used 'query'.
2018-05-28Windows: Add support for building with clang.Ray Molenkamp
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
2017-11-26Cleanup: rename edge -> edgesCampbell Barton
2017-11-26Cleanup: move edge-rotate into own fileCampbell Barton
2017-11-23Getting rid of OMP: first usage of new parallel BMesh items iteration instead.Bastien Montagne
`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
2017-03-11BMesh: add BM_mesh_separate_facesCampbell Barton
Fast-path for bmesh split operator which duplicates and deletes. Use when only separating faces, currently used by the intersect tool.
2016-04-01BMesh: improve path-select fill region w/ ngonsCampbell Barton
Rewrote to work with ngons and and more complex topology, now uses separate function. Fixes T48009.
2015-12-10MSVC 2015 fix, /WX warnings as errors is to restrictive for msvc 2015 ↵Martijn Berger
currently for bmesh
2015-12-10Eigen: fold remaining OpenNL code into intern/eigen.Brecht Van Lommel
Differential Revision: https://developer.blender.org/D1662
2015-12-09BMesh: move BM_face_split_edgenet to its own fileCampbell Barton
Isolate edge-net splitting in preparation for other functions to be added here.
2015-08-18Refactor translation code out of blenfontCampbell Barton
- 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-06-15BMesh: edge-offset feature (Ctrl+Shift+R)Campbell Barton
Ability to quickly add 2x edge loops on either side of selected loops.
2015-06-11BMesh: flatten faces operatorCampbell Barton
2015-02-02BMesh: tool to ensure all faces are convexCampbell Barton
Access from Mesh -> Cleanup
2014-11-02Fix connect-vertices failing for concave ngonsCampbell Barton
Also add: - generic callback for bmesh elements. - ability to pass an existing array to a bmesh operator.
2014-09-26BMesh: select similar regionsCampbell Barton
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.
2014-08-18BMesh: intersect toolCampbell Barton
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.
2014-01-17Code Cleanup: move delete funcs out of bmesh_construct.c into own fileCampbell Barton
2013-12-23BMesh API: make simple, low level functions inlineCampbell Barton
2013-12-21EditMesh: wireframe tool, add offset and vgroup support (not used yet)Campbell Barton
2013-11-25CMake Build: option to compile without opennl/superlu.Campbell Barton
2013-10-16split operators/bmo_beautify.c into tools/bmesh_beautify.cDalai Felinto
This is a proper design if we want to use the beautify routine elsewhere (e.g., in the triangulate modifier)
2013-08-23move bmesh tools into their own include,Campbell Barton
changes to tool args would rebuild far too many files and these are mainly by modifiers outside of bmesh.
2013-08-22new bmesh operator bisect_plane, cuts a mesh in half, takes a user defined ↵Campbell Barton
plane as an argument, handles concave ngons which need multiple cuts.
2013-08-18bmesh improvements to face creation.Campbell Barton
* 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.
2013-08-16rewrite edgenet fill bmesh operator.Campbell Barton
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.
2013-07-28new mesh tool for cleaning up meshes, splits up non-planar faces while they ↵Campbell Barton
exceed a given angle threshold (access from the 'Mesh -> Clean' menu).
2013-07-25mesh tool to fill in holes, added in mesh clean menu,Campbell Barton
unlike other face creation tools it copies data from surrounding faces.
2013-07-23code cleanup: remove deprecated bevel code (unused since 2.64)Campbell Barton
2013-07-08move normal recalculation into its own source file.Campbell Barton
2013-06-22Extend existing editmesh connect tool so it can connect across multiple faces.Campbell Barton
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
2013-06-04edit-mesh improvements to select shortest pathCampbell Barton
- 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).
2013-05-23Support for bridge tool subdivisions, smoothing and shape along the profile.Campbell Barton
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
2013-05-20code cleanup: rename bmesh operator files to be more consistentCampbell Barton