Blender
V3.3
|
Classes | |
struct | AttributeOutputs |
Functions | |
static void | node_declare (NodeDeclarationBuilder &b) |
static void | node_layout (uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) |
static void | node_init (bNodeTree *UNUSED(tree), bNode *node) |
static void | node_update (bNodeTree *ntree, bNode *node) |
static void | save_selection_as_attribute (MeshComponent &component, const AnonymousAttributeID *id, const eAttrDomain domain, const IndexMask selection) |
static MutableSpan< MVert > | mesh_verts (Mesh &mesh) |
static MutableSpan< MEdge > | mesh_edges (Mesh &mesh) |
static Span< MPoly > | mesh_polys (const Mesh &mesh) |
static MutableSpan< MPoly > | mesh_polys (Mesh &mesh) |
static Span< MLoop > | mesh_loops (const Mesh &mesh) |
static MutableSpan< MLoop > | mesh_loops (Mesh &mesh) |
static void | expand_mesh (Mesh &mesh, const int vert_expand, const int edge_expand, const int poly_expand, const int loop_expand) |
static CustomData & | get_customdata (Mesh &mesh, const eAttrDomain domain) |
static MutableSpan< int > | get_orig_index_layer (Mesh &mesh, const eAttrDomain domain) |
static MEdge | new_edge (const int v1, const int v2) |
static MEdge | new_loose_edge (const int v1, const int v2) |
static MPoly | new_poly (const int loopstart, const int totloop) |
template<typename T > | |
void | copy_with_indices (MutableSpan< T > dst, Span< T > src, Span< int > indices) |
template<typename T > | |
void | copy_with_mask (MutableSpan< T > dst, Span< T > src, IndexMask mask) |
template<typename T , typename GetMixIndicesFn > | |
void | copy_with_mixing (MutableSpan< T > dst, Span< T > src, GetMixIndicesFn get_mix_indices_fn) |
static Array< Vector< int > > | create_vert_to_edge_map (const int vert_size, Span< MEdge > edges, const int vert_offset=0) |
static void | extrude_mesh_vertices (MeshComponent &component, const Field< bool > &selection_field, const Field< float3 > &offset_field, const AttributeOutputs &attribute_outputs) |
static Array< Vector< int, 2 > > | mesh_calculate_polys_of_edge (const Mesh &mesh) |
static void | fill_quad_consistent_direction (Span< MLoop > other_poly_loops, MutableSpan< MLoop > new_loops, const int vert_connected_to_poly_1, const int vert_connected_to_poly_2, const int vert_across_from_poly_1, const int vert_across_from_poly_2, const int edge_connected_to_poly, const int connecting_edge_1, const int edge_across_from_poly, const int connecting_edge_2) |
template<typename T > | |
static VectorSet< int > | vert_indices_from_edges (const Mesh &mesh, const Span< T > edge_indices) |
static void | extrude_mesh_edges (MeshComponent &component, const Field< bool > &selection_field, const Field< float3 > &offset_field, const AttributeOutputs &attribute_outputs) |
static void | extrude_mesh_face_regions (MeshComponent &component, const Field< bool > &selection_field, const Field< float3 > &offset_field, const AttributeOutputs &attribute_outputs) |
static IndexRange | selected_corner_range (Span< int > offsets, const int index) |
static void | extrude_individual_mesh_faces (MeshComponent &component, const Field< bool > &selection_field, const Field< float3 > &offset_field, const AttributeOutputs &attribute_outputs) |
static void | node_geo_exec (GeoNodeExecParams params) |
void blender::nodes::node_geo_extrude_mesh_cc::copy_with_indices | ( | MutableSpan< T > | dst, |
Span< T > | src, | ||
Span< int > | indices | ||
) |
Definition at line 202 of file node_geo_extrude_mesh.cc.
References BLI_assert, blender::MutableSpan< T >::index_range(), indices, blender::MutableSpan< T >::size(), and src.
void blender::nodes::node_geo_extrude_mesh_cc::copy_with_mask | ( | MutableSpan< T > | dst, |
Span< T > | src, | ||
IndexMask | mask | ||
) |
Definition at line 210 of file node_geo_extrude_mesh.cc.
References BLI_assert, mask(), blender::threading::parallel_for(), and blender::MutableSpan< T >::size().
void blender::nodes::node_geo_extrude_mesh_cc::copy_with_mixing | ( | MutableSpan< T > | dst, |
Span< T > | src, | ||
GetMixIndicesFn | get_mix_indices_fn | ||
) |
get_mix_indices_fn | Returns a Span of indices of the source points to mix for every result point. |
Definition at line 225 of file node_geo_extrude_mesh.cc.
References blender::MutableSpan< T >::index_range(), blender::threading::parallel_for(), and blender::IndexRange::size().
|
static |
Definition at line 238 of file node_geo_extrude_mesh.cc.
References blender::Span< T >::index_range().
Referenced by extrude_mesh_edges(), extrude_mesh_face_regions(), and extrude_mesh_vertices().
|
static |
Definition at line 115 of file node_geo_extrude_mesh.cc.
References BKE_mesh_update_customdata_pointers(), CD_MVERT, CustomData_duplicate_referenced_layer(), CustomData_duplicate_referenced_layers(), CustomData_realloc(), Mesh::edata, Mesh::ldata, mesh, Mesh::pdata, Mesh::totedge, Mesh::totloop, Mesh::totpoly, Mesh::totvert, and Mesh::vdata.
Referenced by extrude_individual_mesh_faces(), extrude_mesh_edges(), extrude_mesh_face_regions(), and extrude_mesh_vertices().
|
static |
Definition at line 1060 of file node_geo_extrude_mesh.cc.
References blender::IndexRange::after(), blender::Array< T, InlineBufferCapacity, Allocator >::as_mutable_span(), ATTR_DOMAIN_FACE, component(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_edges(), expand_mesh(), blender::IndexMask::index_range(), blender::Array< T, InlineBufferCapacity, Allocator >::last(), Mesh::medge, mesh, mesh_loops(), mesh_polys(), mesh_verts(), Mesh::mloop, Mesh::mpoly, blender::threading::parallel_for(), blender::IndexMask::size(), blender::IndexRange::size(), blender::Span< T >::size(), Mesh::size, blender::MutableSpan< T >::slice(), Mesh::totedge, Mesh::totloop, MPoly::totloop, Mesh::totpoly, and Mesh::totvert.
Referenced by node_geo_exec().
|
static |
Definition at line 411 of file node_geo_extrude_mesh.cc.
References blender::IndexRange::after(), ATTR_DOMAIN_EDGE, attribute, component(), blender::attribute_math::convert_to_static_type(), create_vert_to_edge_map(), blender::bke::AttributeMetaData::data_type, blender::bke::AttributeMetaData::domain, blender::nodes::node_geo_duplicate_elements_cc::duplicate_edges(), expand_mesh(), fill_quad_consistent_direction(), blender::Span< T >::first(), blender::bke::AttributeAccessor::for_all(), if(), blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::index_of(), blender::IndexMask::index_range(), blender::MutableSpan< T >::index_range(), blender::IndexMask::indices(), blender::IndexMask::is_empty(), blender::VArrayCommon< T >::is_single(), blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_span(), MPoly::loopstart, Mesh::medge, mesh, mesh_calculate_polys_of_edge(), mesh_edges(), mesh_loops(), mesh_polys(), mesh_verts(), new_edge(), new_poly(), offset, blender::Array< T, InlineBufferCapacity, Allocator >::reinitialize(), blender::IndexMask::size(), blender::IndexRange::size(), blender::Span< T >::size(), blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::size(), Mesh::size, blender::MutableSpan< T >::slice(), Mesh::totedge, Mesh::totloop, MPoly::totloop, Mesh::totvert, MEdge::v1, MEdge::v2, and vert_indices_from_edges().
Referenced by node_geo_exec().
|
static |
Edges connected to one selected face are on the boundary of a region and will be duplicated into a "side face". Edges inside a region will be duplicated to leave any original faces unchanged.
Definition at line 675 of file node_geo_extrude_mesh.cc.
References blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add_new(), blender::IndexRange::after(), blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::as_span(), ATTR_DOMAIN_FACE, attribute, component(), blender::attribute_math::convert_to_static_type(), create_vert_to_edge_map(), blender::bke::AttributeMetaData::data_type, blender::bke::AttributeMetaData::domain, expand_mesh(), fill_quad_consistent_direction(), blender::bke::AttributeAccessor::for_all(), if(), blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::index_of(), blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::index_of_try(), blender::Span< T >::index_range(), blender::MutableSpan< T >::index_range(), blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::index_range(), blender::IndexMask::is_empty(), blender::VArrayCommon< T >::is_single(), blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_span(), MPoly::loopstart, Mesh::medge, mesh, mesh_calculate_polys_of_edge(), mesh_edges(), mesh_loops(), mesh_polys(), new_edge(), new_poly(), offset, blender::Array< T, InlineBufferCapacity, Allocator >::reinitialize(), blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::reserve(), blender::IndexRange::size(), blender::Span< T >::size(), blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::size(), Mesh::size, blender::MutableSpan< T >::slice(), blender::Span< T >::slice(), MPoly::totloop, Mesh::totpoly, Mesh::totvert, MEdge::v1, MEdge::v2, and vert_indices_from_edges().
Referenced by node_geo_exec().
|
static |
Definition at line 250 of file node_geo_extrude_mesh.cc.
References ATTR_DOMAIN_EDGE, ATTR_DOMAIN_POINT, attribute, component(), blender::compositor::context, blender::attribute_math::convert_to_static_type(), create_vert_to_edge_map(), blender::bke::AttributeMetaData::data_type, blender::bke::AttributeMetaData::domain, ELEM, expand_mesh(), blender::bke::AttributeAccessor::for_all(), blender::IndexMask::index_range(), blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_span(), mesh, mesh_edges(), mesh_verts(), new_loose_edge(), blender::IndexMask::size(), Mesh::totedge, and Mesh::totvert.
Referenced by node_geo_exec().
|
static |
Definition at line 355 of file node_geo_extrude_mesh.cc.
Referenced by extrude_mesh_edges(), and extrude_mesh_face_regions().
|
static |
Definition at line 148 of file node_geo_extrude_mesh.cc.
References ATTR_DOMAIN_CORNER, ATTR_DOMAIN_EDGE, ATTR_DOMAIN_FACE, ATTR_DOMAIN_POINT, BLI_assert_unreachable, Mesh::edata, Mesh::ldata, mesh, Mesh::pdata, and Mesh::vdata.
Referenced by get_orig_index_layer().
|
static |
Definition at line 165 of file node_geo_extrude_mesh.cc.
References CD_ORIGINDEX, CustomData_get_layer(), blender::bke::AttributeAccessor::domain_size(), get_customdata(), mesh, and blender::bke::mesh_attributes().
|
static |
Definition at line 339 of file node_geo_extrude_mesh.cc.
References blender::Span< T >::index_range(), MPoly::loopstart, mesh, mesh_loops(), mesh_polys(), blender::Span< T >::slice(), Mesh::totedge, and MPoly::totloop.
Referenced by extrude_mesh_edges(), and extrude_mesh_face_regions().
|
static |
Definition at line 90 of file node_geo_extrude_mesh.cc.
References Mesh::medge, mesh, and Mesh::totedge.
Referenced by extrude_mesh_edges(), extrude_mesh_face_regions(), and extrude_mesh_vertices().
Definition at line 102 of file node_geo_extrude_mesh.cc.
References mesh, Mesh::mloop, and Mesh::totloop.
|
static |
Definition at line 106 of file node_geo_extrude_mesh.cc.
References mesh, Mesh::mloop, and Mesh::totloop.
Referenced by extrude_individual_mesh_faces(), extrude_mesh_edges(), extrude_mesh_face_regions(), and mesh_calculate_polys_of_edge().
Definition at line 94 of file node_geo_extrude_mesh.cc.
References mesh, Mesh::mpoly, and Mesh::totpoly.
|
static |
Definition at line 98 of file node_geo_extrude_mesh.cc.
References mesh, Mesh::mpoly, and Mesh::totpoly.
Referenced by extrude_individual_mesh_faces(), extrude_mesh_edges(), extrude_mesh_face_regions(), and mesh_calculate_polys_of_edge().
|
static |
Definition at line 86 of file node_geo_extrude_mesh.cc.
References mesh, Mesh::mvert, and Mesh::totvert.
Referenced by extrude_individual_mesh_faces(), extrude_mesh_edges(), extrude_mesh_vertices(), fill_shader_input(), and read_shader_output().
|
static |
Definition at line 175 of file node_geo_extrude_mesh.cc.
References ME_EDGEDRAW, ME_EDGERENDER, v1, and v2.
Referenced by blender::nodes::node_geo_dual_mesh_cc::add_edge(), blender::nodes::node_geo_dual_mesh_cc::dissolve_redundant_verts(), extrude_mesh_edges(), extrude_mesh_face_regions(), new_sample_edge_from_sample_points(), next_edgehalf_bev(), split_faces_prepare_new_edges(), and voronoi_clampEdges().
|
static |
Definition at line 184 of file node_geo_extrude_mesh.cc.
References ME_LOOSEEDGE, v1, and v2.
Referenced by extrude_mesh_vertices().
|
static |
Definition at line 193 of file node_geo_extrude_mesh.cc.
References MPoly::flag, MPoly::loopstart, and MPoly::totloop.
Referenced by blender::nodes::node_geo_duplicate_elements_cc::duplicate_faces(), extrude_mesh_edges(), and extrude_mesh_face_regions().
|
static |
Definition at line 23 of file node_geo_extrude_mesh.cc.
References usdtokens::b(), GEO_COMPONENT_TYPE_MESH, N_, and PROP_TRANSLATION.
Referenced by register_node_type_geo_extrude_mesh().
|
static |
Definition at line 1331 of file node_geo_extrude_mesh.cc.
References BKE_mesh_is_valid(), BLI_assert, component(), extrude_individual_mesh_faces(), extrude_mesh_edges(), extrude_mesh_face_regions(), extrude_mesh_vertices(), GEO_NODE_EXTRUDE_MESH_EDGES, GEO_NODE_EXTRUDE_MESH_FACES, GEO_NODE_EXTRUDE_MESH_VERTICES, GeometrySet::get_component_for_write(), GeometrySet::has_mesh(), GeometrySet::modify_geometry_sets(), offset, params, blender::nodes::node_geo_extrude_mesh_cc::AttributeOutputs::side_id, and blender::nodes::node_geo_extrude_mesh_cc::AttributeOutputs::top_id.
Referenced by register_node_type_geo_extrude_mesh().
|
static |
Definition at line 42 of file node_geo_extrude_mesh.cc.
References data, GEO_NODE_EXTRUDE_MESH_FACES, and node.
|
static |
Definition at line 35 of file node_geo_extrude_mesh.cc.
References ptr, uiItemR(), uiLayoutSetPropDecorate(), and uiLayoutSetPropSep().
Referenced by register_node_type_geo_extrude_mesh().
|
static |
Definition at line 49 of file node_geo_extrude_mesh.cc.
References GEO_NODE_EXTRUDE_MESH_FACES, NodeGeometryExtrudeMesh::mode, node, nodeSetSocketAvailability(), and ntree.
Referenced by register_node_type_geo_extrude_mesh().
|
static |
Definition at line 64 of file node_geo_extrude_mesh.cc.
References blender::IndexMask::as_range(), attribute, BLI_assert, component(), id, and blender::IndexMask::is_range().
|
static |
Definition at line 1053 of file node_geo_extrude_mesh.cc.
References offset.
|
static |
Definition at line 397 of file node_geo_extrude_mesh.cc.
References blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), Mesh::medge, mesh, blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::reserve(), blender::Span< T >::size(), and T.
Referenced by extrude_mesh_edges(), and extrude_mesh_face_regions().