Geometry Nodes: add simulation support #104924

Closed
Hans Goudey wants to merge 211 commits from geometry-nodes-simulation into main

When changing the target branch, be careful to rebase the branch in your fork to match. See documentation.
2 changed files with 6 additions and 5 deletions
Showing only changes of commit 4ebe696e85 - Show all commits

View File

@ -56,7 +56,7 @@ class NodeAddOperator:
else:
space.cursor_location = tree.view_center
# Deselect all nodes in the tree
# Deselect all nodes in the tree.
@staticmethod
def deselect_nodes(context):
space = context.space_data
@ -120,7 +120,7 @@ class NodeAddOperator:
return result
# Simple basic operator for adding a node
# Simple basic operator for adding a node.
class NODE_OT_add_node(NodeAddOperator, Operator):
'''Add a node to the active tree'''
bl_idname = "node.add_node"
@ -132,7 +132,7 @@ class NODE_OT_add_node(NodeAddOperator, Operator):
description="Node type",
)
# Default execute simply adds a node
# Default execute simply adds a node.
def execute(self, context):
if self.properties.is_property_set("type"):
self.deselect_nodes(context)

View File

@ -261,7 +261,8 @@ static Vector<const bNode *> get_implicit_origin_nodes(const bNodeTree &ntree, b
if (node.type == GEO_NODE_SIMULATION_OUTPUT) {
for (const bNode *sim_input_node :
ntree.runtime->nodes_by_type.lookup(nodeTypeFind("GeometryNodeSimulationInput"))) {
const auto &storage = *static_cast<NodeGeometrySimulationInput *>(sim_input_node->storage);
const auto &storage = *static_cast<const NodeGeometrySimulationInput *>(
sim_input_node->storage);
if (storage.output_node_id == node.identifier) {
origin_nodes.append(sim_input_node);
}
@ -274,7 +275,7 @@ static Vector<const bNode *> get_implicit_target_nodes(const bNodeTree &ntree, b
{
Vector<const bNode *> target_nodes;
if (node.type == GEO_NODE_SIMULATION_INPUT) {
const auto &storage = *static_cast<NodeGeometrySimulationInput *>(node.storage);
const auto &storage = *static_cast<const NodeGeometrySimulationInput *>(node.storage);
if (const bNode *sim_output_node = ntree.node_by_id(storage.output_node_id)) {
target_nodes.append(sim_output_node);
}