15 .
description(
"The corner to retrieve data from. Defaults to the corner from the context");
17 .field_source_reference_all()
18 .
description(
"The index of the face the corner is a part of");
20 .field_source_reference_all()
21 .
description(
"The index of the corner starting from the first corner in the face");
32 const AttrDomain domain,
35 if (domain != AttrDomain::Corner) {
43 return 2348712958475728;
60 const AttrDomain domain,
63 if (domain != AttrDomain::Corner) {
67 const Span<int> corner_to_face = mesh.corner_to_face_map();
69 const int face_i = corner_to_face[corner];
70 return corner - faces[face_i].start();
86 return AttrDomain::Corner;
93 if (
params.output_is_required(
"Face Index")) {
94 params.set_output(
"Face Index",
95 Field<int>(std::make_shared<bke::EvaluateAtIndexInput>(
97 Field<int>(std::make_shared<CornerFaceIndexInput>()),
98 AttrDomain::Corner)));
100 if (
params.output_is_required(
"Index in Face")) {
101 params.set_output(
"Index in Face",
102 Field<int>(std::make_shared<bke::EvaluateAtIndexInput>(
104 Field<int>(std::make_shared<CornerIndexInFaceInput>()),
105 AttrDomain::Corner)));
113 &ntype, GEO_NODE_MESH_TOPOLOGY_FACE_OF_CORNER,
"Face of Corner",
NODE_CLASS_INPUT);
#define NOD_REGISTER_NODE(REGISTER_FUNC)
static VArray ForSpan(Span< T > values)
static VArray ForFunc(const int64_t size, GetFunc get_func)
local_group_size(16, 16) .push_constant(Type b
draw_view push_constant(Type::INT, "radiance_src") .push_constant(Type capture_info_buf storage_buf(1, Qualifier::READ, "ObjectBounds", "bounds_buf[]") .push_constant(Type draw_view int
void node_register_type(bNodeType *ntype)
static void node_declare(NodeDeclarationBuilder &b)
static void node_register()
static void node_geo_exec(GeoNodeExecParams params)
void geo_node_type_base(blender::bke::bNodeType *ntype, int type, const char *name, short nclass)
unsigned __int64 uint64_t
NodeGeometryExecFunction geometry_node_execute
NodeDeclareFunction declare