Blender  V3.3
Functions
blender::nodes::node_geo_distribute_points_on_faces_cc Namespace Reference

Functions

static void node_declare (NodeDeclarationBuilder &b)
 
static void node_layout (uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
 
static void node_point_distribute_points_on_faces_update (bNodeTree *ntree, bNode *node)
 
static float3 normal_to_euler_rotation (const float3 normal)
 
static void sample_mesh_surface (const Mesh &mesh, const float base_density, const Span< float > density_factors, const int seed, Vector< float3 > &r_positions, Vector< float3 > &r_bary_coords, Vector< int > &r_looptri_indices)
 
static BLI_NOINLINE KDTree_3d * build_kdtree (Span< float3 > positions)
 
static BLI_NOINLINE void update_elimination_mask_for_close_points (Span< float3 > positions, const float minimum_distance, MutableSpan< bool > elimination_mask)
 
static BLI_NOINLINE void update_elimination_mask_based_on_density_factors (const Mesh &mesh, const Span< float > density_factors, const Span< float3 > bary_coords, const Span< int > looptri_indices, const MutableSpan< bool > elimination_mask)
 
static BLI_NOINLINE void eliminate_points_based_on_mask (const Span< bool > elimination_mask, Vector< float3 > &positions, Vector< float3 > &bary_coords, Vector< int > &looptri_indices)
 
static BLI_NOINLINE void interpolate_attribute (const Mesh &mesh, const Span< float3 > bary_coords, const Span< int > looptri_indices, const eAttrDomain source_domain, const GVArray &source_data, GMutableSpan output_data)
 
static BLI_NOINLINE void propagate_existing_attributes (const MeshComponent &mesh_component, const Map< AttributeIDRef, AttributeKind > &attributes, GeometryComponent &point_component, const Span< float3 > bary_coords, const Span< int > looptri_indices)
 
static BLI_NOINLINE void compute_attribute_outputs (const MeshComponent &mesh_component, PointCloudComponent &point_component, const Span< float3 > bary_coords, const Span< int > looptri_indices, const AttributeOutputs &attribute_outputs)
 
static Array< floatcalc_full_density_factors_with_selection (const MeshComponent &component, const Field< float > &density_field, const Field< bool > &selection_field)
 
static void distribute_points_random (const MeshComponent &component, const Field< float > &density_field, const Field< bool > &selection_field, const int seed, Vector< float3 > &positions, Vector< float3 > &bary_coords, Vector< int > &looptri_indices)
 
static void distribute_points_poisson_disk (const MeshComponent &mesh_component, const float minimum_distance, const float max_density, const Field< float > &density_factor_field, const Field< bool > &selection_field, const int seed, Vector< float3 > &positions, Vector< float3 > &bary_coords, Vector< int > &looptri_indices)
 
static void point_distribution_calculate (GeometrySet &geometry_set, const Field< bool > selection_field, const GeometryNodeDistributePointsOnFacesMode method, const int seed, const AttributeOutputs &attribute_outputs, const GeoNodeExecParams &params)
 
static void node_geo_exec (GeoNodeExecParams params)
 

Function Documentation

◆ build_kdtree()

static BLI_NOINLINE KDTree_3d* blender::nodes::node_geo_distribute_points_on_faces_cc::build_kdtree ( Span< float3 positions)
static

◆ calc_full_density_factors_with_selection()

static Array<float> blender::nodes::node_geo_distribute_points_on_faces_cc::calc_full_density_factors_with_selection ( const MeshComponent component,
const Field< float > &  density_field,
const Field< bool > &  selection_field 
)
static

◆ compute_attribute_outputs()

static BLI_NOINLINE void blender::nodes::node_geo_distribute_points_on_faces_cc::compute_attribute_outputs ( const MeshComponent mesh_component,
PointCloudComponent point_component,
const Span< float3 bary_coords,
const Span< int >  looptri_indices,
const AttributeOutputs &  attribute_outputs 
)
static

◆ distribute_points_poisson_disk()

static void blender::nodes::node_geo_distribute_points_on_faces_cc::distribute_points_poisson_disk ( const MeshComponent mesh_component,
const float  minimum_distance,
const float  max_density,
const Field< float > &  density_factor_field,
const Field< bool > &  selection_field,
const int  seed,
Vector< float3 > &  positions,
Vector< float3 > &  bary_coords,
Vector< int > &  looptri_indices 
)
static

◆ distribute_points_random()

static void blender::nodes::node_geo_distribute_points_on_faces_cc::distribute_points_random ( const MeshComponent component,
const Field< float > &  density_field,
const Field< bool > &  selection_field,
const int  seed,
Vector< float3 > &  positions,
Vector< float3 > &  bary_coords,
Vector< int > &  looptri_indices 
)
static

◆ eliminate_points_based_on_mask()

static BLI_NOINLINE void blender::nodes::node_geo_distribute_points_on_faces_cc::eliminate_points_based_on_mask ( const Span< bool elimination_mask,
Vector< float3 > &  positions,
Vector< float3 > &  bary_coords,
Vector< int > &  looptri_indices 
)
static

◆ interpolate_attribute()

static BLI_NOINLINE void blender::nodes::node_geo_distribute_points_on_faces_cc::interpolate_attribute ( const Mesh mesh,
const Span< float3 bary_coords,
const Span< int >  looptri_indices,
const eAttrDomain  source_domain,
const GVArray source_data,
GMutableSpan  output_data 
)
static

◆ node_declare()

static void blender::nodes::node_geo_distribute_points_on_faces_cc::node_declare ( NodeDeclarationBuilder b)
static

◆ node_geo_exec()

static void blender::nodes::node_geo_distribute_points_on_faces_cc::node_geo_exec ( GeoNodeExecParams  params)
static

◆ node_layout()

static void blender::nodes::node_geo_distribute_points_on_faces_cc::node_layout ( uiLayout layout,
bContext UNUSEDC,
PointerRNA ptr 
)
static

◆ node_point_distribute_points_on_faces_update()

static void blender::nodes::node_geo_distribute_points_on_faces_cc::node_point_distribute_points_on_faces_update ( bNodeTree ntree,
bNode node 
)
static

◆ normal_to_euler_rotation()

static float3 blender::nodes::node_geo_distribute_points_on_faces_cc::normal_to_euler_rotation ( const float3  normal)
static

Use an arbitrary choice of axes for a usable rotation attribute directly out of this node.

Definition at line 91 of file node_geo_distribute_points_on_faces.cc.

References normal, OB_NEGZ, OB_POSY, quat_to_eul(), and vec_to_quat().

Referenced by compute_attribute_outputs().

◆ point_distribution_calculate()

static void blender::nodes::node_geo_distribute_points_on_faces_cc::point_distribution_calculate ( GeometrySet geometry_set,
const Field< bool selection_field,
const GeometryNodeDistributePointsOnFacesMode  method,
const int  seed,
const AttributeOutputs &  attribute_outputs,
const GeoNodeExecParams params 
)
static

◆ propagate_existing_attributes()

static BLI_NOINLINE void blender::nodes::node_geo_distribute_points_on_faces_cc::propagate_existing_attributes ( const MeshComponent mesh_component,
const Map< AttributeIDRef, AttributeKind > &  attributes,
GeometryComponent point_component,
const Span< float3 bary_coords,
const Span< int >  looptri_indices 
)
static

◆ sample_mesh_surface()

static void blender::nodes::node_geo_distribute_points_on_faces_cc::sample_mesh_surface ( const Mesh mesh,
const float  base_density,
const Span< float density_factors,
const int  seed,
Vector< float3 > &  r_positions,
Vector< float3 > &  r_bary_coords,
Vector< int > &  r_looptri_indices 
)
static

◆ update_elimination_mask_based_on_density_factors()

static BLI_NOINLINE void blender::nodes::node_geo_distribute_points_on_faces_cc::update_elimination_mask_based_on_density_factors ( const Mesh mesh,
const Span< float density_factors,
const Span< float3 bary_coords,
const Span< int >  looptri_indices,
const MutableSpan< bool elimination_mask 
)
static

◆ update_elimination_mask_for_close_points()

static BLI_NOINLINE void blender::nodes::node_geo_distribute_points_on_faces_cc::update_elimination_mask_for_close_points ( Span< float3 positions,
const float  minimum_distance,
MutableSpan< bool elimination_mask 
)
static