Files
test2/source/blender/geometry/CMakeLists.txt
Falk David 53b9594ee2 Geometry Nodes: Add "Merge Layers" node
This patch improves working with grease pencil layers in geometry nodes.
* Allow layers to have duplicate names in geometry nodes. In original data, unique names are enforced.
  * This allows e.g. duplicating layers and then merging them by name in the end.
  * It also resolves a big serial bottleneck when working with many grease pencil layers in geometry nodes. Enforcing unique names is inefficient.
* New `Merge Layers` node that can merge multiple layers by name or by a custom group id.
* Applying a grease pencil modifier now first merges all layers with the same name to ensure all names are unique.

Co-authored-by: Jacques Lucke <jacques@blender.org>
Pull Request: https://projects.blender.org/blender/blender/pulls/127873
2024-09-27 13:17:18 +02:00

153 lines
3.2 KiB
CMake

# SPDX-FileCopyrightText: 2006 Blender Authors
#
# SPDX-License-Identifier: GPL-2.0-or-later
set(INC
.
../blenkernel
../blentranslation
../bmesh
../functions
../makesrna
../../../intern/eigen
)
set(INC_SYS
)
set(SRC
intern/add_curves_on_mesh.cc
intern/curve_constraints.cc
intern/extend_curves.cc
intern/extract_elements.cc
intern/fillet_curves.cc
intern/interpolate_curves.cc
intern/join_geometries.cc
intern/merge_curves.cc
intern/merge_layers.cc
intern/mesh_boolean.cc
intern/mesh_copy_selection.cc
intern/mesh_merge_by_distance.cc
intern/mesh_primitive_cuboid.cc
intern/mesh_primitive_cylinder_cone.cc
intern/mesh_primitive_grid.cc
intern/mesh_primitive_line.cc
intern/mesh_primitive_uv_sphere.cc
intern/mesh_selection.cc
intern/mesh_split_edges.cc
intern/mesh_to_curve_convert.cc
intern/mesh_to_volume.cc
intern/mix_geometries.cc
intern/point_merge_by_distance.cc
intern/points_to_volume.cc
intern/randomize.cc
intern/realize_instances.cc
intern/reorder.cc
intern/resample_curves.cc
intern/reverse_uv_sampler.cc
intern/separate_geometry.cc
intern/set_curve_type.cc
intern/simplify_curves.cc
intern/smooth_curves.cc
intern/subdivide_curves.cc
intern/transform.cc
intern/trim_curves.cc
intern/uv_pack.cc
intern/uv_parametrizer.cc
intern/volume_grid_resample.cc
GEO_add_curves_on_mesh.hh
GEO_curve_constraints.hh
GEO_extend_curves.hh
GEO_extract_elements.hh
GEO_fillet_curves.hh
GEO_interpolate_curves.hh
GEO_join_geometries.hh
GEO_merge_curves.hh
GEO_merge_layers.hh
GEO_mesh_boolean.hh
GEO_mesh_copy_selection.hh
GEO_mesh_merge_by_distance.hh
GEO_mesh_primitive_cuboid.hh
GEO_mesh_primitive_cylinder_cone.hh
GEO_mesh_primitive_grid.hh
GEO_mesh_primitive_line.hh
GEO_mesh_primitive_uv_sphere.hh
GEO_mesh_selection.hh
GEO_mesh_split_edges.hh
GEO_mesh_to_curve.hh
GEO_mesh_to_volume.hh
GEO_mix_geometries.hh
GEO_point_merge_by_distance.hh
GEO_points_to_volume.hh
GEO_randomize.hh
GEO_realize_instances.hh
GEO_reorder.hh
GEO_resample_curves.hh
GEO_reverse_uv_sampler.hh
GEO_separate_geometry.hh
GEO_set_curve_type.hh
GEO_simplify_curves.hh
GEO_smooth_curves.hh
GEO_subdivide_curves.hh
GEO_transform.hh
GEO_trim_curves.hh
GEO_uv_pack.hh
GEO_uv_parametrizer.hh
GEO_volume_grid_resample.hh
)
set(LIB
bf_blenkernel
PRIVATE bf::blenlib
PRIVATE bf::dna
PRIVATE bf::intern::guardedalloc
PRIVATE bf::extern::fmtlib
)
if(WITH_UV_SLIM)
list(APPEND INC
../../../intern/slim
)
add_definitions(-DWITH_UV_SLIM)
endif()
if(WITH_OPENVDB)
list(APPEND INC
../../../intern/openvdb
)
list(APPEND INC_SYS
${OPENVDB_INCLUDE_DIRS}
)
list(APPEND LIB
bf_intern_openvdb
${OPENVDB_LIBRARIES}
)
add_definitions(-DWITH_OPENVDB ${OPENVDB_DEFINITIONS})
endif()
if(WITH_GMP)
add_definitions(-DWITH_GMP)
list(APPEND INC_SYS
${GMP_INCLUDE_DIRS}
)
list(APPEND LIB
${GMP_LIBRARIES}
)
endif()
blender_add_lib(bf_geometry "${SRC}" "${INC}" "${INC_SYS}" "${LIB}")
if(WITH_GTESTS)
set(TEST_INC
)
set(TEST_SRC
tests/GEO_merge_curves_test.cc
)
set(TEST_LIB
)
blender_add_test_suite_lib(bf_geometry_tests "${TEST_SRC}" "${INC};${TEST_INC}" "${INC_SYS}" "${LIB};${TEST_LIB}")
endif()