2023-08-16 00:20:26 +10:00
|
|
|
/* SPDX-FileCopyrightText: 2023 Blender Authors
|
2023-05-31 16:19:06 +02:00
|
|
|
*
|
|
|
|
|
* SPDX-License-Identifier: GPL-2.0-or-later */
|
2020-04-20 10:58:43 +02:00
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
2020-12-02 13:25:25 +01:00
|
|
|
struct NodesModifierData;
|
2020-12-16 16:26:23 +11:00
|
|
|
struct Object;
|
2020-12-02 13:25:25 +01:00
|
|
|
|
2023-09-03 16:14:11 +02:00
|
|
|
namespace blender::bke::bake {
|
|
|
|
|
struct ModifierCache;
|
2023-07-11 12:55:57 +02:00
|
|
|
}
|
|
|
|
|
namespace blender::nodes::geo_eval_log {
|
|
|
|
|
class GeoModifierLog;
|
|
|
|
|
}
|
|
|
|
|
|
2021-12-08 17:12:33 +11:00
|
|
|
/**
|
|
|
|
|
* Rebuild the list of properties based on the sockets exposed as the modifier's node group
|
|
|
|
|
* inputs. If any properties correspond to the old properties by name and type, carry over
|
|
|
|
|
* the values.
|
|
|
|
|
*/
|
2023-08-03 01:11:28 +02:00
|
|
|
void MOD_nodes_update_interface(Object *object, NodesModifierData *nmd);
|
2023-07-11 12:55:57 +02:00
|
|
|
|
|
|
|
|
namespace blender {
|
|
|
|
|
|
|
|
|
|
struct NodesModifierRuntime {
|
|
|
|
|
/**
|
|
|
|
|
* Contains logged information from the last evaluation.
|
|
|
|
|
* This can be used to help the user to debug a node tree.
|
|
|
|
|
*/
|
|
|
|
|
std::unique_ptr<nodes::geo_eval_log::GeoModifierLog> eval_log;
|
|
|
|
|
/**
|
|
|
|
|
* Simulation cache that is shared between original and evaluated modifiers. This allows the
|
|
|
|
|
* original modifier to be removed, without also removing the simulation state which may still be
|
|
|
|
|
* used by the evaluated modifier.
|
|
|
|
|
*/
|
2023-09-03 16:14:11 +02:00
|
|
|
std::shared_ptr<bke::bake::ModifierCache> cache;
|
2023-07-11 12:55:57 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
} // namespace blender
|