Move `GeometrySet` and `GeometryComponent` and subclasses to the `blender::bke` namespace. This wasn't done earlier since these were one of the first C++ classes used throughout Blender, but now it is common. Also remove the now-unnecessary C-header, since all users of the geometry set header are now in C++. Pull Request: https://projects.blender.org/blender/blender/pulls/109020
65 lines
2.0 KiB
C++
65 lines
2.0 KiB
C++
/* SPDX-FileCopyrightText: 2023 Blender Foundation
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
|
|
#pragma once
|
|
|
|
#include "BLI_compute_context.hh"
|
|
#include "BLI_function_ref.hh"
|
|
#include "BLI_multi_value_map.hh"
|
|
|
|
#include "BKE_idprop.hh"
|
|
|
|
struct bNodeTree;
|
|
struct bNodeSocket;
|
|
struct Depsgraph;
|
|
namespace blender::bke {
|
|
struct GeometrySet;
|
|
}
|
|
struct IDProperty;
|
|
struct Object;
|
|
namespace blender::nodes {
|
|
struct GeoNodesLFUserData;
|
|
namespace geo_eval_log {
|
|
class GeoModifierLog;
|
|
} // namespace geo_eval_log
|
|
} // namespace blender::nodes
|
|
|
|
namespace blender::nodes {
|
|
|
|
StringRef input_use_attribute_suffix();
|
|
StringRef input_attribute_name_suffix();
|
|
|
|
/**
|
|
* \return Whether using an attribute to input values of this type is supported.
|
|
*/
|
|
bool socket_type_has_attribute_toggle(const bNodeSocket &socket);
|
|
|
|
/**
|
|
* \return Whether using an attribute to input values of this type is supported, and the node
|
|
* group's input for this socket accepts a field rather than just single values.
|
|
*/
|
|
bool input_has_attribute_toggle(const bNodeTree &node_tree, const int socket_index);
|
|
|
|
bool id_property_type_matches_socket(const bNodeSocket &socket, const IDProperty &property);
|
|
|
|
std::unique_ptr<IDProperty, bke::idprop::IDPropertyDeleter> id_property_create_from_socket(
|
|
const bNodeSocket &socket);
|
|
|
|
bke::GeometrySet execute_geometry_nodes_on_geometry(
|
|
const bNodeTree &btree,
|
|
const IDProperty *properties,
|
|
const ComputeContext &base_compute_context,
|
|
bke::GeometrySet input_geometry,
|
|
FunctionRef<void(nodes::GeoNodesLFUserData &)> fill_user_data);
|
|
|
|
void update_input_properties_from_node_tree(const bNodeTree &tree,
|
|
const IDProperty *old_properties,
|
|
IDProperty &properties);
|
|
|
|
void update_output_properties_from_node_tree(const bNodeTree &tree,
|
|
const IDProperty *old_properties,
|
|
IDProperty &properties);
|
|
|
|
} // namespace blender::nodes
|