Blender  V3.3
Namespaces | Enumerations | Functions
node_geo_dual_mesh.cc File Reference
#include "BLI_task.hh"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "BKE_attribute_math.hh"
#include "BKE_mesh.h"
#include "node_geometry_util.hh"

Go to the source code of this file.

Namespaces

 blender
 
 blender::nodes
 
 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)
 
template<typename T >
static void blender::nodes::node_geo_dual_mesh_cc::copy_data_based_on_new_to_old_map (Span< T > data, MutableSpan< T > r_data, const Span< int > new_to_old_map)
 
static void blender::nodes::node_geo_dual_mesh_cc::transfer_attributes (const Map< AttributeIDRef, AttributeKind > &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 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 void blender::nodes::node_geo_dual_mesh_cc::create_vertex_poly_map (const Mesh &mesh, MutableSpan< Vector< int >> r_vertex_poly_indices)
 
static bool blender::nodes::node_geo_dual_mesh_cc::sort_vertex_polys (const Mesh &mesh, const int vertex_index, const bool boundary_vertex, const Span< EdgeType > edge_types, MutableSpan< int > connected_polygons, MutableSpan< int > r_shared_edges, MutableSpan< int > r_sorted_corners)
 
static void blender::nodes::node_geo_dual_mesh_cc::boundary_edge_on_poly (const MPoly &poly, const Mesh &mesh, const int vertex_index, const Span< EdgeType > edge_types, int &r_edge)
 
static void blender::nodes::node_geo_dual_mesh_cc::boundary_edges_on_poly (const MPoly &poly, const Mesh &mesh, 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 Mesh &mesh, const int old_edge_i, const int v1, const int v2, Vector< int > &new_to_old_edges_map, Vector< MEdge > &new_edges, Vector< int > &loop_edges)
 
static bool blender::nodes::node_geo_dual_mesh_cc::vertex_needs_dissolving (const int vertex, const int first_poly_index, const int second_poly_index, const Span< VertexType > vertex_types, const Span< Vector< int >> vertex_poly_indices)
 
static void blender::nodes::node_geo_dual_mesh_cc::dissolve_redundant_verts (const Mesh &mesh, const Span< Vector< int >> vertex_poly_indices, MutableSpan< VertexType > vertex_types, MutableSpan< int > old_to_new_edges_map, Vector< MEdge > &new_edges, Vector< int > &new_to_old_edges_map)
 
static void blender::nodes::node_geo_dual_mesh_cc::calc_dual_mesh (GeometrySet &geometry_set, const MeshComponent &in_component, const bool keep_boundaries)
 
static void blender::nodes::node_geo_dual_mesh_cc::node_geo_exec (GeoNodeExecParams params)
 
void register_node_type_geo_dual_mesh ()
 

Function Documentation

◆ register_node_type_geo_dual_mesh()

void register_node_type_geo_dual_mesh ( void  )