Geometry Nodes: Rename more geometry sockets

This is a followup to rB827d7e7d252d48. After this we should
be consistent everywhere with the hints in the names of geometry
sockets.
This commit is contained in:
Hans Goudey 2021-10-27 09:33:50 -05:00
parent dc37990e24
commit 87470169e0
21 changed files with 106 additions and 81 deletions

View File

@ -2126,6 +2126,31 @@ void blo_do_versions_300(FileData *fd, Library *UNUSED(lib), Main *bmain)
version_node_input_socket_name(ntree, GEO_NODE_POINTS_TO_VOLUME, "Geometry", "Points");
version_node_output_socket_name(ntree, GEO_NODE_POINTS_TO_VOLUME, "Geometry", "Volume");
version_node_socket_name(ntree, GEO_NODE_SUBDIVISION_SURFACE, "Geometry", "Mesh");
version_node_socket_name(ntree, GEO_NODE_RESAMPLE_CURVE, "Geometry", "Curve");
version_node_socket_name(ntree, GEO_NODE_SUBDIVIDE_CURVE, "Geometry", "Curve");
version_node_socket_name(ntree, GEO_NODE_SET_CURVE_RADIUS, "Geometry", "Curve");
version_node_socket_name(ntree, GEO_NODE_SET_CURVE_TILT, "Geometry", "Curve");
version_node_socket_name(ntree, GEO_NODE_SET_CURVE_HANDLES, "Geometry", "Curve");
version_node_socket_name(ntree, GEO_NODE_TRANSLATE_INSTANCES, "Geometry", "Instances");
version_node_socket_name(ntree, GEO_NODE_ROTATE_INSTANCES, "Geometry", "Instances");
version_node_socket_name(ntree, GEO_NODE_SCALE_INSTANCES, "Geometry", "Instances");
version_node_output_socket_name(ntree, GEO_NODE_MESH_BOOLEAN, "Geometry", "Mesh");
version_node_input_socket_name(ntree, GEO_NODE_MESH_BOOLEAN, "Geometry 1", "Mesh 1");
version_node_input_socket_name(ntree, GEO_NODE_MESH_BOOLEAN, "Geometry 2", "Mesh 2");
version_node_socket_name(ntree, GEO_NODE_SUBDIVIDE_MESH, "Geometry", "Mesh");
version_node_socket_name(ntree, GEO_NODE_TRIANGULATE, "Geometry", "Mesh");
version_node_output_socket_name(ntree, GEO_NODE_MESH_PRIMITIVE_CONE, "Geometry", "Mesh");
version_node_output_socket_name(ntree, GEO_NODE_MESH_PRIMITIVE_CUBE, "Geometry", "Mesh");
version_node_output_socket_name(
ntree, GEO_NODE_MESH_PRIMITIVE_CYLINDER, "Geometry", "Mesh");
version_node_output_socket_name(ntree, GEO_NODE_MESH_PRIMITIVE_GRID, "Geometry", "Mesh");
version_node_output_socket_name(
ntree, GEO_NODE_MESH_PRIMITIVE_ICO_SPHERE, "Geometry", "Mesh");
version_node_output_socket_name(ntree, GEO_NODE_MESH_PRIMITIVE_CIRCLE, "Geometry", "Mesh");
version_node_output_socket_name(ntree, GEO_NODE_MESH_PRIMITIVE_LINE, "Geometry", "Mesh");
version_node_output_socket_name(
ntree, GEO_NODE_MESH_PRIMITIVE_UV_SPHERE, "Geometry", "Mesh");
version_node_socket_name(ntree, GEO_NODE_SET_POINT_RADIUS, "Geometry", "Points");
}
}
}

View File

@ -27,13 +27,13 @@ namespace blender::nodes {
static void geo_node_boolean_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Geometry>("Geometry 1")
b.add_input<decl::Geometry>("Mesh 1")
.only_realized_data()
.supported_type(GEO_COMPONENT_TYPE_MESH);
b.add_input<decl::Geometry>("Geometry 2").multi_input().supported_type(GEO_COMPONENT_TYPE_MESH);
b.add_input<decl::Geometry>("Mesh 2").multi_input().supported_type(GEO_COMPONENT_TYPE_MESH);
b.add_input<decl::Bool>("Self Intersection");
b.add_input<decl::Bool>("Hole Tolerant");
b.add_output<decl::Geometry>("Geometry");
b.add_output<decl::Geometry>("Mesh");
}
static void geo_node_boolean_layout(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
@ -53,12 +53,12 @@ static void geo_node_boolean_update(bNodeTree *UNUSED(ntree), bNode *node)
case GEO_NODE_BOOLEAN_UNION:
nodeSetSocketAvailability(geometry_1_socket, false);
nodeSetSocketAvailability(geometry_2_socket, true);
node_sock_label(geometry_2_socket, N_("Geometry"));
node_sock_label(geometry_2_socket, N_("Mesh"));
break;
case GEO_NODE_BOOLEAN_DIFFERENCE:
nodeSetSocketAvailability(geometry_1_socket, true);
nodeSetSocketAvailability(geometry_2_socket, true);
node_sock_label(geometry_2_socket, N_("Geometry 2"));
node_sock_label(geometry_2_socket, N_("Mesh 2"));
break;
}
}
@ -84,7 +84,7 @@ static void geo_node_boolean_exec(GeoNodeExecParams params)
GeometrySet set_a;
if (operation == GEO_NODE_BOOLEAN_DIFFERENCE) {
set_a = params.extract_input<GeometrySet>("Geometry 1");
set_a = params.extract_input<GeometrySet>("Mesh 1");
/* Note that it technically wouldn't be necessary to realize the instances for the first
* geometry input, but the boolean code expects the first shape for the difference operation
* to be a single mesh. */
@ -98,7 +98,7 @@ static void geo_node_boolean_exec(GeoNodeExecParams params)
/* The instance transform matrices are owned by the instance group, so we have to
* keep all of them around for use during the boolean operation. */
Vector<bke::GeometryInstanceGroup> set_groups;
Vector<GeometrySet> geometry_sets = params.extract_multi_input<GeometrySet>("Geometry 2");
Vector<GeometrySet> geometry_sets = params.extract_multi_input<GeometrySet>("Mesh 2");
for (const GeometrySet &geometry_set : geometry_sets) {
bke::geometry_set_gather_instances(geometry_set, set_groups);
}
@ -116,7 +116,7 @@ static void geo_node_boolean_exec(GeoNodeExecParams params)
Mesh *result = blender::meshintersect::direct_mesh_boolean(
meshes, transforms, float4x4::identity(), {}, use_self, hole_tolerant, operation);
params.set_output("Geometry", GeometrySet::create_with_mesh(result));
params.set_output("Mesh", GeometrySet::create_with_mesh(result));
}
} // namespace blender::nodes

View File

@ -34,11 +34,11 @@ namespace blender::nodes {
static void geo_node_curve_resample_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Geometry>("Geometry").supported_type(GEO_COMPONENT_TYPE_CURVE);
b.add_input<decl::Geometry>("Curve").supported_type(GEO_COMPONENT_TYPE_CURVE);
b.add_input<decl::Int>("Count").default_value(10).min(1).max(100000).supports_field();
b.add_input<decl::Float>("Length").default_value(0.1f).min(0.001f).supports_field().subtype(
PROP_DISTANCE);
b.add_output<decl::Geometry>("Geometry");
b.add_output<decl::Geometry>("Curve");
}
static void geo_node_curve_resample_layout(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
@ -234,7 +234,7 @@ static void geometry_set_curve_resample(GeometrySet &geometry_set,
static void geo_node_resample_exec(GeoNodeExecParams params)
{
GeometrySet geometry_set = params.extract_input<GeometrySet>("Geometry");
GeometrySet geometry_set = params.extract_input<GeometrySet>("Curve");
NodeGeometryCurveResample &node_storage = *(NodeGeometryCurveResample *)params.node().storage;
const GeometryNodeCurveResampleMode mode = (GeometryNodeCurveResampleMode)node_storage.mode;
@ -244,7 +244,7 @@ static void geo_node_resample_exec(GeoNodeExecParams params)
if (mode == GEO_NODE_CURVE_RESAMPLE_COUNT) {
Field<int> count = params.extract_input<Field<int>>("Count");
if (count < 1) {
params.set_output("Geometry", GeometrySet());
params.set_output("Curve", GeometrySet());
return;
}
mode_param.count.emplace(count);
@ -257,7 +257,7 @@ static void geo_node_resample_exec(GeoNodeExecParams params)
geometry_set.modify_geometry_sets(
[&](GeometrySet &geometry_set) { geometry_set_curve_resample(geometry_set, mode_param); });
params.set_output("Geometry", std::move(geometry_set));
params.set_output("Curve", std::move(geometry_set));
}
} // namespace blender::nodes

View File

@ -33,9 +33,9 @@ namespace blender::nodes {
static void geo_node_curve_subdivide_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Geometry>("Geometry").supported_type(GEO_COMPONENT_TYPE_CURVE);
b.add_input<decl::Geometry>("Curve").supported_type(GEO_COMPONENT_TYPE_CURVE);
b.add_input<decl::Int>("Cuts").default_value(1).min(0).max(1000).supports_field();
b.add_output<decl::Geometry>("Geometry");
b.add_output<decl::Geometry>("Curve");
}
static Array<int> get_subdivided_offsets(const Spline &spline,
@ -328,7 +328,7 @@ static std::unique_ptr<CurveEval> subdivide_curve(const CurveEval &input_curve,
static void geo_node_subdivide_exec(GeoNodeExecParams params)
{
GeometrySet geometry_set = params.extract_input<GeometrySet>("Geometry");
GeometrySet geometry_set = params.extract_input<GeometrySet>("Curve");
Field<int> cuts_field = params.extract_input<Field<int>>("Cuts");
geometry_set.modify_geometry_sets([&](GeometrySet &geometry_set) {
@ -352,7 +352,7 @@ static void geo_node_subdivide_exec(GeoNodeExecParams params)
std::unique_ptr<CurveEval> output_curve = subdivide_curve(*component.get_for_read(), cuts);
geometry_set.replace_curve(output_curve.release());
});
params.set_output("Geometry", geometry_set);
params.set_output("Curve", geometry_set);
}
} // namespace blender::nodes

View File

@ -31,7 +31,7 @@ static void geo_node_mesh_primitive_circle_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Int>("Vertices").default_value(32).min(3);
b.add_input<decl::Float>("Radius").default_value(1.0f).min(0.0f).subtype(PROP_DISTANCE);
b.add_output<decl::Geometry>("Geometry");
b.add_output<decl::Geometry>("Mesh");
}
static void geo_node_mesh_primitive_circle_layout(uiLayout *layout,
@ -204,7 +204,7 @@ static void geo_node_mesh_primitive_circle_exec(GeoNodeExecParams params)
const int verts_num = params.extract_input<int>("Vertices");
if (verts_num < 3) {
params.error_message_add(NodeWarningType::Info, TIP_("Vertices must be at least 3"));
params.set_output("Geometry", GeometrySet());
params.set_output("Mesh", GeometrySet());
return;
}
@ -212,7 +212,7 @@ static void geo_node_mesh_primitive_circle_exec(GeoNodeExecParams params)
BLI_assert(BKE_mesh_is_valid(mesh));
params.set_output("Geometry", GeometrySet::create_with_mesh(mesh));
params.set_output("Mesh", GeometrySet::create_with_mesh(mesh));
}
} // namespace blender::nodes

View File

@ -35,7 +35,7 @@ static void geo_node_mesh_primitive_cone_declare(NodeDeclarationBuilder &b)
b.add_input<decl::Float>("Radius Top").min(0.0f).subtype(PROP_DISTANCE);
b.add_input<decl::Float>("Radius Bottom").default_value(1.0f).min(0.0f).subtype(PROP_DISTANCE);
b.add_input<decl::Float>("Depth").default_value(2.0f).min(0.0f).subtype(PROP_DISTANCE);
b.add_output<decl::Geometry>("Geometry");
b.add_output<decl::Geometry>("Mesh");
}
static void geo_node_mesh_primitive_cone_init(bNodeTree *UNUSED(ntree), bNode *node)
@ -708,14 +708,14 @@ static void geo_node_mesh_primitive_cone_exec(GeoNodeExecParams params)
const int circle_segments = params.extract_input<int>("Vertices");
if (circle_segments < 3) {
params.error_message_add(NodeWarningType::Info, TIP_("Vertices must be at least 3"));
params.set_output("Geometry", GeometrySet());
params.set_output("Mesh", GeometrySet());
return;
}
const int side_segments = params.extract_input<int>("Side Segments");
if (side_segments < 1) {
params.error_message_add(NodeWarningType::Info, TIP_("Side Segments must be at least 1"));
params.set_output("Geometry", GeometrySet());
params.set_output("Mesh", GeometrySet());
return;
}
@ -723,7 +723,7 @@ static void geo_node_mesh_primitive_cone_exec(GeoNodeExecParams params)
const int fill_segments = no_fill ? 1 : params.extract_input<int>("Fill Segments");
if (fill_segments < 1) {
params.error_message_add(NodeWarningType::Info, TIP_("Fill Segments must be at least 1"));
params.set_output("Geometry", GeometrySet());
params.set_output("Mesh", GeometrySet());
return;
}
@ -737,7 +737,7 @@ static void geo_node_mesh_primitive_cone_exec(GeoNodeExecParams params)
/* Transform the mesh so that the base of the cone is at the origin. */
BKE_mesh_translate(mesh, float3(0.0f, 0.0f, depth * 0.5f), false);
params.set_output("Geometry", GeometrySet::create_with_mesh(mesh));
params.set_output("Mesh", GeometrySet::create_with_mesh(mesh));
}
} // namespace blender::nodes

View File

@ -30,7 +30,7 @@ static void geo_node_mesh_primitive_cube_declare(NodeDeclarationBuilder &b)
b.add_input<decl::Int>("Vertices X").default_value(2).min(2).max(1000);
b.add_input<decl::Int>("Vertices Y").default_value(2).min(2).max(1000);
b.add_input<decl::Int>("Vertices Z").default_value(2).min(2).max(1000);
b.add_output<decl::Geometry>("Geometry");
b.add_output<decl::Geometry>("Mesh");
}
struct CuboidConfig {
@ -476,13 +476,13 @@ static void geo_node_mesh_primitive_cube_exec(GeoNodeExecParams params)
const int verts_z = params.extract_input<int>("Vertices Z");
if (verts_x < 1 || verts_y < 1 || verts_z < 1) {
params.error_message_add(NodeWarningType::Info, TIP_("Vertices must be at least 1"));
params.set_output("Geometry", GeometrySet());
params.set_output("Mesh", GeometrySet());
return;
}
Mesh *mesh = create_cube_mesh(size, verts_x, verts_y, verts_z);
params.set_output("Geometry", GeometrySet::create_with_mesh(mesh));
params.set_output("Mesh", GeometrySet::create_with_mesh(mesh));
}
} // namespace blender::nodes

View File

@ -54,7 +54,7 @@ static void geo_node_mesh_primitive_cylinder_declare(NodeDeclarationBuilder &b)
.min(0.0f)
.subtype(PROP_DISTANCE)
.description("The height of the cylinder on the Z axis");
b.add_output<decl::Geometry>("Geometry");
b.add_output<decl::Geometry>("Mesh");
}
static void geo_node_mesh_primitive_cylinder_layout(uiLayout *layout,
@ -102,14 +102,14 @@ static void geo_node_mesh_primitive_cylinder_exec(GeoNodeExecParams params)
const int circle_segments = params.extract_input<int>("Vertices");
if (circle_segments < 3) {
params.error_message_add(NodeWarningType::Info, TIP_("Vertices must be at least 3"));
params.set_output("Geometry", GeometrySet());
params.set_output("Mesh", GeometrySet());
return;
}
const int side_segments = params.extract_input<int>("Side Segments");
if (side_segments < 1) {
params.error_message_add(NodeWarningType::Info, TIP_("Side Segments must be at least 1"));
params.set_output("Geometry", GeometrySet());
params.set_output("Mesh", GeometrySet());
return;
}
@ -117,7 +117,7 @@ static void geo_node_mesh_primitive_cylinder_exec(GeoNodeExecParams params)
const int fill_segments = no_fill ? 1 : params.extract_input<int>("Fill Segments");
if (fill_segments < 1) {
params.error_message_add(NodeWarningType::Info, TIP_("Fill Segments must be at least 1"));
params.set_output("Geometry", GeometrySet());
params.set_output("Mesh", GeometrySet());
return;
}
@ -125,7 +125,7 @@ static void geo_node_mesh_primitive_cylinder_exec(GeoNodeExecParams params)
Mesh *mesh = create_cylinder_or_cone_mesh(
radius, radius, depth, circle_segments, side_segments, fill_segments, fill_type);
params.set_output("Geometry", GeometrySet::create_with_mesh(mesh));
params.set_output("Mesh", GeometrySet::create_with_mesh(mesh));
}
} // namespace blender::nodes

View File

@ -33,7 +33,7 @@ static void geo_node_mesh_primitive_grid_declare(NodeDeclarationBuilder &b)
b.add_input<decl::Float>("Size Y").default_value(1.0f).min(0.0f).subtype(PROP_DISTANCE);
b.add_input<decl::Int>("Vertices X").default_value(3).min(2).max(1000);
b.add_input<decl::Int>("Vertices Y").default_value(3).min(2).max(1000);
b.add_output<decl::Geometry>("Geometry");
b.add_output<decl::Geometry>("Mesh");
}
static void calculate_uvs(
@ -160,7 +160,7 @@ static void geo_node_mesh_primitive_grid_exec(GeoNodeExecParams params)
const int verts_x = params.extract_input<int>("Vertices X");
const int verts_y = params.extract_input<int>("Vertices Y");
if (verts_x < 1 || verts_y < 1) {
params.set_output("Geometry", GeometrySet());
params.set_output("Mesh", GeometrySet());
return;
}
@ -168,7 +168,7 @@ static void geo_node_mesh_primitive_grid_exec(GeoNodeExecParams params)
BLI_assert(BKE_mesh_is_valid(mesh));
BKE_id_material_eval_ensure_default_slot(&mesh->id);
params.set_output("Geometry", GeometrySet::create_with_mesh(mesh));
params.set_output("Mesh", GeometrySet::create_with_mesh(mesh));
}
} // namespace blender::nodes

View File

@ -30,7 +30,7 @@ static void geo_node_mesh_primitive_ico_sphere_declare(NodeDeclarationBuilder &b
{
b.add_input<decl::Float>("Radius").default_value(1.0f).min(0.0f).subtype(PROP_DISTANCE);
b.add_input<decl::Int>("Subdivisions").default_value(1).min(1).max(7);
b.add_output<decl::Geometry>("Geometry");
b.add_output<decl::Geometry>("Mesh");
}
static Mesh *create_ico_sphere_mesh(const int subdivisions, const float radius)
@ -66,7 +66,7 @@ static void geo_node_mesh_primitive_ico_sphere_exec(GeoNodeExecParams params)
const float radius = params.extract_input<float>("Radius");
Mesh *mesh = create_ico_sphere_mesh(subdivisions, radius);
params.set_output("Geometry", GeometrySet::create_with_mesh(mesh));
params.set_output("Mesh", GeometrySet::create_with_mesh(mesh));
}
} // namespace blender::nodes

View File

@ -33,7 +33,7 @@ static void geo_node_mesh_primitive_line_declare(NodeDeclarationBuilder &b)
b.add_input<decl::Float>("Resolution").default_value(1.0f).min(0.1f).subtype(PROP_DISTANCE);
b.add_input<decl::Vector>("Start Location").subtype(PROP_TRANSLATION);
b.add_input<decl::Vector>("Offset").default_value({0.0f, 0.0f, 1.0f}).subtype(PROP_TRANSLATION);
b.add_output<decl::Geometry>("Geometry");
b.add_output<decl::Geometry>("Mesh");
}
static void geo_node_mesh_primitive_line_layout(uiLayout *layout,
@ -154,7 +154,7 @@ static void geo_node_mesh_primitive_line_exec(GeoNodeExecParams params)
mesh = create_line_mesh(start, delta, count);
}
params.set_output("Geometry", GeometrySet::create_with_mesh(mesh));
params.set_output("Mesh", GeometrySet::create_with_mesh(mesh));
}
} // namespace blender::nodes

View File

@ -32,7 +32,7 @@ static void geo_node_mesh_primitive_uv_shpere_declare(NodeDeclarationBuilder &b)
b.add_input<decl::Int>("Segments").default_value(32).min(3).max(1024);
b.add_input<decl::Int>("Rings").default_value(16).min(2).max(1024);
b.add_input<decl::Float>("Radius").default_value(1.0f).min(0.0f).subtype(PROP_DISTANCE);
b.add_output<decl::Geometry>("Geometry");
b.add_output<decl::Geometry>("Mesh");
}
static int sphere_vert_total(const int segments, const int rings)
@ -291,14 +291,14 @@ static void geo_node_mesh_primitive_uv_sphere_exec(GeoNodeExecParams params)
if (rings_num < 3) {
params.error_message_add(NodeWarningType::Info, TIP_("Rings must be at least 3"));
}
params.set_output("Geometry", GeometrySet());
params.set_output("Mesh", GeometrySet());
return;
}
const float radius = params.extract_input<float>("Radius");
Mesh *mesh = create_uv_sphere_mesh(radius, segments_num, rings_num);
params.set_output("Geometry", GeometrySet::create_with_mesh(mesh));
params.set_output("Mesh", GeometrySet::create_with_mesh(mesh));
}
} // namespace blender::nodes

View File

@ -27,9 +27,9 @@ namespace blender::nodes {
static void geo_node_mesh_subdivide_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Geometry>("Geometry").supported_type(GEO_COMPONENT_TYPE_MESH);
b.add_input<decl::Geometry>("Mesh").supported_type(GEO_COMPONENT_TYPE_MESH);
b.add_input<decl::Int>("Level").default_value(1).min(0).max(6);
b.add_output<decl::Geometry>("Geometry");
b.add_output<decl::Geometry>("Mesh");
}
static void geometry_set_mesh_subdivide(GeometrySet &geometry_set, const int level)
@ -74,12 +74,12 @@ static void geometry_set_mesh_subdivide(GeometrySet &geometry_set, const int lev
static void geo_node_mesh_subdivide_exec(GeoNodeExecParams params)
{
GeometrySet geometry_set = params.extract_input<GeometrySet>("Geometry");
GeometrySet geometry_set = params.extract_input<GeometrySet>("Mesh");
#ifndef WITH_OPENSUBDIV
params.error_message_add(NodeWarningType::Error,
TIP_("Disabled, Blender was compiled without OpenSubdiv"));
params.set_output("Geometry", std::move(geometry_set));
params.set_output("Mesh", std::move(geometry_set));
return;
#endif
@ -87,14 +87,14 @@ static void geo_node_mesh_subdivide_exec(GeoNodeExecParams params)
const int subdiv_level = clamp_i(params.extract_input<int>("Level"), 0, 11);
if (subdiv_level == 0) {
params.set_output("Geometry", std::move(geometry_set));
params.set_output("Mesh", std::move(geometry_set));
return;
}
geometry_set.modify_geometry_sets(
[&](GeometrySet &geometry_set) { geometry_set_mesh_subdivide(geometry_set, subdiv_level); });
params.set_output("Geometry", std::move(geometry_set));
params.set_output("Mesh", std::move(geometry_set));
}
} // namespace blender::nodes

View File

@ -22,12 +22,12 @@ namespace blender::nodes {
static void geo_node_rotate_instances_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Geometry>("Geometry").only_instances();
b.add_input<decl::Geometry>("Instances").only_instances();
b.add_input<decl::Bool>("Selection").default_value(true).hide_value().supports_field();
b.add_input<decl::Vector>("Rotation").subtype(PROP_EULER).supports_field();
b.add_input<decl::Vector>("Pivot Point").subtype(PROP_TRANSLATION).supports_field();
b.add_input<decl::Bool>("Local Space").default_value(true).supports_field();
b.add_output<decl::Geometry>("Geometry");
b.add_output<decl::Geometry>("Instances");
};
static void rotate_instances(GeoNodeExecParams &params, InstancesComponent &instances_component)
@ -77,12 +77,12 @@ static void rotate_instances(GeoNodeExecParams &params, InstancesComponent &inst
static void geo_node_rotate_instances_exec(GeoNodeExecParams params)
{
GeometrySet geometry_set = params.extract_input<GeometrySet>("Geometry");
GeometrySet geometry_set = params.extract_input<GeometrySet>("Instances");
if (geometry_set.has_instances()) {
InstancesComponent &instances = geometry_set.get_component_for_write<InstancesComponent>();
rotate_instances(params, instances);
}
params.set_output("Geometry", std::move(geometry_set));
params.set_output("Instances", std::move(geometry_set));
}
} // namespace blender::nodes

View File

@ -22,12 +22,12 @@ namespace blender::nodes {
static void geo_node_scale_instances_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Geometry>("Geometry").only_instances();
b.add_input<decl::Geometry>("Instances").only_instances();
b.add_input<decl::Bool>("Selection").default_value(true).hide_value().supports_field();
b.add_input<decl::Vector>("Scale").subtype(PROP_XYZ).default_value({1, 1, 1}).supports_field();
b.add_input<decl::Vector>("Center").subtype(PROP_TRANSLATION).supports_field();
b.add_input<decl::Bool>("Local Space").default_value(true).supports_field();
b.add_output<decl::Geometry>("Geometry");
b.add_output<decl::Geometry>("Instances");
};
static void scale_instances(GeoNodeExecParams &params, InstancesComponent &instances_component)
@ -74,12 +74,12 @@ static void scale_instances(GeoNodeExecParams &params, InstancesComponent &insta
static void geo_node_scale_instances_exec(GeoNodeExecParams params)
{
GeometrySet geometry_set = params.extract_input<GeometrySet>("Geometry");
GeometrySet geometry_set = params.extract_input<GeometrySet>("Instances");
if (geometry_set.has_instances()) {
InstancesComponent &instances = geometry_set.get_component_for_write<InstancesComponent>();
scale_instances(params, instances);
}
params.set_output("Geometry", std::move(geometry_set));
params.set_output("Instances", std::move(geometry_set));
}
} // namespace blender::nodes

View File

@ -25,10 +25,10 @@ namespace blender::nodes {
static void geo_node_set_curve_handles_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Geometry>("Geometry").supported_type(GEO_COMPONENT_TYPE_CURVE);
b.add_input<decl::Geometry>("Curve").supported_type(GEO_COMPONENT_TYPE_CURVE);
b.add_input<decl::Bool>("Selection").default_value(true).hide_value().supports_field();
b.add_input<decl::Vector>("Position").implicit_field();
b.add_output<decl::Geometry>("Geometry");
b.add_output<decl::Geometry>("Curve");
}
static void geo_node_set_curve_handles_layout(uiLayout *layout,
@ -125,7 +125,7 @@ static void geo_node_set_curve_handles_exec(GeoNodeExecParams params)
(NodeGeometrySetCurveHandlePositions *)params.node().storage;
const GeometryNodeCurveHandleMode mode = (GeometryNodeCurveHandleMode)node_storage->mode;
GeometrySet geometry_set = params.extract_input<GeometrySet>("Geometry");
GeometrySet geometry_set = params.extract_input<GeometrySet>("Curve");
Field<bool> selection_field = params.extract_input<Field<bool>>("Selection");
Field<float3> position_field = params.extract_input<Field<float3>>("Position");
@ -144,7 +144,7 @@ static void geo_node_set_curve_handles_exec(GeoNodeExecParams params)
params.error_message_add(NodeWarningType::Info,
TIP_("The input geometry does not contain a Bezier spline"));
}
params.set_output("Geometry", std::move(geometry_set));
params.set_output("Curve", std::move(geometry_set));
}
} // namespace blender::nodes

View File

@ -20,11 +20,11 @@ namespace blender::nodes {
static void geo_node_set_curve_radius_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Geometry>("Geometry").supported_type(GEO_COMPONENT_TYPE_CURVE);
b.add_input<decl::Geometry>("Curve").supported_type(GEO_COMPONENT_TYPE_CURVE);
b.add_input<decl::Bool>("Selection").default_value(true).hide_value().supports_field();
b.add_input<decl::Float>("Radius").min(0.0f).default_value(1.0f).supports_field().subtype(
PROP_DISTANCE);
b.add_output<decl::Geometry>("Geometry");
b.add_output<decl::Geometry>("Curve");
}
static void set_radius_in_component(GeometryComponent &component,
@ -52,7 +52,7 @@ static void set_radius_in_component(GeometryComponent &component,
static void geo_node_set_curve_radius_exec(GeoNodeExecParams params)
{
GeometrySet geometry_set = params.extract_input<GeometrySet>("Geometry");
GeometrySet geometry_set = params.extract_input<GeometrySet>("Curve");
Field<bool> selection_field = params.extract_input<Field<bool>>("Selection");
Field<float> radii_field = params.extract_input<Field<float>>("Radius");
@ -63,7 +63,7 @@ static void geo_node_set_curve_radius_exec(GeoNodeExecParams params)
}
});
params.set_output("Geometry", std::move(geometry_set));
params.set_output("Curve", std::move(geometry_set));
}
} // namespace blender::nodes

View File

@ -20,10 +20,10 @@ namespace blender::nodes {
static void geo_node_set_curve_tilt_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Geometry>("Geometry").supported_type(GEO_COMPONENT_TYPE_CURVE);
b.add_input<decl::Geometry>("Curve").supported_type(GEO_COMPONENT_TYPE_CURVE);
b.add_input<decl::Bool>("Selection").default_value(true).hide_value().supports_field();
b.add_input<decl::Float>("Tilt").subtype(PROP_ANGLE).supports_field();
b.add_output<decl::Geometry>("Geometry");
b.add_output<decl::Geometry>("Curve");
}
static void set_tilt_in_component(GeometryComponent &component,
@ -51,7 +51,7 @@ static void set_tilt_in_component(GeometryComponent &component,
static void geo_node_set_curve_tilt_exec(GeoNodeExecParams params)
{
GeometrySet geometry_set = params.extract_input<GeometrySet>("Geometry");
GeometrySet geometry_set = params.extract_input<GeometrySet>("Curve");
Field<bool> selection_field = params.extract_input<Field<bool>>("Selection");
Field<float> tilt_field = params.extract_input<Field<float>>("Tilt");
@ -62,7 +62,7 @@ static void geo_node_set_curve_tilt_exec(GeoNodeExecParams params)
}
});
params.set_output("Geometry", std::move(geometry_set));
params.set_output("Curve", std::move(geometry_set));
}
} // namespace blender::nodes

View File

@ -20,11 +20,11 @@ namespace blender::nodes {
static void geo_node_set_point_radius_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Geometry>("Geometry").supported_type(GEO_COMPONENT_TYPE_POINT_CLOUD);
b.add_input<decl::Geometry>("Points").supported_type(GEO_COMPONENT_TYPE_POINT_CLOUD);
b.add_input<decl::Bool>("Selection").default_value(true).hide_value().supports_field();
b.add_input<decl::Float>("Radius").default_value(0.05f).min(0.0f).supports_field().subtype(
PROP_DISTANCE);
b.add_output<decl::Geometry>("Geometry");
b.add_output<decl::Geometry>("Points");
}
static void set_radius_in_component(GeometryComponent &component,
@ -52,7 +52,7 @@ static void set_radius_in_component(GeometryComponent &component,
static void geo_node_set_point_radius_exec(GeoNodeExecParams params)
{
GeometrySet geometry_set = params.extract_input<GeometrySet>("Geometry");
GeometrySet geometry_set = params.extract_input<GeometrySet>("Points");
Field<bool> selection_field = params.extract_input<Field<bool>>("Selection");
Field<float> radii_field = params.extract_input<Field<float>>("Radius");
@ -64,7 +64,7 @@ static void geo_node_set_point_radius_exec(GeoNodeExecParams params)
}
});
params.set_output("Geometry", std::move(geometry_set));
params.set_output("Points", std::move(geometry_set));
}
} // namespace blender::nodes

View File

@ -22,11 +22,11 @@ namespace blender::nodes {
static void geo_node_translate_instances_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Geometry>("Geometry").only_instances();
b.add_input<decl::Geometry>("Instances").only_instances();
b.add_input<decl::Bool>("Selection").default_value(true).hide_value().supports_field();
b.add_input<decl::Vector>("Translation").subtype(PROP_TRANSLATION).supports_field();
b.add_input<decl::Bool>("Local Space").default_value(true).supports_field();
b.add_output<decl::Geometry>("Geometry");
b.add_output<decl::Geometry>("Instances");
};
static void translate_instances(GeoNodeExecParams &params, InstancesComponent &instances_component)
@ -62,12 +62,12 @@ static void translate_instances(GeoNodeExecParams &params, InstancesComponent &i
static void geo_node_translate_instances_exec(GeoNodeExecParams params)
{
GeometrySet geometry_set = params.extract_input<GeometrySet>("Geometry");
GeometrySet geometry_set = params.extract_input<GeometrySet>("Instances");
if (geometry_set.has_instances()) {
InstancesComponent &instances = geometry_set.get_component_for_write<InstancesComponent>();
translate_instances(params, instances);
}
params.set_output("Geometry", std::move(geometry_set));
params.set_output("Instances", std::move(geometry_set));
}
} // namespace blender::nodes

View File

@ -31,9 +31,9 @@ namespace blender::nodes {
static void geo_node_triangulate_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Geometry>("Geometry").supported_type(GEO_COMPONENT_TYPE_MESH);
b.add_input<decl::Geometry>("Mesh").supported_type(GEO_COMPONENT_TYPE_MESH);
b.add_input<decl::Int>("Minimum Vertices").default_value(4).min(4).max(10000);
b.add_output<decl::Geometry>("Geometry");
b.add_output<decl::Geometry>("Mesh");
}
static void geo_node_triangulate_layout(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
@ -50,7 +50,7 @@ static void geo_triangulate_init(bNodeTree *UNUSED(ntree), bNode *node)
static void geo_node_triangulate_exec(GeoNodeExecParams params)
{
GeometrySet geometry_set = params.extract_input<GeometrySet>("Geometry");
GeometrySet geometry_set = params.extract_input<GeometrySet>("Mesh");
const int min_vertices = std::max(params.extract_input<int>("Minimum Vertices"), 4);
GeometryNodeTriangulateQuads quad_method = static_cast<GeometryNodeTriangulateQuads>(
@ -67,7 +67,7 @@ static void geo_node_triangulate_exec(GeoNodeExecParams params)
}
});
params.set_output("Geometry", std::move(geometry_set));
params.set_output("Mesh", std::move(geometry_set));
}
} // namespace blender::nodes