Blender V4.3
mesh_split_edges.cc File Reference
#include "BLI_array_utils.hh"
#include "BLI_index_mask.hh"
#include "BLI_ordered_edge.hh"
#include "BKE_attribute.hh"
#include "BKE_attribute_math.hh"
#include "BKE_customdata.hh"
#include "BKE_mesh.hh"
#include "BKE_mesh_mapping.hh"
#include "GEO_mesh_split_edges.hh"
#include "GEO_randomize.hh"

Go to the source code of this file.

Classes

struct  blender::geometry::VertLooseEdges
 

Namespaces

namespace  blender
 
namespace  blender::geometry
 

Typedefs

using blender::geometry::CornerGroup = Vector<int>
 

Functions

static void blender::geometry::propagate_vert_attributes (Mesh &mesh, const Span< int > new_to_old_verts_map)
 
static void blender::geometry::propagate_edge_attributes (Mesh &mesh, const Span< int > new_to_old_edge_map)
 
IndexMask blender::geometry::vert_selection_from_edge (Span< int2 > edges, const IndexMask &edge_mask, int verts_num, IndexMaskMemory &memory)
 
static BitVector blender::geometry::selection_to_bit_vector (const IndexMask &selection, const int total_size)
 
static int blender::geometry::corner_on_edge_connected_to_vert (const Span< int > corner_verts, const int corner, const IndexRange face, const int vert)
 
static Vector< CornerGroupblender::geometry::calc_corner_groups_for_vertex (const OffsetIndices< int > faces, const Span< int > corner_verts, const Span< int > corner_edges, const GroupedSpan< int > edge_to_corner_map, const Span< int > corner_to_face_map, const BitSpan split_edges, const Span< int > connected_corners, const int vert)
 
static BLI_NOINLINE Array< Vector< CornerGroup > > blender::geometry::calc_all_corner_groups (const OffsetIndices< int > faces, const Span< int > corner_verts, const Span< int > corner_edges, const GroupedSpan< int > vert_to_corner_map, const GroupedSpan< int > edge_to_corner_map, const Span< int > corner_to_face_map, const BitSpan split_edges, const IndexMask &affected_verts)
 
static VertLooseEdges blender::geometry::calc_vert_loose_edges (const GroupedSpan< int > vert_to_edge_map, const BitSpan loose_edges, const BitSpan split_edges, const int vert)
 
static OffsetIndices< intblender::geometry::calc_vert_ranges_per_old_vert (const IndexMask &affected_verts, const Span< Vector< CornerGroup > > corner_groups, const GroupedSpan< int > vert_to_edge_map, const BitSpan loose_edges, const BitSpan split_edges, Array< int > &offset_data)
 
static void blender::geometry::update_corner_verts (const int orig_verts_num, const Span< Vector< CornerGroup > > corner_groups, const OffsetIndices< int > new_verts_by_affected_vert, MutableSpan< int > new_corner_verts)
 
static OrderedEdge blender::geometry::edge_from_corner (const OffsetIndices< int > faces, const Span< int > corner_verts, const Span< int > corner_to_face_map, const int corner)
 
static Array< int2blender::geometry::calc_new_edges (const OffsetIndices< int > faces, const Span< int > corner_verts, const GroupedSpan< int > edge_to_corner_map, const Span< int > corner_to_face_map, const IndexMask &selected_edges, MutableSpan< int2 > edges, MutableSpan< int > corner_edges, MutableSpan< int > r_new_edge_offsets)
 
static void blender::geometry::update_unselected_edges (const OffsetIndices< int > faces, const Span< int > corner_verts, const GroupedSpan< int > edge_to_corner_map, const Span< int > corner_to_face_map, const IndexMask &unselected_edges, MutableSpan< int2 > edges)
 
static void blender::geometry::swap_edge_vert (int2 &edge, const int old_vert, const int new_vert)
 
static void blender::geometry::reassign_loose_edge_verts (const int orig_verts_num, const IndexMask &affected_verts, const GroupedSpan< int > vert_to_edge_map, const BitSpan loose_edges, const BitSpan split_edges, const Span< Vector< CornerGroup > > corner_groups, const OffsetIndices< int > new_verts_by_affected_vert, MutableSpan< int2 > edges)
 
static Array< intblender::geometry::offsets_to_map (const IndexMask &mask, const OffsetIndices< int > offsets)
 
void blender::geometry::split_edges (Mesh &mesh, const IndexMask &mask, const bke::AttributeFilter &attribute_filter={})