Geometry Nodes: new Bake node #115466

Merged
Jacques Lucke merged 93 commits from JacquesLucke/blender:bake-geometry-nodes into main 2023-12-18 13:01:16 +01:00
5 changed files with 39 additions and 57 deletions
Showing only changes of commit 859f5363d2 - Show all commits

View File

@ -829,7 +829,7 @@ static int bake_single_node_modal(bContext *C, wmOperator * /*op*/, const wmEven
return OPERATOR_PASS_THROUGH;
}
static int delete_baked_simulation_single_exec(bContext *C, wmOperator *op)
static int delete_single_bake_exec(bContext *C, wmOperator *op)
{
Main *bmain = CTX_data_main(C);
Object *object = reinterpret_cast<Object *>(
@ -906,46 +906,8 @@ void OBJECT_OT_simulation_nodes_cache_delete(wmOperatorType *ot)
RNA_def_boolean(ot->srna, "selected", false, "Selected", "Delete cache on all selected objects");
}
void OBJECT_OT_simulation_nodes_cache_bake_single(wmOperatorType *ot)
static void single_bake_operator_props(wmOperatorType *ot)
{
using namespace blender::ed::object::bake_simulation;
ot->name = "Bake Single Simulation Zone";
ot->description = "Bake a single simulation zone";
ot->idname = "OBJECT_OT_simulation_nodes_cache_bake_single";
ot->exec = bake_single_node_exec;
ot->modal = bake_single_node_modal;
WM_operator_properties_id_lookup(ot, false);
RNA_def_string(ot->srna,
"modifier_name",
nullptr,
0,
"Modifier Name",
"Name of the modifier that contains the node to bake");
RNA_def_int(ot->srna,
"bake_id",
0,
0,
INT32_MAX,
"Bake ID",
"Nested node id of the node to bake",
0,
INT32_MAX);
}
void OBJECT_OT_simulation_nodes_cache_delete_single(wmOperatorType *ot)
{
using namespace blender::ed::object::bake_simulation;
ot->name = "Delete Single Cached Simulation";
ot->description = "Delete simulation data of a single simulation zone";
ot->idname = "OBJECT_OT_simulation_nodes_cache_delete_single";
ot->exec = delete_baked_simulation_single_exec;
WM_operator_properties_id_lookup(ot, false);
RNA_def_string(ot->srna,
@ -954,13 +916,33 @@ void OBJECT_OT_simulation_nodes_cache_delete_single(wmOperatorType *ot)
0,
"Modifier Name",
"Name of the modifier that contains the node");
RNA_def_int(ot->srna,
"bake_id",
0,
0,
INT32_MAX,
"Bake ID",
"Nested node id of the bake to delete",
0,
INT32_MAX);
RNA_def_int(
ot->srna, "bake_id", 0, 0, INT32_MAX, "Bake ID", "Nested node id of the node", 0, INT32_MAX);
}
void OBJECT_OT_geometry_node_bake_single(wmOperatorType *ot)
{
using namespace blender::ed::object::bake_simulation;
ot->name = "Bake Geometry Node";
ot->description = "Bake a single bake node or simulation";
ot->idname = "OBJECT_OT_geometry_node_bake_single";
ot->exec = bake_single_node_exec;
ot->modal = bake_single_node_modal;
single_bake_operator_props(ot);
}
void OBJECT_OT_geometry_node_bake_delete_single(wmOperatorType *ot)
{
using namespace blender::ed::object::bake_simulation;
ot->name = "Delete Geometry Node Bake";
ot->description = "Delete baked data of a single bake node or simulation";
ot->idname = "OBJECT_OT_geometry_node_bake_delete_single";
ot->exec = delete_single_bake_exec;
single_bake_operator_props(ot);
}

View File

@ -348,8 +348,8 @@ void OBJECT_OT_bake(wmOperatorType *ot);
void OBJECT_OT_simulation_nodes_cache_calculate_to_frame(wmOperatorType *ot);
void OBJECT_OT_simulation_nodes_cache_bake(wmOperatorType *ot);
void OBJECT_OT_simulation_nodes_cache_delete(wmOperatorType *ot);
void OBJECT_OT_simulation_nodes_cache_bake_single(wmOperatorType *ot);
void OBJECT_OT_simulation_nodes_cache_delete_single(wmOperatorType *ot);
void OBJECT_OT_geometry_node_bake_single(wmOperatorType *ot);
void OBJECT_OT_geometry_node_bake_delete_single(wmOperatorType *ot);
/* `object_random.cc` */

View File

@ -260,8 +260,8 @@ void ED_operatortypes_object()
WM_operatortype_append(OBJECT_OT_simulation_nodes_cache_calculate_to_frame);
WM_operatortype_append(OBJECT_OT_simulation_nodes_cache_bake);
WM_operatortype_append(OBJECT_OT_simulation_nodes_cache_delete);
WM_operatortype_append(OBJECT_OT_simulation_nodes_cache_bake_single);
WM_operatortype_append(OBJECT_OT_simulation_nodes_cache_delete_single);
WM_operatortype_append(OBJECT_OT_geometry_node_bake_single);
WM_operatortype_append(OBJECT_OT_geometry_node_bake_delete_single);
WM_operatortype_append(OBJECT_OT_drop_named_material);
WM_operatortype_append(OBJECT_OT_drop_geometry_nodes);
WM_operatortype_append(OBJECT_OT_unlink_data);

View File

@ -436,7 +436,7 @@ static void node_layout_ex(uiLayout *layout, bContext *C, PointerRNA *ptr)
PointerRNA ptr;
uiItemFullO(row,
"OBJECT_OT_simulation_nodes_cache_bake_single",
"OBJECT_OT_geometry_node_bake_single",
bake_label,
ICON_NONE,
nullptr,
@ -450,7 +450,7 @@ static void node_layout_ex(uiLayout *layout, bContext *C, PointerRNA *ptr)
{
PointerRNA ptr;
uiItemFullO(row,
"OBJECT_OT_simulation_nodes_cache_delete_single",
"OBJECT_OT_geometry_node_bake_delete_single",
"",
ICON_TRASH,
nullptr,

View File

@ -805,7 +805,7 @@ static void node_layout_ex(uiLayout *layout, bContext *C, PointerRNA *ptr)
PointerRNA ptr;
uiItemFullO(row,
"OBJECT_OT_simulation_nodes_cache_bake_single",
"OBJECT_OT_geometry_node_bake_single",
bake_label,
ICON_NONE,
nullptr,
@ -819,7 +819,7 @@ static void node_layout_ex(uiLayout *layout, bContext *C, PointerRNA *ptr)
{
PointerRNA ptr;
uiItemFullO(row,
"OBJECT_OT_simulation_nodes_cache_delete_single",
"OBJECT_OT_geometry_node_bake_delete_single",
"",
ICON_TRASH,
nullptr,