Blender  V2.93
Namespaces | Classes | Typedefs | Enumerations | Functions
blender::nodes Namespace Reference

Namespaces

 derived_node_tree_types
 
 node_tree_ref_types
 

Classes

class  DTreeContext
 
class  DNode
 
class  DSocket
 
class  DInputSocket
 
class  DOutputSocket
 
class  DerivedNodeTree
 
class  GeoNodeExecParams
 
struct  FloatMathOperationInfo
 
class  MFNetworkTreeMap
 
struct  CommonMFNetworkBuilderData
 
class  MFNetworkBuilderBase
 
class  SocketMFNetworkBuilder
 
class  NodeMFNetworkBuilder
 
class  SocketRef
 
class  InputSocketRef
 
class  OutputSocketRef
 
class  NodeRef
 
class  LinkRef
 
class  InternalLinkRef
 
class  NodeTreeRef
 
struct  ConversionFunctions
 
class  DataTypeConversions
 

Typedefs

using MultiFunctionByNode = Map< DNode, const fn::MultiFunction * >
 
using NodeTreeRefMap = Map< bNodeTree *, std::unique_ptr< const NodeTreeRef > >
 

Enumerations

enum class  NodeExpandType { SingleFunctionNode , MultipleFunctionNodes , HasDummyNodes }
 

Functions

void update_attribute_input_socket_availabilities (bNode &node, const StringRef name, const GeometryNodeAttributeInputMode mode, const bool name_is_available)
 
Array< uint32_tget_geometry_element_ids_as_uints (const GeometryComponent &component, const AttributeDomain domain)
 
void transform_mesh (Mesh *mesh, const float3 translation, const float3 rotation, const float3 scale)
 
Meshcreate_cylinder_or_cone_mesh (const float radius_top, const float radius_bottom, const float depth, const int verts_num, const GeometryNodeMeshCircleFillType fill_type)
 
Meshcreate_cube_mesh (const float size)
 
static void align_rotations_auto_pivot (const Float3ReadAttribute &vectors, const FloatReadAttribute &factors, const float3 local_main_axis, MutableSpan< float3 > rotations)
 
static void align_rotations_fixed_pivot (const Float3ReadAttribute &vectors, const FloatReadAttribute &factors, const float3 local_main_axis, const float3 local_pivot_axis, MutableSpan< float3 > rotations)
 
static void align_rotations_on_component (GeometryComponent &component, const GeoNodeExecParams &params)
 
static void geo_node_align_rotation_to_vector_exec (GeoNodeExecParams params)
 
static void geo_node_align_rotation_to_vector_init (bNodeTree *UNUSED(ntree), bNode *node)
 
static void geo_node_align_rotation_to_vector_update (bNodeTree *UNUSED(ntree), bNode *node)
 
template<typename T >
T clamp_value (const T val, const T min, const T max)
 
template<>
float clamp_value (const float val, const float min, const float max)
 
template<>
int clamp_value (const int val, const int min, const int max)
 
template<>
float3 clamp_value (const float3 val, const float3 min, const float3 max)
 
template<>
Color4f clamp_value (const Color4f val, const Color4f min, const Color4f max)
 
template<typename T >
static void clamp_attribute (Span< T > read_span, MutableSpan< T > span, const T min, const T max)
 
static AttributeDomain get_result_domain (const GeometryComponent &component, StringRef source_name, StringRef result_name)
 
static void clamp_attribute (GeometryComponent &component, const GeoNodeExecParams &params)
 
static void geo_node_attribute_clamp_exec (GeoNodeExecParams params)
 
static AttributeDomain get_result_domain (const GeometryComponent &component, StringRef input_name, StringRef result_name)
 
static void execute_on_component (const GeoNodeExecParams &params, GeometryComponent &component)
 
static void geo_node_attribute_color_ramp_exec (GeoNodeExecParams params)
 
static void geo_node_attribute_color_ramp_init (bNodeTree *UNUSED(ntree), bNode *node)
 
static void geo_node_attribute_combine_xyz_init (bNodeTree *UNUSED(tree), bNode *node)
 
static void geo_node_attribute_combine_xyz_update (bNodeTree *UNUSED(ntree), bNode *node)
 
static AttributeDomain get_result_domain (const GeometryComponent &component, const GeoNodeExecParams &params, StringRef result_name)
 
static void combine_attributes (GeometryComponent &component, const GeoNodeExecParams &params)
 
static void geo_node_attribute_combine_xyz_exec (GeoNodeExecParams params)
 
static void geo_node_attribute_compare_update (bNodeTree *UNUSED(ntree), bNode *node)
 
static void do_math_operation (const FloatReadAttribute &input_a, const FloatReadAttribute &input_b, const FloatCompareOperation operation, MutableSpan< bool > span_result)
 
static void do_equal_operation_float (const FloatReadAttribute &input_a, const FloatReadAttribute &input_b, const float threshold, MutableSpan< bool > span_result)
 
static void do_equal_operation_float3 (const Float3ReadAttribute &input_a, const Float3ReadAttribute &input_b, const float threshold, MutableSpan< bool > span_result)
 
static void do_equal_operation_color4f (const Color4fReadAttribute &input_a, const Color4fReadAttribute &input_b, const float threshold, MutableSpan< bool > span_result)
 
static void do_equal_operation_bool (const BooleanReadAttribute &input_a, const BooleanReadAttribute &input_b, const float UNUSED(threshold), MutableSpan< bool > span_result)
 
static void do_not_equal_operation_float (const FloatReadAttribute &input_a, const FloatReadAttribute &input_b, const float threshold, MutableSpan< bool > span_result)
 
static void do_not_equal_operation_float3 (const Float3ReadAttribute &input_a, const Float3ReadAttribute &input_b, const float threshold, MutableSpan< bool > span_result)
 
static void do_not_equal_operation_color4f (const Color4fReadAttribute &input_a, const Color4fReadAttribute &input_b, const float threshold, MutableSpan< bool > span_result)
 
static void do_not_equal_operation_bool (const BooleanReadAttribute &input_a, const BooleanReadAttribute &input_b, const float UNUSED(threshold), MutableSpan< bool > span_result)
 
static CustomDataType get_data_type (GeometryComponent &component, const GeoNodeExecParams &params, const NodeAttributeCompare &node_storage)
 
static AttributeDomain get_result_domain (const GeometryComponent &component, const GeoNodeExecParams &params, StringRef result_name)
 
static void attribute_compare_calc (GeometryComponent &component, const GeoNodeExecParams &params)
 
static void geo_node_attribute_compare_exec (GeoNodeExecParams params)
 
static AttributeDomain get_result_domain (const GeometryComponent &component, StringRef source_name, StringRef result_name)
 
static bool conversion_can_be_skipped (const GeometryComponent &component, const StringRef source_name, const StringRef result_name, const AttributeDomain result_domain, const CustomDataType result_type)
 
static void attribute_convert_calc (GeometryComponent &component, const GeoNodeExecParams &params, const StringRef source_name, const StringRef result_name, const CustomDataType result_type, const AttributeDomain domain)
 
static void geo_node_attribute_convert_exec (GeoNodeExecParams params)
 
static AttributeDomain get_result_domain (const GeometryComponent &component, StringRef attribute_name)
 
static void fill_attribute (GeometryComponent &component, const GeoNodeExecParams &params)
 
static void geo_node_attribute_fill_exec (GeoNodeExecParams params)
 
static float map_linear (const float value, const float min_from, const float max_from, const float min_to, const float max_to)
 
static float map_stepped (const float value, const float min_from, const float max_from, const float min_to, const float max_to, const float steps)
 
static float smoothstep_polynomial (float x)
 
static float map_smoothstep (const float value, const float min_from, const float max_from, const float min_to, const float max_to)
 
static float smootherstep_polynomial (float x)
 
static float map_smootherstep (const float value, const float min_from, const float max_from, const float min_to, const float max_to)
 
static void map_range_float (FloatReadAttribute attribute_input, FloatWriteAttribute attribute_result, const GeoNodeExecParams &params)
 
static void map_range_float3 (Float3ReadAttribute attribute_input, Float3WriteAttribute attribute_result, const GeoNodeExecParams &params)
 
static AttributeDomain get_result_domain (const GeometryComponent &component, StringRef source_name, StringRef result_name)
 
static void map_range_attribute (GeometryComponent &component, const GeoNodeExecParams &params)
 
static void geo_node_attribute_map_range_exec (GeoNodeExecParams params)
 
static void geo_node_attribute_math_update (bNodeTree *UNUSED(ntree), bNode *node)
 
static void do_math_operation (Span< float > span_a, Span< float > span_b, Span< float > span_c, MutableSpan< float > span_result, const NodeMathOperation operation)
 
static void do_math_operation (Span< float > span_a, Span< float > span_b, MutableSpan< float > span_result, const NodeMathOperation operation)
 
static void do_math_operation (Span< float > span_input, MutableSpan< float > span_result, const NodeMathOperation operation)
 
static AttributeDomain get_result_domain (const GeometryComponent &component, const GeoNodeExecParams &params, const NodeMathOperation operation, StringRef result_name)
 
static void attribute_math_calc (GeometryComponent &component, const GeoNodeExecParams &params)
 
static void geo_node_attribute_math_exec (GeoNodeExecParams params)
 
static void do_mix_operation_float (const int blend_mode, const FloatReadAttribute &factors, const FloatReadAttribute &inputs_a, const FloatReadAttribute &inputs_b, FloatWriteAttribute results)
 
static void do_mix_operation_float3 (const int blend_mode, const FloatReadAttribute &factors, const Float3ReadAttribute &inputs_a, const Float3ReadAttribute &inputs_b, Float3WriteAttribute results)
 
static void do_mix_operation_color4f (const int blend_mode, const FloatReadAttribute &factors, const Color4fReadAttribute &inputs_a, const Color4fReadAttribute &inputs_b, Color4fWriteAttribute results)
 
static void do_mix_operation (const CustomDataType result_type, int blend_mode, const FloatReadAttribute &attribute_factor, const ReadAttribute &attribute_a, const ReadAttribute &attribute_b, WriteAttribute &attribute_result)
 
static AttributeDomain get_result_domain (const GeometryComponent &component, const GeoNodeExecParams &params, StringRef result_name)
 
static void attribute_mix_calc (GeometryComponent &component, const GeoNodeExecParams &params)
 
static void geo_node_attribute_mix_exec (GeoNodeExecParams params)
 
static void geo_node_attribute_mix_init (bNodeTree *UNUSED(ntree), bNode *node)
 
static void geo_node_attribute_mix_update (bNodeTree *UNUSED(ntree), bNode *node)
 
static void proximity_calc (MutableSpan< float > distance_span, MutableSpan< float3 > location_span, Span< float3 > positions, BVHTreeFromMesh &tree_data_mesh, BVHTreeFromPointCloud &tree_data_pointcloud, const bool bvh_mesh_success, const bool bvh_pointcloud_success, const bool store_distances, const bool store_locations)
 
static bool bvh_from_mesh (const Mesh *target_mesh, int target_geometry_element, BVHTreeFromMesh &r_tree_data_mesh)
 
static bool bvh_from_pointcloud (const PointCloud *target_pointcloud, BVHTreeFromPointCloud &r_tree_data_pointcloud)
 
static void attribute_calc_proximity (GeometryComponent &component, GeometrySet &geometry_set_target, GeoNodeExecParams &params)
 
static void geo_node_attribute_proximity_exec (GeoNodeExecParams params)
 
template<typename T >
T random_value_in_range (const uint32_t id, const uint32_t seed, const T min, const T max)
 
template<>
float random_value_in_range (const uint32_t id, const uint32_t seed, const float min, const float max)
 
template<>
int random_value_in_range (const uint32_t id, const uint32_t seed, const int min, const int max)
 
template<>
float3 random_value_in_range (const uint32_t id, const uint32_t seed, const float3 min, const float3 max)
 
template<typename T >
static void randomize_attribute (MutableSpan< T > span, const T min, const T max, Span< uint32_t > ids, const uint32_t seed, const GeometryNodeAttributeRandomizeMode operation)
 
static void randomize_attribute_bool (MutableSpan< bool > span, Span< uint32_t > ids, const uint32_t seed, const GeometryNodeAttributeRandomizeMode operation)
 
static AttributeDomain get_result_domain (const GeometryComponent &component, const GeoNodeExecParams &params, StringRef attribute_name)
 
static void randomize_attribute_on_component (GeometryComponent &component, const GeoNodeExecParams &params, StringRef attribute_name, const CustomDataType data_type, const GeometryNodeAttributeRandomizeMode operation, const int seed)
 
static void geo_node_random_attribute_exec (GeoNodeExecParams params)
 
static void remove_attribute (GeometryComponent &component, GeoNodeExecParams &params, Span< std::string > attribute_names)
 
static void geo_node_attribute_remove_exec (GeoNodeExecParams params)
 
static AttributeDomain get_result_domain (const GeometryComponent &component, StringRef result_attribute_name, StringRef map_attribute_name)
 
static void execute_on_component (GeometryComponent &component, const GeoNodeExecParams &params)
 
static void geo_node_attribute_sample_texture_exec (GeoNodeExecParams params)
 
static void geo_node_attribute_separate_xyz_init (bNodeTree *UNUSED(tree), bNode *node)
 
static void geo_node_attribute_separate_xyz_update (bNodeTree *UNUSED(ntree), bNode *node)
 
static void extract_input (const int index, const Span< float3 > &input, MutableSpan< float > result)
 
static AttributeDomain get_result_domain (const GeometryComponent &component, const GeoNodeExecParams &params, StringRef result_name_x, StringRef result_name_y, StringRef result_name_z)
 
static void separate_attribute (GeometryComponent &component, const GeoNodeExecParams &params)
 
static void geo_node_attribute_separate_xyz_exec (GeoNodeExecParams params)
 
static void geo_node_attribute_vector_math_update (bNodeTree *UNUSED(ntree), bNode *node)
 
static void do_math_operation_fl3_fl3_to_fl3 (const Float3ReadAttribute &input_a, const Float3ReadAttribute &input_b, Float3WriteAttribute result, const NodeVectorMathOperation operation)
 
static void do_math_operation_fl3_fl3_fl3_to_fl3 (const Float3ReadAttribute &input_a, const Float3ReadAttribute &input_b, const Float3ReadAttribute &input_c, Float3WriteAttribute result, const NodeVectorMathOperation operation)
 
static void do_math_operation_fl3_fl3_fl_to_fl3 (const Float3ReadAttribute &input_a, const Float3ReadAttribute &input_b, const FloatReadAttribute &input_c, Float3WriteAttribute result, const NodeVectorMathOperation operation)
 
static void do_math_operation_fl3_fl3_to_fl (const Float3ReadAttribute &input_a, const Float3ReadAttribute &input_b, FloatWriteAttribute result, const NodeVectorMathOperation operation)
 
static void do_math_operation_fl3_fl_to_fl3 (const Float3ReadAttribute &input_a, const FloatReadAttribute &input_b, Float3WriteAttribute result, const NodeVectorMathOperation operation)
 
static void do_math_operation_fl3_to_fl3 (const Float3ReadAttribute &input_a, Float3WriteAttribute result, const NodeVectorMathOperation operation)
 
static void do_math_operation_fl3_to_fl (const Float3ReadAttribute &input_a, FloatWriteAttribute result, const NodeVectorMathOperation operation)
 
static AttributeDomain get_result_domain (const GeometryComponent &component, const GeoNodeExecParams &params, const NodeVectorMathOperation operation, StringRef result_name)
 
static void attribute_vector_math_calc (GeometryComponent &component, const GeoNodeExecParams &params)
 
static void geo_node_attribute_vector_math_exec (GeoNodeExecParams params)
 
static void geo_node_boolean_exec (GeoNodeExecParams params)
 
static void compute_min_max_from_position_and_transform (const GeometryComponent &component, Span< float4x4 > transforms, float3 &r_min, float3 &r_max)
 
static void compute_min_max_from_volume_and_transforms (const VolumeComponent &volume_component, Span< float4x4 > transforms, float3 &r_min, float3 &r_max)
 
static void compute_geometry_set_instances_boundbox (const GeometrySet &geometry_set, float3 &r_min, float3 &r_max)
 
static void geo_node_bounding_box_exec (GeoNodeExecParams params)
 
static void geo_node_collection_info_exec (GeoNodeExecParams params)
 
static void geo_node_collection_info_node_init (bNodeTree *UNUSED(tree), bNode *node)
 
static void geo_node_edge_split_exec (GeoNodeExecParams params)
 
static void geo_node_is_viewport_exec (GeoNodeExecParams params)
 
static Meshjoin_mesh_topology_and_builtin_attributes (Span< const MeshComponent * > src_components)
 
template<typename Component >
static Array< const GeometryComponent * > to_base_components (Span< const Component * > components)
 
static Set< std::string > find_all_attribute_names (Span< const GeometryComponent * > components)
 
static void determine_final_data_type_and_domain (Span< const GeometryComponent * > components, StringRef attribute_name, CustomDataType *r_type, AttributeDomain *r_domain)
 
static void fill_new_attribute (Span< const GeometryComponent * > src_components, StringRef attribute_name, const CustomDataType data_type, const AttributeDomain domain, fn::GMutableSpan dst_span)
 
static void join_attributes (Span< const GeometryComponent * > src_components, GeometryComponent &result, Span< StringRef > ignored_attributes={})
 
static void join_components (Span< const MeshComponent * > src_components, GeometrySet &result)
 
static void join_components (Span< const PointCloudComponent * > src_components, GeometrySet &result)
 
static void join_components (Span< const InstancesComponent * > src_components, GeometrySet &result)
 
static void join_components (Span< const VolumeComponent * > src_components, GeometrySet &result)
 
template<typename Component >
static void join_component_type (Span< GeometrySet > src_geometry_sets, GeometrySet &result)
 
static void geo_node_join_geometry_exec (GeoNodeExecParams params)
 
static int circle_vert_total (const GeometryNodeMeshCircleFillType fill_type, const int verts_num)
 
static int circle_edge_total (const GeometryNodeMeshCircleFillType fill_type, const int verts_num)
 
static int circle_corner_total (const GeometryNodeMeshCircleFillType fill_type, const int verts_num)
 
static int circle_face_total (const GeometryNodeMeshCircleFillType fill_type, const int verts_num)
 
static Meshcreate_circle_mesh (const float radius, const int verts_num, const GeometryNodeMeshCircleFillType fill_type)
 
static void geo_node_mesh_primitive_circle_exec (GeoNodeExecParams params)
 
static int vert_total (const GeometryNodeMeshCircleFillType fill_type, const int verts_num, const bool top_is_point, const bool bottom_is_point)
 
static int edge_total (const GeometryNodeMeshCircleFillType fill_type, const int verts_num, const bool top_is_point, const bool bottom_is_point)
 
static int corner_total (const GeometryNodeMeshCircleFillType fill_type, const int verts_num, const bool top_is_point, const bool bottom_is_point)
 
static int face_total (const GeometryNodeMeshCircleFillType fill_type, const int verts_num, const bool top_is_point, const bool bottom_is_point)
 
static void calculate_uvs (Mesh *mesh, const bool top_is_point, const bool bottom_is_point, const int verts_num, const GeometryNodeMeshCircleFillType fill_type)
 
static void geo_node_mesh_primitive_cone_exec (GeoNodeExecParams params)
 
static void geo_node_mesh_primitive_cube_exec (GeoNodeExecParams params)
 
static void geo_node_mesh_primitive_cylinder_exec (GeoNodeExecParams params)
 
static void calculate_uvs (Mesh *mesh, Span< MVert > verts, Span< MLoop > loops, const float size_x, const float size_y)
 
static Meshcreate_grid_mesh (const int verts_x, const int verts_y, const float size_x, const float size_y)
 
static void geo_node_mesh_primitive_grid_exec (GeoNodeExecParams params)
 
static Meshcreate_ico_sphere_mesh (const int subdivisions, const float radius)
 
static void geo_node_mesh_primitive_ico_sphere_exec (GeoNodeExecParams params)
 
static void fill_edge_data (MutableSpan< MEdge > edges)
 
static Meshcreate_line_mesh (const float3 start, const float3 delta, const int count)
 
static void geo_node_mesh_primitive_line_exec (GeoNodeExecParams params)
 
static int sphere_vert_total (const int segments, const int rings)
 
static int sphere_edge_total (const int segments, const int rings)
 
static int sphere_corner_total (const int segments, const int rings)
 
static int sphere_face_total (const int segments, const int rings)
 
static void calculate_sphere_vertex_data (MutableSpan< MVert > verts, const float radius, const int segments, const int rings)
 
static void calculate_sphere_edge_indices (MutableSpan< MEdge > edges, const int segments, const int rings)
 
static void calculate_sphere_faces (MutableSpan< MLoop > loops, MutableSpan< MPoly > polys, const int segments, const int rings)
 
static void calculate_sphere_uvs (Mesh *mesh, const float segments, const float rings)
 
static Meshcreate_uv_sphere_mesh (const float radius, const int segments, const int rings)
 
static void geo_node_mesh_primitive_uv_sphere_exec (GeoNodeExecParams params)
 
static void geo_node_object_info_exec (GeoNodeExecParams params)
 
static void geo_node_object_info_node_init (bNodeTree *UNUSED(tree), bNode *node)
 
static float3 normal_to_euler_rotation (const float3 normal)
 
static Span< MLoopTriget_mesh_looptris (const Mesh &mesh)
 
static void sample_mesh_surface (const Mesh &mesh, const float4x4 &transform, const float base_density, const FloatReadAttribute *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< Vector< float3 >> positions_all, const int initial_points_len)
 
static BLI_NOINLINE void update_elimination_mask_for_close_points (Span< Vector< float3 >> positions_all, Span< int > instance_start_offsets, const float minimum_distance, MutableSpan< bool > elimination_mask, const int initial_points_len)
 
static BLI_NOINLINE void update_elimination_mask_based_on_density_factors (const Mesh &mesh, const FloatReadAttribute &density_factors, Span< float3 > bary_coords, Span< int > looptri_indices, MutableSpan< bool > elimination_mask)
 
static BLI_NOINLINE void eliminate_points_based_on_mask (Span< bool > elimination_mask, Vector< float3 > &positions, Vector< float3 > &bary_coords, Vector< int > &looptri_indices)
 
template<typename T >
static BLI_NOINLINE void interpolate_attribute_point (const Mesh &mesh, const Span< float3 > bary_coords, const Span< int > looptri_indices, const Span< T > data_in, MutableSpan< T > data_out)
 
template<typename T >
static BLI_NOINLINE void interpolate_attribute_corner (const Mesh &mesh, const Span< float3 > bary_coords, const Span< int > looptri_indices, const Span< T > data_in, MutableSpan< T > data_out)
 
template<typename T >
static BLI_NOINLINE void interpolate_attribute_face (const Mesh &mesh, const Span< int > looptri_indices, const Span< T > data_in, MutableSpan< T > data_out)
 
template<typename T >
static BLI_NOINLINE void interpolate_attribute (const Mesh &mesh, Span< float3 > bary_coords, Span< int > looptri_indices, const AttributeDomain source_domain, Span< T > source_span, MutableSpan< T > output_span)
 
static BLI_NOINLINE void interpolate_existing_attributes (Span< GeometryInstanceGroup > set_groups, Span< int > instance_start_offsets, const Map< std::string, AttributeKind > &attributes, GeometryComponent &component, Span< Vector< float3 >> bary_coords_array, Span< Vector< int >> looptri_indices_array)
 
static BLI_NOINLINE void compute_special_attributes (Span< GeometryInstanceGroup > sets, Span< int > instance_start_offsets, GeometryComponent &component, Span< Vector< float3 >> bary_coords_array, Span< Vector< int >> looptri_indices_array)
 
static BLI_NOINLINE void add_remaining_point_attributes (Span< GeometryInstanceGroup > set_groups, Span< int > instance_start_offsets, const Map< std::string, AttributeKind > &attributes, GeometryComponent &component, Span< Vector< float3 >> bary_coords_array, Span< Vector< int >> looptri_indices_array)
 
static void distribute_points_random (Span< GeometryInstanceGroup > set_groups, const StringRef density_attribute_name, const float density, const int seed, MutableSpan< Vector< float3 >> positions_all, MutableSpan< Vector< float3 >> bary_coords_all, MutableSpan< Vector< int >> looptri_indices_all)
 
static void distribute_points_poisson_disk (Span< GeometryInstanceGroup > set_groups, const StringRef density_attribute_name, const float density, const int seed, const float minimum_distance, MutableSpan< Vector< float3 >> positions_all, MutableSpan< Vector< float3 >> bary_coords_all, MutableSpan< Vector< int >> looptri_indices_all)
 
static void geo_node_point_distribute_exec (GeoNodeExecParams params)
 
static void geo_node_point_instance_update (bNodeTree *UNUSED(tree), bNode *node)
 
static void get_instanced_data__object (const GeoNodeExecParams &params, MutableSpan< std::optional< InstancedData >> r_instances_data)
 
static void get_instanced_data__collection (const GeoNodeExecParams &params, const GeometryComponent &component, MutableSpan< std::optional< InstancedData >> r_instances_data)
 
static Array< std::optional< InstancedData > > get_instanced_data (const GeoNodeExecParams &params, const GeometryComponent &component, const int amount)
 
static void add_instances_from_geometry_component (InstancesComponent &instances, const GeometryComponent &src_geometry, const GeoNodeExecParams &params)
 
static void geo_node_point_instance_exec (GeoNodeExecParams params)
 
static void geo_node_point_instance_init (bNodeTree *UNUSED(tree), bNode *node)
 
static void point_rotate__axis_angle__object_space (const int domain_size, const Float3ReadAttribute &axis, const FloatReadAttribute &angles, MutableSpan< float3 > rotations)
 
static void point_rotate__axis_angle__point_space (const int domain_size, const Float3ReadAttribute &axis, const FloatReadAttribute &angles, MutableSpan< float3 > rotations)
 
static void point_rotate__euler__object_space (const int domain_size, const Float3ReadAttribute &eulers, MutableSpan< float3 > rotations)
 
static void point_rotate__euler__point_space (const int domain_size, const Float3ReadAttribute &eulers, MutableSpan< float3 > rotations)
 
static void point_rotate_on_component (GeometryComponent &component, const GeoNodeExecParams &params)
 
static void geo_node_point_rotate_exec (GeoNodeExecParams params)
 
static void geo_node_point_rotate_init (bNodeTree *UNUSED(ntree), bNode *node)
 
static void geo_node_point_rotate_update (bNodeTree *UNUSED(ntree), bNode *node)
 
static void execute_on_component (GeoNodeExecParams params, GeometryComponent &component)
 
static void geo_node_point_scale_exec (GeoNodeExecParams params)
 
static void geo_node_point_scale_init (bNodeTree *UNUSED(tree), bNode *node)
 
static void geo_node_point_scale_update (bNodeTree *UNUSED(ntree), bNode *node)
 
template<typename T >
static void copy_data_based_on_mask (Span< T > data, Span< bool > masks, const bool invert, MutableSpan< T > out_data)
 
static void copy_attributes_based_on_mask (const GeometryComponent &in_component, GeometryComponent &result_component, Span< bool > masks, const bool invert)
 
static void create_component_points (GeometryComponent &component, const int total)
 
static void separate_points_from_component (const GeometryComponent &in_component, GeometryComponent &out_component, const StringRef mask_name, const bool invert)
 
static GeometrySet separate_geometry_set (const GeometrySet &set_in, const StringRef mask_name, const bool invert)
 
static void geo_node_point_separate_exec (GeoNodeExecParams params)
 
static void execute_on_component (GeoNodeExecParams params, GeometryComponent &component)
 
static void geo_node_point_translate_exec (GeoNodeExecParams params)
 
static void geo_node_point_translate_init (bNodeTree *UNUSED(tree), bNode *node)
 
static void geo_node_point_translate_update (bNodeTree *UNUSED(ntree), bNode *node)
 
static void geo_node_points_to_volume_exec (GeoNodeExecParams params)
 
static void geo_node_points_to_volume_init (bNodeTree *UNUSED(ntree), bNode *node)
 
static void geo_node_points_to_volume_update (bNodeTree *UNUSED(ntree), bNode *node)
 
static void geo_node_subdivide_exec (GeoNodeExecParams params)
 
static void geo_node_subdivision_surface_exec (GeoNodeExecParams params)
 
static bool use_translate (const float3 rotation, const float3 scale)
 
static void transform_pointcloud (PointCloud *pointcloud, const float3 translation, const float3 rotation, const float3 scale)
 
static void transform_instances (InstancesComponent &instances, const float3 translation, const float3 rotation, const float3 scale)
 
static void transform_volume (Volume *volume, const float3 translation, const float3 rotation, const float3 scale, GeoNodeExecParams &params)
 
static void geo_node_transform_exec (GeoNodeExecParams params)
 
static void geo_node_triangulate_exec (GeoNodeExecParams params)
 
static void geo_node_volume_to_mesh_init (bNodeTree *UNUSED(ntree), bNode *node)
 
static void geo_node_volume_to_mesh_update (bNodeTree *UNUSED(ntree), bNode *node)
 
static void geo_node_volume_to_mesh_exec (GeoNodeExecParams params)
 
static dot::Clusterget_dot_cluster_for_context (dot::DirectedGraph &digraph, const DTreeContext *context, Map< const DTreeContext *, dot::Cluster * > &dot_clusters)
 
const FloatMathOperationInfoget_float_math_operation_info (const int operation)
 
const FloatMathOperationInfoget_float_compare_operation_info (const int operation)
 
const FloatMathOperationInfoget_float3_math_operation_info (const int operation)
 
static void insert_dummy_node (CommonMFNetworkBuilderData &common, const DNode &dnode)
 
static bool has_data_sockets (const DNode &dnode)
 
static void foreach_node_to_insert (CommonMFNetworkBuilderData &common, FunctionRef< void(DNode)> callback)
 
static void insert_nodes (CommonMFNetworkBuilderData &common)
 
static fn::MFOutputSocketinsert_default_value_for_type (CommonMFNetworkBuilderData &common, fn::MFDataType type)
 
static fn::MFOutputSocketinsert_unlinked_input (CommonMFNetworkBuilderData &common, const DInputSocket &dsocket)
 
static void insert_links_and_unlinked_inputs (CommonMFNetworkBuilderData &common)
 
MFNetworkTreeMap insert_node_tree_into_mf_network (fn::MFNetwork &network, const DerivedNodeTree &tree, ResourceScope &scope)
 
static NodeExpandType get_node_expand_type (MFNetworkTreeMap &network_map, const DNode &dnode, const fn::MultiFunction **r_single_function)
 
static const fn::MultiFunctioncreate_function_for_node_that_expands_into_multiple (const DNode &dnode, fn::MFNetwork &network, MFNetworkTreeMap &network_map, ResourceScope &scope)
 
MultiFunctionByNode get_multi_function_per_node (const DerivedNodeTree &tree, ResourceScope &scope)
 
static bool has_link_cycles_recursive (const NodeRef &node, MutableSpan< bool > visited, MutableSpan< bool > is_in_stack)
 
const NodeTreeRefget_tree_ref_from_map (NodeTreeRefMap &node_tree_refs, bNodeTree &btree)
 
const CPPTypesocket_cpp_type_get (const bNodeSocketType &stype)
 
std::optional< MFDataTypesocket_mf_type_get (const bNodeSocketType &stype)
 
bool socket_is_mf_data_socket (const bNodeSocketType &stype)
 
bool socket_cpp_value_get (const bNodeSocket &socket, void *r_value)
 
void socket_expand_in_mf_network (SocketMFNetworkBuilder &builder)
 
template<typename From , typename To , To(*)(const From &) ConversionF>
static void add_implicit_conversion (DataTypeConversions &conversions)
 
static float2 float_to_float2 (const float &a)
 
static float3 float_to_float3 (const float &a)
 
static int32_t float_to_int (const float &a)
 
static bool float_to_bool (const float &a)
 
static Color4f float_to_color (const float &a)
 
static float3 float2_to_float3 (const float2 &a)
 
static float float2_to_float (const float2 &a)
 
static int float2_to_int (const float2 &a)
 
static bool float2_to_bool (const float2 &a)
 
static Color4f float2_to_color (const float2 &a)
 
static bool float3_to_bool (const float3 &a)
 
static float float3_to_float (const float3 &a)
 
static int float3_to_int (const float3 &a)
 
static float2 float3_to_float2 (const float3 &a)
 
static Color4f float3_to_color (const float3 &a)
 
static bool int_to_bool (const int32_t &a)
 
static float int_to_float (const int32_t &a)
 
static float2 int_to_float2 (const int32_t &a)
 
static float3 int_to_float3 (const int32_t &a)
 
static Color4f int_to_color (const int32_t &a)
 
static float bool_to_float (const bool &a)
 
static int32_t bool_to_int (const bool &a)
 
static float2 bool_to_float2 (const bool &a)
 
static float3 bool_to_float3 (const bool &a)
 
static Color4f bool_to_color (const bool &a)
 
static bool color_to_bool (const Color4f &a)
 
static float color_to_float (const Color4f &a)
 
static int32_t color_to_int (const Color4f &a)
 
static float2 color_to_float2 (const Color4f &a)
 
static float3 color_to_float3 (const Color4f &a)
 
static DataTypeConversions create_implicit_conversions ()
 
const DataTypeConversionsget_implicit_type_conversions ()
 
bool operator== (const DNode &a, const DNode &b)
 
bool operator!= (const DNode &a, const DNode &b)
 
bool operator== (const DSocket &a, const DSocket &b)
 
bool operator!= (const DSocket &a, const DSocket &b)
 
template<typename Callback >
bool try_dispatch_float_math_fl_to_fl (const int operation, Callback &&callback)
 
template<typename Callback >
bool try_dispatch_float_math_fl_fl_to_fl (const int operation, Callback &&callback)
 
template<typename Callback >
bool try_dispatch_float_math_fl_fl_fl_to_fl (const int operation, Callback &&callback)
 
template<typename Callback >
bool try_dispatch_float_math_fl_fl_to_bool (const FloatCompareOperation operation, Callback &&callback)
 
template<typename Callback >
bool try_dispatch_float_math_fl3_fl3_to_fl3 (const NodeVectorMathOperation operation, Callback &&callback)
 
template<typename Callback >
bool try_dispatch_float_math_fl3_fl3_to_fl (const NodeVectorMathOperation operation, Callback &&callback)
 
template<typename Callback >
bool try_dispatch_float_math_fl3_fl3_fl3_to_fl3 (const NodeVectorMathOperation operation, Callback &&callback)
 
template<typename Callback >
bool try_dispatch_float_math_fl3_fl3_fl_to_fl3 (const NodeVectorMathOperation operation, Callback &&callback)
 
template<typename Callback >
bool try_dispatch_float_math_fl3_to_fl (const NodeVectorMathOperation operation, Callback &&callback)
 
template<typename Callback >
bool try_dispatch_float_math_fl3_fl_to_fl3 (const NodeVectorMathOperation operation, Callback &&callback)
 
template<typename Callback >
bool try_dispatch_float_math_fl3_to_fl3 (const NodeVectorMathOperation operation, Callback &&callback)
 

Typedef Documentation

◆ MultiFunctionByNode

Definition at line 387 of file NOD_node_tree_multi_function.hh.

◆ NodeTreeRefMap

using blender::nodes::NodeTreeRefMap = typedef Map<bNodeTree *, std::unique_ptr<const NodeTreeRef> >

Definition at line 284 of file NOD_node_tree_ref.hh.

Enumeration Type Documentation

◆ NodeExpandType

A single node is allowed to expand into multiple nodes before evaluation. Depending on what nodes it expands to, it belongs a different type of the ones below.

Enumerator
SingleFunctionNode 
MultipleFunctionNodes 
HasDummyNodes 

Definition at line 266 of file node_tree_multi_function.cc.

Function Documentation

◆ add_implicit_conversion()

template<typename From , typename To , To(*)(const From &) ConversionF>
static void blender::nodes::add_implicit_conversion ( DataTypeConversions conversions)
static

◆ add_instances_from_geometry_component()

static void blender::nodes::add_instances_from_geometry_component ( InstancesComponent instances,
const GeometryComponent src_geometry,
const GeoNodeExecParams params 
)
static

◆ add_remaining_point_attributes()

static BLI_NOINLINE void blender::nodes::add_remaining_point_attributes ( Span< GeometryInstanceGroup set_groups,
Span< int >  instance_start_offsets,
const Map< std::string, AttributeKind > &  attributes,
GeometryComponent component,
Span< Vector< float3 >>  bary_coords_array,
Span< Vector< int >>  looptri_indices_array 
)
static

◆ align_rotations_auto_pivot()

static void blender::nodes::align_rotations_auto_pivot ( const Float3ReadAttribute &  vectors,
const FloatReadAttribute &  factors,
const float3  local_main_axis,
MutableSpan< float3 rotations 
)
static

◆ align_rotations_fixed_pivot()

static void blender::nodes::align_rotations_fixed_pivot ( const Float3ReadAttribute &  vectors,
const FloatReadAttribute &  factors,
const float3  local_main_axis,
const float3  local_pivot_axis,
MutableSpan< float3 rotations 
)
static

◆ align_rotations_on_component()

static void blender::nodes::align_rotations_on_component ( GeometryComponent component,
const GeoNodeExecParams params 
)
static

◆ attribute_calc_proximity()

static void blender::nodes::attribute_calc_proximity ( GeometryComponent component,
GeometrySet geometry_set_target,
GeoNodeExecParams params 
)
static

◆ attribute_compare_calc()

static void blender::nodes::attribute_compare_calc ( GeometryComponent component,
const GeoNodeExecParams params 
)
static

◆ attribute_convert_calc()

static void blender::nodes::attribute_convert_calc ( GeometryComponent component,
const GeoNodeExecParams params,
const StringRef  source_name,
const StringRef  result_name,
const CustomDataType  result_type,
const AttributeDomain  domain 
)
static

◆ attribute_math_calc()

static void blender::nodes::attribute_math_calc ( GeometryComponent component,
const GeoNodeExecParams params 
)
static

◆ attribute_mix_calc()

static void blender::nodes::attribute_mix_calc ( GeometryComponent component,
const GeoNodeExecParams params 
)
static

◆ attribute_vector_math_calc()

static void blender::nodes::attribute_vector_math_calc ( GeometryComponent component,
const GeoNodeExecParams params 
)
static

◆ bool_to_color()

static Color4f blender::nodes::bool_to_color ( const bool &  a)
static

Definition at line 150 of file type_conversions.cc.

References Freestyle::a.

◆ bool_to_float()

static float blender::nodes::bool_to_float ( const bool &  a)
static

Definition at line 134 of file type_conversions.cc.

References Freestyle::a.

◆ bool_to_float2()

static float2 blender::nodes::bool_to_float2 ( const bool &  a)
static

Definition at line 142 of file type_conversions.cc.

References Freestyle::a.

◆ bool_to_float3()

static float3 blender::nodes::bool_to_float3 ( const bool &  a)
static

Definition at line 146 of file type_conversions.cc.

References Freestyle::a.

◆ bool_to_int()

static int32_t blender::nodes::bool_to_int ( const bool &  a)
static

Definition at line 138 of file type_conversions.cc.

References Freestyle::a.

◆ build_kdtree()

static BLI_NOINLINE KDTree_3d* blender::nodes::build_kdtree ( Span< Vector< float3 >>  positions_all,
const int  initial_points_len 
)
static

◆ bvh_from_mesh()

static bool blender::nodes::bvh_from_mesh ( const Mesh target_mesh,
int  target_geometry_element,
BVHTreeFromMesh r_tree_data_mesh 
)
static

◆ bvh_from_pointcloud()

static bool blender::nodes::bvh_from_pointcloud ( const PointCloud target_pointcloud,
BVHTreeFromPointCloud r_tree_data_pointcloud 
)
static

◆ calculate_sphere_edge_indices()

static void blender::nodes::calculate_sphere_edge_indices ( MutableSpan< MEdge edges,
const int  segments,
const int  rings 
)
static

◆ calculate_sphere_faces()

static void blender::nodes::calculate_sphere_faces ( MutableSpan< MLoop loops,
MutableSpan< MPoly polys,
const int  segments,
const int  rings 
)
static

◆ calculate_sphere_uvs()

static void blender::nodes::calculate_sphere_uvs ( Mesh mesh,
const float  segments,
const float  rings 
)
static

◆ calculate_sphere_vertex_data()

static void blender::nodes::calculate_sphere_vertex_data ( MutableSpan< MVert verts,
const float  radius,
const int  segments,
const int  rings 
)
static

◆ calculate_uvs() [1/2]

static void blender::nodes::calculate_uvs ( Mesh mesh,
const bool  top_is_point,
const bool  bottom_is_point,
const int  verts_num,
const GeometryNodeMeshCircleFillType  fill_type 
)
static

◆ calculate_uvs() [2/2]

static void blender::nodes::calculate_uvs ( Mesh mesh,
Span< MVert verts,
Span< MLoop loops,
const float  size_x,
const float  size_y 
)
static

◆ circle_corner_total()

static int blender::nodes::circle_corner_total ( const GeometryNodeMeshCircleFillType  fill_type,
const int  verts_num 
)
static

◆ circle_edge_total()

static int blender::nodes::circle_edge_total ( const GeometryNodeMeshCircleFillType  fill_type,
const int  verts_num 
)
static

◆ circle_face_total()

static int blender::nodes::circle_face_total ( const GeometryNodeMeshCircleFillType  fill_type,
const int  verts_num 
)
static

◆ circle_vert_total()

static int blender::nodes::circle_vert_total ( const GeometryNodeMeshCircleFillType  fill_type,
const int  verts_num 
)
static

◆ clamp_attribute() [1/2]

static void blender::nodes::clamp_attribute ( GeometryComponent component,
const GeoNodeExecParams params 
)
static

◆ clamp_attribute() [2/2]

template<typename T >
static void blender::nodes::clamp_attribute ( Span< T read_span,
MutableSpan< T span,
const T  min,
const T  max 
)
static

◆ clamp_value() [1/5]

template<>
Color4f blender::nodes::clamp_value ( const Color4f  val,
const Color4f  min,
const Color4f  max 
)
inline

◆ clamp_value() [2/5]

template<>
float blender::nodes::clamp_value ( const float  val,
const float  min,
const float  max 
)
inline

Definition at line 85 of file node_geo_attribute_clamp.cc.

References max, and min.

◆ clamp_value() [3/5]

template<>
float3 blender::nodes::clamp_value ( const float3  val,
const float3  min,
const float3  max 
)
inline

◆ clamp_value() [4/5]

template<>
int blender::nodes::clamp_value ( const int  val,
const int  min,
const int  max 
)
inline

Definition at line 90 of file node_geo_attribute_clamp.cc.

References max, and min.

◆ clamp_value() [5/5]

template<typename T >
T blender::nodes::clamp_value ( const T  val,
const T  min,
const T  max 
)

◆ color_to_bool()

static bool blender::nodes::color_to_bool ( const Color4f a)
static

Definition at line 155 of file type_conversions.cc.

References Freestyle::a, and rgb_to_grayscale().

◆ color_to_float()

static float blender::nodes::color_to_float ( const Color4f a)
static

Definition at line 159 of file type_conversions.cc.

References Freestyle::a, and rgb_to_grayscale().

◆ color_to_float2()

static float2 blender::nodes::color_to_float2 ( const Color4f a)
static

Definition at line 167 of file type_conversions.cc.

References Freestyle::a.

◆ color_to_float3()

static float3 blender::nodes::color_to_float3 ( const Color4f a)
static

Definition at line 171 of file type_conversions.cc.

References Freestyle::a.

◆ color_to_int()

static int32_t blender::nodes::color_to_int ( const Color4f a)
static

Definition at line 163 of file type_conversions.cc.

References Freestyle::a, and rgb_to_grayscale().

◆ combine_attributes()

static void blender::nodes::combine_attributes ( GeometryComponent component,
const GeoNodeExecParams params 
)
static

◆ compute_geometry_set_instances_boundbox()

static void blender::nodes::compute_geometry_set_instances_boundbox ( const GeometrySet geometry_set,
float3 r_min,
float3 r_max 
)
static

◆ compute_min_max_from_position_and_transform()

static void blender::nodes::compute_min_max_from_position_and_transform ( const GeometryComponent component,
Span< float4x4 transforms,
float3 r_min,
float3 r_max 
)
static

◆ compute_min_max_from_volume_and_transforms()

static void blender::nodes::compute_min_max_from_volume_and_transforms ( const VolumeComponent volume_component,
Span< float4x4 transforms,
float3 r_min,
float3 r_max 
)
static

◆ compute_special_attributes()

static BLI_NOINLINE void blender::nodes::compute_special_attributes ( Span< GeometryInstanceGroup sets,
Span< int >  instance_start_offsets,
GeometryComponent component,
Span< Vector< float3 >>  bary_coords_array,
Span< Vector< int >>  looptri_indices_array 
)
static

◆ conversion_can_be_skipped()

static bool blender::nodes::conversion_can_be_skipped ( const GeometryComponent component,
const StringRef  source_name,
const StringRef  result_name,
const AttributeDomain  result_domain,
const CustomDataType  result_type 
)
static

◆ copy_attributes_based_on_mask()

static void blender::nodes::copy_attributes_based_on_mask ( const GeometryComponent in_component,
GeometryComponent result_component,
Span< bool >  masks,
const bool  invert 
)
static

◆ copy_data_based_on_mask()

template<typename T >
static void blender::nodes::copy_data_based_on_mask ( Span< T data,
Span< bool >  masks,
const bool  invert,
MutableSpan< T out_data 
)
static

Definition at line 41 of file node_geo_point_separate.cc.

References data, and invert().

Referenced by copy_attributes_based_on_mask().

◆ corner_total()

static int blender::nodes::corner_total ( const GeometryNodeMeshCircleFillType  fill_type,
const int  verts_num,
const bool  top_is_point,
const bool  bottom_is_point 
)
static

◆ create_circle_mesh()

static Mesh* blender::nodes::create_circle_mesh ( const float  radius,
const int  verts_num,
const GeometryNodeMeshCircleFillType  fill_type 
)
static

◆ create_component_points()

static void blender::nodes::create_component_points ( GeometryComponent component,
const int  total 
)
static

◆ create_cube_mesh()

Mesh * blender::nodes::create_cube_mesh ( const float  size)

◆ create_cylinder_or_cone_mesh()

Mesh * blender::nodes::create_cylinder_or_cone_mesh ( const float  radius_top,
const float  radius_bottom,
const float  depth,
const int  verts_num,
const GeometryNodeMeshCircleFillType  fill_type 
)

◆ create_function_for_node_that_expands_into_multiple()

static const fn::MultiFunction& blender::nodes::create_function_for_node_that_expands_into_multiple ( const DNode dnode,
fn::MFNetwork network,
MFNetworkTreeMap network_map,
ResourceScope scope 
)
static

◆ create_grid_mesh()

static Mesh* blender::nodes::create_grid_mesh ( const int  verts_x,
const int  verts_y,
const float  size_x,
const float  size_y 
)
static

◆ create_ico_sphere_mesh()

static Mesh* blender::nodes::create_ico_sphere_mesh ( const int  subdivisions,
const float  radius 
)
static

◆ create_implicit_conversions()

static DataTypeConversions blender::nodes::create_implicit_conversions ( )
static

Definition at line 176 of file type_conversions.cc.

Referenced by get_implicit_type_conversions().

◆ create_line_mesh()

static Mesh* blender::nodes::create_line_mesh ( const float3  start,
const float3  delta,
const int  count 
)
static

◆ create_uv_sphere_mesh()

static Mesh* blender::nodes::create_uv_sphere_mesh ( const float  radius,
const int  segments,
const int  rings 
)
static

◆ determine_final_data_type_and_domain()

static void blender::nodes::determine_final_data_type_and_domain ( Span< const GeometryComponent * >  components,
StringRef  attribute_name,
CustomDataType r_type,
AttributeDomain r_domain 
)
static

◆ distribute_points_poisson_disk()

static void blender::nodes::distribute_points_poisson_disk ( Span< GeometryInstanceGroup set_groups,
const StringRef  density_attribute_name,
const float  density,
const int  seed,
const float  minimum_distance,
MutableSpan< Vector< float3 >>  positions_all,
MutableSpan< Vector< float3 >>  bary_coords_all,
MutableSpan< Vector< int >>  looptri_indices_all 
)
static

◆ distribute_points_random()

static void blender::nodes::distribute_points_random ( Span< GeometryInstanceGroup set_groups,
const StringRef  density_attribute_name,
const float  density,
const int  seed,
MutableSpan< Vector< float3 >>  positions_all,
MutableSpan< Vector< float3 >>  bary_coords_all,
MutableSpan< Vector< int >>  looptri_indices_all 
)
static

◆ do_equal_operation_bool()

static void blender::nodes::do_equal_operation_bool ( const BooleanReadAttribute &  input_a,
const BooleanReadAttribute &  input_b,
const float   UNUSEDthreshold,
MutableSpan< bool >  span_result 
)
static

Definition at line 151 of file node_geo_attribute_compare.cc.

References Freestyle::a, and size().

Referenced by attribute_compare_calc().

◆ do_equal_operation_color4f()

static void blender::nodes::do_equal_operation_color4f ( const Color4fReadAttribute &  input_a,
const Color4fReadAttribute &  input_b,
const float  threshold,
MutableSpan< bool >  span_result 
)
static

Definition at line 137 of file node_geo_attribute_compare.cc.

References Freestyle::a, len_squared_v4v4(), pow2f(), and size().

Referenced by attribute_compare_calc().

◆ do_equal_operation_float()

static void blender::nodes::do_equal_operation_float ( const FloatReadAttribute &  input_a,
const FloatReadAttribute &  input_b,
const float  threshold,
MutableSpan< bool >  span_result 
)
static

Definition at line 110 of file node_geo_attribute_compare.cc.

References Freestyle::a, compare_ff(), and size().

Referenced by attribute_compare_calc().

◆ do_equal_operation_float3()

static void blender::nodes::do_equal_operation_float3 ( const Float3ReadAttribute &  input_a,
const Float3ReadAttribute &  input_b,
const float  threshold,
MutableSpan< bool >  span_result 
)
static

Definition at line 123 of file node_geo_attribute_compare.cc.

References Freestyle::a, len_squared_v3v3(), pow2f(), and size().

Referenced by attribute_compare_calc().

◆ do_math_operation() [1/4]

static void blender::nodes::do_math_operation ( const FloatReadAttribute &  input_a,
const FloatReadAttribute &  input_b,
const FloatCompareOperation  operation,
MutableSpan< bool >  span_result 
)
static

◆ do_math_operation() [2/4]

static void blender::nodes::do_math_operation ( Span< float span_a,
Span< float span_b,
MutableSpan< float span_result,
const NodeMathOperation  operation 
)
static

◆ do_math_operation() [3/4]

static void blender::nodes::do_math_operation ( Span< float span_a,
Span< float span_b,
Span< float span_c,
MutableSpan< float span_result,
const NodeMathOperation  operation 
)
static

◆ do_math_operation() [4/4]

static void blender::nodes::do_math_operation ( Span< float span_input,
MutableSpan< float span_result,
const NodeMathOperation  operation 
)
static

◆ do_math_operation_fl3_fl3_fl3_to_fl3()

static void blender::nodes::do_math_operation_fl3_fl3_fl3_to_fl3 ( const Float3ReadAttribute &  input_a,
const Float3ReadAttribute &  input_b,
const Float3ReadAttribute &  input_c,
Float3WriteAttribute  result,
const NodeVectorMathOperation  operation 
)
static

◆ do_math_operation_fl3_fl3_fl_to_fl3()

static void blender::nodes::do_math_operation_fl3_fl3_fl_to_fl3 ( const Float3ReadAttribute &  input_a,
const Float3ReadAttribute &  input_b,
const FloatReadAttribute &  input_c,
Float3WriteAttribute  result,
const NodeVectorMathOperation  operation 
)
static

◆ do_math_operation_fl3_fl3_to_fl()

static void blender::nodes::do_math_operation_fl3_fl3_to_fl ( const Float3ReadAttribute &  input_a,
const Float3ReadAttribute &  input_b,
FloatWriteAttribute  result,
const NodeVectorMathOperation  operation 
)
static

◆ do_math_operation_fl3_fl3_to_fl3()

static void blender::nodes::do_math_operation_fl3_fl3_to_fl3 ( const Float3ReadAttribute &  input_a,
const Float3ReadAttribute &  input_b,
Float3WriteAttribute  result,
const NodeVectorMathOperation  operation 
)
static

◆ do_math_operation_fl3_fl_to_fl3()

static void blender::nodes::do_math_operation_fl3_fl_to_fl3 ( const Float3ReadAttribute &  input_a,
const FloatReadAttribute &  input_b,
Float3WriteAttribute  result,
const NodeVectorMathOperation  operation 
)
static

◆ do_math_operation_fl3_to_fl()

static void blender::nodes::do_math_operation_fl3_to_fl ( const Float3ReadAttribute &  input_a,
FloatWriteAttribute  result,
const NodeVectorMathOperation  operation 
)
static

◆ do_math_operation_fl3_to_fl3()

static void blender::nodes::do_math_operation_fl3_to_fl3 ( const Float3ReadAttribute &  input_a,
Float3WriteAttribute  result,
const NodeVectorMathOperation  operation 
)
static

◆ do_mix_operation()

static void blender::nodes::do_mix_operation ( const CustomDataType  result_type,
int  blend_mode,
const FloatReadAttribute &  attribute_factor,
const ReadAttribute attribute_a,
const ReadAttribute attribute_b,
WriteAttribute attribute_result 
)
static

◆ do_mix_operation_color4f()

static void blender::nodes::do_mix_operation_color4f ( const int  blend_mode,
const FloatReadAttribute &  factors,
const Color4fReadAttribute &  inputs_a,
const Color4fReadAttribute &  inputs_b,
Color4fWriteAttribute  results 
)
static

Definition at line 93 of file node_geo_attribute_mix.cc.

References Freestyle::a, ramp_blend(), and size().

Referenced by do_mix_operation().

◆ do_mix_operation_float()

static void blender::nodes::do_mix_operation_float ( const int  blend_mode,
const FloatReadAttribute &  factors,
const FloatReadAttribute &  inputs_a,
const FloatReadAttribute &  inputs_b,
FloatWriteAttribute  results 
)
static

Definition at line 60 of file node_geo_attribute_mix.cc.

References Freestyle::a, ramp_blend(), result, and size().

Referenced by do_mix_operation().

◆ do_mix_operation_float3()

static void blender::nodes::do_mix_operation_float3 ( const int  blend_mode,
const FloatReadAttribute &  factors,
const Float3ReadAttribute &  inputs_a,
const Float3ReadAttribute &  inputs_b,
Float3WriteAttribute  results 
)
static

Definition at line 77 of file node_geo_attribute_mix.cc.

References Freestyle::a, ramp_blend(), and size().

Referenced by do_mix_operation().

◆ do_not_equal_operation_bool()

static void blender::nodes::do_not_equal_operation_bool ( const BooleanReadAttribute &  input_a,
const BooleanReadAttribute &  input_b,
const float   UNUSEDthreshold,
MutableSpan< bool >  span_result 
)
static

Definition at line 205 of file node_geo_attribute_compare.cc.

References Freestyle::a, and size().

Referenced by attribute_compare_calc().

◆ do_not_equal_operation_color4f()

static void blender::nodes::do_not_equal_operation_color4f ( const Color4fReadAttribute &  input_a,
const Color4fReadAttribute &  input_b,
const float  threshold,
MutableSpan< bool >  span_result 
)
static

Definition at line 191 of file node_geo_attribute_compare.cc.

References Freestyle::a, len_squared_v4v4(), pow2f(), and size().

Referenced by attribute_compare_calc().

◆ do_not_equal_operation_float()

static void blender::nodes::do_not_equal_operation_float ( const FloatReadAttribute &  input_a,
const FloatReadAttribute &  input_b,
const float  threshold,
MutableSpan< bool >  span_result 
)
static

Definition at line 164 of file node_geo_attribute_compare.cc.

References Freestyle::a, compare_ff(), and size().

Referenced by attribute_compare_calc().

◆ do_not_equal_operation_float3()

static void blender::nodes::do_not_equal_operation_float3 ( const Float3ReadAttribute &  input_a,
const Float3ReadAttribute &  input_b,
const float  threshold,
MutableSpan< bool >  span_result 
)
static

Definition at line 177 of file node_geo_attribute_compare.cc.

References Freestyle::a, len_squared_v3v3(), pow2f(), and size().

Referenced by attribute_compare_calc().

◆ edge_total()

static int blender::nodes::edge_total ( const GeometryNodeMeshCircleFillType  fill_type,
const int  verts_num,
const bool  top_is_point,
const bool  bottom_is_point 
)
static

◆ eliminate_points_based_on_mask()

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

◆ execute_on_component() [1/4]

static void blender::nodes::execute_on_component ( const GeoNodeExecParams params,
GeometryComponent component 
)
static

◆ execute_on_component() [2/4]

static void blender::nodes::execute_on_component ( GeometryComponent component,
const GeoNodeExecParams params 
)
static

◆ execute_on_component() [3/4]

static void blender::nodes::execute_on_component ( GeoNodeExecParams  params,
GeometryComponent component 
)
static

◆ execute_on_component() [4/4]

static void blender::nodes::execute_on_component ( GeoNodeExecParams  params,
GeometryComponent component 
)
static

◆ extract_input()

static void blender::nodes::extract_input ( const int  index,
const Span< float3 > &  input,
MutableSpan< float result 
)
static

Definition at line 63 of file node_geo_attribute_separate_xyz.cc.

References component(), and result.

Referenced by separate_attribute().

◆ face_total()

static int blender::nodes::face_total ( const GeometryNodeMeshCircleFillType  fill_type,
const int  verts_num,
const bool  top_is_point,
const bool  bottom_is_point 
)
static

◆ fill_attribute()

static void blender::nodes::fill_attribute ( GeometryComponent component,
const GeoNodeExecParams params 
)
static

◆ fill_edge_data()

static void blender::nodes::fill_edge_data ( MutableSpan< MEdge edges)
static

◆ fill_new_attribute()

static void blender::nodes::fill_new_attribute ( Span< const GeometryComponent * >  src_components,
StringRef  attribute_name,
const CustomDataType  data_type,
const AttributeDomain  domain,
fn::GMutableSpan  dst_span 
)
static

◆ find_all_attribute_names()

static Set<std::string> blender::nodes::find_all_attribute_names ( Span< const GeometryComponent * >  components)
static

◆ float2_to_bool()

static bool blender::nodes::float2_to_bool ( const float2 a)
static

Definition at line 83 of file type_conversions.cc.

References Freestyle::a, and is_zero_v2().

◆ float2_to_color()

static Color4f blender::nodes::float2_to_color ( const float2 a)
static

Definition at line 87 of file type_conversions.cc.

References Freestyle::a.

◆ float2_to_float()

static float blender::nodes::float2_to_float ( const float2 a)
static

Definition at line 75 of file type_conversions.cc.

References Freestyle::a.

◆ float2_to_float3()

static float3 blender::nodes::float2_to_float3 ( const float2 a)
static

Definition at line 71 of file type_conversions.cc.

References Freestyle::a.

◆ float2_to_int()

static int blender::nodes::float2_to_int ( const float2 a)
static

Definition at line 79 of file type_conversions.cc.

References Freestyle::a.

◆ float3_to_bool()

static bool blender::nodes::float3_to_bool ( const float3 a)
static

Definition at line 92 of file type_conversions.cc.

References Freestyle::a, and is_zero_v3().

◆ float3_to_color()

static Color4f blender::nodes::float3_to_color ( const float3 a)
static

Definition at line 108 of file type_conversions.cc.

References Freestyle::a.

◆ float3_to_float()

static float blender::nodes::float3_to_float ( const float3 a)
static

Definition at line 96 of file type_conversions.cc.

References Freestyle::a.

◆ float3_to_float2()

static float2 blender::nodes::float3_to_float2 ( const float3 a)
static

Definition at line 104 of file type_conversions.cc.

References Freestyle::a.

◆ float3_to_int()

static int blender::nodes::float3_to_int ( const float3 a)
static

Definition at line 100 of file type_conversions.cc.

References Freestyle::a.

◆ float_to_bool()

static bool blender::nodes::float_to_bool ( const float a)
static

Definition at line 62 of file type_conversions.cc.

References Freestyle::a.

◆ float_to_color()

static Color4f blender::nodes::float_to_color ( const float a)
static

Definition at line 66 of file type_conversions.cc.

References Freestyle::a.

◆ float_to_float2()

static float2 blender::nodes::float_to_float2 ( const float a)
static

Definition at line 50 of file type_conversions.cc.

References Freestyle::a.

◆ float_to_float3()

static float3 blender::nodes::float_to_float3 ( const float a)
static

Definition at line 54 of file type_conversions.cc.

References Freestyle::a.

◆ float_to_int()

static int32_t blender::nodes::float_to_int ( const float a)
static

Definition at line 58 of file type_conversions.cc.

References Freestyle::a.

◆ foreach_node_to_insert()

static void blender::nodes::foreach_node_to_insert ( CommonMFNetworkBuilderData common,
FunctionRef< void(DNode)>  callback 
)
static

◆ geo_node_align_rotation_to_vector_exec()

static void blender::nodes::geo_node_align_rotation_to_vector_exec ( GeoNodeExecParams  params)
static

◆ geo_node_align_rotation_to_vector_init()

static void blender::nodes::geo_node_align_rotation_to_vector_init ( bNodeTree UNUSEDntree,
bNode node 
)
static

◆ geo_node_align_rotation_to_vector_update()

static void blender::nodes::geo_node_align_rotation_to_vector_update ( bNodeTree UNUSEDntree,
bNode node 
)
static

◆ geo_node_attribute_clamp_exec()

static void blender::nodes::geo_node_attribute_clamp_exec ( GeoNodeExecParams  params)
static

◆ geo_node_attribute_color_ramp_exec()

static void blender::nodes::geo_node_attribute_color_ramp_exec ( GeoNodeExecParams  params)
static

◆ geo_node_attribute_color_ramp_init()

static void blender::nodes::geo_node_attribute_color_ramp_init ( bNodeTree UNUSEDntree,
bNode node 
)
static

◆ geo_node_attribute_combine_xyz_exec()

static void blender::nodes::geo_node_attribute_combine_xyz_exec ( GeoNodeExecParams  params)
static

◆ geo_node_attribute_combine_xyz_init()

static void blender::nodes::geo_node_attribute_combine_xyz_init ( bNodeTree UNUSEDtree,
bNode node 
)
static

◆ geo_node_attribute_combine_xyz_update()

static void blender::nodes::geo_node_attribute_combine_xyz_update ( bNodeTree UNUSEDntree,
bNode node 
)
static

◆ geo_node_attribute_compare_exec()

static void blender::nodes::geo_node_attribute_compare_exec ( GeoNodeExecParams  params)
static

◆ geo_node_attribute_compare_update()

static void blender::nodes::geo_node_attribute_compare_update ( bNodeTree UNUSEDntree,
bNode node 
)
static

◆ geo_node_attribute_convert_exec()

static void blender::nodes::geo_node_attribute_convert_exec ( GeoNodeExecParams  params)
static

◆ geo_node_attribute_fill_exec()

static void blender::nodes::geo_node_attribute_fill_exec ( GeoNodeExecParams  params)
static

◆ geo_node_attribute_map_range_exec()

static void blender::nodes::geo_node_attribute_map_range_exec ( GeoNodeExecParams  params)
static

◆ geo_node_attribute_math_exec()

static void blender::nodes::geo_node_attribute_math_exec ( GeoNodeExecParams  params)
static

◆ geo_node_attribute_math_update()

static void blender::nodes::geo_node_attribute_math_update ( bNodeTree UNUSEDntree,
bNode node 
)
static

◆ geo_node_attribute_mix_exec()

static void blender::nodes::geo_node_attribute_mix_exec ( GeoNodeExecParams  params)
static

◆ geo_node_attribute_mix_init()

static void blender::nodes::geo_node_attribute_mix_init ( bNodeTree UNUSEDntree,
bNode node 
)
static

◆ geo_node_attribute_mix_update()

static void blender::nodes::geo_node_attribute_mix_update ( bNodeTree UNUSEDntree,
bNode node 
)
static

◆ geo_node_attribute_proximity_exec()

static void blender::nodes::geo_node_attribute_proximity_exec ( GeoNodeExecParams  params)
static

◆ geo_node_attribute_remove_exec()

static void blender::nodes::geo_node_attribute_remove_exec ( GeoNodeExecParams  params)
static

◆ geo_node_attribute_sample_texture_exec()

static void blender::nodes::geo_node_attribute_sample_texture_exec ( GeoNodeExecParams  params)
static

◆ geo_node_attribute_separate_xyz_exec()

static void blender::nodes::geo_node_attribute_separate_xyz_exec ( GeoNodeExecParams  params)
static

◆ geo_node_attribute_separate_xyz_init()

static void blender::nodes::geo_node_attribute_separate_xyz_init ( bNodeTree UNUSEDtree,
bNode node 
)
static

◆ geo_node_attribute_separate_xyz_update()

static void blender::nodes::geo_node_attribute_separate_xyz_update ( bNodeTree UNUSEDntree,
bNode node 
)
static

◆ geo_node_attribute_vector_math_exec()

static void blender::nodes::geo_node_attribute_vector_math_exec ( GeoNodeExecParams  params)
static

◆ geo_node_attribute_vector_math_update()

static void blender::nodes::geo_node_attribute_vector_math_update ( bNodeTree UNUSEDntree,
bNode node 
)
static

◆ geo_node_boolean_exec()

static void blender::nodes::geo_node_boolean_exec ( GeoNodeExecParams  params)
static

◆ geo_node_bounding_box_exec()

static void blender::nodes::geo_node_bounding_box_exec ( GeoNodeExecParams  params)
static

◆ geo_node_collection_info_exec()

static void blender::nodes::geo_node_collection_info_exec ( GeoNodeExecParams  params)
static

◆ geo_node_collection_info_node_init()

static void blender::nodes::geo_node_collection_info_node_init ( bNodeTree UNUSEDtree,
bNode node 
)
static

◆ geo_node_edge_split_exec()

static void blender::nodes::geo_node_edge_split_exec ( GeoNodeExecParams  params)
static

◆ geo_node_is_viewport_exec()

static void blender::nodes::geo_node_is_viewport_exec ( GeoNodeExecParams  params)
static

◆ geo_node_join_geometry_exec()

static void blender::nodes::geo_node_join_geometry_exec ( GeoNodeExecParams  params)
static

Definition at line 287 of file node_geo_join_geometry.cc.

References params.

Referenced by register_node_type_geo_join_geometry().

◆ geo_node_mesh_primitive_circle_exec()

static void blender::nodes::geo_node_mesh_primitive_circle_exec ( GeoNodeExecParams  params)
static

◆ geo_node_mesh_primitive_cone_exec()

static void blender::nodes::geo_node_mesh_primitive_cone_exec ( GeoNodeExecParams  params)
static

◆ geo_node_mesh_primitive_cube_exec()

static void blender::nodes::geo_node_mesh_primitive_cube_exec ( GeoNodeExecParams  params)
static

◆ geo_node_mesh_primitive_cylinder_exec()

static void blender::nodes::geo_node_mesh_primitive_cylinder_exec ( GeoNodeExecParams  params)
static

◆ geo_node_mesh_primitive_grid_exec()

static void blender::nodes::geo_node_mesh_primitive_grid_exec ( GeoNodeExecParams  params)
static

◆ geo_node_mesh_primitive_ico_sphere_exec()

static void blender::nodes::geo_node_mesh_primitive_ico_sphere_exec ( GeoNodeExecParams  params)
static

◆ geo_node_mesh_primitive_line_exec()

static void blender::nodes::geo_node_mesh_primitive_line_exec ( GeoNodeExecParams  params)
static

◆ geo_node_mesh_primitive_uv_sphere_exec()

static void blender::nodes::geo_node_mesh_primitive_uv_sphere_exec ( GeoNodeExecParams  params)
static

◆ geo_node_object_info_exec()

static void blender::nodes::geo_node_object_info_exec ( GeoNodeExecParams  params)
static

◆ geo_node_object_info_node_init()

static void blender::nodes::geo_node_object_info_node_init ( bNodeTree UNUSEDtree,
bNode node 
)
static

◆ geo_node_point_distribute_exec()

static void blender::nodes::geo_node_point_distribute_exec ( GeoNodeExecParams  params)
static

◆ geo_node_point_instance_exec()

static void blender::nodes::geo_node_point_instance_exec ( GeoNodeExecParams  params)
static

◆ geo_node_point_instance_init()

static void blender::nodes::geo_node_point_instance_init ( bNodeTree UNUSEDtree,
bNode node 
)
static

◆ geo_node_point_instance_update()

static void blender::nodes::geo_node_point_instance_update ( bNodeTree UNUSEDtree,
bNode node 
)
static

◆ geo_node_point_rotate_exec()

static void blender::nodes::geo_node_point_rotate_exec ( GeoNodeExecParams  params)
static

◆ geo_node_point_rotate_init()

static void blender::nodes::geo_node_point_rotate_init ( bNodeTree UNUSEDntree,
bNode node 
)
static

◆ geo_node_point_rotate_update()

static void blender::nodes::geo_node_point_rotate_update ( bNodeTree UNUSEDntree,
bNode node 
)
static

◆ geo_node_point_scale_exec()

static void blender::nodes::geo_node_point_scale_exec ( GeoNodeExecParams  params)
static

◆ geo_node_point_scale_init()

static void blender::nodes::geo_node_point_scale_init ( bNodeTree UNUSEDtree,
bNode node 
)
static

◆ geo_node_point_scale_update()

static void blender::nodes::geo_node_point_scale_update ( bNodeTree UNUSEDntree,
bNode node 
)
static

◆ geo_node_point_separate_exec()

static void blender::nodes::geo_node_point_separate_exec ( GeoNodeExecParams  params)
static

◆ geo_node_point_translate_exec()

static void blender::nodes::geo_node_point_translate_exec ( GeoNodeExecParams  params)
static

◆ geo_node_point_translate_init()

static void blender::nodes::geo_node_point_translate_init ( bNodeTree UNUSEDtree,
bNode node 
)
static

◆ geo_node_point_translate_update()

static void blender::nodes::geo_node_point_translate_update ( bNodeTree UNUSEDntree,
bNode node 
)
static

◆ geo_node_points_to_volume_exec()

static void blender::nodes::geo_node_points_to_volume_exec ( GeoNodeExecParams  params)
static

◆ geo_node_points_to_volume_init()

static void blender::nodes::geo_node_points_to_volume_init ( bNodeTree UNUSEDntree,
bNode node 
)
static

◆ geo_node_points_to_volume_update()

static void blender::nodes::geo_node_points_to_volume_update ( bNodeTree UNUSEDntree,
bNode node 
)
static

◆ geo_node_random_attribute_exec()

static void blender::nodes::geo_node_random_attribute_exec ( GeoNodeExecParams  params)
static

◆ geo_node_subdivide_exec()

static void blender::nodes::geo_node_subdivide_exec ( GeoNodeExecParams  params)
static

◆ geo_node_subdivision_surface_exec()

static void blender::nodes::geo_node_subdivision_surface_exec ( GeoNodeExecParams  params)
static

◆ geo_node_transform_exec()

static void blender::nodes::geo_node_transform_exec ( GeoNodeExecParams  params)
static

◆ geo_node_triangulate_exec()

static void blender::nodes::geo_node_triangulate_exec ( GeoNodeExecParams  params)
static

◆ geo_node_volume_to_mesh_exec()

static void blender::nodes::geo_node_volume_to_mesh_exec ( GeoNodeExecParams  params)
static

Definition at line 143 of file node_geo_volume_to_mesh.cc.

References params.

Referenced by register_node_type_geo_volume_to_mesh().

◆ geo_node_volume_to_mesh_init()

static void blender::nodes::geo_node_volume_to_mesh_init ( bNodeTree UNUSEDntree,
bNode node 
)
static

◆ geo_node_volume_to_mesh_update()

static void blender::nodes::geo_node_volume_to_mesh_update ( bNodeTree UNUSEDntree,
bNode node 
)
static

◆ get_data_type()

static CustomDataType blender::nodes::get_data_type ( GeometryComponent component,
const GeoNodeExecParams params,
const NodeAttributeCompare node_storage 
)
static

◆ get_dot_cluster_for_context()

static dot::Cluster* blender::nodes::get_dot_cluster_for_context ( dot::DirectedGraph digraph,
const DTreeContext context,
Map< const DTreeContext *, dot::Cluster * > &  dot_clusters 
)
static

◆ get_float3_math_operation_info()

const FloatMathOperationInfo * blender::nodes::get_float3_math_operation_info ( const int  operation)

◆ get_float_compare_operation_info()

const FloatMathOperationInfo * blender::nodes::get_float_compare_operation_info ( const int  operation)

◆ get_float_math_operation_info()

const FloatMathOperationInfo * blender::nodes::get_float_math_operation_info ( const int  operation)

◆ get_geometry_element_ids_as_uints()

Array< uint32_t > blender::nodes::get_geometry_element_ids_as_uints ( const GeometryComponent component,
const AttributeDomain  domain 
)

◆ get_implicit_type_conversions()

const DataTypeConversions & blender::nodes::get_implicit_type_conversions ( )

◆ get_instanced_data()

static Array<std::optional<InstancedData> > blender::nodes::get_instanced_data ( const GeoNodeExecParams params,
const GeometryComponent component,
const int  amount 
)
static

◆ get_instanced_data__collection()

static void blender::nodes::get_instanced_data__collection ( const GeoNodeExecParams params,
const GeometryComponent component,
MutableSpan< std::optional< InstancedData >>  r_instances_data 
)
static

◆ get_instanced_data__object()

static void blender::nodes::get_instanced_data__object ( const GeoNodeExecParams params,
MutableSpan< std::optional< InstancedData >>  r_instances_data 
)
static

◆ get_mesh_looptris()

static Span<MLoopTri> blender::nodes::get_mesh_looptris ( const Mesh mesh)
static

◆ get_multi_function_per_node()

MultiFunctionByNode blender::nodes::get_multi_function_per_node ( const DerivedNodeTree tree,
ResourceScope scope 
)

Returns a single multi-function for every node that supports it. This makes it easier to reuse the multi-function implementation of nodes in different contexts.

Definition at line 362 of file node_tree_multi_function.cc.

References blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add_new(), blender::ResourceScope::construct(), create_function_for_node_that_expands_into_multiple(), bNodeType::expand_in_mf_network, get_node_expand_type(), tree, and blender::nodes::NodeRef::typeinfo().

Referenced by compute_geometry().

◆ get_node_expand_type()

static NodeExpandType blender::nodes::get_node_expand_type ( MFNetworkTreeMap network_map,
const DNode dnode,
const fn::MultiFunction **  r_single_function 
)
static

Checks how the given node expanded in the multi-function network. If it is only a single function node, the corresponding function is returned as well.

Definition at line 276 of file node_tree_multi_function.cc.

References blender::fn::MFNode::as_function(), BLI_assert, blender::nodes::DNode::context(), blender::fn::MFFunctionNode::function(), blender::nodes::NodeRef::inputs(), blender::nodes::MFNetworkTreeMap::lookup(), blender::fn::MFSocket::node(), and blender::nodes::NodeRef::outputs().

Referenced by get_multi_function_per_node().

◆ get_result_domain() [1/13]

static AttributeDomain blender::nodes::get_result_domain ( const GeometryComponent component,
const GeoNodeExecParams params,
const NodeMathOperation  operation,
StringRef  result_name 
)
static

◆ get_result_domain() [2/13]

static AttributeDomain blender::nodes::get_result_domain ( const GeometryComponent component,
const GeoNodeExecParams params,
const NodeVectorMathOperation  operation,
StringRef  result_name 
)
static

◆ get_result_domain() [3/13]

static AttributeDomain blender::nodes::get_result_domain ( const GeometryComponent component,
const GeoNodeExecParams params,
StringRef  attribute_name 
)
static

Definition at line 197 of file node_geo_attribute_randomize.cc.

References component(), node, and params.

◆ get_result_domain() [4/13]

static AttributeDomain blender::nodes::get_result_domain ( const GeometryComponent component,
const GeoNodeExecParams params,
StringRef  result_name 
)
static

Definition at line 75 of file node_geo_attribute_combine_xyz.cc.

References ATTR_DOMAIN_POINT, component(), and params.

◆ get_result_domain() [5/13]

static AttributeDomain blender::nodes::get_result_domain ( const GeometryComponent component,
const GeoNodeExecParams params,
StringRef  result_name 
)
static

Definition at line 235 of file node_geo_attribute_compare.cc.

References ATTR_DOMAIN_POINT, component(), and params.

◆ get_result_domain() [6/13]

static AttributeDomain blender::nodes::get_result_domain ( const GeometryComponent component,
const GeoNodeExecParams params,
StringRef  result_name 
)
static

Definition at line 130 of file node_geo_attribute_mix.cc.

References ATTR_DOMAIN_POINT, component(), and params.

◆ get_result_domain() [7/13]

static AttributeDomain blender::nodes::get_result_domain ( const GeometryComponent component,
const GeoNodeExecParams params,
StringRef  result_name_x,
StringRef  result_name_y,
StringRef  result_name_z 
)
static

◆ get_result_domain() [8/13]

static AttributeDomain blender::nodes::get_result_domain ( const GeometryComponent component,
StringRef  attribute_name 
)
static

Definition at line 71 of file node_geo_attribute_fill.cc.

References ATTR_DOMAIN_POINT, and component().

◆ get_result_domain() [9/13]

static AttributeDomain blender::nodes::get_result_domain ( const GeometryComponent component,
StringRef  input_name,
StringRef  result_name 
)
static

Definition at line 45 of file node_geo_attribute_color_ramp.cc.

References ATTR_DOMAIN_POINT, and component().

◆ get_result_domain() [10/13]

static AttributeDomain blender::nodes::get_result_domain ( const GeometryComponent component,
StringRef  result_attribute_name,
StringRef  map_attribute_name 
)
static

Definition at line 51 of file node_geo_attribute_sample_texture.cc.

References ATTR_DOMAIN_POINT, and component().

◆ get_result_domain() [11/13]

static AttributeDomain blender::nodes::get_result_domain ( const GeometryComponent component,
StringRef  source_name,
StringRef  result_name 
)
static

◆ get_result_domain() [12/13]

static AttributeDomain blender::nodes::get_result_domain ( const GeometryComponent component,
StringRef  source_name,
StringRef  result_name 
)
static

Definition at line 54 of file node_geo_attribute_convert.cc.

References ATTR_DOMAIN_POINT, and component().

◆ get_result_domain() [13/13]

static AttributeDomain blender::nodes::get_result_domain ( const GeometryComponent component,
StringRef  source_name,
StringRef  result_name 
)
static

Definition at line 322 of file node_geo_attribute_map_range.cc.

References ATTR_DOMAIN_POINT, and component().

◆ get_tree_ref_from_map()

const NodeTreeRef & blender::nodes::get_tree_ref_from_map ( NodeTreeRefMap node_tree_refs,
bNodeTree btree 
)

◆ has_data_sockets()

static bool blender::nodes::has_data_sockets ( const DNode dnode)
static

◆ has_link_cycles_recursive()

static bool blender::nodes::has_link_cycles_recursive ( const NodeRef node,
MutableSpan< bool >  visited,
MutableSpan< bool >  is_in_stack 
)
static

◆ insert_default_value_for_type()

static fn::MFOutputSocket& blender::nodes::insert_default_value_for_type ( CommonMFNetworkBuilderData common,
fn::MFDataType  type 
)
static

◆ insert_dummy_node()

static void blender::nodes::insert_dummy_node ( CommonMFNetworkBuilderData common,
const DNode dnode 
)
static

◆ insert_links_and_unlinked_inputs()

static void blender::nodes::insert_links_and_unlinked_inputs ( CommonMFNetworkBuilderData common)
static

◆ insert_node_tree_into_mf_network()

MFNetworkTreeMap blender::nodes::insert_node_tree_into_mf_network ( fn::MFNetwork network,
const DerivedNodeTree tree,
ResourceScope scope 
)

Expands all function nodes contained in the given node tree within the given multi-function network.

Returns a mapping between the original node tree and the generated nodes/sockets for further processing.

Definition at line 248 of file node_tree_multi_function.cc.

References insert_links_and_unlinked_inputs(), insert_nodes(), and tree.

◆ insert_nodes()

static void blender::nodes::insert_nodes ( CommonMFNetworkBuilderData common)
static

Expands all function nodes in the multi-function network. Nodes that don't have an expand function, but do have data sockets, will get corresponding dummy nodes.

Definition at line 132 of file node_tree_multi_function.cc.

References bNodeType::expand_in_mf_network, foreach_node_to_insert(), has_data_sockets(), insert_dummy_node(), and blender::nodes::NodeRef::typeinfo().

Referenced by insert_node_tree_into_mf_network().

◆ insert_unlinked_input()

static fn::MFOutputSocket* blender::nodes::insert_unlinked_input ( CommonMFNetworkBuilderData common,
const DInputSocket dsocket 
)
static

◆ int_to_bool()

static bool blender::nodes::int_to_bool ( const int32_t a)
static

Definition at line 113 of file type_conversions.cc.

References Freestyle::a.

◆ int_to_color()

static Color4f blender::nodes::int_to_color ( const int32_t a)
static

Definition at line 129 of file type_conversions.cc.

References Freestyle::a.

◆ int_to_float()

static float blender::nodes::int_to_float ( const int32_t a)
static

Definition at line 117 of file type_conversions.cc.

References Freestyle::a.

◆ int_to_float2()

static float2 blender::nodes::int_to_float2 ( const int32_t a)
static

Definition at line 121 of file type_conversions.cc.

References Freestyle::a.

◆ int_to_float3()

static float3 blender::nodes::int_to_float3 ( const int32_t a)
static

Definition at line 125 of file type_conversions.cc.

References Freestyle::a.

◆ interpolate_attribute()

template<typename T >
static BLI_NOINLINE void blender::nodes::interpolate_attribute ( const Mesh mesh,
Span< float3 bary_coords,
Span< int >  looptri_indices,
const AttributeDomain  source_domain,
Span< T source_span,
MutableSpan< T output_span 
)
static

◆ interpolate_attribute_corner()

template<typename T >
static BLI_NOINLINE void blender::nodes::interpolate_attribute_corner ( const Mesh mesh,
const Span< float3 bary_coords,
const Span< int >  looptri_indices,
const Span< T data_in,
MutableSpan< T data_out 
)
static

◆ interpolate_attribute_face()

template<typename T >
static BLI_NOINLINE void blender::nodes::interpolate_attribute_face ( const Mesh mesh,
const Span< int >  looptri_indices,
const Span< T data_in,
MutableSpan< T data_out 
)
static

◆ interpolate_attribute_point()

template<typename T >
static BLI_NOINLINE void blender::nodes::interpolate_attribute_point ( const Mesh mesh,
const Span< float3 bary_coords,
const Span< int >  looptri_indices,
const Span< T data_in,
MutableSpan< T data_out 
)
static

◆ interpolate_existing_attributes()

static BLI_NOINLINE void blender::nodes::interpolate_existing_attributes ( Span< GeometryInstanceGroup set_groups,
Span< int >  instance_start_offsets,
const Map< std::string, AttributeKind > &  attributes,
GeometryComponent component,
Span< Vector< float3 >>  bary_coords_array,
Span< Vector< int >>  looptri_indices_array 
)
static

◆ join_attributes()

static void blender::nodes::join_attributes ( Span< const GeometryComponent * >  src_components,
GeometryComponent result,
Span< StringRef ignored_attributes = {} 
)
static

Definition at line 190 of file node_geo_join_geometry.cc.

Referenced by join_components().

◆ join_component_type()

template<typename Component >
static void blender::nodes::join_component_type ( Span< GeometrySet src_geometry_sets,
GeometrySet result 
)
static

◆ join_components() [1/4]

static void blender::nodes::join_components ( Span< const InstancesComponent * >  src_components,
GeometrySet result 
)
static

◆ join_components() [2/4]

static void blender::nodes::join_components ( Span< const MeshComponent * >  src_components,
GeometrySet result 
)
static

◆ join_components() [3/4]

static void blender::nodes::join_components ( Span< const PointCloudComponent * >  src_components,
GeometrySet result 
)
static

◆ join_components() [4/4]

static void blender::nodes::join_components ( Span< const VolumeComponent * >  src_components,
GeometrySet result 
)
static

Definition at line 258 of file node_geo_join_geometry.cc.

References result, and UNUSED_VARS.

◆ join_mesh_topology_and_builtin_attributes()

static Mesh* blender::nodes::join_mesh_topology_and_builtin_attributes ( Span< const MeshComponent * >  src_components)
static

◆ map_linear()

static float blender::nodes::map_linear ( const float  value,
const float  min_from,
const float  max_from,
const float  min_to,
const float  max_to 
)
static

Definition at line 105 of file node_geo_attribute_map_range.cc.

References safe_divide().

Referenced by map_range_float(), and map_range_float3().

◆ map_range_attribute()

static void blender::nodes::map_range_attribute ( GeometryComponent component,
const GeoNodeExecParams params 
)
static

◆ map_range_float()

static void blender::nodes::map_range_float ( FloatReadAttribute  attribute_input,
FloatWriteAttribute  attribute_result,
const GeoNodeExecParams params 
)
static

◆ map_range_float3()

static void blender::nodes::map_range_float3 ( Float3ReadAttribute  attribute_input,
Float3WriteAttribute  attribute_result,
const GeoNodeExecParams params 
)
static

◆ map_smootherstep()

static float blender::nodes::map_smootherstep ( const float  value,
const float  min_from,
const float  max_from,
const float  min_to,
const float  max_to 
)
static

◆ map_smoothstep()

static float blender::nodes::map_smoothstep ( const float  value,
const float  min_from,
const float  max_from,
const float  min_to,
const float  max_to 
)
static

◆ map_stepped()

static float blender::nodes::map_stepped ( const float  value,
const float  min_from,
const float  max_from,
const float  min_to,
const float  max_to,
const float  steps 
)
static

Definition at line 129 of file node_geo_attribute_map_range.cc.

References floorf, safe_divide(), and steps.

Referenced by map_range_float(), and map_range_float3().

◆ normal_to_euler_rotation()

static float3 blender::nodes::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 74 of file node_geo_point_distribute.cc.

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

Referenced by compute_special_attributes().

◆ operator!=() [1/2]

bool blender::nodes::operator!= ( const DNode a,
const DNode b 
)
inline

Definition at line 258 of file NOD_derived_node_tree.hh.

◆ operator!=() [2/2]

bool blender::nodes::operator!= ( const DSocket a,
const DSocket b 
)
inline

Definition at line 313 of file NOD_derived_node_tree.hh.

◆ operator==() [1/2]

bool blender::nodes::operator== ( const DNode a,
const DNode b 
)
inline

Definition at line 253 of file NOD_derived_node_tree.hh.

◆ operator==() [2/2]

bool blender::nodes::operator== ( const DSocket a,
const DSocket b 
)
inline

Definition at line 308 of file NOD_derived_node_tree.hh.

◆ point_rotate__axis_angle__object_space()

static void blender::nodes::point_rotate__axis_angle__object_space ( const int  domain_size,
const Float3ReadAttribute &  axis,
const FloatReadAttribute &  angles,
MutableSpan< float3 rotations 
)
static

◆ point_rotate__axis_angle__point_space()

static void blender::nodes::point_rotate__axis_angle__point_space ( const int  domain_size,
const Float3ReadAttribute &  axis,
const FloatReadAttribute &  angles,
MutableSpan< float3 rotations 
)
static

◆ point_rotate__euler__object_space()

static void blender::nodes::point_rotate__euler__object_space ( const int  domain_size,
const Float3ReadAttribute &  eulers,
MutableSpan< float3 rotations 
)
static

Definition at line 94 of file node_geo_point_rotate.cc.

References eul_to_mat3(), mat3_to_eul(), and mul_m3_m3m3().

Referenced by point_rotate_on_component().

◆ point_rotate__euler__point_space()

static void blender::nodes::point_rotate__euler__point_space ( const int  domain_size,
const Float3ReadAttribute &  eulers,
MutableSpan< float3 rotations 
)
static

Definition at line 109 of file node_geo_point_rotate.cc.

References eul_to_mat3(), mat3_to_eul(), and mul_m3_m3m3().

Referenced by point_rotate_on_component().

◆ point_rotate_on_component()

static void blender::nodes::point_rotate_on_component ( GeometryComponent component,
const GeoNodeExecParams params 
)
static

◆ proximity_calc()

static void blender::nodes::proximity_calc ( MutableSpan< float distance_span,
MutableSpan< float3 location_span,
Span< float3 positions,
BVHTreeFromMesh tree_data_mesh,
BVHTreeFromPointCloud tree_data_pointcloud,
const bool  bvh_mesh_success,
const bool  bvh_pointcloud_success,
const bool  store_distances,
const bool  store_locations 
)
static

◆ random_value_in_range() [1/4]

template<>
float blender::nodes::random_value_in_range ( const uint32_t  id,
const uint32_t  seed,
const float  min,
const float  max 
)
inline

Definition at line 86 of file node_geo_attribute_randomize.cc.

References BLI_hash_int_2d_to_float(), max, min, and seed.

◆ random_value_in_range() [2/4]

template<>
float3 blender::nodes::random_value_in_range ( const uint32_t  id,
const uint32_t  seed,
const float3  min,
const float3  max 
)
inline

Definition at line 105 of file node_geo_attribute_randomize.cc.

References BLI_hash_int_3d_to_float(), max, min, seed, x, y, and z.

◆ random_value_in_range() [3/4]

template<>
int blender::nodes::random_value_in_range ( const uint32_t  id,
const uint32_t  seed,
const int  min,
const int  max 
)
inline

Definition at line 95 of file node_geo_attribute_randomize.cc.

References max, min, round_fl_to_int(), and seed.

◆ random_value_in_range() [4/4]

template<typename T >
T blender::nodes::random_value_in_range ( const uint32_t  id,
const uint32_t  seed,
const T  min,
const T  max 
)

◆ randomize_attribute()

template<typename T >
static void blender::nodes::randomize_attribute ( MutableSpan< T span,
const T  min,
const T  max,
Span< uint32_t ids,
const uint32_t  seed,
const GeometryNodeAttributeRandomizeMode  operation 
)
static

◆ randomize_attribute_bool()

static void blender::nodes::randomize_attribute_bool ( MutableSpan< bool >  span,
Span< uint32_t ids,
const uint32_t  seed,
const GeometryNodeAttributeRandomizeMode  operation 
)
static

◆ randomize_attribute_on_component()

static void blender::nodes::randomize_attribute_on_component ( GeometryComponent component,
const GeoNodeExecParams params,
StringRef  attribute_name,
const CustomDataType  data_type,
const GeometryNodeAttributeRandomizeMode  operation,
const int  seed 
)
static

◆ remove_attribute()

static void blender::nodes::remove_attribute ( GeometryComponent component,
GeoNodeExecParams params,
Span< std::string >  attribute_names 
)
static

Definition at line 41 of file node_geo_attribute_remove.cc.

References component(), Error, params, and TIP_.

Referenced by geo_node_attribute_remove_exec().

◆ sample_mesh_surface()

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

◆ separate_attribute()

static void blender::nodes::separate_attribute ( GeometryComponent component,
const GeoNodeExecParams params 
)
static

◆ separate_geometry_set()

static GeometrySet blender::nodes::separate_geometry_set ( const GeometrySet set_in,
const StringRef  mask_name,
const bool  invert 
)
static

◆ separate_points_from_component()

static void blender::nodes::separate_points_from_component ( const GeometryComponent in_component,
GeometryComponent out_component,
const StringRef  mask_name,
const bool  invert 
)
static

◆ smootherstep_polynomial()

static float blender::nodes::smootherstep_polynomial ( float  x)
static

Definition at line 177 of file node_geo_attribute_map_range.cc.

References x.

Referenced by map_smootherstep().

◆ smoothstep_polynomial()

static float blender::nodes::smoothstep_polynomial ( float  x)
static

Definition at line 159 of file node_geo_attribute_map_range.cc.

References x.

Referenced by map_smoothstep().

◆ socket_cpp_type_get()

const CPPType * blender::nodes::socket_cpp_type_get ( const bNodeSocketType stype)

◆ socket_cpp_value_get()

bool blender::nodes::socket_cpp_value_get ( const bNodeSocket socket,
void *  r_value 
)

Definition at line 50 of file type_callbacks.cc.

References bNodeSocketType::get_cpp_value, and bNodeSocket::typeinfo.

Referenced by initialize_group_input().

◆ socket_expand_in_mf_network()

void blender::nodes::socket_expand_in_mf_network ( SocketMFNetworkBuilder builder)

◆ socket_is_mf_data_socket()

bool blender::nodes::socket_is_mf_data_socket ( const bNodeSocketType stype)

◆ socket_mf_type_get()

std::optional< MFDataType > blender::nodes::socket_mf_type_get ( const bNodeSocketType stype)

◆ sphere_corner_total()

static int blender::nodes::sphere_corner_total ( const int  segments,
const int  rings 
)
static

Definition at line 51 of file node_geo_mesh_primitive_uv_sphere.cc.

Referenced by create_uv_sphere_mesh().

◆ sphere_edge_total()

static int blender::nodes::sphere_edge_total ( const int  segments,
const int  rings 
)
static

Definition at line 46 of file node_geo_mesh_primitive_uv_sphere.cc.

Referenced by create_uv_sphere_mesh().

◆ sphere_face_total()

static int blender::nodes::sphere_face_total ( const int  segments,
const int  rings 
)
static

Definition at line 58 of file node_geo_mesh_primitive_uv_sphere.cc.

Referenced by create_uv_sphere_mesh().

◆ sphere_vert_total()

static int blender::nodes::sphere_vert_total ( const int  segments,
const int  rings 
)
static

◆ to_base_components()

template<typename Component >
static Array<const GeometryComponent *> blender::nodes::to_base_components ( Span< const Component * >  components)
static

Definition at line 127 of file node_geo_join_geometry.cc.

Referenced by join_components().

◆ transform_instances()

static void blender::nodes::transform_instances ( InstancesComponent instances,
const float3  translation,
const float3  rotation,
const float3  scale 
)
static

◆ transform_mesh()

void blender::nodes::transform_mesh ( Mesh mesh,
const float3  translation,
const float3  rotation,
const float3  scale 
)

◆ transform_pointcloud()

static void blender::nodes::transform_pointcloud ( PointCloud pointcloud,
const float3  translation,
const float3  rotation,
const float3  scale 
)
static

◆ transform_volume()

static void blender::nodes::transform_volume ( Volume volume,
const float3  translation,
const float3  rotation,
const float3  scale,
GeoNodeExecParams params 
)
static

◆ try_dispatch_float_math_fl3_fl3_fl3_to_fl3()

template<typename Callback >
bool blender::nodes::try_dispatch_float_math_fl3_fl3_fl3_to_fl3 ( const NodeVectorMathOperation  operation,
Callback &&  callback 
)
inline

◆ try_dispatch_float_math_fl3_fl3_fl_to_fl3()

template<typename Callback >
bool blender::nodes::try_dispatch_float_math_fl3_fl3_fl_to_fl3 ( const NodeVectorMathOperation  operation,
Callback &&  callback 
)
inline

This is similar to try_dispatch_float_math_fl_to_fl, just with a different callback signature.

Definition at line 366 of file NOD_math_functions.hh.

References Freestyle::a, Freestyle::c, callback, get_float3_math_operation_info(), NODE_VECTOR_MATH_REFRACT, blender::float3::normalized(), and blender::float3::refract().

Referenced by do_math_operation_fl3_fl3_fl_to_fl3(), and get_multi_function().

◆ try_dispatch_float_math_fl3_fl3_to_fl()

template<typename Callback >
bool blender::nodes::try_dispatch_float_math_fl3_fl3_to_fl ( const NodeVectorMathOperation  operation,
Callback &&  callback 
)
inline

This is similar to try_dispatch_float_math_fl_to_fl, just with a different callback signature.

Definition at line 306 of file NOD_math_functions.hh.

References Freestyle::a, callback, blender::float3::distance(), blender::float3::dot(), get_float3_math_operation_info(), NODE_VECTOR_MATH_DISTANCE, and NODE_VECTOR_MATH_DOT_PRODUCT.

Referenced by do_math_operation_fl3_fl3_to_fl(), and get_multi_function().

◆ try_dispatch_float_math_fl3_fl3_to_fl3()

template<typename Callback >
bool blender::nodes::try_dispatch_float_math_fl3_fl3_to_fl3 ( const NodeVectorMathOperation  operation,
Callback &&  callback 
)
inline

◆ try_dispatch_float_math_fl3_fl_to_fl3()

template<typename Callback >
bool blender::nodes::try_dispatch_float_math_fl3_fl_to_fl3 ( const NodeVectorMathOperation  operation,
Callback &&  callback 
)
inline

This is similar to try_dispatch_float_math_fl_to_fl, just with a different callback signature.

Definition at line 421 of file NOD_math_functions.hh.

References Freestyle::a, callback, get_float3_math_operation_info(), and NODE_VECTOR_MATH_SCALE.

Referenced by do_math_operation_fl3_fl_to_fl3(), and get_multi_function().

◆ try_dispatch_float_math_fl3_to_fl()

template<typename Callback >
bool blender::nodes::try_dispatch_float_math_fl3_to_fl ( const NodeVectorMathOperation  operation,
Callback &&  callback 
)
inline

This is similar to try_dispatch_float_math_fl_to_fl, just with a different callback signature.

Definition at line 394 of file NOD_math_functions.hh.

References callback, get_float3_math_operation_info(), blender::float3::length(), and NODE_VECTOR_MATH_LENGTH.

Referenced by do_math_operation_fl3_to_fl(), and get_multi_function().

◆ try_dispatch_float_math_fl3_to_fl3()

template<typename Callback >
bool blender::nodes::try_dispatch_float_math_fl3_to_fl3 ( const NodeVectorMathOperation  operation,
Callback &&  callback 
)
inline

◆ try_dispatch_float_math_fl_fl_fl_to_fl()

template<typename Callback >
bool blender::nodes::try_dispatch_float_math_fl_fl_fl_to_fl ( const int  operation,
Callback &&  callback 
)
inline

This is similar to try_dispatch_float_math_fl_to_fl, just with a different callback signature.

Definition at line 173 of file NOD_math_functions.hh.

References Freestyle::a, Freestyle::c, callback, fabsf, fmaxf, get_float_math_operation_info(), NODE_MATH_COMPARE, NODE_MATH_MULTIPLY_ADD, NODE_MATH_SMOOTH_MAX, NODE_MATH_SMOOTH_MIN, NODE_MATH_WRAP, smoothminf(), and wrapf().

Referenced by do_math_operation(), and get_base_multi_function().

◆ try_dispatch_float_math_fl_fl_to_bool()

template<typename Callback >
bool blender::nodes::try_dispatch_float_math_fl_fl_to_bool ( const FloatCompareOperation  operation,
Callback &&  callback 
)
inline

This is similar to try_dispatch_float_math_fl_to_fl, just with a different callback signature.

Definition at line 207 of file NOD_math_functions.hh.

References Freestyle::a, callback, get_float_compare_operation_info(), NODE_FLOAT_COMPARE_GREATER_EQUAL, NODE_FLOAT_COMPARE_GREATER_THAN, NODE_FLOAT_COMPARE_LESS_EQUAL, and NODE_FLOAT_COMPARE_LESS_THAN.

Referenced by do_math_operation().

◆ try_dispatch_float_math_fl_fl_to_fl()

template<typename Callback >
bool blender::nodes::try_dispatch_float_math_fl_fl_to_fl ( const int  operation,
Callback &&  callback 
)
inline

◆ try_dispatch_float_math_fl_to_fl()

template<typename Callback >
bool blender::nodes::try_dispatch_float_math_fl_to_fl ( const int  operation,
Callback &&  callback 
)
inline

This calls the callback with two arguments:

  1. The math function that takes a float as input and outputs a new float.
  2. A #FloatMathOperationInfo struct reference. Returns true when the callback has been called, otherwise false.

The math function that is passed to the callback is actually a lambda function that is different for every operation. Therefore, if the callback is templated on the math function, it will get instantiated for every operation separately. This has two benefits:

  • The compiler can optimize the callback for every operation separately.
  • A static variable declared in the callback will be generated for every operation separately.

If separate instantiations are not desired, the callback can also take a function pointer with the following signature as input instead: float (*math_function)(float a).

Definition at line 59 of file NOD_math_functions.hh.

References Freestyle::a, atanf, callback, ceilf, compatible_signf(), cosf, coshf, DEG2RAD, expf, fabs(), floorf, get_float_math_operation_info(), NODE_MATH_ABSOLUTE, NODE_MATH_ARCCOSINE, NODE_MATH_ARCSINE, NODE_MATH_ARCTANGENT, NODE_MATH_CEIL, NODE_MATH_COSH, NODE_MATH_COSINE, NODE_MATH_DEGREES, NODE_MATH_EXPONENT, NODE_MATH_FLOOR, NODE_MATH_FRACTION, NODE_MATH_INV_SQRT, NODE_MATH_RADIANS, NODE_MATH_ROUND, NODE_MATH_SIGN, NODE_MATH_SINE, NODE_MATH_SINH, NODE_MATH_SQRT, NODE_MATH_TANGENT, NODE_MATH_TANH, NODE_MATH_TRUNC, RAD2DEG, safe_acosf(), safe_asinf(), safe_inverse_sqrtf(), safe_sqrtf(), sinf, sinhf, tanf, and tanhf.

Referenced by do_math_operation(), and get_base_multi_function().

◆ update_attribute_input_socket_availabilities()

void blender::nodes::update_attribute_input_socket_availabilities ( bNode node,
const StringRef  name,
const GeometryNodeAttributeInputMode  mode,
const bool  name_is_available 
)

◆ update_elimination_mask_based_on_density_factors()

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

◆ update_elimination_mask_for_close_points()

static BLI_NOINLINE void blender::nodes::update_elimination_mask_for_close_points ( Span< Vector< float3 >>  positions_all,
Span< int >  instance_start_offsets,
const float  minimum_distance,
MutableSpan< bool >  elimination_mask,
const int  initial_points_len 
)
static

◆ use_translate()

static bool blender::nodes::use_translate ( const float3  rotation,
const float3  scale 
)
static

◆ vert_total()

static int blender::nodes::vert_total ( const GeometryNodeMeshCircleFillType  fill_type,
const int  verts_num,
const bool  top_is_point,
const bool  bottom_is_point 
)
static