|
Blender V4.3
|
Classes | |
| struct | AttributeOutputs |
Typedefs | |
| using | IDsByDomain = std::array<Vector<StringRef>, ATTR_DOMAIN_NUM> |
Functions | |
| static void | node_declare (NodeDeclarationBuilder &b) |
| static void | node_layout (uiLayout *layout, bContext *, PointerRNA *ptr) |
| static void | node_init (bNodeTree *, bNode *node) |
| static void | save_selection_as_attribute (MutableAttributeAccessor attributes, const StringRef id, const AttrDomain domain, const IndexMask &selection) |
| static void | remove_non_propagated_attributes (MutableAttributeAccessor attributes, const AttributeFilter &attribute_filter) |
| static void | remove_unsupported_vert_data (Mesh &mesh) |
| static void | remove_unsupported_edge_data (Mesh &mesh) |
| static void | remove_unsupported_face_data (Mesh &mesh) |
| static void | remove_unsupported_corner_data (Mesh &mesh) |
| static void | expand_mesh (Mesh &mesh, const int vert_expand, const int edge_expand, const int face_expand, const int loop_expand) |
| static CustomData & | mesh_custom_data_for_domain (Mesh &mesh, const AttrDomain domain) |
| static std::optional< MutableSpan< int > > | get_orig_index_layer (Mesh &mesh, const AttrDomain domain) |
| template<typename T > | |
| void | copy_with_mixing (const Span< T > src, const GroupedSpan< int > src_groups, const IndexMask &selection, MutableSpan< T > dst) |
| static void | copy_with_mixing (const GSpan src, const GroupedSpan< int > src_groups, const IndexMask &selection, GMutableSpan dst) |
| template<typename T > | |
| void | copy_with_mixing (const Span< T > src, const GroupedSpan< int > src_groups, const Span< int > selection, MutableSpan< T > dst) |
| static void | copy_with_mixing (const GSpan src, const GroupedSpan< int > src_groups, const Span< int > selection, GMutableSpan dst) |
| static IDsByDomain | attribute_ids_by_domain (const AttributeAccessor attributes, const Set< StringRef > &skip) |
| static bool | is_empty_domain (const AttributeAccessor attributes, const Set< StringRef > &skip, const AttrDomain domain) |
| static void | gather_attributes (MutableAttributeAccessor attributes, const Span< StringRef > ids, const Span< int > indices, const IndexRange new_range) |
| static void | gather_attributes (MutableAttributeAccessor attributes, const Span< StringRef > ids, const IndexMask &indices, const IndexRange new_range) |
| static void | gather_vert_attributes (Mesh &mesh, const Span< StringRef > ids, const Span< int > indices, const IndexRange new_range) |
| static void | gather_vert_attributes (Mesh &mesh, const Span< StringRef > ids, const IndexMask &indices, const IndexRange new_range) |
| static void | extrude_mesh_vertices (Mesh &mesh, const Field< bool > &selection_field, const Field< float3 > &offset_field, const AttributeOutputs &attribute_outputs, const AttributeFilter &attribute_filter) |
| static void | fill_quad_consistent_direction (const Span< int > other_face_verts, const Span< int > other_face_edges, MutableSpan< int > new_corner_verts, MutableSpan< int > new_corner_edges, const int vert_connected_to_face_1, const int vert_connected_to_face_2, const int vert_across_from_face_1, const int vert_across_from_face_2, const int edge_connected_to_face, const int connecting_edge_1, const int edge_across_from_face, const int connecting_edge_2) |
| static GroupedSpan< int > | build_vert_to_edge_map (const Span< int2 > edges, const IndexMask &edge_mask, const int verts_num, Array< int > &r_offsets, Array< int > &r_indices) |
| static void | tag_mesh_added_faces (Mesh &mesh) |
| static void | extrude_mesh_edges (Mesh &mesh, const Field< bool > &selection_field, const Field< float3 > &offset_field, const AttributeOutputs &attribute_outputs, const AttributeFilter &attribute_filter) |
| static VectorSet< int > | vert_indices_from_edges (const Mesh &mesh, const Span< int > edge_indices) |
| static void | extrude_mesh_face_regions (Mesh &mesh, const Field< bool > &selection_field, const Field< float3 > &offset_field, const AttributeOutputs &attribute_outputs, const AttributeFilter &attribute_filter) |
| static void | extrude_individual_mesh_faces (Mesh &mesh, const Field< bool > &selection_field, const Field< float3 > &offset_field, const AttributeOutputs &attribute_outputs, const AttributeFilter &attribute_filter) |
| static void | node_geo_exec (GeoNodeExecParams params) |
| static void | node_rna (StructRNA *srna) |
| static void | node_register () |
| using blender::nodes::node_geo_extrude_mesh_cc::IDsByDomain = std::array<Vector<StringRef>, ATTR_DOMAIN_NUM> |
Definition at line 261 of file node_geo_extrude_mesh.cc.
|
static |
Definition at line 263 of file node_geo_extrude_mesh.cc.
References attribute_ids_by_domain(), CD_PROP_STRING, blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::contains(), blender::bke::AttributeIter::data_type, blender::bke::AttributeIter::domain, and blender::bke::AttributeIter::name.
Referenced by attribute_ids_by_domain(), extrude_individual_mesh_faces(), extrude_mesh_edges(), extrude_mesh_face_regions(), and extrude_mesh_vertices().
|
static |
Definition at line 220 of file node_geo_extrude_mesh.cc.
References BLI_assert, blender::bke::attribute_math::convert_to_static_type(), blender::GMutableSpan::size(), and blender::GSpan::type().
|
static |
Definition at line 250 of file node_geo_extrude_mesh.cc.
References copy_with_mixing(), and blender::GSpan::type().
| void blender::nodes::node_geo_extrude_mesh_cc::copy_with_mixing | ( | const Span< T > | src, |
| const GroupedSpan< int > | src_groups, | ||
| const IndexMask & | selection, | ||
| MutableSpan< T > | dst ) |
Definition at line 202 of file node_geo_extrude_mesh.cc.
References blender::MutableSpan< T >::slice().
Referenced by copy_with_mixing(), extrude_mesh_edges(), extrude_mesh_face_regions(), and extrude_mesh_vertices().
| void blender::nodes::node_geo_extrude_mesh_cc::copy_with_mixing | ( | const Span< T > | src, |
| const GroupedSpan< int > | src_groups, | ||
| const Span< int > | selection, | ||
| MutableSpan< T > | dst ) |
Definition at line 233 of file node_geo_extrude_mesh.cc.
References blender::MutableSpan< T >::index_range(), and blender::threading::parallel_for().
|
static |
Definition at line 126 of file node_geo_extrude_mesh.cc.
References CD_PROP_INT32, CD_PROP_INT32_2D, CustomData_realloc(), and blender::implicit_sharing::resize_trivial_array().
Referenced by extrude_individual_mesh_faces(), extrude_mesh_edges(), extrude_mesh_face_regions(), and extrude_mesh_vertices().
|
static |
Definition at line 1214 of file node_geo_extrude_mesh.cc.
References blender::IndexRange::after(), blender::Array< T, InlineBufferCapacity, Allocator >::as_mutable_span(), attribute_ids_by_domain(), expand_mesh(), extrude_individual_mesh_faces(), blender::index_mask::IndexMask::foreach_index(), gather_vert_attributes(), int, int2, blender::index_mask::IndexMask::is_empty(), mesh, remove_non_propagated_attributes(), remove_unsupported_corner_data(), remove_unsupported_edge_data(), remove_unsupported_face_data(), remove_unsupported_vert_data(), blender::fn::FieldEvaluator::set_selection(), blender::index_mask::IndexMask::size(), blender::IndexRange::size(), blender::offset_indices::OffsetIndices< T >::size(), blender::Span< T >::size(), blender::MutableSpan< T >::slice(), and blender::offset_indices::OffsetIndices< T >::total_size().
Referenced by extrude_individual_mesh_faces(), and node_geo_exec().
|
static |
Definition at line 555 of file node_geo_extrude_mesh.cc.
References blender::IndexRange::after(), attribute_ids_by_domain(), copy_with_mixing(), expand_mesh(), extrude_mesh_edges(), fill_quad_consistent_direction(), blender::index_mask::IndexMask::foreach_index(), blender::index_mask::IndexMask::foreach_index_optimized(), gather_vert_attributes(), blender::MutableSpan< T >::index_range(), int, int2, blender::index_mask::IndexMask::is_empty(), is_empty_domain(), blender::VArrayCommon< T >::is_single(), mesh, blender::Array< T, InlineBufferCapacity, Allocator >::reinitialize(), remove_non_propagated_attributes(), remove_unsupported_corner_data(), remove_unsupported_edge_data(), remove_unsupported_face_data(), remove_unsupported_vert_data(), blender::fn::FieldEvaluator::set_selection(), blender::index_mask::IndexMask::size(), blender::IndexRange::size(), blender::offset_indices::OffsetIndices< T >::size(), blender::Span< T >::size(), blender::index_mask::IndexMask::slice(), and blender::MutableSpan< T >::slice().
Referenced by extrude_mesh_edges(), and 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 836 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(), attribute_ids_by_domain(), copy_with_mixing(), expand_mesh(), extrude_mesh_face_regions(), faces, fill_quad_consistent_direction(), blender::index_mask::IndexMask::foreach_index(), gather_vert_attributes(), blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::index_of(), blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::index_of_try(), blender::MutableSpan< T >::index_range(), blender::Span< T >::index_range(), blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::index_range(), int, int2, blender::index_mask::IndexMask::is_empty(), blender::MutableSpan< T >::is_empty(), blender::VArrayCommon< T >::is_single(), mesh, blender::Array< T, InlineBufferCapacity, Allocator >::reinitialize(), remove_non_propagated_attributes(), remove_unsupported_corner_data(), remove_unsupported_edge_data(), remove_unsupported_face_data(), remove_unsupported_vert_data(), blender::fn::FieldEvaluator::set_selection(), blender::IndexRange::size(), blender::offset_indices::OffsetIndices< T >::size(), blender::Span< T >::size(), blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::size(), blender::GMutableSpan::slice(), blender::MutableSpan< T >::slice(), blender::Span< T >::slice(), blender::index_mask::IndexMask::to_bools(), and vert_indices_from_edges().
Referenced by extrude_mesh_face_regions(), and node_geo_exec().
|
static |
Definition at line 374 of file node_geo_extrude_mesh.cc.
References blender::fn::FieldEvaluator::add_with_destination(), blender::Array< T, InlineBufferCapacity, Allocator >::as_mutable_span(), attribute_ids_by_domain(), BKE_mesh_runtime_clear_cache(), copy_with_mixing(), expand_mesh(), extrude_mesh_vertices(), gather_vert_attributes(), get_orig_index_layer(), int, int2, mesh, ORIGINDEX_NONE, remove_non_propagated_attributes(), remove_unsupported_edge_data(), remove_unsupported_vert_data(), save_selection_as_attribute(), blender::nodes::node_geo_extrude_mesh_cc::AttributeOutputs::side_id, blender::IndexRange::size(), blender::MutableSpan< T >::slice(), and blender::nodes::node_geo_extrude_mesh_cc::AttributeOutputs::top_id.
Referenced by extrude_mesh_vertices(), and node_geo_exec().
|
static |
Definition at line 468 of file node_geo_extrude_mesh.cc.
References fill_quad_consistent_direction(), and blender::Span< T >::index_range().
Referenced by extrude_mesh_edges(), extrude_mesh_face_regions(), and fill_quad_consistent_direction().
|
static |
Definition at line 312 of file node_geo_extrude_mesh.cc.
|
static |
Definition at line 300 of file node_geo_extrude_mesh.cc.
|
static |
Definition at line 349 of file node_geo_extrude_mesh.cc.
References blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::contains(), gather_vert_attributes(), blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::is_empty(), LISTBASE_FOREACH, and blender::MutableSpan< T >::slice().
|
static |
Definition at line 324 of file node_geo_extrude_mesh.cc.
References blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::contains(), gather_vert_attributes(), blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::is_empty(), LISTBASE_FOREACH, and blender::MutableSpan< T >::slice().
Referenced by extrude_individual_mesh_faces(), extrude_mesh_edges(), extrude_mesh_face_regions(), extrude_mesh_vertices(), gather_vert_attributes(), and gather_vert_attributes().
|
static |
Definition at line 189 of file node_geo_extrude_mesh.cc.
References CD_ORIGINDEX, CustomData_get_layer_for_write(), and mesh_custom_data_for_domain().
Referenced by extrude_mesh_vertices().
|
static |
Definition at line 279 of file node_geo_extrude_mesh.cc.
References CD_PROP_STRING, blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::contains(), blender::bke::AttributeIter::data_type, blender::bke::AttributeIter::domain, is_empty_domain(), blender::bke::AttributeIter::name, and blender::bke::AttributeIter::stop().
Referenced by extrude_mesh_edges(), and is_empty_domain().
|
static |
Definition at line 172 of file node_geo_extrude_mesh.cc.
References BLI_assert_unreachable.
Referenced by get_orig_index_layer().
|
static |
Definition at line 33 of file node_geo_extrude_mesh.cc.
References b, BLT_I18NCONTEXT_ID_NODETREE, GEO_NODE_EXTRUDE_MESH_FACES, blender::nodes::SocketDeclaration::hide_value, blender::nodes::SocketDeclaration::make_available(), blender::bke::GeometryComponent::Mesh, NodeGeometryExtrudeMesh::mode, blender::nodes::implicit_field_inputs::normal(), PROP_TRANSLATION, and blender::nodes::SocketDeclaration::translation_context.
Referenced by node_register().
|
static |
Definition at line 1461 of file node_geo_extrude_mesh.cc.
References 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, blender::bke::GeometrySet::get_mesh_for_write(), blender::bke::GeometrySet::modify_geometry_sets(), node_geo_exec(), params, blender::nodes::node_geo_extrude_mesh_cc::AttributeOutputs::side_id, and blender::nodes::node_geo_extrude_mesh_cc::AttributeOutputs::top_id.
Referenced by node_geo_exec(), and node_register().
|
static |
Definition at line 65 of file node_geo_extrude_mesh.cc.
References data, and GEO_NODE_EXTRUDE_MESH_FACES.
Referenced by node_register().
|
static |
Definition at line 58 of file node_geo_extrude_mesh.cc.
References ptr, UI_ITEM_NONE, uiItemR(), uiLayoutSetPropDecorate(), and uiLayoutSetPropSep().
Referenced by node_register().
|
static |
Definition at line 1537 of file node_geo_extrude_mesh.cc.
References blender::bke::bNodeType::declare, blender::bke::bNodeType::draw_buttons, geo_node_type_base(), blender::bke::bNodeType::geometry_node_execute, blender::bke::bNodeType::initfunc, NODE_CLASS_GEOMETRY, node_copy_standard_storage(), node_declare(), node_free_standard_storage(), node_geo_exec(), node_init(), node_layout(), node_register(), blender::bke::node_register_type(), node_rna(), blender::bke::node_type_storage(), blender::bke::bNodeType::rna_ext, and ExtensionRNA::srna.
Referenced by node_register().
|
static |
Definition at line 1519 of file node_geo_extrude_mesh.cc.
References GEO_NODE_EXTRUDE_MESH_EDGES, GEO_NODE_EXTRUDE_MESH_FACES, GEO_NODE_EXTRUDE_MESH_VERTICES, NOD_storage_enum_accessors, node_rna(), and blender::nodes::RNA_def_node_enum().
Referenced by node_register(), and node_rna().
|
static |
Definition at line 89 of file node_geo_extrude_mesh.cc.
References blender::bke::AttributeFilter::allow_skip(), and blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::remove_if().
Referenced by extrude_individual_mesh_faces(), extrude_mesh_edges(), extrude_mesh_face_regions(), and extrude_mesh_vertices().
|
static |
Definition at line 117 of file node_geo_extrude_mesh.cc.
References CD_CUSTOMLOOPNORMAL, CD_GRID_PAINT_MASK, CD_MDISPS, CD_MLOOPTANGENT, CD_TANGENT, and CustomData_free_layers().
Referenced by extrude_individual_mesh_faces(), extrude_mesh_edges(), and extrude_mesh_face_regions().
|
static |
Definition at line 107 of file node_geo_extrude_mesh.cc.
References CD_FREESTYLE_EDGE, and CustomData_free_layers().
Referenced by extrude_individual_mesh_faces(), extrude_mesh_edges(), extrude_mesh_face_regions(), and extrude_mesh_vertices().
|
static |
Definition at line 112 of file node_geo_extrude_mesh.cc.
References CD_FREESTYLE_FACE, and CustomData_free_layers().
Referenced by extrude_individual_mesh_faces(), extrude_mesh_edges(), and extrude_mesh_face_regions().
|
static |
Definition at line 99 of file node_geo_extrude_mesh.cc.
References CD_CLOTH_ORCO, CD_MVERT_SKIN, CD_ORCO, CD_SHAPEKEY, and CustomData_free_layers().
Referenced by extrude_individual_mesh_faces(), extrude_mesh_edges(), extrude_mesh_face_regions(), and extrude_mesh_vertices().
|
static |
Definition at line 77 of file node_geo_extrude_mesh.cc.
References BLI_assert, and blender::bke::SpanAttributeWriter< T >::finish().
Referenced by extrude_mesh_vertices().
|
static |
Definition at line 536 of file node_geo_extrude_mesh.cc.
References BKE_mesh_runtime_clear_cache(), and tag_mesh_added_faces().
Referenced by tag_mesh_added_faces().
|
static |
Definition at line 818 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 >::reserve(), blender::Span< T >::size(), and vert_indices_from_edges().
Referenced by extrude_mesh_face_regions(), and vert_indices_from_edges().