Blender V4.3
node_geo_dual_mesh.cc File Reference
#include "BLI_array_utils.hh"
#include "BLI_task.hh"
#include "BKE_attribute_math.hh"
#include "BKE_mesh.hh"
#include "BKE_mesh_mapping.hh"
#include "GEO_randomize.hh"
#include "node_geometry_util.hh"

Go to the source code of this file.

Namespaces

namespace  blender
 
namespace  blender::nodes
 
namespace  blender::nodes::node_geo_dual_mesh_cc
 

Enumerations

enum class  blender::nodes::node_geo_dual_mesh_cc::EdgeType : int8_t { blender::nodes::node_geo_dual_mesh_cc::Loose = 0 , blender::nodes::node_geo_dual_mesh_cc::Boundary = 1 , blender::nodes::node_geo_dual_mesh_cc::Normal = 2 , blender::nodes::node_geo_dual_mesh_cc::NonManifold = 3 }
 
enum class  blender::nodes::node_geo_dual_mesh_cc::VertexType : int8_t { blender::nodes::node_geo_dual_mesh_cc::Loose = 0 , blender::nodes::node_geo_dual_mesh_cc::Normal = 1 , blender::nodes::node_geo_dual_mesh_cc::Boundary = 2 , blender::nodes::node_geo_dual_mesh_cc::NonManifold = 3 }
 

Functions

static void blender::nodes::node_geo_dual_mesh_cc::node_declare (NodeDeclarationBuilder &b)
 
static EdgeType blender::nodes::node_geo_dual_mesh_cc::get_edge_type_with_added_neighbor (EdgeType old_type)
 
static VertexType blender::nodes::node_geo_dual_mesh_cc::get_vertex_type_with_added_neighbor (VertexType old_type)
 
template<typename T >
static void blender::nodes::node_geo_dual_mesh_cc::copy_data_based_on_vertex_types (Span< T > data, MutableSpan< T > r_data, const Span< VertexType > vertex_types, const bool keep_boundaries)
 
template<typename T >
static void blender::nodes::node_geo_dual_mesh_cc::copy_data_based_on_pairs (Span< T > data, MutableSpan< T > r_data, const Span< std::pair< int, int > > new_to_old_map)
 
static void blender::nodes::node_geo_dual_mesh_cc::transfer_attributes (const Span< VertexType > vertex_types, const bool keep_boundaries, const Span< int > new_to_old_edges_map, const Span< int > new_to_old_face_corners_map, const Span< std::pair< int, int > > boundary_vertex_to_relevant_face_map, const AttributeFilter &attribute_filter, const AttributeAccessor src_attributes, MutableAttributeAccessor dst_attributes)
 
static void blender::nodes::node_geo_dual_mesh_cc::calc_boundaries (const Mesh &mesh, MutableSpan< VertexType > r_vertex_types, MutableSpan< EdgeType > r_edge_types)
 
static bool blender::nodes::node_geo_dual_mesh_cc::sort_vertex_faces (const Span< int2 > edges, const OffsetIndices< int > faces, const Span< int > corner_verts, const Span< int > corner_edges, const int vertex_index, const bool boundary_vertex, const Span< EdgeType > edge_types, MutableSpan< int > connected_faces, MutableSpan< int > r_shared_edges, MutableSpan< int > r_sorted_corners)
 
static void blender::nodes::node_geo_dual_mesh_cc::boundary_edge_on_face (const Span< int2 > edges, const Span< int > face_edges, const int vertex_index, const Span< EdgeType > edge_types, int &r_edge)
 
static void blender::nodes::node_geo_dual_mesh_cc::boundary_edges_on_face (const IndexRange face, const Span< int2 > edges, const Span< int > corner_verts, const Span< int > corner_edges, const int vertex_index, const Span< EdgeType > edge_types, int &r_edge1, int &r_edge2)
 
static void blender::nodes::node_geo_dual_mesh_cc::add_edge (const int old_edge_i, const int v1, const int v2, Vector< int > &new_to_old_edges_map, Vector< int2 > &new_edges, Vector< int > &corner_edges)
 
static bool blender::nodes::node_geo_dual_mesh_cc::vertex_needs_dissolving (const int vertex, const int first_face_index, const int second_face_index, const Span< VertexType > vertex_types, const GroupedSpan< int > vert_to_face_map)
 
static void blender::nodes::node_geo_dual_mesh_cc::dissolve_redundant_verts (const Span< int2 > edges, const OffsetIndices< int > faces, const Span< int > corner_edges, const GroupedSpan< int > vert_to_face_map, MutableSpan< VertexType > vertex_types, MutableSpan< int > old_to_new_edges_map, Vector< int2 > &new_edges, Vector< int > &new_to_old_edges_map)
 
static Meshblender::nodes::node_geo_dual_mesh_cc::calc_dual_mesh (const Mesh &src_mesh, const bool keep_boundaries, const AttributeFilter &attribute_filter)
 
static void blender::nodes::node_geo_dual_mesh_cc::node_geo_exec (GeoNodeExecParams params)
 
static void blender::nodes::node_geo_dual_mesh_cc::node_register ()