2023-08-15 16:20:26 +02:00
|
|
|
/* SPDX-FileCopyrightText: 2023 Blender Authors
|
2023-06-14 15:30:43 +02:00
|
|
|
*
|
|
|
|
* SPDX-License-Identifier: GPL-2.0-or-later */
|
2023-06-01 14:55:21 +02:00
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <optional>
|
|
|
|
|
2023-06-01 16:02:37 +02:00
|
|
|
#include "BLI_index_mask.hh"
|
|
|
|
|
2023-06-01 14:55:21 +02:00
|
|
|
struct Mesh;
|
|
|
|
namespace blender {
|
|
|
|
namespace fn {
|
|
|
|
template<typename T> class Field;
|
|
|
|
}
|
|
|
|
namespace bke {
|
2023-12-20 19:25:08 +01:00
|
|
|
enum class AttrDomain : int8_t;
|
2023-06-01 14:55:21 +02:00
|
|
|
class AnonymousAttributePropagationInfo;
|
2023-12-20 19:25:08 +01:00
|
|
|
} // namespace bke
|
2023-06-01 14:55:21 +02:00
|
|
|
} // namespace blender
|
|
|
|
|
|
|
|
namespace blender::geometry {
|
|
|
|
|
|
|
|
std::optional<Mesh *> mesh_copy_selection(
|
|
|
|
const Mesh &src_mesh,
|
2023-09-30 16:27:25 +02:00
|
|
|
const VArray<bool> &selection,
|
2023-12-20 19:13:16 +01:00
|
|
|
bke::AttrDomain selection_domain,
|
2023-06-01 14:55:21 +02:00
|
|
|
const bke::AnonymousAttributePropagationInfo &propagation_info);
|
|
|
|
|
|
|
|
std::optional<Mesh *> mesh_copy_selection_keep_verts(
|
|
|
|
const Mesh &src_mesh,
|
2023-09-30 16:27:25 +02:00
|
|
|
const VArray<bool> &selection,
|
2023-12-20 19:13:16 +01:00
|
|
|
bke::AttrDomain selection_domain,
|
2023-06-01 14:55:21 +02:00
|
|
|
const bke::AnonymousAttributePropagationInfo &propagation_info);
|
|
|
|
|
|
|
|
std::optional<Mesh *> mesh_copy_selection_keep_edges(
|
|
|
|
const Mesh &mesh,
|
2023-09-30 16:27:25 +02:00
|
|
|
const VArray<bool> &selection,
|
2023-12-20 19:13:16 +01:00
|
|
|
bke::AttrDomain selection_domain,
|
2023-06-01 14:55:21 +02:00
|
|
|
const bke::AnonymousAttributePropagationInfo &propagation_info);
|
|
|
|
|
|
|
|
} // namespace blender::geometry
|