9#define DNA_DEPRECATED_ALLOW
30#define DNA_GENFILE_VERSIONING_MACROS
57#undef DNA_GENFILE_VERSIONING_MACROS
90#include "RNA_prototypes.hh"
121 if (
min !=
nullptr) {
125 if (
max !=
nullptr) {
129 if (soft_min !=
nullptr) {
134 if (soft_max !=
nullptr) {
139 if (
step !=
nullptr) {
143 if (default_value !=
nullptr) {
161 if (
min !=
nullptr) {
165 if (
max !=
nullptr) {
169 if (soft_min !=
nullptr) {
174 if (soft_max !=
nullptr) {
179 if (
step !=
nullptr) {
183 if (precision !=
nullptr) {
187 if (default_value !=
nullptr) {
189 const int array_len = default_value->
len;
193 const float *old_default_array =
static_cast<const float *
>(
IDP_Array(default_value));
213 if (default_value !=
nullptr && default_value->
type ==
IDP_STRING) {
221 if (idprop_group ==
nullptr) {
226 if (ui_container ==
nullptr) {
232 if (prop_ui_data ==
nullptr) {
244 const char *subtype_string =
IDP_String(subtype);
348 if (ob->type ==
OB_ARMATURE && ob->pose !=
nullptr) {
357 if (scene->ed !=
nullptr) {
386 ID *id_prev =
nullptr;
388 if (id_prev ==
nullptr) {
413 *new_defbase =
object->defbase;
423#define STRIP_SPEED_INTEGRATE (1 << 0)
424#define STRIP_SPEED_COMPRESS_IPO_Y (1 << 2)
429 const char *substr =
nullptr;
430 float globalSpeed =
v->globalSpeed;
432 if (globalSpeed == 1.0f) {
437 v->speed_fader = globalSpeed * (float(strip->input1->len) /
439 scene, strip->input1) -
440 strip->input1->start),
446 v->speed_fader = strip->speed_fader * globalSpeed;
449 globalSpeed *= 100.0f;
451 v->speed_fader_length = strip->speed_fader * globalSpeed;
452 substr =
"speed_length";
456 v->speed_fader_frame_number = int(strip->speed_fader * globalSpeed);
457 substr =
"speed_frame_number";
462 if (substr || globalSpeed != 1.0f) {
464 &scene->
id, strip, &RNA_Strip,
"speed_factor", 0,
nullptr);
466 if (globalSpeed != 1.0f) {
469 bezt->
vec[0][1] *= globalSpeed;
470 bezt->
vec[1][1] *= globalSpeed;
471 bezt->
vec[2][1] *= globalSpeed;
487#undef STRIP_SPEED_INTEGRATE
488#undef STRIP_SPEED_COMPRESS_IPO_Y
503 for (
int i = 0;
i < 3;
i++) {
521 if (
ELEM(node->type_legacy,
554 bmain,
"Realize Instances 2.93 Legacy",
"GeometryNodeTree");
634 char name_esc[(
sizeof(strip->
name) - 2) * 2];
636 char *path =
BLI_sprintfN(
"sequence_editor.sequences_all[\"%s\"].pitch", name_esc);
638 if (fcu !=
nullptr) {
656 const Scene *scene =
static_cast<const Scene *
>(user_data);
667 if (strip->pitch <= 0.0f) {
692 switch (storage->
mode) {
698 sample_nearest_surface->
locx_legacy = node->locx_legacy;
699 sample_nearest_surface->
locy_legacy = node->locy_legacy;
700 static auto socket_remap = []() {
702 map.
add_new(
"Attribute",
"Value");
703 map.
add_new(
"Attribute_001",
"Value");
704 map.
add_new(
"Attribute_002",
"Value");
705 map.
add_new(
"Attribute_003",
"Value");
706 map.
add_new(
"Attribute_004",
"Value");
708 map.
add_new(
"Source Position",
"Sample Position");
728 sample_storage->
domain = int8_t(domain);
730 sample_index->
locx_legacy = node->locx_legacy + 25.0f;
732 if (old_geometry_socket->
link) {
745 sample_nearest->
custom2 = int8_t(domain);
746 sample_nearest->
locx_legacy = node->locx_legacy - 25.0f;
748 if (old_geometry_socket->
link) {
756 static auto sample_nearest_remap = []() {
758 map.
add_new(
"Source Position",
"Sample Position");
763 static auto sample_index_remap = []() {
765 map.
add_new(
"Attribute",
"Value");
766 map.
add_new(
"Attribute_001",
"Value");
767 map.
add_new(
"Attribute_002",
"Value");
768 map.
add_new(
"Attribute_003",
"Value");
769 map.
add_new(
"Attribute_004",
"Value");
770 map.
add_new(
"Source Position",
"Sample Position");
790 sample_storage->
clamp = 1;
794 const bool index_was_linked =
796 static auto socket_remap = []() {
798 map.
add_new(
"Attribute",
"Value");
799 map.
add_new(
"Attribute_001",
"Value");
800 map.
add_new(
"Attribute_002",
"Value");
801 map.
add_new(
"Attribute_003",
"Value");
802 map.
add_new(
"Attribute_004",
"Value");
803 map.
add_new(
"Source",
"Geometry");
809 if (!index_was_linked) {
840 if (!
ELEM(node->type_legacy,
853 if (
STREQ(socket->name,
"UV Map")) {
854 uv_map_output_socket = socket;
857 primitive_output_socket = socket;
860 if (uv_map_output_socket !=
nullptr) {
864 ntree, *node,
SOCK_OUT,
"NodeSocketVector",
"UV Map");
867 "GeometryNodeStoreNamedAttribute");
868 new_nodes.
append(store_attribute_node);
870 store_attribute_node->
locx_legacy = node->locx_legacy + 25;
871 store_attribute_node->
locy_legacy = node->locy_legacy;
873 store_attribute_node->
storage = &storage;
880 ntree, *store_attribute_node,
SOCK_IN,
"NodeSocketGeometry",
"Geometry");
882 ntree, *store_attribute_node,
SOCK_IN,
"NodeSocketString",
"Name");
884 ntree, *store_attribute_node,
SOCK_IN,
"NodeSocketVector",
"Value");
886 ntree, *store_attribute_node,
SOCK_OUT,
"NodeSocketGeometry",
"Geometry");
888 if (link->fromsock == primitive_output_socket) {
889 link->fromnode = store_attribute_node;
890 link->fromsock = &store_attribute_geometry_output;
902 *primitive_output_socket,
903 *store_attribute_node,
904 store_attribute_geometry_input);
906 ntree, *node, *uv_map_output_socket, *store_attribute_node, store_attribute_value_input);
910 for (
bNode *node : new_nodes) {
929 if (node->idname !=
StringRef(
"GeometryNodeExtrudeMesh")) {
943 in_links_per_socket.
add(link->tosock, link);
944 out_links_per_socket.
add(link->fromsock, link);
949 if (!geometry_in_link || geometry_out_links.
is_empty()) {
953 const bool versioning_already_done = [&]() {
966 *capture_node,
SOCK_IN,
"Value_003");
968 if (!capture_in_link) {
974 if (geometry_out_links.
size() != 1) {
981 bNode *set_smooth_node = geometry_out_link->
tonode;
983 *set_smooth_node,
SOCK_IN,
"Shade Smooth");
985 if (!connecting_link) {
988 if (connecting_link->
fromnode != capture_node) {
993 if (versioning_already_done) {
1001 new_nodes.
append(&capture_node);
1003 capture_node.
storage = capture_node_storage;
1007 ntree, capture_node,
SOCK_IN,
"NodeSocketGeometry",
"Geometry");
1009 ntree, capture_node,
SOCK_OUT,
"NodeSocketGeometry",
"Geometry");
1011 ntree, capture_node,
SOCK_IN,
"NodeSocketBool",
"Value_003");
1013 ntree, capture_node,
SOCK_OUT,
"NodeSocketBool",
"Attribute_003");
1020 ntree, is_smooth_node,
SOCK_OUT,
"NodeSocketBool",
"Smooth");
1021 new_nodes.
append(&is_smooth_node);
1023 ntree, is_smooth_node, is_smooth_out, capture_node, capture_node_value_in);
1025 geometry_in_link->
tonode = &capture_node;
1026 geometry_in_link->
tosock = &capture_node_geo_in;
1031 set_smooth_node.
locx_legacy = node->locx_legacy + 25;
1033 new_nodes.
append(&set_smooth_node);
1035 ntree, set_smooth_node,
SOCK_IN,
"NodeSocketGeometry",
"Geometry");
1037 ntree, set_smooth_node,
SOCK_OUT,
"NodeSocketGeometry",
"Geometry");
1039 ntree, set_smooth_node,
SOCK_IN,
"NodeSocketBool",
"Shade Smooth");
1042 ntree, *node, *geometry_out_socket, set_smooth_node, set_smooth_node_geo_in);
1044 for (
bNodeLink *link : geometry_out_links) {
1045 link->fromnode = &set_smooth_node;
1046 link->fromsock = &set_smooth_node_geo_out;
1050 capture_node_attribute_out,
1052 set_smooth_node_smooth_in);
1056 for (
bNode *node : new_nodes) {
1073 if (adt ==
nullptr || adt->
action ==
nullptr ||
1091 if (text->id.us == 0) {
1112 if (scene->ed !=
nullptr) {
1126 if (imapaint->
canvas !=
nullptr &&
1129 imapaint->
canvas =
nullptr;
1131 if (imapaint->
stencil !=
nullptr &&
1136 if (imapaint->
clone !=
nullptr &&
1139 imapaint->
clone =
nullptr;
1165 if (
STREQ(link->tosock->identifier,
"Switch")) {
1166 bNode *to_node = link->tonode;
1176 link->tosock = link->tosock->next;
1199 bNodeTree *realize_instances_node_tree =
nullptr;
1205 if (md->next ==
nullptr) {
1220 if (realize_instances_node_tree ==
nullptr) {
1223 new_nmd->
node_group = realize_instances_node_tree;
1246 if (adt ==
nullptr) {
1261 sizeof(dvar->name));
1285 ListBase *regionbase = (sl == area->spacedata.first) ? &area->regionbase :
1296 if (timeline_region ==
nullptr) {
1310 if (
ed ==
nullptr) {
1333 const bool is_first_space = sl == area->spacedata.first;
1334 ListBase *regionbase = is_first_space ? &area->regionbase : &sl->regionbase;
1336 if (region ==
nullptr) {
1376 if (socket == node->inputs.first) {
1379 STRNCPY(socket->name, socket->name[0] ==
'A' ?
"False" :
"True");
1382 char number_suffix[8];
1383 STRNCPY(number_suffix, socket->identifier + 1);
1385 socket->identifier,
sizeof(socket->identifier), socket->name, number_suffix);
1396 char *old_path = *p_old_path;
1398 if (old_path ==
nullptr) {
1402 int len = strlen(old_path);
1407 old_path[
len - 1] =
'z';
1416 int index = (old_path[
len - 1] ==
'y' ? 2 : 0);
1418 old_path[
len - 1] = 0;
1453 if (bone->flag & BONE_ADD_PARENT_END_ROLL) {
1457 copy_v3_fl3(bone->scale_in, bone->scale_in_x, 1.0f, bone->scale_in_z);
1458 copy_v3_fl3(bone->scale_out, bone->scale_out_x, 1.0f, bone->scale_out_z);
1470 if (
data->points ==
nullptr) {
1471 data->numpoints = 0;
1482 const float old_value = socket_value->
value;
1544 if (strstr(property->name,
"_use_attribute") || strstr(property->name,
"_attribute_name")) {
1554 if (strstr(property->name,
"_use_attribute") || strstr(property->name,
"_attribute_name")) {
1559 SNPRINTF(use_attribute_prop_name,
"%s%s", property->name,
"_use_attribute");
1565 SNPRINTF(attribute_name_prop_name,
"%s%s", property->name,
"_attribute_name");
1577 const float SAFE_THRESHOLD = 1.0e-5f;
1578 const float CRITICAL_THRESHOLD = 1.0e-9f;
1579 const float THRESHOLD_SQUARED = CRITICAL_THRESHOLD * CRITICAL_THRESHOLD;
1581 const float x =
nor[0];
1582 const float y =
nor[1];
1583 const float z =
nor[2];
1585 const float theta = 1.0f +
y;
1586 const float theta_alt =
x *
x +
z *
z;
1587 float rMatrix[3][3], bMatrix[3][3];
1596 if (theta > SAFE_THRESHOLD || (theta > CRITICAL_THRESHOLD && theta_alt > THRESHOLD_SQUARED)) {
1605 if (theta > SAFE_THRESHOLD) {
1607 bMatrix[0][0] = 1 -
x *
x / theta;
1608 bMatrix[2][2] = 1 -
z *
z / theta;
1609 bMatrix[2][0] = bMatrix[0][2] = -
x *
z / theta;
1613 bMatrix[0][0] = (
x +
z) * (
x -
z) / -theta_alt;
1614 bMatrix[2][2] = -bMatrix[0][0];
1615 bMatrix[2][0] = bMatrix[0][2] = 2.0f *
x *
z / theta_alt;
1621 bMatrix[0][0] = bMatrix[1][1] = -1.0;
1632 const float tail[3],
1633 const float check_x_axis[3],
1634 const float check_y_axis[3],
1637 const float SAFE_THRESHOLD = 1.0e-5f;
1638 float vec[3], bone_mat[3][3], vec2[3];
1645 if (1.0f + vec[1] < SAFE_THRESHOLD * 2 && (vec[0] || vec[2])) {
1654 if (
dot_v3v3(bone_mat[0], check_x_axis) < 0.999f) {
1669 bone->head, bone->tail, bone->bone_mat[0], bone->bone_mat[1], &bone->roll);
1673 bone->arm_head, bone->arm_tail, bone->arm_mat[0], bone->arm_mat[1], &bone->arm_roll);
1706 if (!
STREQ(link->tosock->identifier,
"Position")) {
1713 const bool offset_enabled =
1715 if (offset_enabled) {
1717 link->tosock = old_offset_socket->
next;
1760 if ((strip->
len == 1) &&
1805 opop->subitem_local_name,
1807 opop->subitem_local_index));
1808 bConstraint *constraint_src = constraint_anchor !=
nullptr ?
1809 constraint_anchor->
next :
1812 if (constraint_src ==
nullptr) {
1814 CLOG_ERROR(&
LOG,
"Could not find source constraint in stored override data");
1819 opop->subitem_reference_name = opop->subitem_local_name;
1821 opop->subitem_reference_index = opop->subitem_local_index;
1822 opop->subitem_local_index++;
1832 if (op !=
nullptr) {
1839 opop->subitem_local_name,
1841 opop->subitem_local_index));
1846 if (mod_src ==
nullptr) {
1848 CLOG_ERROR(&
LOG,
"Could not find source modifier in stored override data");
1853 opop->subitem_reference_name = opop->subitem_local_name;
1855 opop->subitem_reference_index = opop->subitem_local_index;
1856 opop->subitem_local_index++;
1861 if (op !=
nullptr) {
1868 opop->subitem_local_name,
1870 opop->subitem_local_index));
1872 gp_mod_anchor->
next :
1874 object->greasepencil_modifiers.first);
1876 if (gp_mod_src ==
nullptr) {
1878 CLOG_ERROR(&
LOG,
"Could not find source GP modifier in stored override data");
1883 opop->subitem_reference_name = opop->subitem_local_name;
1885 opop->subitem_reference_index = opop->subitem_local_index;
1886 opop->subitem_local_index++;
1891 if (op !=
nullptr) {
1895 if (
object->pose !=
nullptr) {
1897 char rna_path[26 + (
sizeof(pchan->name) * 2) + 1];
1898 char name_esc[
sizeof(pchan->name) * 2];
1900 SNPRINTF(rna_path,
"pose.bones[\"%s\"].constraints", name_esc);
1902 if (op !=
nullptr) {
1912 if (anim_data ==
nullptr) {
1920 if (op !=
nullptr) {
1929 opop->subitem_reference_name = opop->subitem_local_name;
1930 opop->subitem_local_name =
nullptr;
1931 opop->subitem_reference_index = opop->subitem_local_index;
1932 opop->subitem_local_index++;
1952 switch (node->type_legacy) {
1957 STRNCPY(node->idname,
"FunctionNodeCombineColor");
1958 node->storage = storage;
1965 STRNCPY(node->idname,
"FunctionNodeSeparateColor");
1966 node->storage = storage;
2017 switch (node->type_legacy) {
2022 STRNCPY(node->idname,
"CompositorNodeCombineColor");
2023 node->storage = storage;
2030 STRNCPY(node->idname,
"CompositorNodeCombineColor");
2031 node->storage = storage;
2039 STRNCPY(node->idname,
"CompositorNodeCombineColor");
2040 node->storage = storage;
2047 STRNCPY(node->idname,
"CompositorNodeCombineColor");
2048 node->storage = storage;
2055 STRNCPY(node->idname,
"CompositorNodeSeparateColor");
2056 node->storage = storage;
2063 STRNCPY(node->idname,
"CompositorNodeSeparateColor");
2064 node->storage = storage;
2072 STRNCPY(node->idname,
"CompositorNodeSeparateColor");
2073 node->storage = storage;
2080 STRNCPY(node->idname,
"CompositorNodeSeparateColor");
2081 node->storage = storage;
2091 switch (node->type_legacy) {
2095 STRNCPY(node->idname,
"TextureNodeCombineColor");
2101 STRNCPY(node->idname,
"TextureNodeSeparateColor");
2129 switch (node->type_legacy) {
2134 STRNCPY(node->idname,
"ShaderNodeCombineColor");
2135 node->storage = storage;
2142 STRNCPY(node->idname,
"ShaderNodeCombineColor");
2143 node->storage = storage;
2150 STRNCPY(node->idname,
"ShaderNodeSeparateColor");
2151 node->storage = storage;
2158 STRNCPY(node->idname,
"ShaderNodeSeparateColor");
2159 node->storage = storage;
2175 STRNCPY(node->idname,
"ShaderNodeMix");
2178 data->blend_type = node->custom1;
2180 data->clamp_factor = 1;
2183 node->storage =
data;
2193 if (
format->view_settings.curve_mapping) {
2195 if (
format != &scene->r.im_format &&
ELEM(
format->view_settings.curve_mapping,
2196 scene->view_settings.curve_mapping,
2197 scene->r.im_format.view_settings.curve_mapping))
2200 format->view_settings.curve_mapping);
2206 if (
format->view_settings.curve_mapping->cm[0].curve ==
nullptr) {
2208 format->view_settings.curve_mapping =
nullptr;
2241 "versioning: tool props region for file",
2275 "versioning: channels region for sequencer",
2280 "versioning: preview region for sequencer",
2294 const char *parent_rna_path,
2302 char name_esc_strip[
sizeof(strip->
name) * 2];
2305 const std::string rna_path_strip = std::string(parent_rna_path) +
".strips[\"" + name_esc_strip +
2309 const std::string rna_path_prop = rna_path_strip +
".frame_start";
2311 liboverride, rna_path_prop.c_str(), (rna_path_prop +
"_raw").c_str());
2315 const std::string rna_path_prop = rna_path_strip +
".frame_end";
2317 liboverride, rna_path_prop.c_str(), (rna_path_prop +
"_raw").c_str());
2321 const std::string rna_path_prop = rna_path_strip +
".frame_start_ui";
2326 const std::string rna_path_prop = rna_path_strip +
".frame_end_ui";
2346 char *rna_path_track =
BLI_sprintfN(
"animation_data.nla_tracks[%d]", track_index);
2361 enum { SCE_SNAP_SEQ = (1 << 7) };
2365 if (!DNA_struct_member_exists(fd->
filesdna,
"MirrorModifierData",
"float",
"bisect_threshold"))
2378 if (!DNA_struct_member_exists(fd->
filesdna,
"BrushGpencilSettings",
"int",
"dilate_pixels")) {
2380 if (
brush->gpencil_settings) {
2381 brush->gpencil_settings->dilate_pixels = 1;
2390 if (!DNA_struct_member_exists(fd->
filesdna,
"bPoseChannel",
"float",
"custom_scale_xyz[3]")) {
2392 if (ob->pose ==
nullptr) {
2396 copy_v3_fl(pchan->custom_scale_xyz, pchan->custom_scale);
2408 ListBase *regionbase = (sl == area->spacedata.first) ? &area->regionbase :
2412 if (new_sidebar !=
nullptr) {
2440 if (!DNA_struct_member_exists(fd->
filesdna,
"FileAssetSelectParams",
"short",
"import_method"))
2457 if (!DNA_struct_member_exists(fd->
filesdna,
"Bone",
"int",
"bbone_flag")) {
2466 copy_v3_fl3(pchan->scale_in, pchan->scale_in_x, 1.0f, pchan->scale_in_z);
2467 copy_v3_fl3(pchan->scale_out, pchan->scale_out_x, 1.0f, pchan->scale_out_z);
2493 ListBase *regionbase = (sl == area->spacedata.first) ? &area->regionbase :
2498 if (spreadsheet_dataset_region) {
2525 tool_settings->
snap_flag |= SCE_SNAP_SEQ;
2526 short snap_mode = tool_settings->
snap_mode;
2529 tool_settings->
snap_mode &= ~((1 << 4) | (1 << 5) | (1 << 6));
2532 if (snap_mode & (1 << 4)) {
2535 if (snap_mode & (1 << 5)) {
2538 if (snap_mode & (1 << 6)) {
2541 if (snap_node_mode & (1 << 5)) {
2544 if (snap_node_mode & (1 << 6)) {
2547 if (snap_uv_mode & (1 << 4)) {
2560 if (scene->master_collection !=
nullptr) {
2561 BLI_strncpy(scene->master_collection->id.name + 2,
2563 sizeof(scene->master_collection->id.name) - 2);
2580 STRNCPY(node->idname,
"GeometryNodeMeshSubdivide");
2598 mat->lineart.mat_occlusion = 1;
2605 if (!DNA_struct_member_exists(
2606 fd->
filesdna,
"SurfaceDeformModifierData",
"int",
"mesh_verts_num"))
2633 if (!DNA_struct_member_exists(
2634 fd->
filesdna,
"WorkSpace",
"AssetLibraryReference",
"asset_library"))
2641 if (!DNA_struct_member_exists(
2642 fd->
filesdna,
"FileAssetSelectParams",
"AssetLibraryReference",
"asset_library_ref"))
2669 tool_settings->
snap_flag &= ~SCE_SNAP_SEQ;
2693 if (!DNA_struct_member_exists(
2694 fd->
filesdna,
"View3DOverlay",
"float",
"normals_constant_screen_size"))
2755 object->visibility_flag |=
flag;
2760 if (!DNA_struct_member_exists(
2761 fd->
filesdna,
"WorkSpace",
"AssetLibraryReference",
"asset_library_ref"))
2768 if (!DNA_struct_member_exists(
2769 fd->
filesdna,
"FileAssetSelectParams",
"AssetLibraryReference",
"asset_library_ref"))
2827 bNode *node = link->tonode;
2828 if (
STREQ(link->tosock->identifier,
"Size") && link->tosock->type ==
SOCK_FLOAT) {
2829 bNode *link_fromnode = link->fromnode;
2835 ntree, node, socket);
2837 *ntree, *link_fromnode, *link_fromsock, *node, *new_socket);
2847 if (
STREQ(socket->identifier,
"Size") && (socket->type ==
SOCK_FLOAT)) {
2857 if (!DNA_struct_member_exists(
2858 fd->
filesdna,
"LineartGpencilModifierData",
"bool",
"use_crease_on_smooth"))
2903 seq_show_safe_center | seq_show_metadata);
2905 seq_show_strip_source | seq_show_strip_duration |
2906 seq_show_grid | show_strip_offset);
2918 if (scene->ed !=
nullptr) {
2937 ListBase *regionbase = (sl == area->spacedata.first) ? &area->regionbase :
2941 region->v2d.min[1] = 4.0f;
2961 R_EXR_TILE_FILE = (1 << 10),
2962 R_FULL_SAMPLE = (1 << 15),
2965 scene->r.scemode &= ~(R_EXR_TILE_FILE | R_FULL_SAMPLE);
2999 switch (sl->spacetype) {
3025 switch (sl->spacetype) {
3027 ListBase *regionbase = (sl == area->spacedata.first) ? &area->regionbase :
3047 ListBase *regionbase = (sl == area->spacedata.first) ? &area->regionbase :
3049 ARegion *region_tool =
nullptr, *region_head =
nullptr;
3050 int region_tool_index = -1, region_head_index = -1,
i;
3053 region_tool = region;
3054 region_tool_index =
i;
3057 region_head = region;
3058 region_head_index =
i;
3061 if ((region_tool && region_head) && (region_head_index > region_tool_index)) {
3070 if (scene->ed !=
nullptr) {
3090 if (scene->ed !=
nullptr) {
3101 switch (sl->spacetype) {
3104 enum { SEQ_DRAW_SEQUENCE = 0 };
3105 if (sseq->
mainb == SEQ_DRAW_SEQUENCE) {
3151 if (!DNA_struct_exists(fd->
filesdna,
"SpaceNodeOverlay")) {
3184 wm->xr.session_settings.base_scale = 1.0f;
3208 if (node->storage ==
nullptr) {
3211 node->storage =
data;
3267 ListBase *regionbase = (sl == area->spacedata.first) ? &area->regionbase :
3271 region->v2d.min[1] = 1.0f;
3284 ListBase *regionbase = (sl == area->spacedata.first) ? &area->regionbase :
3288 region->v2d.minzoom = std::min(region->v2d.minzoom, 0.05f);
3330 if (node->storage ==
nullptr) {
3333 data->operation = node->custom1;
3334 STRNCPY(node->idname,
"FunctionNodeCompare");
3335 node->storage =
data;
3359 if (node->storage ==
nullptr) {
3361 data->clamp = node->custom1;
3363 data->interpolation_type = node->custom2;
3364 node->storage =
data;
3376 ListBase *regionbase = (sl == area->spacedata.first) ? &area->regionbase :
3404 if (!DNA_struct_member_exists(fd->
filesdna,
"View3DOverlay",
"float",
"bone_wire_alpha")) {
3450 if (scene->ed !=
nullptr) {
3460 ~(short(
SCE_SNAP) | short(SCE_SNAP_SEQ));
3461 if (tool_settings->
snap_flag & SCE_SNAP_SEQ) {
3463 tool_settings->
snap_flag &= ~SCE_SNAP_SEQ;
3511 if (gpmd->
step == 1 && gpmd->
factor <= 0.5f) {
3517 gpmd->
step + 2.0f)));
3555 actlayer = me->vert_data.layers + vact1;
3557 else if (vact2 != -1) {
3558 actlayer = me->corner_data.layers + vact2;
3600 if (
brush->curves_sculpt_settings !=
nullptr) {
3604 brush->curves_sculpt_settings->add_amount = 1;
3631 ListBase *regionbase = (sl == area->spacedata.first) ? &area->regionbase :
3646 if (timeline_region !=
nullptr) {
3656 if (
ed ==
nullptr) {
3662 ed->displayed_channels = &
ed->channels;
3666 ms->old_channels = previous_channels;
3667 previous_channels = &ms->parent_strip->channels;
3669 ed->displayed_channels = &ms->parent_strip->channels;
3720 actlayer = me->vert_data.layers + vact1;
3722 else if (vact2 != -1) {
3723 actlayer = me->corner_data.layers + vact2;
3775 if (node->storage ==
nullptr) {
3779 node->storage =
data;
3810 if (settings ==
nullptr) {
3819 if (!DNA_struct_member_exists(fd->
filesdna,
"Sculpt",
"float",
"automasking_cavity_factor")) {
3821 if (scene->toolsettings && scene->toolsettings->sculpt) {
3822 scene->toolsettings->sculpt->automasking_cavity_factor = 0.5f;
3830 scene->r.bake.max_ray_distance =
safe_sqrtf(scene->r.bake.max_ray_distance);
3845 if (
brush->curves_sculpt_settings->points_per_curve == 0) {
3846 brush->curves_sculpt_settings->points_per_curve = 8;
3851 if (!DNA_struct_member_exists(fd->
filesdna,
"ImagePackedFile",
"int",
"tile_number")) {
3856 imapf->tile_number = 1001;
3864 if (
ed !=
nullptr) {
3909 ((
SpaceClip *)sl)->mask_info.blend_factor = 1.0;
3948 if (sock->storage) {
3954 if (node->storage) {
3978 ListBase *regionbase = (sl == area->spacedata.first) ? &area->regionbase :
3982 if (channels_region) {
3983 MEM_delete(channels_region->
runtime);
3997 brush->curves_sculpt_settings->density_add_attempts = 100;
4013 if (!DNA_struct_member_exists(fd->
filesdna,
"ImageTile",
"int",
"gen_x")) {
4016 tile->gen_x = ima->gen_x;
4017 tile->gen_y = ima->gen_y;
4018 tile->gen_type = ima->gen_type;
4019 tile->gen_flag = ima->gen_flag;
4020 tile->gen_depth = ima->gen_depth;
4036 for (
int i = 0;
i <
mesh->faces_num;
i++) {
4037 face_sets[
i] =
abs(face_sets[
i]);
4046 switch (sl->spacetype) {
4062 brush->automasking_cavity_factor = 0.5f;
4098 brush->automasking_cavity_factor = 1.0f;
4108 ListBase *regionbase = (sl == area->spacedata.first) ? &area->regionbase :
4148 const float frame_center_x = float(clip->lastsize[0]) / 2;
4149 const float frame_center_y = float(clip->lastsize[1]) / 2;
4168 if (!DNA_struct_member_exists(fd->
filesdna,
"Image",
"short",
"seam_margin")) {
4170 image->seam_margin = 8;
4197 light->radius = light->area_size;
4201 if (!DNA_struct_member_exists(
4202 fd->
filesdna,
"BuildGpencilModifierData",
"float",
"speed_fac") ||
4203 !DNA_struct_member_exists(
4204 fd->
filesdna,
"BuildGpencilModifierData",
"float",
"speed_maxgap"))
4219 const int CV_SCULPT_SELECTION_ENABLED = (1 << 1);
4221 curves_id->flag &= ~CV_SCULPT_SELECTION_ENABLED;
4231 bool after_armature =
false;
4243 after_armature =
false;
4247 after_armature =
true;
4255 after_armature =
false;
4271 node->custom2 =
true;
4297 if (!DNA_struct_member_exists(fd->
filesdna,
"SceneEEVEE",
"int",
"shadow_pool_size")) {
4300 scene->eevee.shadow_pool_size = 512;
4319 if (
ed !=
nullptr) {
4326 if (
brush->curves_sculpt_settings->curve_parameter_falloff ==
nullptr) {
4328 1, 0.0f, 0.0f, 1.0f, 1.0f);
4336 if (!DNA_struct_member_exists(fd->
filesdna,
"View3DOverlay",
"float",
"retopology_offset")) {
4353 if (
ed !=
nullptr) {
4376 const ListBase *regionbase = (sl == area->spacedata.first) ? &area->regionbase :
4397 const char *tool_replace_table[][2] = {
4398 {
"selection_paint",
"Paint Selection"},
4400 {
"delete",
"Delete"},
4401 {
"density",
"Density"},
4403 {
"snake_hook",
"Snake Hook"},
4404 {
"grow_shrink",
"Grow / Shrink"},
4448 if (
ed !=
nullptr) {
4468 if (ob->type !=
OB_ARMATURE || ob->pose ==
nullptr) {
4471 bPose *pose = ob->pose;
4483 short snap_mode_geom = (1 << 0) | (1 << 1) | (1 << 2) | (1 << 4) | (1 << 5);
4484 scene->toolsettings->snap_mode_tools = snap_mode_geom;
4485 scene->toolsettings->plane_axis = 2;
4497 const ListBase *regionbase = (sl == area->spacedata.first) ? &area->regionbase :
4524 scene->toolsettings->uvcalc_iterations = 10;
4525 scene->toolsettings->uvcalc_weight_factor = 1.0f;
4526 STRNCPY(scene->toolsettings->uvcalc_weight_group,
"uv_importance");
Blender kernel action and pose functionality.
void BKE_action_groups_reconstruct(bAction *act)
void BKE_animdata_main_cb(struct Main *bmain, blender::FunctionRef< void(ID *, AnimData *)> func)
AnimData * BKE_animdata_from_id(const ID *id)
void vec_roll_to_mat3(const float vec[3], float roll, float r_mat[3][3])
void mat3_to_vec_roll(const float mat[3][3], float r_vec[3], float *r_roll)
void BKE_asset_library_reference_init_default(AssetLibraryReference *library_ref)
void BKE_id_attributes_default_color_set(struct ID *id, std::optional< blender::StringRef > name)
bool BKE_attribute_rename(AttributeOwner &owner, blender::StringRef old_name, blender::StringRef new_name, struct ReportList *reports)
void BKE_id_attributes_active_color_set(struct ID *id, std::optional< blender::StringRef > name)
#define BKE_SCENE_COLLECTION_NAME
void BKE_nurb_knot_calc_u(Nurb *nu)
void BKE_nurb_knot_calc_v(Nurb *nu)
Low-level operations for curves.
CustomData interface, see also DNA_customdata_types.h.
const void * CustomData_get_layer(const CustomData *data, eCustomDataType type)
int CustomData_get_active_layer_index(const CustomData *data, eCustomDataType type)
int CustomData_get_render_layer_index(const CustomData *data, eCustomDataType type)
void BKE_fmodifier_name_set(FModifier *fcm, const char *name)
FCurve * BKE_fcurve_find(ListBase *list, const char rna_path[], int array_index)
FCurve * id_data_find_fcurve(ID *id, void *data, StructRNA *type, const char *prop_name, int index, bool *r_driven)
#define DRIVER_TARGETS_LOOPER_BEGIN(dvar)
#define DRIVER_TARGETS_LOOPER_END
IDProperty * IDP_GetPropertyFromGroup(const IDProperty *prop, blender::StringRef name) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
void IDP_FreeFromGroup(IDProperty *group, IDProperty *prop) ATTR_NONNULL()
float IDP_coerce_to_float_or_zero(const IDProperty *prop)
eIDPropertyUIDataType IDP_ui_data_type(const IDProperty *prop)
bool IDP_ui_data_supported(const IDProperty *prop)
@ IDP_UI_DATA_TYPE_BOOLEAN
@ IDP_UI_DATA_TYPE_UNSUPPORTED
@ IDP_UI_DATA_TYPE_STRING
int IDP_coerce_to_int_or_zero(const IDProperty *prop)
double IDP_coerce_to_double_or_zero(const IDProperty *prop)
bool IDP_AddToGroup(IDProperty *group, IDProperty *prop) ATTR_NONNULL()
IDProperty * IDP_GetProperties(ID *id) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
IDPropertyUIData * IDP_ui_data_ensure(IDProperty *prop)
void BKE_image_ensure_tile_token(char *filepath, size_t filepath_maxncpy)
void BKE_main_id_repair_duplicate_names_listbase(Main *bmain, ListBase *lb)
void id_sort_by_name(ListBase *lb, ID *id, ID *id_sorting_hint)
void id_fake_user_set(ID *id)
bool BKE_lib_override_library_property_rna_path_change(IDOverrideLibrary *liboverride, const char *old_rna_path, const char *new_rna_path)
void BKE_lib_override_library_property_operation_delete(IDOverrideLibraryProperty *liboverride_property, IDOverrideLibraryPropertyOperation *liboverride_property_operation)
IDOverrideLibraryProperty * BKE_lib_override_library_property_find(IDOverrideLibrary *liboverride, const char *rna_path)
bool BKE_lib_override_library_property_search_and_delete(IDOverrideLibrary *liboverride, const char *rna_path)
bool BKE_lib_override_library_is_user_edited(const ID *id)
#define FOREACH_MAIN_ID_END
ListBase * which_libbase(Main *bmain, short type)
#define MAIN_VERSION_FILE_ATLEAST(main, ver, subver)
#define FOREACH_MAIN_LISTBASE_END
#define FOREACH_MAIN_LISTBASE_BEGIN(_bmain, _lb)
#define FOREACH_MAIN_ID_BEGIN(_bmain, _id)
bool BKE_main_namemap_validate_and_fix(Main &bmain)
void BKE_modifier_unique_name(ListBase *modifiers, ModifierData *md)
ModifierData * BKE_modifier_new(int type)
bool BKE_nlatrack_has_strips(ListBase *tracks)
#define NODE_GROUP_OUTPUT
#define FOREACH_NODETREE_END
#define FOREACH_NODETREE_BEGIN(bmain, _nodetree, _id)
#define GEO_NODE_SET_POSITION
#define GEO_NODE_MERGE_BY_DISTANCE
#define GEO_NODE_TRIANGULATE
#define SH_NODE_COMBINE_COLOR
#define GEO_NODE_SET_CURVE_HANDLES
#define GEO_NODE_MESH_PRIMITIVE_ICO_SPHERE
#define GEO_NODE_SUBDIVISION_SURFACE
#define SH_NODE_MIX_RGB_LEGACY
#define SH_NODE_COMBRGB_LEGACY
#define GEO_NODE_CURVE_SPLINE_PARAMETER
#define CMP_NODE_SEPHSVA_LEGACY
#define GEO_NODE_MESH_PRIMITIVE_CIRCLE
#define GEO_NODE_SAMPLE_NEAREST_SURFACE
#define GEO_NODE_SEPARATE_COMPONENTS
#define GEO_NODE_POINTS_TO_VERTICES
#define GEO_NODE_BOUNDING_BOX
#define GEO_NODE_SUBDIVIDE_MESH
#define CMP_NODE_COMBYCCA_LEGACY
#define SH_NODE_BSDF_PRINCIPLED
#define CMP_NODE_SEPRGBA_LEGACY
#define CMP_NODE_SEPARATE_COLOR
#define GEO_NODE_SET_POINT_RADIUS
#define GEO_NODE_SET_CURVE_TILT
#define SH_NODE_SEPARATE_COLOR
#define SH_NODE_SUBSURFACE_SCATTERING
#define GEO_NODE_OFFSET_POINT_IN_CURVE
#define SH_NODE_MAP_RANGE
#define TEX_NODE_DECOMPOSE_LEGACY
#define GEO_NODE_INPUT_MESH_ISLAND
#define GEO_NODE_MESH_PRIMITIVE_CUBE
#define GEO_NODE_DISTRIBUTE_POINTS_ON_FACES
#define SH_NODE_SEPRGB_LEGACY
#define CMP_NODE_COMBYUVA_LEGACY
#define GEO_NODE_MESH_PRIMITIVE_CONE
#define GEO_NODE_REPLACE_MATERIAL
#define GEO_NODE_REVERSE_CURVE
#define GEO_NODE_MESH_BOOLEAN
#define CMP_NODE_SEPYUVA_LEGACY
#define TEX_NODE_COMBINE_COLOR
#define CMP_NODE_COMBHSVA_LEGACY
#define FN_NODE_COMBINE_COLOR
#define GEO_NODE_TRANSLATE_INSTANCES
#define TEX_NODE_SEPARATE_COLOR
#define GEO_NODE_MESH_PRIMITIVE_LINE
#define GEO_NODE_TRIM_CURVE
#define SH_NODE_SEPHSV_LEGACY
#define TEX_NODE_COMPOSE_LEGACY
#define CMP_NODE_LENSDIST
#define GEO_NODE_FILLET_CURVE
#define GEO_NODE_MESH_PRIMITIVE_CYLINDER
#define GEO_NODE_CURVE_SPLINE_TYPE
#define GEO_NODE_MESH_PRIMITIVE_UV_SPHERE
#define GEO_NODE_SUBDIVIDE_CURVE
#define GEO_NODE_MESH_PRIMITIVE_GRID
#define GEO_NODE_SPLIT_EDGES
#define CMP_NODE_OUTPUT_FILE
#define GEO_NODE_ROTATE_INSTANCES
#define GEO_NODE_INPUT_MESH_EDGE_ANGLE
#define GEO_NODE_REALIZE_INSTANCES
#define GEO_NODE_RESAMPLE_CURVE
#define GEO_NODE_INPUT_INDEX
#define GEO_NODE_SAMPLE_CURVE
#define CMP_NODE_COMBINE_COLOR
#define CMP_NODE_COMBRGBA_LEGACY
#define GEO_NODE_CAPTURE_ATTRIBUTE
#define FN_NODE_SEPARATE_COLOR
#define GEO_NODE_FILL_CURVE
#define GEO_NODE_CURVE_LENGTH
#define GEO_NODE_CURVE_TO_MESH
#define GEO_NODE_STRING_TO_CURVES
#define GEO_NODE_POINTS_TO_VOLUME
#define GEO_NODE_SAMPLE_INDEX
#define CMP_NODE_SEPYCCA_LEGACY
#define GEO_NODE_COLLECTION_INFO
#define GEO_NODE_TRANSFER_ATTRIBUTE_DEPRECATED
#define SH_NODE_COMBHSV_LEGACY
#define GEO_NODE_SET_MATERIAL
#define GEO_NODE_SCALE_INSTANCES
#define GEO_NODE_SET_CURVE_RADIUS
#define GEO_NODE_CONVEX_HULL
#define GEO_NODE_JOIN_GEOMETRY
#define GEO_NODE_SAMPLE_NEAREST
#define FN_NODE_SLICE_STRING
ARegion * BKE_region_find_in_listbase_by_type(const ListBase *regionbase, const int region_type)
void void BKE_workspace_tool_id_replace_table(WorkSpace *workspace, const int space_type, const int mode, const char *idname_prefix_skip, const char *replace_table[][2], int replace_table_num) ATTR_NONNULL(1
#define BLI_assert_unreachable()
void * BLI_findlink(const ListBase *listbase, int number) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
void void void BLI_movelisttolist(ListBase *dst, ListBase *src) ATTR_NONNULL(1
#define LISTBASE_FOREACH(type, var, list)
BLI_INLINE void BLI_listbase_clear(ListBase *lb)
void void * BLI_listbase_string_or_index_find(const ListBase *listbase, const char *string, size_t string_offset, int index) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
BLI_INLINE bool BLI_listbase_is_empty(const ListBase *lb)
void BLI_freelinkN(ListBase *listbase, void *vlink) ATTR_NONNULL(1)
#define LISTBASE_FOREACH_MUTABLE(type, var, list)
void void BLI_freelistN(ListBase *listbase) ATTR_NONNULL(1)
void BLI_addtail(ListBase *listbase, void *vlink) ATTR_NONNULL(1)
#define LISTBASE_FOREACH_INDEX(type, var, list, index_var)
void BLI_insertlinkafter(ListBase *listbase, void *vprevlink, void *vnewlink) ATTR_NONNULL(1)
void BLI_remlink(ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void BLI_addhead(ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void BLI_listbase_swaplinks(ListBase *listbase, void *vlinka, void *vlinkb) ATTR_NONNULL(1
int BLI_listbase_count(const ListBase *listbase) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
MINLINE float max_ff(float a, float b)
MINLINE float min_ff(float a, float b)
#define BLI_ASSERT_UNIT_V3(v)
MINLINE float safe_sqrtf(float a)
void unit_m3(float m[3][3])
void mul_m3_m3m3(float R[3][3], const float A[3][3], const float B[3][3])
void axis_angle_normalized_to_mat3(float R[3][3], const float axis[3], float angle)
MINLINE void copy_v4_v4(float r[4], const float a[4])
MINLINE void sub_v3_v3v3(float r[3], const float a[3], const float b[3])
MINLINE void copy_v3_fl3(float v[3], float x, float y, float z)
MINLINE float dot_v3v3(const float a[3], const float b[3]) ATTR_WARN_UNUSED_RESULT
MINLINE bool compare_v3v3(const float v1[3], const float v2[3], float limit) ATTR_WARN_UNUSED_RESULT
MINLINE void copy_v3_fl(float r[3], float f)
MINLINE float normalize_v3(float n[3])
bool BLI_path_extension_check(const char *path, const char *ext) ATTR_NONNULL(1
char * BLI_sprintfN(const char *__restrict format,...) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1) ATTR_MALLOC ATTR_PRINTF_FORMAT(1
char * BLI_strdup(const char *str) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1) ATTR_MALLOC
#define SNPRINTF(dst, format,...)
int char char int BLI_strcasecmp(const char *s1, const char *s2) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1
char * STRNCPY(char(&dst)[N], const char *src)
int bool bool BLI_str_endswith(const char *__restrict str, const char *__restrict end) ATTR_NONNULL(1
size_t BLI_str_escape(char *__restrict dst, const char *__restrict src, size_t dst_maxncpy) ATTR_NONNULL(1
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, size_t dst_maxncpy) ATTR_NONNULL(1
void BLI_uniquename(const struct ListBase *list, void *vlink, const char *defname, char delim, int name_offset, size_t name_maxncpy) ATTR_NONNULL(1
#define BLI_string_join(...)
char * BLI_string_replaceN(const char *__restrict str, const char *__restrict substr_old, const char *__restrict substr_new) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1
#define UNUSED_VARS_NDEBUG(...)
external readfile function prototypes.
#define CLOG_ERROR(clg_ref,...)
@ LIBOVERRIDE_OP_INSERT_AFTER
@ LIBOVERRIDE_FLAG_SYSTEM_DEFINED
@ ITASC_TRANSLATE_ROOT_BONES
@ TIME_CACHE_SIMULATION_NODES
@ NLASTRIP_EXTEND_HOLD_FORWARD
@ BBONE_ADD_PARENT_END_ROLL
@ SCULPT_BRUSH_TYPE_SMEAR
Object groups, one object can be in many groups at once.
@ COLORMANAGE_VIEW_USE_CURVES
@ CONSTRAINT_TYPE_SPLINEIK
blenloader genfile private function prototypes
@ eGpencilModifierType_Lineart
@ eGpencilModifierType_Smooth
@ eGpencilModifierType_Build
@ MOD_LINEART_USE_CREASE_ON_SMOOTH_SURFACES
These structs are the foundation for all linked lists in the library system.
@ LRT_MATERIAL_CUSTOM_OCCLUSION_EFFECTIVENESS
@ DT_MULTILAYER_INDEX_MAX
@ MOD_WVG_PROXIMITY_WEIGHTS_NORMALIZE
@ MOD_WVG_PROXIMITY_INVERT_VGROUP_MASK
@ eModifierType_MeshDeform
@ eModifierType_WeightVGProximity
@ eModifierType_DataTransfer
@ eModifierType_SurfaceDeform
@ NODE_INTERFACE_SOCKET_OUTPUT
@ NODE_INTERFACE_SOCKET_INPUT
@ CMP_NODE_COMBSEP_COLOR_YCC
@ CMP_NODE_COMBSEP_COLOR_YUV
@ CMP_NODE_COMBSEP_COLOR_RGB
@ CMP_NODE_COMBSEP_COLOR_HSV
@ SHD_SUBSURFACE_RANDOM_WALK_SKIN
@ SHD_SUBSURFACE_RANDOM_WALK
@ GEO_NODE_EXTRUDE_MESH_EDGES
@ GEO_NODE_MERGE_BY_DISTANCE_MODE_ALL
@ GEO_NODE_ATTRIBUTE_TRANSFER_NEAREST_FACE_INTERPOLATED
@ GEO_NODE_ATTRIBUTE_TRANSFER_INDEX
@ GEO_NODE_ATTRIBUTE_TRANSFER_NEAREST
@ OB_FLAG_USE_SIMULATION_CACHE
@ SEQ_SNAP_TO_CURRENT_FRAME
@ SCE_EEVEE_SHADOW_ENABLED
@ SCE_SNAP_TO_INCLUDE_EDITED
@ SCE_SNAP_TO_INCLUDE_NONEDITED
@ RGN_FLAG_HIDDEN_BY_USER
@ SEQ_SINGLE_FRAME_CONTENT
@ SEQ_USE_EFFECT_DEFAULT_FADE
@ SEQ_TRANSFORM_FILTER_BILINEAR
@ seqModifierType_ColorBalance
@ SEQ_COLOR_BALANCE_METHOD_LIFTGAMMAGAIN
@ SN_OVERLAY_SHOW_WIRE_COLORS
@ SN_OVERLAY_SHOW_OVERLAYS
@ SN_OVERLAY_SHOW_NAMED_ATTRIBUTES
@ SI_OVERLAY_SHOW_GRID_BACKGROUND
@ SEQ_TIMELINE_SHOW_FCURVES
@ SEQ_TIMELINE_SHOW_STRIP_DURATION
@ SEQ_TIMELINE_SHOW_STRIP_OFFSETS
@ SEQ_TIMELINE_SHOW_STRIP_SOURCE
@ SEQ_TIMELINE_SHOW_STRIP_NAME
@ SEQ_TIMELINE_SHOW_STRIP_COLOR_TAG
@ SEQ_VIEW_SEQUENCE_PREVIEW
@ FILE_ASSET_IMPORT_APPEND_REUSE
@ FILE_ASSET_IMPORT_APPEND
@ FILE_ASSET_IMPORT_FOLLOW_PREFS
@ FILE_BROWSE_MODE_ASSETS
@ SO_FILTER_NO_VIEW_LAYERS
@ SPREADSHEET_FILTER_ENABLE
@ SEQ_PREVIEW_SHOW_METADATA
@ SEQ_PREVIEW_SHOW_GPENCIL
@ SEQ_PREVIEW_SHOW_SAFE_MARGINS
@ SEQ_PREVIEW_SHOW_OUTLINE_SELECTED
@ SEQ_PREVIEW_SHOW_SAFE_CENTER
@ FILE_PARAMS_FLAG_UNUSED_3
@ FILE_PARAMS_FLAG_UNUSED_1
@ FILE_PARAMS_FLAG_UNUSED_2
#define FILE_SELECT_MAX_RECURSIONS
@ V2D_VIEWSYNC_AREA_VERTICAL
@ V3D_OFSDRAW_XR_SHOW_CUSTOM_OVERLAYS
@ V3D_OFSDRAW_SHOW_SELECTION
@ V3D_OFSDRAW_XR_SHOW_CONTROLLERS
@ V3D_AROUND_CENTER_MEDIAN
@ V3D_OVERLAY_SCULPT_SHOW_FACE_SETS
@ V3D_OVERLAY_VIEWER_ATTRIBUTE
@ V3D_OVERLAY_SCULPT_SHOW_MASK
@ V3D_OVERLAY_FADE_INACTIVE
@ V3D_OVERLAY_SCULPT_CURVES_CAGE
Read Guarded memory(de)allocation.
BMesh const char void * data
ATTR_WARN_UNUSED_RESULT const BMVert * v
SIMD_FORCE_INLINE btVector3 transform(const btVector3 &point) const
SIMD_FORCE_INLINE const btScalar & z() const
Return the z value.
btSequentialImpulseConstraintSolverMt int btPersistentManifold int btTypedConstraint ** constraints
static AttributeOwner from_id(ID *id)
bool add(const Key &key, const Value &value)
Value lookup_default(const Key &key, const Value &default_value) const
void add_new(const Key &key, const Value &value)
Span< Value > lookup(const Key &key) const
void add(const Key &key, const Value &value)
constexpr const T & first() const
constexpr int64_t size() const
constexpr bool is_empty() const
void append(const T &value)
void append(const T &value)
@ DENOISER_OPENIMAGEDENOISE
VecBase< float, D > step(VecOp< float, D >, VecOp< float, D >) RET
#define ID_IS_OVERRIDE_LIBRARY_REAL(_id)
#define ID_IS_LINKED(_id)
const ccl_global KernelWorkTile * tile
void * MEM_callocN(size_t len, const char *str)
void * MEM_malloc_arrayN(size_t len, size_t size, const char *str)
void MEM_freeN(void *vmemh)
std::unique_ptr< IDProperty, IDPropertyDeleter > create(StringRef prop_name, int32_t value, eIDPropertyFlag flags={})
Allocate a new IDProperty of type IDP_INT, set its name and value.
bNodeSocket * node_find_socket(bNode &node, eNodeSocketInOut in_out, StringRef identifier)
void node_remove_node(Main *bmain, bNodeTree &ntree, bNode &node, bool do_id_user, bool remove_animation=true)
void node_remove_socket(bNodeTree &ntree, bNode &node, bNodeSocket &sock)
void node_tree_set_type(bNodeTree &ntree)
bool node_set_selected(bNode &node, bool select)
bNodeSocket * node_add_socket(bNodeTree &ntree, bNode &node, eNodeSocketInOut in_out, StringRefNull idname, StringRefNull identifier, StringRefNull name)
void node_rebuild_id_vector(bNodeTree &node_tree)
bNode * node_add_static_node(const bContext *C, bNodeTree &ntree, int type)
bNodeLink & node_add_link(bNodeTree &ntree, bNode &fromnode, bNodeSocket &fromsock, bNode &tonode, bNodeSocket &tosock)
bNodeTree * node_tree_add_tree(Main *bmain, StringRef name, StringRef idname)
bNodeSocket * node_add_static_socket(bNodeTree &ntree, bNode &node, eNodeSocketInOut in_out, int type, int subtype, StringRefNull identifier, StringRefNull name)
std::optional< StringRefNull > node_static_socket_type(int type, int subtype, std::optional< int > dimensions=std::nullopt)
int time_right_handle_frame_get(const Scene *scene, const Strip *strip)
void channels_ensure(ListBase *channels)
Editing * editing_get(const Scene *scene)
void retiming_data_clear(Strip *strip)
constexpr int MAX_CHANNELS
void time_update_meta_strip_range(const Scene *scene, Strip *strip_meta)
void for_each_callback(ListBase *seqbase, ForEachFunc callback, void *user_data)
SequencerToolSettings * tool_settings_ensure(Scene *scene)
int effect_get_num_inputs(int strip_type)
bool RNA_enum_value_from_id(const EnumPropertyItem *item, const char *identifier, int *r_value)
const EnumPropertyItem rna_enum_property_subtype_items[]
ARegionRuntimeHandle * runtime
AssetLibraryReference asset_library_ref
FileSelectParams base_params
struct GpencilModifierData * next
float chain_smooth_tolerance
struct ModifierData * next
float principal_legacy[2]
MovieTrackingCamera camera
struct bNodeTree * node_group
struct NodesModifierSettings settings
struct IDProperty * properties
FileSelectParams * params
FileAssetSelectParams * asset_params
SpaceImageOverlay overlay
int custom_grid_subdiv[2]
struct SequencerTimelineOverlay timeline_overlay
struct SequencerPreviewOverlay preview_overlay
StripTransform * transform
float viewer_attribute_opacity
float normals_constant_screen_size
float sculpt_curves_cage_opacity
struct bConstraint * next
struct bNodeSocket * next
bNodeTreeInterface tree_interface
void sequencer_init_preview_region(ARegion *region)
#define STRIP_SPEED_INTEGRATE
static bool version_fix_seq_meta_range(Strip *strip, void *user_data)
static void versioning_replace_legacy_mix_rgb_node(bNodeTree *ntree)
static void version_geometry_nodes_primitive_uv_maps(bNodeTree &ntree)
static void version_idproperty_move_data_string(IDPropertyUIDataString *ui_data, const IDProperty *prop_ui_data)
static void move_vertex_group_names_to_object_data(Main *bmain)
static IDProperty * idproperty_find_ui_container(IDProperty *idprop_group)
#define STRIP_SPEED_COMPRESS_IPO_Y
static bool do_versions_sequencer_color_tags(Strip *strip, void *)
static void version_liboverride_nla_frame_start_end(ID *id, AnimData *adt)
static void version_idproperty_move_data_float(IDPropertyUIDataFloat *ui_data, const IDProperty *prop_ui_data)
static void strip_speed_factor_fix_rna_path(Strip *strip, ListBase *fcurves)
static void versioning_replace_legacy_combined_and_separate_color_nodes(bNodeTree *ntree)
static bool version_set_seq_single_frame_content(Strip *strip, void *)
static void sort_linked_ids(Main *bmain)
static bool strip_transform_filter_set(Strip *strip, void *)
static void version_liboverride_rnacollections_insertion_animdata(ID *id)
static bNodeSocket * do_version_replace_float_size_with_vector(bNodeTree *ntree, bNode *node, bNodeSocket *socket)
static void do_versions_idproperty_bones_recursive(Bone *bone)
static void version_geometry_nodes_add_attribute_input_settings(NodesModifierData *nmd)
static void version_idproperty_ui_data(IDProperty *idprop_group)
static void do_version_bbone_len_scale_fcurve_fix(FCurve *fcu)
static bool version_merge_still_offsets(Strip *strip, void *)
static void version_nla_action_strip_hold(Main *bmain)
static void version_switch_node_input_prefix(Main *bmain)
static void version_liboverride_rnacollections_insertion_object(Object *object)
static void version_ensure_missing_regions(ScrArea *area, SpaceLink *sl)
static bool version_fix_delete_flag(Strip *strip, void *)
static void legacy_vec_roll_to_mat3_normalized(const float nor[3], const float roll, float r_mat[3][3])
static void version_geometry_nodes_set_position_node_offset(bNodeTree *ntree)
static void version_idproperty_move_data_int(IDPropertyUIDataInt *ui_data, const IDProperty *prop_ui_data)
static void do_versions_sequencer_speed_effect_recursive(Scene *scene, const ListBase *seqbase)
static void do_versions_idproperty_ui_data(Main *bmain)
static void version_node_tree_socket_id_delim(bNodeTree *ntree)
static void do_version_bones_bbone_len_scale(ListBase *lb)
static void version_geometry_nodes_add_realize_instance_nodes(bNodeTree *ntree)
static void do_versions_idproperty_seq_recursive(ListBase *seqbase)
static void do_version_constraints_spline_ik_joint_bindings(ListBase *lb)
static void do_version_subsurface_methods(bNode *node)
static void version_liboverride_nla_strip_frame_start_end(IDOverrideLibrary *liboverride, const char *parent_rna_path, NlaStrip *strip)
static bNodeTree * add_realize_node_tree(Main *bmain)
static bool do_versions_sequencer_color_balance_sop(Strip *strip, void *)
static void version_fix_image_format_copy(Main *bmain, ImageFormatData *format)
static bool replace_bbone_len_scale_rnapath(char **p_old_path, int *p_index)
static void version_liboverride_rnacollections_insertion_object_constraints(ListBase *constraints, IDOverrideLibraryProperty *op)
void blo_do_versions_300(FileData *fd, Library *, Main *bmain)
static bool version_seq_fix_broken_sound_strips(Strip *strip, void *)
static bool strip_speed_factor_set(Strip *strip, void *user_data)
static void version_geometry_nodes_replace_transfer_attribute_node(bNodeTree *ntree)
static void correct_bone_roll_value(const float head[3], const float tail[3], const float check_x_axis[3], const float check_y_axis[3], float *r_roll)
void do_versions_after_linking_300(FileData *, Main *bmain)
static void assert_sorted_ids(Main *bmain)
static bool strip_meta_channels_ensure(Strip *strip, void *)
static void version_geometry_nodes_extrude_smooth_propagation(bNodeTree &ntree)
static void do_version_bones_roll(ListBase *lb)
static bool strip_transform_origin_set(Strip *strip, void *)
void add_realize_instances_before_socket(bNodeTree *ntree, bNode *node, bNodeSocket *geometry_socket)
ID * do_versions_rename_id(Main *bmain, const short id_type, const char *name_src, const char *name_dst)
void version_cycles_property_int_set(IDProperty *idprop, const char *name, int value)
IDProperty * version_cycles_properties_from_ID(ID *id)
int version_cycles_property_int(IDProperty *idprop, const char *name, int default_value)
bNodeSocket & version_node_add_socket(bNodeTree &ntree, bNode &node, const eNodeSocketInOut in_out, const char *idname, const char *identifier)
void version_node_socket_id_delim(bNodeSocket *socket)
void version_node_socket_index_animdata(Main *bmain, const int node_tree_type, const int node_type, const int socket_index_orig, const int socket_index_offset, const int total_number_of_sockets)
void version_node_input_socket_name(bNodeTree *ntree, const int node_type, const char *old_name, const char *new_name)
bNode & version_node_add_empty(bNodeTree &ntree, const char *idname)
void version_node_socket_name(bNodeTree *ntree, const int node_type, const char *old_name, const char *new_name)
bool version_cycles_property_boolean(IDProperty *idprop, const char *name, bool default_value)
void version_socket_update_is_used(bNodeTree *ntree)
IDProperty * version_cycles_visibility_properties_from_ID(ID *id)
ARegion * do_versions_add_region(int regiontype, const char *)
void node_tree_relink_with_socket_id_map(bNodeTree &ntree, bNode &old_node, bNode &new_node, const Map< std::string, std::string > &map)
bNodeLink & version_node_add_link(bNodeTree &ntree, bNode &node_a, bNodeSocket &socket_a, bNode &node_b, bNodeSocket &socket_b)
ARegion * do_versions_ensure_region(ListBase *regionbase, int region_type, const char *, int link_after_region_type)
bNodeSocket * version_node_add_socket_if_not_exist(bNodeTree *ntree, bNode *node, int in_out, int type, int subtype, const char *identifier, const char *name)
ARegion * do_versions_add_region_if_not_found(ListBase *regionbase, int region_type, const char *, int link_after_region_type)
void version_node_output_socket_name(bNodeTree *ntree, const int node_type, const char *old_name, const char *new_name)
void version_node_id(bNodeTree *ntree, const int node_type, const char *new_name)