19 .
description(
N_(
"Number of faces which share an edge with the face"));
26 if (
mesh ==
nullptr) {
39 poly_count[poly_num] += edge_count[
mesh->
mloop[loop_num].
e] - 1;
43 return component.attributes()->adapt_domain<
int>(
82 if (
mesh ==
nullptr) {
86 return component.attributes()->adapt_domain<
int>(
88 [
mesh](
const int i) ->
float { return mesh->mpoly[i].totloop; }),
125 Field<int> vertex_count_field{std::make_shared<FaceVertexCountFieldInput>()};
126 Field<int> neighbor_count_field{std::make_shared<FaceNeighborCountFieldInput>()};
127 params.set_output(
"Vertex Count", std::move(vertex_count_field));
128 params.set_output(
"Face Count", std::move(neighbor_count_field));
@ GEO_COMPONENT_TYPE_MESH
void node_type_size_preset(struct bNodeType *ntype, eNodeSizePreset size)
#define GEO_NODE_INPUT_MESH_FACE_NEIGHBORS
void nodeRegisterType(struct bNodeType *ntype)
static uint8 component(Color32 c, uint i)
static VArray ForContainer(ContainerT container)
static VArray ForFunc(const int64_t size, GetFunc get_func)
StringRefNull description() const
ccl_device_inline float4 mask(const int4 &mask, const float4 &a)
static const pxr::TfToken b("b", pxr::TfToken::Immortal)
void geo_node_type_base(bNodeType *ntype, int type, const char *name, short nclass)
unsigned __int64 uint64_t
NodeGeometryExecFunction geometry_node_execute
NodeDeclareFunction declare