16 b.add_input<
decl::Bool>(
N_(
"Selection")).default_value(
true).hide_value().supports_field();
34 for (
const int i : selection) {
62 selection_evaluator.
add(selection_field);
63 selection_evaluator.evaluate();
64 const IndexMask selection = selection_evaluator.get_evaluated_as_mask(0);
69 params.set_output(
"Mesh", std::move(geometry_set));
@ GEO_COMPONENT_TYPE_MESH
struct Mesh * BKE_mesh_from_bmesh_for_eval_nomain(struct BMesh *bm, const struct CustomData_MeshMasks *cd_mask_extra, const struct Mesh *me_settings)
#define NODE_CLASS_GEOMETRY
#define GEO_NODE_SPLIT_EDGES
void nodeRegisterType(struct bNodeType *ntype)
#define CD_MASK_ORIGINDEX
void BM_mesh_edgesplit(BMesh *bm, const bool use_verts, const bool tag_only, const bool copy_select)
#define BM_elem_flag_enable(ele, hflag)
ATTR_WARN_UNUSED_RESULT BMesh * bm
void BM_mesh_free(BMesh *bm)
BMesh Free Mesh.
BMesh * BM_mesh_create(const BMAllocTemplate *allocsize, const struct BMeshCreateParams *params)
void BM_mesh_elem_table_ensure(BMesh *bm, const char htype)
BLI_INLINE BMEdge * BM_edge_at_index(BMesh *bm, const int index)
void BM_mesh_bm_from_me(BMesh *bm, const Mesh *me, const struct BMeshFromMeshParams *params)
int attribute_domain_size(eAttrDomain domain) const
const Mesh * get_for_read() const
int add(GField field, GVArray *varray_ptr)
static void node_geo_exec(GeoNodeExecParams params)
static void node_declare(NodeDeclarationBuilder &b)
static Mesh * mesh_edge_split(const Mesh &mesh, const IndexMask selection)
static const pxr::TfToken b("b", pxr::TfToken::Immortal)
void register_node_type_geo_edge_split()
void geo_node_type_base(bNodeType *ntype, int type, const char *name, short nclass)
struct CustomData_MeshMasks cd_mask_extra
void replace_mesh(Mesh *mesh, GeometryOwnershipType ownership=GeometryOwnershipType::Owned)
const GeometryComponent * get_component_for_read(GeometryComponentType component_type) const
void modify_geometry_sets(ForeachSubGeometryCallback callback)
NodeGeometryExecFunction geometry_node_execute
NodeDeclareFunction declare