Blender V4.3
node_geo_interpolate_curves.cc File Reference
#include "node_geometry_util.hh"
#include "BLI_math_vector.hh"
#include "BLI_kdtree.h"
#include "BLI_length_parameterize.hh"
#include "BLI_math_rotation.h"
#include "BLI_task.hh"
#include "BKE_curves.hh"
#include "GEO_randomize.hh"

Go to the source code of this file.

Namespaces

namespace  blender
 
namespace  blender::nodes
 
namespace  blender::nodes::node_geo_interpolate_curves_cc
 

Functions

static void blender::nodes::node_geo_interpolate_curves_cc::node_declare (NodeDeclarationBuilder &b)
 
static MultiValueMap< int, intblender::nodes::node_geo_interpolate_curves_cc::separate_guides_by_group (const VArray< int > &guide_group_ids)
 
static Map< int, intblender::nodes::node_geo_interpolate_curves_cc::compute_points_per_curve_by_group (const MultiValueMap< int, int > &guides_by_group, const bke::CurvesGeometry &guide_curves)
 
static Map< int, KDTree_3d * > blender::nodes::node_geo_interpolate_curves_cc::build_kdtrees_for_root_positions (const MultiValueMap< int, int > &guides_by_group, const bke::CurvesGeometry &guide_curves)
 
static void blender::nodes::node_geo_interpolate_curves_cc::find_neighbor_guides (const Span< float3 > positions, const VArray< int > point_group_ids, const Map< int, KDTree_3d * > kdtrees, const MultiValueMap< int, int > &guides_by_group, const int max_neighbor_count, MutableSpan< int > r_all_neighbor_indices, MutableSpan< float > r_all_neighbor_weights, MutableSpan< int > r_all_neighbor_counts)
 
static void blender::nodes::node_geo_interpolate_curves_cc::compute_point_counts_per_child (const bke::CurvesGeometry &guide_curves, const VArray< int > &point_group_ids, const Map< int, int > &points_per_curve_by_group, const Span< int > all_neighbor_indices, const Span< float > all_neighbor_weights, const Span< int > all_neighbor_counts, const int max_neighbors, MutableSpan< int > r_points_per_child, MutableSpan< bool > r_use_direct_interpolation)
 
static void blender::nodes::node_geo_interpolate_curves_cc::parameterize_guide_curves (const bke::CurvesGeometry &guide_curves, Array< int > &r_parameterized_guide_offsets, Array< float > &r_parameterized_guide_lengths)
 
static void blender::nodes::node_geo_interpolate_curves_cc::interpolate_curve_shapes (bke::CurvesGeometry &child_curves, const bke::CurvesGeometry &guide_curves, const int max_neighbors, const Span< int > all_neighbor_indices, const Span< float > all_neighbor_weights, const Span< int > all_neighbor_counts, const VArray< float3 > &guides_up, const VArray< float3 > &points_up, const Span< float3 > point_positions, const OffsetIndices< int > parameterized_guide_offsets, const Span< float > parameterized_guide_lengths, const Span< bool > use_direct_interpolation_per_child)
 
static void blender::nodes::node_geo_interpolate_curves_cc::interpolate_curve_attributes (bke::CurvesGeometry &child_curves, const bke::CurvesGeometry &guide_curves, const AttributeAccessor &point_attributes, const AttributeFilter &attribute_filter, const int max_neighbors, const Span< int > all_neighbor_indices, const Span< float > all_neighbor_weights, const Span< int > all_neighbor_counts, const OffsetIndices< int > parameterized_guide_offsets, const Span< float > parameterized_guide_lengths, const Span< bool > use_direct_interpolation_per_child)
 
static void blender::nodes::node_geo_interpolate_curves_cc::store_output_attributes (bke::CurvesGeometry &child_curves, const std::optional< StringRef > &weight_attribute_id, const std::optional< StringRef > &index_attribute_id, const int max_neighbors, const Span< int > all_neighbor_counts, const Span< int > all_neighbor_indices, const Span< float > all_neighbor_weights)
 
static GeometrySet blender::nodes::node_geo_interpolate_curves_cc::generate_interpolated_curves (const Curves &guide_curves_id, const AttributeAccessor &point_attributes, const VArray< float3 > &guides_up, const VArray< float3 > &points_up, const VArray< int > &guide_group_ids, const VArray< int > &point_group_ids, const int max_neighbors, const AttributeFilter &attribute_filter, const std::optional< StringRef > &index_attribute_id, const std::optional< StringRef > &weight_attribute_id)
 
static void blender::nodes::node_geo_interpolate_curves_cc::node_geo_exec (GeoNodeExecParams params)
 
static void blender::nodes::node_geo_interpolate_curves_cc::node_register ()