Blender  V3.3
Namespaces | Classes | Typedefs | Functions | Variables
blender::bke Namespace Reference

Namespaces

 attribute_accessor_functions
 
 calc_edges
 
 crazyspace
 
 cryptomatte
 
 curves
 
 id
 
 idprop
 
 image
 
 mesh_surface_sample
 
 node_field_inferencing
 
 paint
 
 pbvh
 
 tests
 

Classes

class  OwnedAnonymousAttributeID
 
struct  SelectedBonesResult
 
class  AssetCatalogService
 
class  AssetCatalogCollection
 
class  AssetCatalogTreeItem
 
class  AssetCatalogTree
 
class  AssetCatalogDefinitionFile
 
class  AssetCatalog
 
struct  AssetCatalogLessThan
 
class  AssetCatalogFilter
 
class  AssetCatalogPath
 
struct  AssetLibrary
 
class  AttributeIDRef
 
struct  AttributeMetaData
 
struct  AttributeKind
 
struct  AttributeInit
 
struct  AttributeInitDefault
 
struct  AttributeInitVArray
 
struct  AttributeInitMove
 
struct  AttributeReader
 
struct  AttributeWriter
 
struct  SpanAttributeWriter
 
struct  GAttributeReader
 
struct  GAttributeWriter
 
struct  GSpanAttributeWriter
 
struct  AttributeAccessorFunctions
 
class  AttributeAccessor
 
class  MutableAttributeAccessor
 
struct  AttributeTransferData
 
class  CustomDataAttributes
 
class  CurvesGeometryRuntime
 
class  CurvesGeometry
 
class  CurvesEditHints
 
struct  CurvesSurfaceTransforms
 
class  GeometryComponentFieldContext
 
class  GeometryFieldInput
 
class  AttributeFieldInput
 
class  IDAttributeFieldInput
 
class  NormalFieldInput
 
class  AnonymousAttributeFieldInput
 
class  CurveLengthFieldInput
 
struct  GeometryInstanceGroup
 
class  bNodeTreeRuntime
 
class  bNodeSocketRuntime
 
class  bNodeRuntime
 
struct  ConversionFunctions
 
class  DataTypeConversions
 
struct  VolumeToMeshResolution
 
class  AssetLibraryService
 
struct  CustomDataAccessInfo
 
class  BuiltinAttributeProvider
 
class  DynamicAttributesProvider
 
class  CustomDataAttributeProvider
 
class  NamedLegacyCustomDataProvider
 
class  BuiltinCustomDataLayerProvider
 
class  ComponentAttributeProviders
 
struct  CurvesInfo
 
struct  ResultOffsets
 
struct  CombinationInfo
 
class  VArray_For_SplineToPoint
 
class  BuiltinSplineAttributeProvider
 
class  VArrayImpl_For_SplinePoints
 
class  VArrayImpl_For_SplinePosition
 
class  VArrayImpl_For_BezierHandles
 
class  BuiltinPointAttributeProvider
 
class  PositionAttributeProvider
 
class  BezierHandleAttributeProvider
 
class  DynamicPointAttributeProvider
 
class  InstancePositionAttributeProvider
 
class  VArrayImpl_For_VertexWeights
 
class  VertexGroupsAttributeProvider
 
class  NormalAttributeProvider
 
struct  NodeTreeRelations
 
struct  TreeUpdateResult
 
class  NodeTreeMainUpdater
 
class  GVArray_For_ConvertedGVArray
 
class  GVMutableArray_For_ConvertedGVMutableArray
 

Typedefs

using FoundFCurveCallback = blender::FunctionRef< void(FCurve *fcurve, const char *bone_name)>
 
using StrongAnonymousAttributeID = OwnedAnonymousAttributeID< true >
 
using WeakAnonymousAttributeID = OwnedAnonymousAttributeID< false >
 
using SelectedBoneCallback = blender::FunctionRef< void(Bone *bone)>
 
using BoneNameSet = blender::Set< std::string >
 
using CatalogID = bUUID
 
using CatalogPathComponent = std::string
 
using CatalogFilePath = std::string
 
using OwningAssetCatalogMap = Map< CatalogID, std::unique_ptr< AssetCatalog > >
 
using AssetCatalogOrderedSet = std::set< const AssetCatalog *, AssetCatalogLessThan >
 
using MutableAssetCatalogOrderedSet = std::set< AssetCatalog *, AssetCatalogLessThan >
 
using AttributeForeachCallback = FunctionRef< bool(const AttributeIDRef &attribute_id, const AttributeMetaData &meta_data)>
 
using TreeNodePair = std::pair< bNodeTree *, bNode * >
 
using ObjectModifierPair = std::pair< Object *, ModifierData * >
 
using NodeSocketPair = std::pair< bNode *, bNodeSocket * >
 

Functions

void BKE_action_find_fcurves_with_bones (const bAction *action, FoundFCurveCallback callback)
 
SelectedBonesResult BKE_armature_find_selected_bones (const bArmature *armature, SelectedBoneCallback callback)
 
BoneNameSet BKE_armature_find_selected_bone_names (const bArmature *armature)
 
std::ostream & operator<< (std::ostream &stream, const AssetCatalogPath &path_to_append)
 
bool allow_procedural_attribute_access (StringRef attribute_name)
 
eCustomDataType attribute_data_type_highest_complexity (Span< eCustomDataType > data_types)
 
eAttrDomain attribute_domain_highest_priority (Span< eAttrDomain > domains)
 
AttributeAccessor mesh_attributes (const Mesh &mesh)
 
MutableAttributeAccessor mesh_attributes_for_write (Mesh &mesh)
 
AttributeAccessor pointcloud_attributes (const PointCloud &pointcloud)
 
MutableAttributeAccessor pointcloud_attributes_for_write (PointCloud &pointcloud)
 
Curvescurve_legacy_to_curves (const Curve &curve_legacy)
 
Curvescurve_legacy_to_curves (const Curve &curve_legacy, const ListBase &nurbs_list)
 
Meshcurve_to_mesh_sweep (const CurvesGeometry &main, const CurvesGeometry &profile, bool fill_caps)
 
Meshcurve_to_wire_mesh (const CurvesGeometry &curve)
 
template<typename T , BLI_ENABLE_IF(std::is_integral_v< T >) >
constexpr IndexRange offsets_to_range (Span< T > offsets, int64_t index)
 
Curvescurves_new_nomain (int points_num, int curves_num)
 
Curvescurves_new_nomain (CurvesGeometry curves)
 
Curvescurves_new_nomain_single (int points_num, CurveType type)
 
void curves_copy_parameters (const Curves &src, Curves &dst)
 
VArray< float3mesh_normals_varray (const MeshComponent &mesh_component, const Mesh &mesh, const IndexMask mask, eAttrDomain domain)
 
GeometrySet object_get_evaluated_geometry_set (const Object &object)
 
void geometry_set_gather_instances (const GeometrySet &geometry_set, Vector< GeometryInstanceGroup > &r_instance_groups)
 
const DataTypeConversionsget_implicit_type_conversions ()
 
static std::string asset_definition_default_file_path_from_dir (StringRef asset_library_root)
 
static void on_blendfile_load (struct Main *, struct PointerRNA **, const int, void *)
 
static std::optional< blender::bke::MutableAttributeAccessorget_attribute_accessor_for_write (ID &id)
 
std::ostream & operator<< (std::ostream &stream, const AttributeIDRef &attribute_id)
 
static int attribute_data_type_complexity (const eCustomDataType data_type)
 
static int attribute_domain_priority (const eAttrDomain domain)
 
static AttributeIDRef attribute_id_from_custom_data_layer (const CustomDataLayer &layer)
 
static bool add_builtin_type_custom_data_layer_from_init (CustomData &custom_data, const eCustomDataType data_type, const int domain_num, const AttributeInit &initializer)
 
static voidadd_generic_custom_data_layer (CustomData &custom_data, const eCustomDataType data_type, const eCDAllocType alloctype, void *layer_data, const int domain_num, const AttributeIDRef &attribute_id)
 
static bool add_custom_data_layer_from_attribute_init (const AttributeIDRef &attribute_id, CustomData &custom_data, const eCustomDataType data_type, const int domain_num, const AttributeInit &initializer)
 
static bool custom_data_layer_matches_attribute_id (const CustomDataLayer &layer, const AttributeIDRef &attribute_id)
 
template<typename T >
GVArray make_array_read_attribute (const void *data, const int domain_num)
 
template<typename T >
GVMutableArray make_array_write_attribute (void *data, const int domain_num)
 
static CurveType curve_type_from_legacy (const short type)
 
static HandleType handle_type_from_legacy (const uint8_t handle_type_legacy)
 
static NormalMode normal_mode_from_legacy (const short twist_mode)
 
static KnotsMode knots_mode_from_legacy (const short flag)
 
static void mark_edges_sharp (MutableSpan< MEdge > edges)
 
static void fill_mesh_topology (const int vert_offset, const int edge_offset, const int poly_offset, const int loop_offset, const int main_point_num, const int profile_point_num, const bool main_cyclic, const bool profile_cyclic, const bool fill_caps, MutableSpan< MEdge > edges, MutableSpan< MLoop > loops, MutableSpan< MPoly > polys)
 
static void mark_bezier_vector_edges_sharp (const int profile_point_num, const int main_segment_num, const Span< int > control_point_offsets, const Span< int8_t > handle_types_left, const Span< int8_t > handle_types_right, MutableSpan< MEdge > edges)
 
static void fill_mesh_positions (const int main_point_num, const int profile_point_num, const Span< float3 > main_positions, const Span< float3 > profile_positions, const Span< float3 > tangents, const Span< float3 > normals, const Span< float > radii, MutableSpan< MVert > mesh_positions)
 
static CurvesInfo get_curves_info (const CurvesGeometry &main, const CurvesGeometry &profile)
 
static ResultOffsets calculate_result_offsets (const CurvesInfo &info, const bool fill_caps)
 
static eAttrDomain get_attribute_domain_for_mesh (const AttributeAccessor &mesh_attributes, const AttributeIDRef &attribute_id)
 
static bool should_add_attribute_to_mesh (const AttributeAccessor &curve_attributes, const AttributeAccessor &mesh_attributes, const AttributeIDRef &id)
 
static GSpan evaluated_attribute_if_necessary (const GVArray &src, const CurvesGeometry &curves, const std::array< int, CURVE_TYPES_NUM > &type_counts, Vector< std::byte > &buffer)
 
template<typename Fn >
static void foreach_curve_combination (const CurvesInfo &info, const ResultOffsets &offsets, const Fn &fn)
 
template<typename T >
static void copy_main_point_data_to_mesh_verts (const Span< T > src, const int profile_point_num, MutableSpan< T > dst)
 
template<typename T >
static void copy_main_point_data_to_mesh_edges (const Span< T > src, const int profile_point_num, const int main_segment_num, const int profile_segment_num, MutableSpan< T > dst)
 
template<typename T >
static void copy_main_point_data_to_mesh_faces (const Span< T > src, const int main_segment_num, const int profile_segment_num, MutableSpan< T > dst)
 
static void copy_main_point_domain_attribute_to_mesh (const CurvesInfo &curves_info, const ResultOffsets &offsets, const eAttrDomain dst_domain, const GSpan src_all, GMutableSpan dst_all)
 
template<typename T >
static void copy_profile_point_data_to_mesh_verts (const Span< T > src, const int main_point_num, MutableSpan< T > dst)
 
template<typename T >
static void copy_profile_point_data_to_mesh_edges (const Span< T > src, const int main_segment_num, MutableSpan< T > dst)
 
template<typename T >
static void copy_profile_point_data_to_mesh_faces (const Span< T > src, const int main_segment_num, const int profile_segment_num, MutableSpan< T > dst)
 
static void copy_profile_point_domain_attribute_to_mesh (const CurvesInfo &curves_info, const ResultOffsets &offsets, const eAttrDomain dst_domain, const GSpan src_all, GMutableSpan dst_all)
 
template<typename T >
static void copy_indices_to_offset_ranges (const VArray< T > &src, const Span< int > curve_indices, const Span< int > mesh_offsets, MutableSpan< T > dst)
 
static void copy_curve_domain_attribute_to_mesh (const ResultOffsets &mesh_offsets, const Span< int > curve_indices, const eAttrDomain dst_domain, const GVArray &src, GMutableSpan dst)
 
static CurvesGeometry get_curve_single_vert ()
 
static PointIndices lookup_point_indices (Span< int > offsets, const int index)
 
template<typename T >
static void adapt_curve_domain_point_to_spline_impl (const CurveEval &curve, const VArray< T > &old_values, MutableSpan< T > r_values)
 
template<>
void adapt_curve_domain_point_to_spline_impl (const CurveEval &curve, const VArray< bool > &old_values, MutableSpan< bool > r_values)
 
static GVArray adapt_curve_domain_point_to_spline (const CurveEval &curve, GVArray varray)
 
static GVArray adapt_curve_domain_spline_to_point (const CurveEval &curve, GVArray varray)
 
static AttributeAccessorFunctions get_curve_accessor_functions ()
 
static const AttributeAccessorFunctionsget_curve_accessor_functions_ref ()
 
static AttributeAccessorFunctions get_curves_accessor_functions ()
 
static const AttributeAccessorFunctionsget_curves_accessor_functions_ref ()
 
static float3 get_transform_position (const float4x4 &transform)
 
static void set_transform_position (float4x4 &transform, const float3 position)
 
static ComponentAttributeProviders create_attribute_providers_for_instances ()
 
static AttributeAccessorFunctions get_instances_accessor_functions ()
 
static const AttributeAccessorFunctionsget_instances_accessor_functions_ref ()
 
template<typename T >
static void adapt_mesh_domain_corner_to_point_impl (const Mesh &mesh, const VArray< T > &old_values, MutableSpan< T > r_values)
 
template<>
void adapt_mesh_domain_corner_to_point_impl (const Mesh &mesh, const VArray< bool > &old_values, MutableSpan< bool > r_values)
 
static GVArray adapt_mesh_domain_corner_to_point (const Mesh &mesh, const GVArray &varray)
 
static GVArray adapt_mesh_domain_point_to_corner (const Mesh &mesh, const GVArray &varray)
 
static GVArray adapt_mesh_domain_corner_to_face (const Mesh &mesh, const GVArray &varray)
 
template<typename T >
static void adapt_mesh_domain_corner_to_edge_impl (const Mesh &mesh, const VArray< T > &old_values, MutableSpan< T > r_values)
 
template<>
void adapt_mesh_domain_corner_to_edge_impl (const Mesh &mesh, const VArray< bool > &old_values, MutableSpan< bool > r_values)
 
static GVArray adapt_mesh_domain_corner_to_edge (const Mesh &mesh, const GVArray &varray)
 
template<typename T >
void adapt_mesh_domain_face_to_point_impl (const Mesh &mesh, const VArray< T > &old_values, MutableSpan< T > r_values)
 
template<>
void adapt_mesh_domain_face_to_point_impl (const Mesh &mesh, const VArray< bool > &old_values, MutableSpan< bool > r_values)
 
static GVArray adapt_mesh_domain_face_to_point (const Mesh &mesh, const GVArray &varray)
 
template<typename T >
void adapt_mesh_domain_face_to_corner_impl (const Mesh &mesh, const VArray< T > &old_values, MutableSpan< T > r_values)
 
static GVArray adapt_mesh_domain_face_to_corner (const Mesh &mesh, const GVArray &varray)
 
template<typename T >
void adapt_mesh_domain_face_to_edge_impl (const Mesh &mesh, const VArray< T > &old_values, MutableSpan< T > r_values)
 
template<>
void adapt_mesh_domain_face_to_edge_impl (const Mesh &mesh, const VArray< bool > &old_values, MutableSpan< bool > r_values)
 
static GVArray adapt_mesh_domain_face_to_edge (const Mesh &mesh, const GVArray &varray)
 
static GVArray adapt_mesh_domain_point_to_face (const Mesh &mesh, const GVArray &varray)
 
static GVArray adapt_mesh_domain_point_to_edge (const Mesh &mesh, const GVArray &varray)
 
template<typename T >
void adapt_mesh_domain_edge_to_corner_impl (const Mesh &mesh, const VArray< T > &old_values, MutableSpan< T > r_values)
 
template<>
void adapt_mesh_domain_edge_to_corner_impl (const Mesh &mesh, const VArray< bool > &old_values, MutableSpan< bool > r_values)
 
static GVArray adapt_mesh_domain_edge_to_corner (const Mesh &mesh, const GVArray &varray)
 
template<typename T >
static void adapt_mesh_domain_edge_to_point_impl (const Mesh &mesh, const VArray< T > &old_values, MutableSpan< T > r_values)
 
template<>
void adapt_mesh_domain_edge_to_point_impl (const Mesh &mesh, const VArray< bool > &old_values, MutableSpan< bool > r_values)
 
static GVArray adapt_mesh_domain_edge_to_point (const Mesh &mesh, const GVArray &varray)
 
static GVArray adapt_mesh_domain_edge_to_face (const Mesh &mesh, const GVArray &varray)
 
template<typename StructT , typename ElemT , ElemT(*)(const StructT &) GetFunc>
static GVArray make_derived_read_attribute (const void *data, const int domain_num)
 
template<typename StructT , typename ElemT , ElemT(*)(const StructT &) GetFunc, void(*)(StructT &, ElemT) SetFunc>
static GVMutableArray make_derived_write_attribute (void *data, const int domain_num)
 
static float3 get_vertex_position (const MVert &vert)
 
static void set_vertex_position (MVert &vert, float3 position)
 
static void tag_component_positions_changed (void *owner)
 
static int get_material_index (const MPoly &mpoly)
 
static void set_material_index (MPoly &mpoly, int index)
 
static bool get_shade_smooth (const MPoly &mpoly)
 
static void set_shade_smooth (MPoly &mpoly, bool value)
 
static float2 get_loop_uv (const MLoopUV &uv)
 
static void set_loop_uv (MLoopUV &uv, float2 co)
 
static float get_crease (const MEdge &edge)
 
static void set_crease (MEdge &edge, float value)
 
static ComponentAttributeProviders create_attribute_providers_for_mesh ()
 
static AttributeAccessorFunctions get_mesh_accessor_functions ()
 
static const AttributeAccessorFunctionsget_mesh_accessor_functions_ref ()
 
static ComponentAttributeProviders create_attribute_providers_for_point_cloud ()
 
static AttributeAccessorFunctions get_pointcloud_accessor_functions ()
 
static const AttributeAccessorFunctionsget_pointcloud_accessor_functions_ref ()
 
static void geometry_set_collect_recursive (const GeometrySet &geometry_set, const float4x4 &transform, Vector< GeometryInstanceGroup > &r_sets)
 
static void geometry_set_collect_recursive_collection (const Collection &collection, const float4x4 &transform, Vector< GeometryInstanceGroup > &r_sets)
 
static void add_final_mesh_as_geometry_component (const Object &object, GeometrySet &geometry_set)
 
static void geometry_set_collect_recursive_collection_instance (const Collection &collection, const float4x4 &transform, Vector< GeometryInstanceGroup > &r_sets)
 
static void geometry_set_collect_recursive_object (const Object &object, const float4x4 &transform, Vector< GeometryInstanceGroup > &r_sets)
 
bNodeSocketnode_find_enabled_socket (bNode &node, const eNodeSocketInOut in_out, const StringRef name)
 
bNodeSocketnode_find_enabled_input_socket (bNode &node, StringRef name)
 
bNodeSocketnode_find_enabled_output_socket (bNode &node, StringRef name)
 
bNodenode_copy_with_mapping (bNodeTree *dst_tree, const bNode &node_src, const int flag, const bool unique_name, Map< const bNodeSocket *, bNodeSocket * > &socket_map)
 
bNodenode_copy (bNodeTree *dst_tree, const bNode &src_node, const int flag, const bool unique_name)
 
static int get_internal_link_type_priority (const bNodeSocketType *from, const bNodeSocketType *to)
 
template<typename Func >
void to_static_color_type (const eCustomDataType type, const Func &func)
 
template<typename T >
void to_float (const T &src, float dst[4])
 
template<>
void to_float (const MLoopCol &src, float dst[4])
 
template<>
void to_float (const MPropCol &src, float dst[4])
 
template<typename T >
void from_float (const float src[4], T &dst)
 
template<>
void from_float (const float src[4], MLoopCol &dst)
 
template<>
void from_float (const float src[4], MPropCol &dst)
 
template<typename T >
static void pbvh_vertex_color_get (const PBVH &pbvh, int vertex, float r_color[4])
 
template<typename T >
static void pbvh_vertex_color_set (PBVH &pbvh, int vertex, const float color[4])
 
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 int8_t float_to_int8 (const float &a)
 
static ColorGeometry4f float_to_color (const float &a)
 
static ColorGeometry4b float_to_byte_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 int8_t float2_to_int8 (const float2 &a)
 
static ColorGeometry4f float2_to_color (const float2 &a)
 
static ColorGeometry4b float2_to_byte_color (const float2 &a)
 
static bool float3_to_bool (const float3 &a)
 
static int8_t float3_to_int8 (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 ColorGeometry4f float3_to_color (const float3 &a)
 
static ColorGeometry4b float3_to_byte_color (const float3 &a)
 
static bool int_to_bool (const int32_t &a)
 
static int8_t int_to_int8 (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 ColorGeometry4f int_to_color (const int32_t &a)
 
static ColorGeometry4b int_to_byte_color (const int32_t &a)
 
static bool int8_to_bool (const int8_t &a)
 
static int int8_to_int (const int8_t &a)
 
static float int8_to_float (const int8_t &a)
 
static float2 int8_to_float2 (const int8_t &a)
 
static float3 int8_to_float3 (const int8_t &a)
 
static ColorGeometry4f int8_to_color (const int8_t &a)
 
static ColorGeometry4b int8_to_byte_color (const int8_t &a)
 
static float bool_to_float (const bool &a)
 
static int8_t bool_to_int8 (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 ColorGeometry4f bool_to_color (const bool &a)
 
static ColorGeometry4b bool_to_byte_color (const bool &a)
 
static bool color_to_bool (const ColorGeometry4f &a)
 
static float color_to_float (const ColorGeometry4f &a)
 
static int32_t color_to_int (const ColorGeometry4f &a)
 
static int8_t color_to_int8 (const ColorGeometry4f &a)
 
static float2 color_to_float2 (const ColorGeometry4f &a)
 
static float3 color_to_float3 (const ColorGeometry4f &a)
 
static ColorGeometry4b color_to_byte_color (const ColorGeometry4f &a)
 
static bool byte_color_to_bool (const ColorGeometry4b &a)
 
static float byte_color_to_float (const ColorGeometry4b &a)
 
static int32_t byte_color_to_int (const ColorGeometry4b &a)
 
static int8_t byte_color_to_int8 (const ColorGeometry4b &a)
 
static float2 byte_color_to_float2 (const ColorGeometry4b &a)
 
static float3 byte_color_to_float3 (const ColorGeometry4b &a)
 
static ColorGeometry4f byte_color_to_color (const ColorGeometry4b &a)
 
static DataTypeConversions create_implicit_conversions ()
 
Geometry Component
Vector< AttributeTransferDataretrieve_attributes_for_transfer (const bke::AttributeAccessor src_attributes, bke::MutableAttributeAccessor dst_attributes, eAttrDomainMask domain_mask, const Set< std::string > &skip={})
 
static blender::GVArray try_adapt_data_type (blender::GVArray varray, const blender::CPPType &to_type)
 
static StringRef get_random_id_attribute_name (const eAttrDomain domain)
 
#AttributeIDRef Inline Methods
bool operator== (const AttributeIDRef &a, const AttributeIDRef &b)
 
Accessors
std::array< int, CURVE_TYPES_NUMcalculate_type_counts (const VArray< int8_t > &types)
 
static int domain_num (const CurvesGeometry &curves, const eAttrDomain domain)
 
static CustomDatadomain_custom_data (CurvesGeometry &curves, const eAttrDomain domain)
 
static const CustomDatadomain_custom_data (const CurvesGeometry &curves, const eAttrDomain domain)
 
template<typename T >
static VArray< Tget_varray_attribute (const CurvesGeometry &curves, const eAttrDomain domain, const StringRefNull name, const T default_value)
 
template<typename T >
static Span< Tget_span_attribute (const CurvesGeometry &curves, const eAttrDomain domain, const StringRefNull name)
 
template<typename T >
static MutableSpan< Tget_mutable_attribute (CurvesGeometry &curves, const eAttrDomain domain, const StringRefNull name, const T default_value=T())
 
Curve Normals Access
VArray< float3curve_normals_varray (const CurveComponent &component, const eAttrDomain domain)
 
static Array< float3curve_normal_point_domain (const bke::CurvesGeometry &curves)
 
Constructors/Destructor
static void copy_curves_geometry (CurvesGeometry &dst, const CurvesGeometry &src)
 
static void move_curves_geometry (CurvesGeometry &dst, CurvesGeometry &src)
 
Evaluation
template<typename CountFn >
void build_offsets (MutableSpan< int > offsets, const CountFn &count_fn)
 
static void calculate_evaluated_offsets (const CurvesGeometry &curves, MutableSpan< int > offsets, MutableSpan< int > bezier_evaluated_offsets)
 
static void rotate_directions_around_axes (MutableSpan< float3 > directions, const Span< float3 > axes, const Span< float > angles)
 
Operations
static void translate_positions (MutableSpan< float3 > positions, const float3 &translation)
 
static void transform_positions (MutableSpan< float3 > positions, const float4x4 &matrix)
 
static std::optional< bounds::MinMaxResult< float3 > > curves_bounds (const CurvesGeometry &curves)
 
static void copy_between_buffers (const CPPType &type, const void *src_buffer, void *dst_buffer, const IndexRange src_range, const IndexRange dst_range)
 
template<typename T >
static void copy_with_map (const Span< T > src, const Span< int > map, MutableSpan< T > dst)
 
static void copy_with_map (const GSpan src, const Span< int > map, GMutableSpan dst)
 
static Array< int > build_point_to_curve_map (const CurvesGeometry &curves)
 
static CurvesGeometry copy_with_removed_points (const CurvesGeometry &curves, const IndexMask points_to_delete)
 
static CurvesGeometry copy_with_removed_curves (const CurvesGeometry &curves, const IndexMask curves_to_delete)
 
template<typename T >
static void reverse_curve_point_data (const CurvesGeometry &curves, const IndexMask curve_selection, MutableSpan< T > data)
 
template<typename T >
static void reverse_swap_curve_point_data (const CurvesGeometry &curves, const IndexMask curve_selection, MutableSpan< T > data_a, MutableSpan< T > data_b)
 
static bool layer_matches_name_and_type (const CustomDataLayer &layer, const StringRef name, const eCustomDataType type)
 
Domain Interpolation
template<typename T >
static void adapt_curve_domain_point_to_curve_impl (const CurvesGeometry &curves, const VArray< T > &old_values, MutableSpan< T > r_values)
 
template<>
void adapt_curve_domain_point_to_curve_impl (const CurvesGeometry &curves, const VArray< bool > &old_values, MutableSpan< bool > r_values)
 
static GVArray adapt_curve_domain_point_to_curve (const CurvesGeometry &curves, const GVArray &varray)
 
template<typename T >
static void adapt_curve_domain_curve_to_point_impl (const CurvesGeometry &curves, const VArray< T > &old_values, MutableSpan< T > r_values)
 
static GVArray adapt_curve_domain_curve_to_point (const CurvesGeometry &curves, const GVArray &varray)
 
Custom Data C++ API
const blender::CPPTypecustom_data_type_to_cpp_type (const eCustomDataType type)
 
eCustomDataType cpp_type_to_custom_data_type (const blender::CPPType &type)
 
Builtin Spline Attributes

Attributes with a value for every spline, stored contiguously or in every spline separately.

static int get_spline_resolution (const SplinePtr &spline)
 
static void set_spline_resolution (SplinePtr &spline, const int resolution)
 
static GVArray make_resolution_read_attribute (const CurveEval &curve)
 
static GVMutableArray make_resolution_write_attribute (CurveEval &curve)
 
static bool get_cyclic_value (const SplinePtr &spline)
 
static void set_cyclic_value (SplinePtr &spline, const bool value)
 
static GVArray make_cyclic_read_attribute (const CurveEval &curve)
 
static GVMutableArray make_cyclic_write_attribute (CurveEval &curve)
 
Builtin Control Point Attributes

Attributes with a value for every control point. Most of the complexity here is due to the fact that we must provide access to the attribute data as if it was a contiguous array when it is really stored separately on each spline. That will be inherently rather slow, but these virtual array implementations try to make it workable in common situations.

template<typename T >
static void point_attribute_materialize (Span< Span< T >> data, Span< int > offsets, const IndexMask mask, MutableSpan< T > r_span)
 
template<typename T >
static void point_attribute_materialize_to_uninitialized (Span< Span< T >> data, Span< int > offsets, const IndexMask mask, MutableSpan< T > r_span)
 
static GVArray varray_from_initializer (const AttributeInit &initializer, const eCustomDataType data_type, const Span< SplinePtr > splines)
 
static bool create_point_attribute (CurveEval *curve, const AttributeIDRef &attribute_id, const AttributeInit &initializer, const eCustomDataType data_type)
 
static bool remove_point_attribute (CurveEval *curve, const AttributeIDRef &attribute_id)
 
template<typename T >
VArray< Tpoint_data_varray (Array< MutableSpan< T >> spans, Array< int > offsets)
 
template<typename T >
VMutableArray< Tpoint_data_varray_mutable (Array< MutableSpan< T >> spans, Array< int > offsets)
 
Attribute Provider Declaration
static ComponentAttributeProviders create_attribute_providers_for_curve ()
 
static ComponentAttributeProviders create_attribute_providers_for_curve ()
 
Curve Length Field Input
static VArray< floatconstruct_curve_length_gvarray (const CurveComponent &component, const eAttrDomain domain)
 

Variables

const char * no_procedural_access_message
 
static const std::string ATTR_POSITION = "position"
 
static const std::string ATTR_RADIUS = "radius"
 
static const std::string ATTR_TILT = "tilt"
 
static const std::string ATTR_CURVE_TYPE = "curve_type"
 
static const std::string ATTR_CYCLIC = "cyclic"
 
static const std::string ATTR_RESOLUTION = "resolution"
 
static const std::string ATTR_NORMAL_MODE = "normal_mode"
 
static const std::string ATTR_HANDLE_TYPE_LEFT = "handle_type_left"
 
static const std::string ATTR_HANDLE_TYPE_RIGHT = "handle_type_right"
 
static const std::string ATTR_HANDLE_POSITION_LEFT = "handle_left"
 
static const std::string ATTR_HANDLE_POSITION_RIGHT = "handle_right"
 
static const std::string ATTR_NURBS_ORDER = "nurbs_order"
 
static const std::string ATTR_NURBS_WEIGHT = "nurbs_weight"
 
static const std::string ATTR_NURBS_KNOTS_MODE = "knots_mode"
 
static const std::string ATTR_SELECTION_POINT_FLOAT = ".selection_point_float"
 
static const std::string ATTR_SELECTION_CURVE_FLOAT = ".selection_curve_float"
 
static const std::string ATTR_SURFACE_UV_COORDINATE = "surface_uv_coordinate"
 

Typedef Documentation

◆ AssetCatalogOrderedSet

Set that stores catalogs ordered by (path, UUID). Being a set, duplicates are removed. The catalog's simple name is ignored in this.

Definition at line 495 of file BKE_asset_catalog.hh.

◆ AttributeForeachCallback

using blender::bke::AttributeForeachCallback = typedef FunctionRef<bool(const AttributeIDRef &attribute_id, const AttributeMetaData &meta_data)>

Definition at line 129 of file BKE_attribute.hh.

◆ BoneNameSet

using blender::bke::BoneNameSet = typedef blender::Set<std::string>

Definition at line 27 of file BKE_armature.hh.

◆ CatalogFilePath

using blender::bke::CatalogFilePath = typedef std::string

Definition at line 39 of file BKE_asset_catalog.hh.

◆ CatalogID

using blender::bke::CatalogID = typedef bUUID

Definition at line 35 of file BKE_asset_catalog.hh.

◆ CatalogPathComponent

using blender::bke::CatalogPathComponent = typedef std::string

Definition at line 36 of file BKE_asset_catalog.hh.

◆ FoundFCurveCallback

using blender::bke::FoundFCurveCallback = typedef blender::FunctionRef<void(FCurve *fcurve, const char *bone_name)>

Definition at line 18 of file BKE_action.hh.

◆ MutableAssetCatalogOrderedSet

Definition at line 496 of file BKE_asset_catalog.hh.

◆ NodeSocketPair

using blender::bke::NodeSocketPair = typedef std::pair<bNode *, bNodeSocket *>

Definition at line 676 of file node_tree_update.cc.

◆ ObjectModifierPair

using blender::bke::ObjectModifierPair = typedef std::pair<Object *, ModifierData *>

Definition at line 675 of file node_tree_update.cc.

◆ OwningAssetCatalogMap

using blender::bke::OwningAssetCatalogMap = typedef Map<CatalogID, std::unique_ptr<AssetCatalog> >

Definition at line 40 of file BKE_asset_catalog.hh.

◆ SelectedBoneCallback

Definition at line 23 of file BKE_armature.hh.

◆ StrongAnonymousAttributeID

Definition at line 152 of file BKE_anonymous_attribute.hh.

◆ TreeNodePair

using blender::bke::TreeNodePair = typedef std::pair<bNodeTree *, bNode *>

Definition at line 674 of file node_tree_update.cc.

◆ WeakAnonymousAttributeID

Definition at line 153 of file BKE_anonymous_attribute.hh.

Function Documentation

◆ adapt_curve_domain_curve_to_point()

static GVArray blender::bke::adapt_curve_domain_curve_to_point ( const CurvesGeometry curves,
const GVArray varray 
)
static

◆ adapt_curve_domain_curve_to_point_impl()

template<typename T >
static void blender::bke::adapt_curve_domain_curve_to_point_impl ( const CurvesGeometry curves,
const VArray< T > &  old_values,
MutableSpan< T r_values 
)
static

Copy the value from a curve to all of its points.

Note
Theoretically this interpolation does not need to compute all values at once. However, doing that makes the implementation simpler, and this can be optimized in the future if only some values are required.

Definition at line 1520 of file curves_geometry.cc.

References curves, blender::MutableSpan< T >::fill(), and blender::MutableSpan< T >::slice().

◆ adapt_curve_domain_point_to_curve()

static GVArray blender::bke::adapt_curve_domain_point_to_curve ( const CurvesGeometry curves,
const GVArray varray 
)
static

◆ adapt_curve_domain_point_to_curve_impl() [1/2]

template<>
void blender::bke::adapt_curve_domain_point_to_curve_impl ( const CurvesGeometry curves,
const VArray< bool > &  old_values,
MutableSpan< bool r_values 
)

A curve is selected if all of its control points were selected.

Note
Theoretically this interpolation does not need to compute all values at once. However, doing that makes the implementation simpler, and this can be optimized in the future if only some values are required.

Definition at line 1482 of file curves_geometry.cc.

References curves, and blender::MutableSpan< T >::fill().

◆ adapt_curve_domain_point_to_curve_impl() [2/2]

template<typename T >
static void blender::bke::adapt_curve_domain_point_to_curve_impl ( const CurvesGeometry curves,
const VArray< T > &  old_values,
MutableSpan< T r_values 
)
static

Mix together all of a curve's control point values.

Note
Theoretically this interpolation does not need to compute all values at once. However, doing that makes the implementation simpler, and this can be optimized in the future if only some values are required.

Definition at line 1461 of file curves_geometry.cc.

References curves.

◆ adapt_curve_domain_point_to_spline()

static GVArray blender::bke::adapt_curve_domain_point_to_spline ( const CurveEval curve,
GVArray  varray 
)
static

◆ adapt_curve_domain_point_to_spline_impl() [1/2]

template<>
void blender::bke::adapt_curve_domain_point_to_spline_impl ( const CurveEval curve,
const VArray< bool > &  old_values,
MutableSpan< bool r_values 
)

A spline is selected if all of its control points were selected.

Note
Theoretically this interpolation does not need to compute all values at once. However, doing that makes the implementation simpler, and this can be optimized in the future if only some values are required.

Definition at line 169 of file geometry_component_curve.cc.

References BLI_assert, curve, blender::MutableSpan< T >::fill(), blender::MutableSpan< T >::size(), and Curve::size.

◆ adapt_curve_domain_point_to_spline_impl() [2/2]

template<typename T >
static void blender::bke::adapt_curve_domain_point_to_spline_impl ( const CurveEval curve,
const VArray< T > &  old_values,
MutableSpan< T r_values 
)
static

Mix together all of a spline's control point values.

Note
Theoretically this interpolation does not need to compute all values at once. However, doing that makes the implementation simpler, and this can be optimized in the future if only some values are required.

Definition at line 140 of file geometry_component_curve.cc.

References BLI_assert, curve, blender::MutableSpan< T >::size(), Curve::size, and T.

◆ adapt_curve_domain_spline_to_point()

static GVArray blender::bke::adapt_curve_domain_spline_to_point ( const CurveEval curve,
GVArray  varray 
)
static

◆ adapt_mesh_domain_corner_to_edge()

static GVArray blender::bke::adapt_mesh_domain_corner_to_edge ( const Mesh mesh,
const GVArray varray 
)
static

◆ adapt_mesh_domain_corner_to_edge_impl() [1/2]

template<>
void blender::bke::adapt_mesh_domain_corner_to_edge_impl ( const Mesh mesh,
const VArray< bool > &  old_values,
MutableSpan< bool r_values 
)

◆ adapt_mesh_domain_corner_to_edge_impl() [2/2]

template<typename T >
static void blender::bke::adapt_mesh_domain_corner_to_edge_impl ( const Mesh mesh,
const VArray< T > &  old_values,
MutableSpan< T r_values 
)
static

◆ adapt_mesh_domain_corner_to_face()

static GVArray blender::bke::adapt_mesh_domain_corner_to_face ( const Mesh mesh,
const GVArray varray 
)
static

◆ adapt_mesh_domain_corner_to_point()

static GVArray blender::bke::adapt_mesh_domain_corner_to_point ( const Mesh mesh,
const GVArray varray 
)
static

◆ adapt_mesh_domain_corner_to_point_impl() [1/2]

template<>
void blender::bke::adapt_mesh_domain_corner_to_point_impl ( const Mesh mesh,
const VArray< bool > &  old_values,
MutableSpan< bool r_values 
)

◆ adapt_mesh_domain_corner_to_point_impl() [2/2]

template<typename T >
static void blender::bke::adapt_mesh_domain_corner_to_point_impl ( const Mesh mesh,
const VArray< T > &  old_values,
MutableSpan< T r_values 
)
static

◆ adapt_mesh_domain_edge_to_corner()

static GVArray blender::bke::adapt_mesh_domain_edge_to_corner ( const Mesh mesh,
const GVArray varray 
)
static

◆ adapt_mesh_domain_edge_to_corner_impl() [1/2]

template<>
void blender::bke::adapt_mesh_domain_edge_to_corner_impl ( const Mesh mesh,
const VArray< bool > &  old_values,
MutableSpan< bool r_values 
)

◆ adapt_mesh_domain_edge_to_corner_impl() [2/2]

template<typename T >
void blender::bke::adapt_mesh_domain_edge_to_corner_impl ( const Mesh mesh,
const VArray< T > &  old_values,
MutableSpan< T r_values 
)

◆ adapt_mesh_domain_edge_to_face()

static GVArray blender::bke::adapt_mesh_domain_edge_to_face ( const Mesh mesh,
const GVArray varray 
)
static

◆ adapt_mesh_domain_edge_to_point()

static GVArray blender::bke::adapt_mesh_domain_edge_to_point ( const Mesh mesh,
const GVArray varray 
)
static

◆ adapt_mesh_domain_edge_to_point_impl() [1/2]

template<>
void blender::bke::adapt_mesh_domain_edge_to_point_impl ( const Mesh mesh,
const VArray< bool > &  old_values,
MutableSpan< bool r_values 
)

◆ adapt_mesh_domain_edge_to_point_impl() [2/2]

template<typename T >
static void blender::bke::adapt_mesh_domain_edge_to_point_impl ( const Mesh mesh,
const VArray< T > &  old_values,
MutableSpan< T r_values 
)
static

◆ adapt_mesh_domain_face_to_corner()

static GVArray blender::bke::adapt_mesh_domain_face_to_corner ( const Mesh mesh,
const GVArray varray 
)
static

◆ adapt_mesh_domain_face_to_corner_impl()

template<typename T >
void blender::bke::adapt_mesh_domain_face_to_corner_impl ( const Mesh mesh,
const VArray< T > &  old_values,
MutableSpan< T r_values 
)

◆ adapt_mesh_domain_face_to_edge()

static GVArray blender::bke::adapt_mesh_domain_face_to_edge ( const Mesh mesh,
const GVArray varray 
)
static

◆ adapt_mesh_domain_face_to_edge_impl() [1/2]

template<>
void blender::bke::adapt_mesh_domain_face_to_edge_impl ( const Mesh mesh,
const VArray< bool > &  old_values,
MutableSpan< bool r_values 
)

◆ adapt_mesh_domain_face_to_edge_impl() [2/2]

template<typename T >
void blender::bke::adapt_mesh_domain_face_to_edge_impl ( const Mesh mesh,
const VArray< T > &  old_values,
MutableSpan< T r_values 
)

◆ adapt_mesh_domain_face_to_point()

static GVArray blender::bke::adapt_mesh_domain_face_to_point ( const Mesh mesh,
const GVArray varray 
)
static

◆ adapt_mesh_domain_face_to_point_impl() [1/2]

template<>
void blender::bke::adapt_mesh_domain_face_to_point_impl ( const Mesh mesh,
const VArray< bool > &  old_values,
MutableSpan< bool r_values 
)

◆ adapt_mesh_domain_face_to_point_impl() [2/2]

template<typename T >
void blender::bke::adapt_mesh_domain_face_to_point_impl ( const Mesh mesh,
const VArray< T > &  old_values,
MutableSpan< T r_values 
)

◆ adapt_mesh_domain_point_to_corner()

static GVArray blender::bke::adapt_mesh_domain_point_to_corner ( const Mesh mesh,
const GVArray varray 
)
static

Each corner's value is simply a copy of the value at its vertex.

Definition at line 237 of file geometry_component_mesh.cc.

References blender::attribute_math::convert_to_static_type(), and blender::GVArrayCommon::type().

Referenced by adapt_mesh_attribute_domain().

◆ adapt_mesh_domain_point_to_edge()

static GVArray blender::bke::adapt_mesh_domain_point_to_edge ( const Mesh mesh,
const GVArray varray 
)
static

◆ adapt_mesh_domain_point_to_face()

static GVArray blender::bke::adapt_mesh_domain_point_to_face ( const Mesh mesh,
const GVArray varray 
)
static

◆ add_builtin_type_custom_data_layer_from_init()

static bool blender::bke::add_builtin_type_custom_data_layer_from_init ( CustomData custom_data,
const eCustomDataType  data_type,
const int  domain_num,
const AttributeInit initializer 
)
static

◆ add_custom_data_layer_from_attribute_init()

static bool blender::bke::add_custom_data_layer_from_attribute_init ( const AttributeIDRef attribute_id,
CustomData custom_data,
const eCustomDataType  data_type,
const int  domain_num,
const AttributeInit initializer 
)
static

◆ add_final_mesh_as_geometry_component()

static void blender::bke::add_final_mesh_as_geometry_component ( const Object object,
GeometrySet geometry_set 
)
static

◆ add_generic_custom_data_layer()

static void* blender::bke::add_generic_custom_data_layer ( CustomData custom_data,
const eCustomDataType  data_type,
const eCDAllocType  alloctype,
void layer_data,
const int  domain_num,
const AttributeIDRef attribute_id 
)
static

◆ add_implicit_conversion()

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

◆ allow_procedural_attribute_access()

bool blender::bke::allow_procedural_attribute_access ( StringRef  attribute_name)

◆ asset_definition_default_file_path_from_dir()

static std::string blender::bke::asset_definition_default_file_path_from_dir ( StringRef  asset_library_root)
static

◆ attribute_data_type_complexity()

static int blender::bke::attribute_data_type_complexity ( const eCustomDataType  data_type)
static

◆ attribute_data_type_highest_complexity()

eCustomDataType blender::bke::attribute_data_type_highest_complexity ( Span< eCustomDataType data_types)

◆ attribute_domain_highest_priority()

eAttrDomain blender::bke::attribute_domain_highest_priority ( Span< eAttrDomain domains)

Domains with a higher "information density" have a higher priority, in order to choose a domain that will not lose data through domain conversion.

Definition at line 134 of file attribute_access.cc.

References ATTR_DOMAIN_CORNER, and attribute_domain_priority().

Referenced by GeometrySet::gather_attributes_for_propagation(), and blender::nodes::node_geo_join_geometry_cc::get_final_attribute_info().

◆ attribute_domain_priority()

static int blender::bke::attribute_domain_priority ( const eAttrDomain  domain)
static
Note
Generally the order should mirror the order of the domains established in each component's ComponentAttributeProviders.

Definition at line 112 of file attribute_access.cc.

References ATTR_DOMAIN_CORNER, ATTR_DOMAIN_CURVE, ATTR_DOMAIN_EDGE, ATTR_DOMAIN_FACE, ATTR_DOMAIN_INSTANCE, ATTR_DOMAIN_POINT, and BLI_assert_unreachable.

Referenced by attribute_domain_highest_priority().

◆ attribute_id_from_custom_data_layer()

static AttributeIDRef blender::bke::attribute_id_from_custom_data_layer ( const CustomDataLayer layer)
static

◆ BKE_action_find_fcurves_with_bones()

void blender::bke::BKE_action_find_fcurves_with_bones ( const bAction action,
FoundFCurveCallback  callback 
)

◆ BKE_armature_find_selected_bone_names()

BoneNameSet blender::bke::BKE_armature_find_selected_bone_names ( const bArmature armature)

Return a set of names of the selected bones. An empty set means "ignore bone selection", which either means all bones are selected, or none are.

Definition at line 48 of file armature_selection.cc.

References blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), BKE_armature_find_selected_bones(), callback, and result.

Referenced by ED_pose_backup_create_selected_bones().

◆ BKE_armature_find_selected_bones()

SelectedBonesResult blender::bke::BKE_armature_find_selected_bones ( const bArmature armature,
SelectedBoneCallback  callback 
)

◆ bool_to_byte_color()

static ColorGeometry4b blender::bke::bool_to_byte_color ( const bool a)
static

◆ bool_to_color()

static ColorGeometry4f blender::bke::bool_to_color ( const bool a)
static

Definition at line 209 of file type_conversions.cc.

References Freestyle::a.

Referenced by bool_to_byte_color().

◆ bool_to_float()

static float blender::bke::bool_to_float ( const bool a)
static

Definition at line 189 of file type_conversions.cc.

References Freestyle::a.

◆ bool_to_float2()

static float2 blender::bke::bool_to_float2 ( const bool a)
static

Definition at line 201 of file type_conversions.cc.

References Freestyle::a.

◆ bool_to_float3()

static float3 blender::bke::bool_to_float3 ( const bool a)
static

Definition at line 205 of file type_conversions.cc.

References Freestyle::a.

◆ bool_to_int()

static int32_t blender::bke::bool_to_int ( const bool a)
static

Definition at line 197 of file type_conversions.cc.

References Freestyle::a.

◆ bool_to_int8()

static int8_t blender::bke::bool_to_int8 ( const bool a)
static

Definition at line 193 of file type_conversions.cc.

References Freestyle::a.

◆ build_offsets()

template<typename CountFn >
void blender::bke::build_offsets ( MutableSpan< int >  offsets,
const CountFn &  count_fn 
)

◆ build_point_to_curve_map()

static Array<int> blender::bke::build_point_to_curve_map ( const CurvesGeometry curves)
static

Builds an array that for every point, contains the corresponding curve index.

Definition at line 1119 of file curves_geometry.cc.

References curves, and blender::threading::parallel_for().

Referenced by copy_with_removed_points().

◆ byte_color_to_bool()

static bool blender::bke::byte_color_to_bool ( const ColorGeometry4b a)
static

Definition at line 247 of file type_conversions.cc.

References Freestyle::a.

◆ byte_color_to_color()

static ColorGeometry4f blender::bke::byte_color_to_color ( const ColorGeometry4b a)
static

Definition at line 271 of file type_conversions.cc.

References Freestyle::a.

◆ byte_color_to_float()

static float blender::bke::byte_color_to_float ( const ColorGeometry4b a)
static

Definition at line 251 of file type_conversions.cc.

References Freestyle::a, and color_to_float().

◆ byte_color_to_float2()

static float2 blender::bke::byte_color_to_float2 ( const ColorGeometry4b a)
static

Definition at line 263 of file type_conversions.cc.

References Freestyle::a, and color_to_float2().

◆ byte_color_to_float3()

static float3 blender::bke::byte_color_to_float3 ( const ColorGeometry4b a)
static

Definition at line 267 of file type_conversions.cc.

References Freestyle::a, and color_to_float3().

◆ byte_color_to_int()

static int32_t blender::bke::byte_color_to_int ( const ColorGeometry4b a)
static

Definition at line 255 of file type_conversions.cc.

References Freestyle::a, and color_to_int().

◆ byte_color_to_int8()

static int8_t blender::bke::byte_color_to_int8 ( const ColorGeometry4b a)
static

Definition at line 259 of file type_conversions.cc.

References Freestyle::a, and color_to_int8().

◆ calculate_evaluated_offsets()

static void blender::bke::calculate_evaluated_offsets ( const CurvesGeometry curves,
MutableSpan< int >  offsets,
MutableSpan< int >  bezier_evaluated_offsets 
)
static

◆ calculate_result_offsets()

static ResultOffsets blender::bke::calculate_result_offsets ( const CurvesInfo info,
const bool  fill_caps 
)
static

◆ calculate_type_counts()

std::array< int, CURVE_TYPES_NUM > blender::bke::calculate_type_counts ( const VArray< int8_t > &  types)

◆ color_to_bool()

static bool blender::bke::color_to_bool ( const ColorGeometry4f a)
static

Definition at line 218 of file type_conversions.cc.

References Freestyle::a, and rgb_to_grayscale().

◆ color_to_byte_color()

static ColorGeometry4b blender::bke::color_to_byte_color ( const ColorGeometry4f a)
static

Definition at line 242 of file type_conversions.cc.

References Freestyle::a.

◆ color_to_float()

static float blender::bke::color_to_float ( const ColorGeometry4f a)
static

Definition at line 222 of file type_conversions.cc.

References Freestyle::a, and rgb_to_grayscale().

Referenced by byte_color_to_float().

◆ color_to_float2()

static float2 blender::bke::color_to_float2 ( const ColorGeometry4f a)
static

Definition at line 234 of file type_conversions.cc.

References Freestyle::a.

Referenced by byte_color_to_float2().

◆ color_to_float3()

static float3 blender::bke::color_to_float3 ( const ColorGeometry4f a)
static

Definition at line 238 of file type_conversions.cc.

References Freestyle::a.

Referenced by byte_color_to_float3().

◆ color_to_int()

static int32_t blender::bke::color_to_int ( const ColorGeometry4f a)
static

Definition at line 226 of file type_conversions.cc.

References Freestyle::a, and rgb_to_grayscale().

Referenced by byte_color_to_int(), and color_to_int8().

◆ color_to_int8()

static int8_t blender::bke::color_to_int8 ( const ColorGeometry4f a)
static

Definition at line 230 of file type_conversions.cc.

References Freestyle::a, color_to_int(), and int_to_int8().

Referenced by byte_color_to_int8().

◆ construct_curve_length_gvarray()

static VArray<float> blender::bke::construct_curve_length_gvarray ( const CurveComponent component,
const eAttrDomain  domain 
)
static

◆ copy_between_buffers()

static void blender::bke::copy_between_buffers ( const CPPType type,
const void src_buffer,
void dst_buffer,
const IndexRange  src_range,
const IndexRange  dst_range 
)
static

◆ copy_curve_domain_attribute_to_mesh()

static void blender::bke::copy_curve_domain_attribute_to_mesh ( const ResultOffsets mesh_offsets,
const Span< int >  curve_indices,
const eAttrDomain  dst_domain,
const GVArray src,
GMutableSpan  dst 
)
static

◆ copy_curves_geometry()

static void blender::bke::copy_curves_geometry ( CurvesGeometry dst,
const CurvesGeometry src 
)
static

◆ copy_indices_to_offset_ranges()

template<typename T >
static void blender::bke::copy_indices_to_offset_ranges ( const VArray< T > &  src,
const Span< int >  curve_indices,
const Span< int >  mesh_offsets,
MutableSpan< T dst 
)
static

◆ copy_main_point_data_to_mesh_edges()

template<typename T >
static void blender::bke::copy_main_point_data_to_mesh_edges ( const Span< T src,
const int  profile_point_num,
const int  main_segment_num,
const int  profile_segment_num,
MutableSpan< T dst 
)
static

◆ copy_main_point_data_to_mesh_faces()

template<typename T >
static void blender::bke::copy_main_point_data_to_mesh_faces ( const Span< T src,
const int  main_segment_num,
const int  profile_segment_num,
MutableSpan< T dst 
)
static

◆ copy_main_point_data_to_mesh_verts()

template<typename T >
static void blender::bke::copy_main_point_data_to_mesh_verts ( const Span< T src,
const int  profile_point_num,
MutableSpan< T dst 
)
static

◆ copy_main_point_domain_attribute_to_mesh()

static void blender::bke::copy_main_point_domain_attribute_to_mesh ( const CurvesInfo curves_info,
const ResultOffsets offsets,
const eAttrDomain  dst_domain,
const GSpan  src_all,
GMutableSpan  dst_all 
)
static

◆ copy_profile_point_data_to_mesh_edges()

template<typename T >
static void blender::bke::copy_profile_point_data_to_mesh_edges ( const Span< T src,
const int  main_segment_num,
MutableSpan< T dst 
)
static

◆ copy_profile_point_data_to_mesh_faces()

template<typename T >
static void blender::bke::copy_profile_point_data_to_mesh_faces ( const Span< T src,
const int  main_segment_num,
const int  profile_segment_num,
MutableSpan< T dst 
)
static

Definition at line 526 of file curve_to_mesh_convert.cc.

References src.

◆ copy_profile_point_data_to_mesh_verts()

template<typename T >
static void blender::bke::copy_profile_point_data_to_mesh_verts ( const Span< T src,
const int  main_point_num,
MutableSpan< T dst 
)
static

Definition at line 502 of file curve_to_mesh_convert.cc.

References src.

◆ copy_profile_point_domain_attribute_to_mesh()

static void blender::bke::copy_profile_point_domain_attribute_to_mesh ( const CurvesInfo curves_info,
const ResultOffsets offsets,
const eAttrDomain  dst_domain,
const GSpan  src_all,
GMutableSpan  dst_all 
)
static

◆ copy_with_map() [1/2]

static void blender::bke::copy_with_map ( const GSpan  src,
const Span< int >  map,
GMutableSpan  dst 
)
static

◆ copy_with_map() [2/2]

template<typename T >
static void blender::bke::copy_with_map ( const Span< T src,
const Span< int >  map,
MutableSpan< T dst 
)
static

Definition at line 1099 of file curves_geometry.cc.

References map, and blender::threading::parallel_for().

◆ copy_with_removed_curves()

static CurvesGeometry blender::bke::copy_with_removed_curves ( const CurvesGeometry curves,
const IndexMask  curves_to_delete 
)
static

◆ copy_with_removed_points()

static CurvesGeometry blender::bke::copy_with_removed_points ( const CurvesGeometry curves,
const IndexMask  points_to_delete 
)
static

◆ cpp_type_to_custom_data_type()

eCustomDataType blender::bke::cpp_type_to_custom_data_type ( const blender::CPPType type)

Definition at line 5337 of file customdata.cc.

References CD_PROP_BOOL, CD_PROP_BYTE_COLOR, CD_PROP_COLOR, CD_PROP_FLOAT, CD_PROP_FLOAT2, CD_PROP_FLOAT3, CD_PROP_INT32, CD_PROP_INT8, and type.

Referenced by BKE_id_attribute_duplicate(), blender::nodes::node_geo_delete_geometry_cc::copy_attributes(), blender::nodes::node_geo_delete_geometry_cc::copy_attributes_based_on_map(), blender::nodes::node_geo_delete_geometry_cc::copy_attributes_based_on_mask(), blender::nodes::node_geo_duplicate_elements_cc::copy_attributes_without_id(), blender::nodes::node_geo_duplicate_elements_cc::copy_curve_attributes_without_id(), blender::nodes::node_geo_duplicate_elements_cc::copy_edge_attributes_without_id(), blender::nodes::node_geo_duplicate_elements_cc::copy_face_attributes_without_id(), blender::bke::CustomDataAttributes::get_for_read(), get_mutable_attribute(), get_span_attribute(), get_varray_attribute(), blender::bke::AttributeFieldInput::get_varray_for_context(), blender::bke::AnonymousAttributeFieldInput::get_varray_for_context(), blender::bke::AttributeAccessor::lookup(), blender::bke::MutableAttributeAccessor::lookup_or_add_for_write(), blender::nodes::node_geo_raycast_cc::output_attribute_field(), blender::nodes::node_geo_transfer_attribute_cc::output_attribute_field(), blender::geometry::retrieve_attribute_spans(), store_computed_output_attributes(), blender::nodes::node_geo_dual_mesh_cc::transfer_attributes(), blender::nodes::node_geo_attribute_capture_cc::try_capture_field_on_geometry(), blender::nodes::node_geo_store_named_attribute_cc::try_capture_field_on_geometry(), and vertex_paint_from_weight().

◆ create_attribute_providers_for_curve() [1/2]

static ComponentAttributeProviders blender::bke::create_attribute_providers_for_curve ( )
static

◆ create_attribute_providers_for_curve() [2/2]

static ComponentAttributeProviders blender::bke::create_attribute_providers_for_curve ( )
static

◆ create_attribute_providers_for_instances()

static ComponentAttributeProviders blender::bke::create_attribute_providers_for_instances ( )
static

IDs of the instances. They are used for consistency over multiple frames for things like motion blur. Proper stable ID data that actually helps when rendering can only be generated in some situations, so this vector is allowed to be empty, in which case the index of each instance will be used for the final ID.

Definition at line 432 of file geometry_component_instances.cc.

References ATTR_DOMAIN_INSTANCE, CD_PROP_INT32, blender::bke::CustomDataAttributes::data, id, InstancesComponent::instance_attributes(), and InstancesComponent::instances_num().

Referenced by get_instances_accessor_functions().

◆ create_attribute_providers_for_mesh()

static ComponentAttributeProviders blender::bke::create_attribute_providers_for_mesh ( )
static

◆ create_attribute_providers_for_point_cloud()

static ComponentAttributeProviders blender::bke::create_attribute_providers_for_point_cloud ( )
static

◆ create_implicit_conversions()

static DataTypeConversions blender::bke::create_implicit_conversions ( )
static

Definition at line 276 of file type_conversions.cc.

Referenced by get_implicit_type_conversions().

◆ create_point_attribute()

static bool blender::bke::create_point_attribute ( CurveEval curve,
const AttributeIDRef attribute_id,
const AttributeInit initializer,
const eCustomDataType  data_type 
)
static

◆ curve_legacy_to_curves() [1/2]

Curves * blender::bke::curve_legacy_to_curves ( const Curve curve_legacy)

◆ curve_legacy_to_curves() [2/2]

Curves * blender::bke::curve_legacy_to_curves ( const Curve curve_legacy,
const ListBase nurbs_list 
)

◆ curve_normal_point_domain()

static Array<float3> blender::bke::curve_normal_point_domain ( const bke::CurvesGeometry curves)
static

◆ curve_normals_varray()

VArray< float3 > blender::bke::curve_normals_varray ( const CurveComponent component,
const eAttrDomain  domain 
)

◆ curve_to_mesh_sweep()

Mesh * blender::bke::curve_to_mesh_sweep ( const CurvesGeometry main,
const CurvesGeometry profile,
bool  fill_caps 
)

Extrude all splines in the profile curve along the path of every spline in the curve input. Transfer curve attributes to the mesh.

Note
Normal calculation is by far the slowest part of calculations relating to the result mesh. Although it would be a sensible decision to use the better topology information available while generating the mesh to also generate the normals, that work may wasted if the output mesh is changed anyway in a way that affects the normals. So currently this code uses the safer / simpler solution of deferring normal calculation to the rest of Blender.

Definition at line 628 of file curve_to_mesh_convert.cc.

References blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add_new(), ATTR_DOMAIN_CURVE, ATTR_DOMAIN_POINT, blender::bke::CurvesGeometry::attributes(), BKE_mesh_new_nomain(), calculate_result_offsets(), blender::bke::AttributeAccessor::contains(), copy_curve_domain_attribute_to_mesh(), copy_main_point_domain_attribute_to_mesh(), copy_profile_point_domain_attribute_to_mesh(), CURVE_TYPE_BEZIER, blender::bke::CurvesGeometry::curve_type_counts(), blender::bke::CurvesGeometry::curve_types(), blender::bke::AttributeMetaData::data_type, DEG2RADF, blender::bke::AttributeMetaData::domain, blender::bke::ResultOffsets::edge, blender::bke::CombinationInfo::edge_range, evaluated_attribute_if_necessary(), blender::bke::CurvesGeometry::evaluated_positions(), fill_mesh_positions(), fill_mesh_topology(), blender::bke::GSpanAttributeWriter::finish(), Mesh::flag, blender::bke::AttributeAccessor::for_all(), foreach_curve_combination(), get_attribute_domain_for_mesh(), get_curves_info(), blender::bke::CurvesGeometry::handle_types_left(), blender::bke::CurvesGeometry::handle_types_right(), blender::bke::CombinationInfo::i_profile, blender::Array< T, InlineBufferCapacity, Allocator >::last(), blender::bke::AttributeAccessor::lookup(), blender::bke::AttributeAccessor::lookup_or_default(), blender::bke::ResultOffsets::loop, blender::bke::CombinationInfo::loop_range, main(), blender::bke::CombinationInfo::main_cyclic, blender::bke::ResultOffsets::main_indices, blender::bke::CombinationInfo::main_points, ME_AUTOSMOOTH, Mesh::medge, mesh, mesh_attributes(), mesh_attributes_for_write(), Mesh::mloop, Mesh::mpoly, Mesh::mvert, normals, blender::bke::ResultOffsets::poly, blender::bke::CombinationInfo::poly_range, blender::bke::CombinationInfo::profile_cyclic, blender::bke::ResultOffsets::profile_indices, blender::bke::CombinationInfo::profile_points, radii, should_add_attribute_to_mesh(), blender::IndexRange::size(), blender::Span< T >::slice(), Mesh::smoothresh, blender::bke::GSpanAttributeWriter::span, src, blender::IndexRange::start(), tangents, Mesh::totedge, Mesh::totloop, Mesh::totpoly, Mesh::totvert, type, blender::GSpan::typed(), blender::bke::ResultOffsets::vert, blender::bke::CombinationInfo::vert_range, and verts.

Referenced by curve_to_wire_mesh(), and blender::nodes::node_geo_curve_to_mesh_cc::geometry_set_curve_to_mesh().

◆ curve_to_wire_mesh()

Mesh * blender::bke::curve_to_wire_mesh ( const CurvesGeometry curve)

Create a loose-edge mesh based on the evaluated path of the curve's splines. Transfer curve attributes to the mesh.

Definition at line 798 of file curve_to_mesh_convert.cc.

References curve, curve_to_mesh_sweep(), and get_curve_single_vert().

Referenced by blender::nodes::node_geo_curve_to_mesh_cc::geometry_set_curve_to_mesh(), and mesh_new_from_evaluated_curve_type_object().

◆ curve_type_from_legacy()

static CurveType blender::bke::curve_type_from_legacy ( const short  type)
static

◆ curves_bounds()

static std::optional<bounds::MinMaxResult<float3> > blender::bke::curves_bounds ( const CurvesGeometry curves)
static

◆ curves_copy_parameters()

void blender::bke::curves_copy_parameters ( const Curves src,
Curves dst 
)

◆ curves_new_nomain() [1/2]

Curves * blender::bke::curves_new_nomain ( CurvesGeometry  curves)

◆ curves_new_nomain() [2/2]

Curves * blender::bke::curves_new_nomain ( int  points_num,
int  curves_num 
)

◆ curves_new_nomain_single()

Curves * blender::bke::curves_new_nomain_single ( int  points_num,
CurveType  type 
)

◆ custom_data_layer_matches_attribute_id()

static bool blender::bke::custom_data_layer_matches_attribute_id ( const CustomDataLayer layer,
const AttributeIDRef attribute_id 
)
static

◆ custom_data_type_to_cpp_type()

const blender::CPPType* blender::bke::custom_data_type_to_cpp_type ( const eCustomDataType  type)

◆ domain_custom_data() [1/2]

static const CustomData& blender::bke::domain_custom_data ( const CurvesGeometry curves,
const eAttrDomain  domain 
)
static

Definition at line 170 of file curves_geometry.cc.

References ATTR_DOMAIN_POINT, and curves.

◆ domain_custom_data() [2/2]

static CustomData& blender::bke::domain_custom_data ( CurvesGeometry curves,
const eAttrDomain  domain 
)
static

Definition at line 165 of file curves_geometry.cc.

References ATTR_DOMAIN_POINT, and curves.

Referenced by get_mutable_attribute(), get_span_attribute(), and get_varray_attribute().

◆ domain_num()

static int blender::bke::domain_num ( const CurvesGeometry curves,
const eAttrDomain  domain 
)
static

◆ evaluated_attribute_if_necessary()

static GSpan blender::bke::evaluated_attribute_if_necessary ( const GVArray src,
const CurvesGeometry curves,
const std::array< int, CURVE_TYPES_NUM > &  type_counts,
Vector< std::byte > &  buffer 
)
static

Definition at line 352 of file curve_to_mesh_convert.cc.

References buffer, CURVE_TYPE_POLY, curves, and src.

Referenced by curve_to_mesh_sweep().

◆ fill_mesh_positions()

static void blender::bke::fill_mesh_positions ( const int  main_point_num,
const int  profile_point_num,
const Span< float3 main_positions,
const Span< float3 profile_positions,
const Span< float3 tangents,
const Span< float3 normals,
const Span< float radii,
MutableSpan< MVert mesh_positions 
)
static

◆ fill_mesh_topology()

static void blender::bke::fill_mesh_topology ( const int  vert_offset,
const int  edge_offset,
const int  poly_offset,
const int  loop_offset,
const int  main_point_num,
const int  profile_point_num,
const bool  main_cyclic,
const bool  profile_cyclic,
const bool  fill_caps,
MutableSpan< MEdge edges,
MutableSpan< MLoop loops,
MutableSpan< MPoly polys 
)
static

◆ float2_to_bool()

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

Definition at line 84 of file type_conversions.cc.

References Freestyle::a, and blender::math::is_zero().

◆ float2_to_byte_color()

static ColorGeometry4b blender::bke::float2_to_byte_color ( const float2 a)
static

◆ float2_to_color()

static ColorGeometry4f blender::bke::float2_to_color ( const float2 a)
static

Definition at line 92 of file type_conversions.cc.

References Freestyle::a.

Referenced by float2_to_byte_color().

◆ float2_to_float()

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

Definition at line 76 of file type_conversions.cc.

References Freestyle::a.

◆ float2_to_float3()

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

Definition at line 72 of file type_conversions.cc.

References Freestyle::a.

◆ float2_to_int()

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

Definition at line 80 of file type_conversions.cc.

References Freestyle::a.

◆ float2_to_int8()

static int8_t blender::bke::float2_to_int8 ( const float2 a)
static

Definition at line 88 of file type_conversions.cc.

References Freestyle::a, and float_to_int8().

◆ float3_to_bool()

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

Definition at line 101 of file type_conversions.cc.

References Freestyle::a, and blender::math::is_zero().

◆ float3_to_byte_color()

static ColorGeometry4b blender::bke::float3_to_byte_color ( const float3 a)
static

◆ float3_to_color()

static ColorGeometry4f blender::bke::float3_to_color ( const float3 a)
static

Definition at line 121 of file type_conversions.cc.

References Freestyle::a.

Referenced by float3_to_byte_color().

◆ float3_to_float()

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

Definition at line 109 of file type_conversions.cc.

References Freestyle::a.

◆ float3_to_float2()

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

Definition at line 117 of file type_conversions.cc.

References Freestyle::a.

◆ float3_to_int()

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

Definition at line 113 of file type_conversions.cc.

References Freestyle::a.

◆ float3_to_int8()

static int8_t blender::bke::float3_to_int8 ( const float3 a)
static

Definition at line 105 of file type_conversions.cc.

References Freestyle::a, and float_to_int8().

◆ float_to_bool()

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

Definition at line 54 of file type_conversions.cc.

References Freestyle::a.

◆ float_to_byte_color()

static ColorGeometry4b blender::bke::float_to_byte_color ( const float a)
static

◆ float_to_color()

static ColorGeometry4f blender::bke::float_to_color ( const float a)
static

Definition at line 63 of file type_conversions.cc.

References Freestyle::a.

Referenced by float_to_byte_color().

◆ float_to_float2()

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

Definition at line 42 of file type_conversions.cc.

References Freestyle::a.

◆ float_to_float3()

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

Definition at line 46 of file type_conversions.cc.

References Freestyle::a.

◆ float_to_int()

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

Definition at line 50 of file type_conversions.cc.

References Freestyle::a.

◆ float_to_int8()

static int8_t blender::bke::float_to_int8 ( const float a)
static

Definition at line 58 of file type_conversions.cc.

References Freestyle::a, blender::math::clamp(), max, and min.

Referenced by float2_to_int8(), and float3_to_int8().

◆ foreach_curve_combination()

template<typename Fn >
static void blender::bke::foreach_curve_combination ( const CurvesInfo info,
const ResultOffsets offsets,
const Fn &  fn 
)
static

◆ from_float() [1/3]

template<>
void blender::bke::from_float ( const float  src[4],
MLoopCol dst 
)

Definition at line 76 of file pbvh.cc.

References linearrgb_to_srgb_v3_v3(), rgba_float_to_uchar(), and src.

◆ from_float() [2/3]

template<>
void blender::bke::from_float ( const float  src[4],
MPropCol dst 
)

Definition at line 83 of file pbvh.cc.

References MPropCol::color, copy_v4_v4(), and src.

◆ from_float() [3/3]

template<typename T >
void blender::bke::from_float ( const float  src[4],
T dst 
)

◆ geometry_set_collect_recursive()

static void blender::bke::geometry_set_collect_recursive ( const GeometrySet geometry_set,
const float4x4 transform,
Vector< GeometryInstanceGroup > &  r_sets 
)
static

◆ geometry_set_collect_recursive_collection()

static void blender::bke::geometry_set_collect_recursive_collection ( const Collection collection,
const float4x4 transform,
Vector< GeometryInstanceGroup > &  r_sets 
)
static

◆ geometry_set_collect_recursive_collection_instance()

static void blender::bke::geometry_set_collect_recursive_collection_instance ( const Collection collection,
const float4x4 transform,
Vector< GeometryInstanceGroup > &  r_sets 
)
static

◆ geometry_set_collect_recursive_object()

static void blender::bke::geometry_set_collect_recursive_object ( const Object object,
const float4x4 transform,
Vector< GeometryInstanceGroup > &  r_sets 
)
static

◆ geometry_set_gather_instances()

void blender::bke::geometry_set_gather_instances ( const GeometrySet geometry_set,
Vector< GeometryInstanceGroup > &  r_instance_groups 
)

Return flattened vector of the geometry component's recursive instances. I.e. all collection instances and object instances will be expanded into the instances of their geometry components. Even the instances in those geometry components' will be included.

Note
For convenience (to avoid duplication in the caller), the returned vector also contains the argument geometry set.
This doesn't extract instances from the "dupli" system for non-geometry-nodes instances.

Definition at line 154 of file geometry_set_instances.cc.

References geometry_set_collect_recursive(), and blender::float4x4::identity().

Referenced by blender::nodes::node_geo_boolean_cc::node_geo_exec().

◆ get_attribute_accessor_for_write()

static std::optional<blender::bke::MutableAttributeAccessor> blender::bke::get_attribute_accessor_for_write ( ID id)
static

◆ get_attribute_domain_for_mesh()

static eAttrDomain blender::bke::get_attribute_domain_for_mesh ( const AttributeAccessor mesh_attributes,
const AttributeIDRef attribute_id 
)
static

◆ get_crease()

static float blender::bke::get_crease ( const MEdge edge)
static

Definition at line 876 of file geometry_component_mesh.cc.

◆ get_curve_accessor_functions()

static AttributeAccessorFunctions blender::bke::get_curve_accessor_functions ( )
static

◆ get_curve_accessor_functions_ref()

static const AttributeAccessorFunctions& blender::bke::get_curve_accessor_functions_ref ( )
static

◆ get_curve_single_vert()

static CurvesGeometry blender::bke::get_curve_single_vert ( )
static

Definition at line 788 of file curve_to_mesh_convert.cc.

References CURVE_TYPE_POLY, and curves.

Referenced by curve_to_wire_mesh().

◆ get_curves_accessor_functions()

static AttributeAccessorFunctions blender::bke::get_curves_accessor_functions ( )
static

◆ get_curves_accessor_functions_ref()

static const AttributeAccessorFunctions& blender::bke::get_curves_accessor_functions_ref ( )
static

◆ get_curves_info()

static CurvesInfo blender::bke::get_curves_info ( const CurvesGeometry main,
const CurvesGeometry profile 
)
static

Definition at line 233 of file curve_to_mesh_convert.cc.

References main().

Referenced by curve_to_mesh_sweep().

◆ get_cyclic_value()

static bool blender::bke::get_cyclic_value ( const SplinePtr spline)
static

Definition at line 420 of file geometry_component_curve.cc.

◆ get_implicit_type_conversions()

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

◆ get_instances_accessor_functions()

static AttributeAccessorFunctions blender::bke::get_instances_accessor_functions ( )
static

◆ get_instances_accessor_functions_ref()

static const AttributeAccessorFunctions& blender::bke::get_instances_accessor_functions_ref ( )
static

◆ get_internal_link_type_priority()

static int blender::bke::get_internal_link_type_priority ( const bNodeSocketType from,
const bNodeSocketType to 
)
static

Common datatype priorities, works for compositor, shader and texture nodes alike defines priority of datatype connection based on output type (to): < 0: never connect these types. >= 0: priority of connection (higher values chosen first).

Definition at line 594 of file node_tree_update.cc.

References from, bNodeSocketType::idname, SOCK_BOOLEAN, SOCK_CUSTOM, SOCK_FLOAT, SOCK_INT, SOCK_RGBA, SOCK_VECTOR, STREQ, and bNodeSocketType::type.

◆ get_loop_uv()

static float2 blender::bke::get_loop_uv ( const MLoopUV uv)
static

Definition at line 866 of file geometry_component_mesh.cc.

References MLoopUV::uv.

◆ get_material_index()

static int blender::bke::get_material_index ( const MPoly mpoly)
static

Definition at line 846 of file geometry_component_mesh.cc.

References MPoly::mat_nr.

◆ get_mesh_accessor_functions()

static AttributeAccessorFunctions blender::bke::get_mesh_accessor_functions ( )
static

◆ get_mesh_accessor_functions_ref()

static const AttributeAccessorFunctions& blender::bke::get_mesh_accessor_functions_ref ( )
static

◆ get_mutable_attribute()

template<typename T >
static MutableSpan<T> blender::bke::get_mutable_attribute ( CurvesGeometry curves,
const eAttrDomain  domain,
const StringRefNull  name,
const T  default_value = T() 
)
static

◆ get_pointcloud_accessor_functions()

static AttributeAccessorFunctions blender::bke::get_pointcloud_accessor_functions ( )
static

◆ get_pointcloud_accessor_functions_ref()

static const AttributeAccessorFunctions& blender::bke::get_pointcloud_accessor_functions_ref ( )
static

◆ get_random_id_attribute_name()

static StringRef blender::bke::get_random_id_attribute_name ( const eAttrDomain  domain)
static

◆ get_shade_smooth()

static bool blender::bke::get_shade_smooth ( const MPoly mpoly)
static

Definition at line 856 of file geometry_component_mesh.cc.

References MPoly::flag, and ME_SMOOTH.

◆ get_span_attribute()

template<typename T >
static Span<T> blender::bke::get_span_attribute ( const CurvesGeometry curves,
const eAttrDomain  domain,
const StringRefNull  name 
)
static

◆ get_spline_resolution()

static int blender::bke::get_spline_resolution ( const SplinePtr spline)
static

Definition at line 388 of file geometry_component_curve.cc.

◆ get_transform_position()

static float3 blender::bke::get_transform_position ( const float4x4 transform)
static

◆ get_varray_attribute()

template<typename T >
static VArray<T> blender::bke::get_varray_attribute ( const CurvesGeometry curves,
const eAttrDomain  domain,
const StringRefNull  name,
const T  default_value 
)
static

◆ get_vertex_position()

static float3 blender::bke::get_vertex_position ( const MVert vert)
static

Definition at line 828 of file geometry_component_mesh.cc.

References MVert::co.

◆ handle_type_from_legacy()

static HandleType blender::bke::handle_type_from_legacy ( const uint8_t  handle_type_legacy)
static

◆ int8_to_bool()

static bool blender::bke::int8_to_bool ( const int8_t a)
static

Definition at line 160 of file type_conversions.cc.

References Freestyle::a.

◆ int8_to_byte_color()

static ColorGeometry4b blender::bke::int8_to_byte_color ( const int8_t a)
static

◆ int8_to_color()

static ColorGeometry4f blender::bke::int8_to_color ( const int8_t a)
static

Definition at line 180 of file type_conversions.cc.

References Freestyle::a.

Referenced by int8_to_byte_color().

◆ int8_to_float()

static float blender::bke::int8_to_float ( const int8_t a)
static

Definition at line 168 of file type_conversions.cc.

References Freestyle::a.

◆ int8_to_float2()

static float2 blender::bke::int8_to_float2 ( const int8_t a)
static

Definition at line 172 of file type_conversions.cc.

References Freestyle::a.

◆ int8_to_float3()

static float3 blender::bke::int8_to_float3 ( const int8_t a)
static

Definition at line 176 of file type_conversions.cc.

References Freestyle::a.

◆ int8_to_int()

static int blender::bke::int8_to_int ( const int8_t a)
static

Definition at line 164 of file type_conversions.cc.

References Freestyle::a.

◆ int_to_bool()

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

Definition at line 130 of file type_conversions.cc.

References Freestyle::a.

◆ int_to_byte_color()

static ColorGeometry4b blender::bke::int_to_byte_color ( const int32_t a)
static

◆ int_to_color()

static ColorGeometry4f blender::bke::int_to_color ( const int32_t a)
static

Definition at line 151 of file type_conversions.cc.

References Freestyle::a.

Referenced by int_to_byte_color().

◆ int_to_float()

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

Definition at line 139 of file type_conversions.cc.

References Freestyle::a.

◆ int_to_float2()

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

Definition at line 143 of file type_conversions.cc.

References Freestyle::a.

◆ int_to_float3()

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

Definition at line 147 of file type_conversions.cc.

References Freestyle::a.

◆ int_to_int8()

static int8_t blender::bke::int_to_int8 ( const int32_t a)
static

Definition at line 134 of file type_conversions.cc.

References Freestyle::a, blender::math::clamp(), max, and min.

Referenced by color_to_int8().

◆ knots_mode_from_legacy()

static KnotsMode blender::bke::knots_mode_from_legacy ( const short  flag)
static

◆ layer_matches_name_and_type()

static bool blender::bke::layer_matches_name_and_type ( const CustomDataLayer layer,
const StringRef  name,
const eCustomDataType  type 
)
static

◆ lookup_point_indices()

static PointIndices blender::bke::lookup_point_indices ( Span< int >  offsets,
const int  index 
)
static

◆ make_array_read_attribute()

template<typename T >
GVArray blender::bke::make_array_read_attribute ( const void data,
const int  domain_num 
)

Definition at line 204 of file attribute_access_intern.hh.

References data, domain_num(), blender::VArray< T >::ForSpan(), and T.

◆ make_array_write_attribute()

template<typename T >
GVMutableArray blender::bke::make_array_write_attribute ( void data,
const int  domain_num 
)

◆ make_cyclic_read_attribute()

static GVArray blender::bke::make_cyclic_read_attribute ( const CurveEval curve)
static

Definition at line 433 of file geometry_component_curve.cc.

References curve.

Referenced by create_attribute_providers_for_curve().

◆ make_cyclic_write_attribute()

static GVMutableArray blender::bke::make_cyclic_write_attribute ( CurveEval curve)
static

Definition at line 438 of file geometry_component_curve.cc.

References curve.

Referenced by create_attribute_providers_for_curve().

◆ make_derived_read_attribute()

template<typename StructT , typename ElemT , ElemT(*)(const StructT &) GetFunc>
static GVArray blender::bke::make_derived_read_attribute ( const void data,
const int  domain_num 
)
static

Definition at line 812 of file geometry_component_mesh.cc.

References data, and domain_num().

◆ make_derived_write_attribute()

template<typename StructT , typename ElemT , ElemT(*)(const StructT &) GetFunc, void(*)(StructT &, ElemT) SetFunc>
static GVMutableArray blender::bke::make_derived_write_attribute ( void data,
const int  domain_num 
)
static

Definition at line 822 of file geometry_component_mesh.cc.

References data, and domain_num().

◆ make_resolution_read_attribute()

static GVArray blender::bke::make_resolution_read_attribute ( const CurveEval curve)
static

Definition at line 409 of file geometry_component_curve.cc.

References curve.

Referenced by create_attribute_providers_for_curve().

◆ make_resolution_write_attribute()

static GVMutableArray blender::bke::make_resolution_write_attribute ( CurveEval curve)
static

Definition at line 414 of file geometry_component_curve.cc.

References curve.

Referenced by create_attribute_providers_for_curve().

◆ mark_bezier_vector_edges_sharp()

static void blender::bke::mark_bezier_vector_edges_sharp ( const int  profile_point_num,
const int  main_segment_num,
const Span< int >  control_point_offsets,
const Span< int8_t handle_types_left,
const Span< int8_t handle_types_right,
MutableSpan< MEdge edges 
)
static

◆ mark_edges_sharp()

static void blender::bke::mark_edges_sharp ( MutableSpan< MEdge edges)
static

Definition at line 21 of file curve_to_mesh_convert.cc.

References ME_SHARP.

Referenced by fill_mesh_topology(), and mark_bezier_vector_edges_sharp().

◆ mesh_attributes()

AttributeAccessor blender::bke::mesh_attributes ( const Mesh mesh)

◆ mesh_attributes_for_write()

MutableAttributeAccessor blender::bke::mesh_attributes_for_write ( Mesh mesh)

◆ mesh_normals_varray()

VArray< float3 > blender::bke::mesh_normals_varray ( const MeshComponent mesh_component,
const Mesh mesh,
const IndexMask  mask,
eAttrDomain  domain 
)

◆ move_curves_geometry()

static void blender::bke::move_curves_geometry ( CurvesGeometry dst,
CurvesGeometry src 
)
static

◆ node_copy()

bNode* blender::bke::node_copy ( bNodeTree dst_tree,
const bNode src_node,
const int  flag,
const bool  unique_name 
)

Definition at line 2274 of file node.cc.

References node_copy_with_mapping(), and unique_name().

Referenced by ntree_shader_copy_branch().

◆ node_copy_with_mapping()

bNode* blender::bke::node_copy_with_mapping ( bNodeTree dst_tree,
const bNode node_src,
const int  flag,
const bool  unique_name,
Map< const bNodeSocket *, bNodeSocket * > &  socket_map 
)

◆ node_find_enabled_input_socket()

bNodeSocket* blender::bke::node_find_enabled_input_socket ( bNode node,
StringRef  name 
)

Definition at line 1477 of file node.cc.

References node, node_find_enabled_socket(), and SOCK_IN.

Referenced by blender::ed::space_node::attribute_search_exec_fn().

◆ node_find_enabled_output_socket()

bNodeSocket* blender::bke::node_find_enabled_output_socket ( bNode node,
StringRef  name 
)

Definition at line 1482 of file node.cc.

References node, node_find_enabled_socket(), and SOCK_OUT.

Referenced by blender::ed::space_node::attribute_search_exec_fn().

◆ node_find_enabled_socket()

bNodeSocket* blender::bke::node_find_enabled_socket ( bNode node,
const eNodeSocketInOut  in_out,
const StringRef  name 
)

◆ normal_mode_from_legacy()

static NormalMode blender::bke::normal_mode_from_legacy ( const short  twist_mode)
static

◆ object_get_evaluated_geometry_set()

GeometrySet blender::bke::object_get_evaluated_geometry_set ( const Object object)

◆ offsets_to_range()

template<typename T , BLI_ENABLE_IF(std::is_integral_v< T >) >
constexpr IndexRange blender::bke::offsets_to_range ( Span< T offsets,
int64_t  index 
)
constexpr

◆ on_blendfile_load()

static void blender::bke::on_blendfile_load ( struct Main ,
struct PointerRNA **  ,
const int  ,
void  
)
static

◆ operator<<() [1/2]

std::ostream & blender::bke::operator<< ( std::ostream &  stream,
const AssetCatalogPath path_to_append 
)

Output the path as string.

Definition at line 98 of file asset_catalog_path.cc.

◆ operator<<() [2/2]

std::ostream& blender::bke::operator<< ( std::ostream &  stream,
const AttributeIDRef attribute_id 
)

Definition at line 39 of file attribute_access.cc.

◆ operator==()

bool blender::bke::operator== ( const AttributeIDRef a,
const AttributeIDRef b 
)
inline

Definition at line 784 of file BKE_attribute.hh.

Referenced by ccl_try_align().

◆ pbvh_vertex_color_get()

template<typename T >
static void blender::bke::pbvh_vertex_color_get ( const PBVH pbvh,
int  vertex,
float  r_color[4] 
)
static

◆ pbvh_vertex_color_set()

template<typename T >
static void blender::bke::pbvh_vertex_color_set ( PBVH pbvh,
int  vertex,
const float  color[4] 
)
static

◆ point_attribute_materialize()

template<typename T >
static void blender::bke::point_attribute_materialize ( Span< Span< T >>  data,
Span< int >  offsets,
const IndexMask  mask,
MutableSpan< T r_span 
)
static

◆ point_attribute_materialize_to_uninitialized()

template<typename T >
static void blender::bke::point_attribute_materialize_to_uninitialized ( Span< Span< T >>  data,
Span< int >  offsets,
const IndexMask  mask,
MutableSpan< T r_span 
)
static

◆ point_data_varray()

template<typename T >
VArray<T> blender::bke::point_data_varray ( Array< MutableSpan< T >>  spans,
Array< int >  offsets 
)

◆ point_data_varray_mutable()

template<typename T >
VMutableArray<T> blender::bke::point_data_varray_mutable ( Array< MutableSpan< T >>  spans,
Array< int >  offsets 
)

◆ pointcloud_attributes()

AttributeAccessor blender::bke::pointcloud_attributes ( const PointCloud pointcloud)

◆ pointcloud_attributes_for_write()

MutableAttributeAccessor blender::bke::pointcloud_attributes_for_write ( PointCloud pointcloud)

◆ remove_point_attribute()

static bool blender::bke::remove_point_attribute ( CurveEval curve,
const AttributeIDRef attribute_id 
)
static

◆ retrieve_attributes_for_transfer()

Vector< AttributeTransferData > blender::bke::retrieve_attributes_for_transfer ( const bke::AttributeAccessor  src_attributes,
bke::MutableAttributeAccessor  dst_attributes,
eAttrDomainMask  domain_mask,
const Set< std::string > &  skip = {} 
)

◆ reverse_curve_point_data()

template<typename T >
static void blender::bke::reverse_curve_point_data ( const CurvesGeometry curves,
const IndexMask  curve_selection,
MutableSpan< T data 
)
static

◆ reverse_swap_curve_point_data()

template<typename T >
static void blender::bke::reverse_swap_curve_point_data ( const CurvesGeometry curves,
const IndexMask  curve_selection,
MutableSpan< T data_a,
MutableSpan< T data_b 
)
static

◆ rotate_directions_around_axes()

static void blender::bke::rotate_directions_around_axes ( MutableSpan< float3 directions,
const Span< float3 axes,
const Span< float angles 
)
static

◆ set_crease()

static void blender::bke::set_crease ( MEdge edge,
float  value 
)
static

Definition at line 881 of file geometry_component_mesh.cc.

References round_fl_to_uchar_clamp().

◆ set_cyclic_value()

static void blender::bke::set_cyclic_value ( SplinePtr spline,
const bool  value 
)
static

Definition at line 425 of file geometry_component_curve.cc.

◆ set_loop_uv()

static void blender::bke::set_loop_uv ( MLoopUV uv,
float2  co 
)
static

Definition at line 871 of file geometry_component_mesh.cc.

References copy_v2_v2(), and MLoopUV::uv.

◆ set_material_index()

static void blender::bke::set_material_index ( MPoly mpoly,
int  index 
)
static

Definition at line 851 of file geometry_component_mesh.cc.

References blender::math::clamp(), and MPoly::mat_nr.

◆ set_shade_smooth()

static void blender::bke::set_shade_smooth ( MPoly mpoly,
bool  value 
)
static

Definition at line 861 of file geometry_component_mesh.cc.

References MPoly::flag, ME_SMOOTH, and SET_FLAG_FROM_TEST.

◆ set_spline_resolution()

static void blender::bke::set_spline_resolution ( SplinePtr spline,
const int  resolution 
)
static

Definition at line 399 of file geometry_component_curve.cc.

References max.

◆ set_transform_position()

static void blender::bke::set_transform_position ( float4x4 transform,
const float3  position 
)
static

◆ set_vertex_position()

static void blender::bke::set_vertex_position ( MVert vert,
float3  position 
)
static

Definition at line 833 of file geometry_component_mesh.cc.

References MVert::co, and copy_v3_v3().

◆ should_add_attribute_to_mesh()

static bool blender::bke::should_add_attribute_to_mesh ( const AttributeAccessor curve_attributes,
const AttributeAccessor mesh_attributes,
const AttributeIDRef id 
)
static

◆ tag_component_positions_changed()

static void blender::bke::tag_component_positions_changed ( void owner)
static

◆ to_float() [1/3]

template<>
void blender::bke::to_float ( const MLoopCol src,
float  dst[4] 
)

Definition at line 64 of file pbvh.cc.

References rgba_uchar_to_float(), src, and srgb_to_linearrgb_v3_v3().

◆ to_float() [2/3]

template<>
void blender::bke::to_float ( const MPropCol src,
float  dst[4] 
)

Definition at line 69 of file pbvh.cc.

References copy_v4_v4(), and src.

◆ to_float() [3/3]

template<typename T >
void blender::bke::to_float ( const T src,
float  dst[4] 
)

◆ to_static_color_type()

template<typename Func >
void blender::bke::to_static_color_type ( const eCustomDataType  type,
const Func &  func 
)
inline

◆ transform_positions()

static void blender::bke::transform_positions ( MutableSpan< float3 positions,
const float4x4 matrix 
)
static

◆ translate_positions()

static void blender::bke::translate_positions ( MutableSpan< float3 positions,
const float3 translation 
)
static

◆ try_adapt_data_type()

static blender::GVArray blender::bke::try_adapt_data_type ( blender::GVArray  varray,
const blender::CPPType to_type 
)
static

◆ varray_from_initializer()

static GVArray blender::bke::varray_from_initializer ( const AttributeInit initializer,
const eCustomDataType  data_type,
const Span< SplinePtr splines 
)
static

Variable Documentation

◆ ATTR_CURVE_TYPE

const std::string blender::bke::ATTR_CURVE_TYPE = "curve_type"
static

◆ ATTR_CYCLIC

const std::string blender::bke::ATTR_CYCLIC = "cyclic"
static

◆ ATTR_HANDLE_POSITION_LEFT

const std::string blender::bke::ATTR_HANDLE_POSITION_LEFT = "handle_left"
static

◆ ATTR_HANDLE_POSITION_RIGHT

const std::string blender::bke::ATTR_HANDLE_POSITION_RIGHT = "handle_right"
static

◆ ATTR_HANDLE_TYPE_LEFT

const std::string blender::bke::ATTR_HANDLE_TYPE_LEFT = "handle_type_left"
static

◆ ATTR_HANDLE_TYPE_RIGHT

const std::string blender::bke::ATTR_HANDLE_TYPE_RIGHT = "handle_type_right"
static

◆ ATTR_NORMAL_MODE

const std::string blender::bke::ATTR_NORMAL_MODE = "normal_mode"
static

◆ ATTR_NURBS_KNOTS_MODE

const std::string blender::bke::ATTR_NURBS_KNOTS_MODE = "knots_mode"
static

◆ ATTR_NURBS_ORDER

const std::string blender::bke::ATTR_NURBS_ORDER = "nurbs_order"
static

◆ ATTR_NURBS_WEIGHT

const std::string blender::bke::ATTR_NURBS_WEIGHT = "nurbs_weight"
static

◆ ATTR_POSITION

const std::string blender::bke::ATTR_POSITION = "position"
static

Definition at line 25 of file curves_geometry.cc.

Referenced by blender::bke::CurvesGeometry::CurvesGeometry().

◆ ATTR_RADIUS

const std::string blender::bke::ATTR_RADIUS = "radius"
static

Definition at line 26 of file curves_geometry.cc.

Referenced by curves_bounds().

◆ ATTR_RESOLUTION

const std::string blender::bke::ATTR_RESOLUTION = "resolution"
static

◆ ATTR_SELECTION_CURVE_FLOAT

const std::string blender::bke::ATTR_SELECTION_CURVE_FLOAT = ".selection_curve_float"
static

◆ ATTR_SELECTION_POINT_FLOAT

const std::string blender::bke::ATTR_SELECTION_POINT_FLOAT = ".selection_point_float"
static

◆ ATTR_SURFACE_UV_COORDINATE

const std::string blender::bke::ATTR_SURFACE_UV_COORDINATE = "surface_uv_coordinate"
static

◆ ATTR_TILT

const std::string blender::bke::ATTR_TILT = "tilt"
static

◆ no_procedural_access_message

const char * blender::bke::no_procedural_access_message