diff --git a/source/blender/animrig/intern/action_iterators_test.cc b/source/blender/animrig/intern/action_iterators_test.cc index 1f51ef3ef32..d2241112c43 100644 --- a/source/blender/animrig/intern/action_iterators_test.cc +++ b/source/blender/animrig/intern/action_iterators_test.cc @@ -41,7 +41,7 @@ class ActionIteratorsTest : public testing::Test { void SetUp() override { bmain = BKE_main_new(); - action = static_cast(BKE_id_new(bmain, ID_AC, "ACLayeredAction")); + action = BKE_id_new(bmain, "ACLayeredAction"); } void TearDown() override @@ -114,13 +114,12 @@ TEST_F(ActionIteratorsTest, iterate_all_fcurves_of_slot) TEST_F(ActionIteratorsTest, foreach_action_slot_use_with_references) { /* Create a cube and assign the Action + a slot. */ - Object *cube = static_cast(BKE_id_new(bmain, ID_OB, "OBCube")); + Object *cube = BKE_id_new(bmain, "OBCube"); Slot *slot_cube = assign_action_ensure_slot_for_keying(*action, cube->id); ASSERT_NE(slot_cube, nullptr); /* Create another Action with slot to assign. */ - Action &other_action = - static_cast(BKE_id_new(bmain, ID_AC, "ACAnotherAction"))->wrap(); + Action &other_action = BKE_id_new(bmain, "ACAnotherAction")->wrap(); Slot &another_slot = other_action.slot_add(); std::optional slot_assignment_result; @@ -162,7 +161,7 @@ TEST_F(ActionIteratorsTest, foreach_action_slot_use_with_references) TEST_F(ActionIteratorsTest, foreach_action_slot_use_with_rna) { /* Create a cube and assign the Action + a slot. */ - Object *cube = static_cast(BKE_id_new(bmain, ID_OB, "OBCube")); + Object *cube = BKE_id_new(bmain, "OBCube"); Slot *slot_cube = assign_action_ensure_slot_for_keying(*action, cube->id); ASSERT_NE(slot_cube, nullptr); Slot &another_slot = action->slot_add(); diff --git a/source/blender/animrig/intern/action_legacy_test.cc b/source/blender/animrig/intern/action_legacy_test.cc index e71c4f2ae70..ff4680d1915 100644 --- a/source/blender/animrig/intern/action_legacy_test.cc +++ b/source/blender/animrig/intern/action_legacy_test.cc @@ -48,7 +48,7 @@ class ActionLegacyTest : public testing::Test { bAction *create_empty_action() { - return static_cast(BKE_id_new(bmain, ID_AC, "ACAction")); + return BKE_id_new(bmain, "ACAction"); } FCurve *fcurve_add_legacy(bAction *action, const StringRefNull rna_path, const int array_index) diff --git a/source/blender/animrig/intern/action_test.cc b/source/blender/animrig/intern/action_test.cc index 94eec3e56f0..e34c3f47f88 100644 --- a/source/blender/animrig/intern/action_test.cc +++ b/source/blender/animrig/intern/action_test.cc @@ -64,7 +64,7 @@ class ActionLayersTest : public testing::Test { void SetUp() override { bmain = BKE_main_new(); - action = static_cast(BKE_id_new(bmain, ID_AC, "ACÄnimåtië")); + action = BKE_id_new(bmain, "ACÄnimåtië"); cube = BKE_object_add_only_object(bmain, OB_EMPTY, "Küüübus"); suzanne = BKE_object_add_only_object(bmain, OB_EMPTY, "OBSuzanne"); bob = BKE_object_add_only_object(bmain, OB_EMPTY, "OBBob"); @@ -115,7 +115,7 @@ TEST_F(ActionLayersTest, remove_layer) layer2.strip_add(*action, Strip::Type::Keyframe); { /* Test removing a layer that is not owned. */ - Action *other_anim = static_cast(BKE_id_new(bmain, ID_AC, "ACOtherAnim")); + Action *other_anim = BKE_id_new(bmain, "ACOtherAnim"); Layer &other_layer = other_anim->layer_add("Another Layer"); EXPECT_FALSE(action->layer_remove(other_layer)) << "Removing a layer not owned by the Action should be gracefully rejected"; @@ -565,7 +565,7 @@ TEST_F(ActionLayersTest, action_assign_id) << "Expecting Suzanne to be registered as animated by the Cube slot."; { /* Assign Cube to another action+slot without unassigning first. */ - Action *another_anim = static_cast(BKE_id_new(bmain, ID_AC, "ACOtherAnim")); + Action *another_anim = BKE_id_new(bmain, "ACOtherAnim"); Slot &another_slot = another_anim->slot_add(); ASSERT_EQ(assign_action_and_slot(another_anim, &another_slot, cube->id), ActionSlotAssignmentResult::OK); @@ -1130,8 +1130,8 @@ TEST_F(ActionLayersTest, conversion_to_layered) ASSERT_TRUE(bag->fcurve_array[0]->modifiers.first == nullptr); ASSERT_TRUE(bag->fcurve_array[1]->modifiers.first != nullptr); - Action *long_name_action = static_cast(BKE_id_new( - bmain, ID_AC, "name_for_an_action_that_is_exactly_64_chars_which_is_MAX_ID_NAME")); + Action *long_name_action = BKE_id_new( + bmain, "name_for_an_action_that_is_exactly_64_chars_which_is_MAX_ID_NAME"); action_fcurve_ensure_legacy(bmain, long_name_action, "Long", nullptr, {"location", 0}); converted = convert_to_layered_action(*bmain, *long_name_action); /* AC gets added automatically by Blender, the long name is shortened to make space for @@ -1196,7 +1196,7 @@ TEST_F(ActionLayersTest, empty_to_layered) TEST_F(ActionLayersTest, action_move_slot) { - Action *action_2 = static_cast(BKE_id_new(bmain, ID_AC, "Action 2")); + Action *action_2 = BKE_id_new(bmain, "Action 2"); EXPECT_TRUE(action->is_empty()); Slot &slot_cube = action->slot_add(); @@ -1250,7 +1250,7 @@ TEST_F(ActionLayersTest, action_move_slot) TEST_F(ActionLayersTest, action_move_slot_without_channelbag) { - Action *action_2 = static_cast(BKE_id_new(bmain, ID_AC, "Action 2")); + Action *action_2 = BKE_id_new(bmain, "Action 2"); EXPECT_TRUE(action->is_empty()); Slot &slot_cube = action->slot_add(); @@ -1442,7 +1442,7 @@ class ActionQueryTest : public testing::Test { Action &action_new() { - return *static_cast(BKE_id_new(bmain, ID_AC, "ACÄnimåtië")); + return *BKE_id_new(bmain, "ACÄnimåtië"); } }; diff --git a/source/blender/animrig/intern/evaluation_test.cc b/source/blender/animrig/intern/evaluation_test.cc index a6a6653f798..d002a2a2374 100644 --- a/source/blender/animrig/intern/evaluation_test.cc +++ b/source/blender/animrig/intern/evaluation_test.cc @@ -59,7 +59,7 @@ class AnimationEvaluationTest : public testing::Test { void SetUp() override { bmain = BKE_main_new(); - action = static_cast(BKE_id_new(bmain, ID_AC, "ACÄnimåtië")); + action = BKE_id_new(bmain, "ACÄnimåtië"); cube = BKE_object_add_only_object(bmain, OB_EMPTY, "Küüübus"); diff --git a/source/blender/animrig/intern/keyframing_test.cc b/source/blender/animrig/intern/keyframing_test.cc index 2ad423d5c71..7a3f37ca18d 100644 --- a/source/blender/animrig/intern/keyframing_test.cc +++ b/source/blender/animrig/intern/keyframing_test.cc @@ -92,7 +92,7 @@ class KeyframingTest : public testing::Test { object_with_nla = BKE_object_add_only_object(bmain, OB_EMPTY, "EmptyWithNLA"); object_with_nla_rna_pointer = RNA_id_pointer_create(&object_with_nla->id); - nla_action = static_cast(BKE_id_new(bmain, ID_AC, "NLAAction")); + nla_action = BKE_id_new(bmain, "NLAAction"); this->ensure_action_is_legacy(*nla_action); cube = BKE_object_add_only_object(bmain, OB_MESH, "cube"); @@ -659,7 +659,7 @@ TEST_F(KeyframingTest, insert_keyframes__baklava_legacy_action) /* Create a legacy Action and assign it the legacy way. */ { - bAction *action = reinterpret_cast(BKE_id_new(bmain, ID_AC, "LegacyAction")); + bAction *action = BKE_id_new(bmain, "LegacyAction"); action_fcurve_ensure_legacy(bmain, action, nullptr, nullptr, {"testprop", 47}); BKE_animdata_ensure_id(&object->id)->action = action; } diff --git a/source/blender/animrig/intern/nla_test.cc b/source/blender/animrig/intern/nla_test.cc index 3073b494363..3e345d61205 100644 --- a/source/blender/animrig/intern/nla_test.cc +++ b/source/blender/animrig/intern/nla_test.cc @@ -46,7 +46,7 @@ class NLASlottedActionTest : public testing::Test { void SetUp() override { bmain = BKE_main_new(); - action = static_cast(BKE_id_new(bmain, ID_AC, "ACÄnimåtië")); + action = BKE_id_new(bmain, "ACÄnimåtië"); action->id.us = 0; /* Nothing references this yet. */ cube = BKE_object_add_only_object(bmain, OB_EMPTY, "Küüübus"); cube->id.us = 0; /* Nothing references this yet. */ diff --git a/source/blender/animrig/intern/pose_test.cc b/source/blender/animrig/intern/pose_test.cc index 93813a4ef15..87e0adbc082 100644 --- a/source/blender/animrig/intern/pose_test.cc +++ b/source/blender/animrig/intern/pose_test.cc @@ -55,7 +55,7 @@ class PoseTest : public testing::Test { void SetUp() override { bmain = BKE_main_new(); - pose_action = static_cast(BKE_id_new(bmain, ID_AC, "pose_data")); + pose_action = BKE_id_new(bmain, "pose_data"); Layer &layer = pose_action->layer_add("first_layer"); Strip &strip = layer.strip_add(*pose_action, Strip::Type::Keyframe); keyframe_data = &strip.data(*pose_action); diff --git a/source/blender/blenkernel/BKE_lib_id.hh b/source/blender/blenkernel/BKE_lib_id.hh index d10cad00047..bf8a482086e 100644 --- a/source/blender/blenkernel/BKE_lib_id.hh +++ b/source/blender/blenkernel/BKE_lib_id.hh @@ -129,6 +129,13 @@ void BKE_lib_libblock_session_uid_renew(ID *id); * \param name: can be NULL, in which case we get default name for this ID type. */ void *BKE_id_new(Main *bmain, short type, const char *name); + +template inline T *BKE_id_new(Main *bmain, const char *name) +{ + const ID_Type id_type = T::id_type; + return static_cast(BKE_id_new(bmain, id_type, name)); +} + /** * Same as for #BKE_id_new, but allows creating a data-block for (within) a given owner library. * diff --git a/source/blender/blenkernel/intern/action.cc b/source/blender/blenkernel/intern/action.cc index 18ada2967b1..63c975d2780 100644 --- a/source/blender/blenkernel/intern/action.cc +++ b/source/blender/blenkernel/intern/action.cc @@ -802,7 +802,7 @@ bAction *BKE_action_add(Main *bmain, const char name[]) { bAction *act; - act = static_cast(BKE_id_new(bmain, ID_AC, name)); + act = BKE_id_new(bmain, name); return act; } diff --git a/source/blender/blenkernel/intern/anim_data_test.cc b/source/blender/blenkernel/intern/anim_data_test.cc index 61b954f70f8..6857859d2ac 100644 --- a/source/blender/blenkernel/intern/anim_data_test.cc +++ b/source/blender/blenkernel/intern/anim_data_test.cc @@ -23,7 +23,7 @@ TEST(anim_data, BKE_fcurves_id_cb_test) BKE_idtype_init(); Main *bmain = BKE_main_new(); - Action *action = static_cast(BKE_id_new(bmain, ID_AC, "ACÄnimåtië")); + Action *action = BKE_id_new(bmain, "ACÄnimåtië"); Object *cube = BKE_object_add_only_object(bmain, OB_EMPTY, "Küüübus"); Object *suzanne = BKE_object_add_only_object(bmain, OB_EMPTY, "OBSuzanne"); diff --git a/source/blender/blenkernel/intern/armature.cc b/source/blender/blenkernel/intern/armature.cc index 46ff873500d..98edf3bf30a 100644 --- a/source/blender/blenkernel/intern/armature.cc +++ b/source/blender/blenkernel/intern/armature.cc @@ -509,7 +509,7 @@ bArmature *BKE_armature_add(Main *bmain, const char *name) { bArmature *arm; - arm = static_cast(BKE_id_new(bmain, ID_AR, name)); + arm = BKE_id_new(bmain, name); return arm; } diff --git a/source/blender/blenkernel/intern/bpath_test.cc b/source/blender/blenkernel/intern/bpath_test.cc index 6f55348e5d8..22de82fc088 100644 --- a/source/blender/blenkernel/intern/bpath_test.cc +++ b/source/blender/blenkernel/intern/bpath_test.cc @@ -64,8 +64,8 @@ class BPathTest : public testing::Test { bmain = BKE_main_new(); STRNCPY(bmain->filepath, BLENDFILE_PATH); - BKE_id_new(bmain, ID_TXT, nullptr); - BKE_id_new(bmain, ID_MC, nullptr); + BKE_id_new(bmain, nullptr); + BKE_id_new(bmain, nullptr); } void TearDown() override diff --git a/source/blender/blenkernel/intern/brush.cc b/source/blender/blenkernel/intern/brush.cc index d8fc46ef020..257af6a3543 100644 --- a/source/blender/blenkernel/intern/brush.cc +++ b/source/blender/blenkernel/intern/brush.cc @@ -529,7 +529,7 @@ static void brush_defaults(Brush *brush) Brush *BKE_brush_add(Main *bmain, const char *name, const eObjectMode ob_mode) { - Brush *brush = (Brush *)BKE_id_new(bmain, ID_BR, name); + Brush *brush = BKE_id_new(bmain, name); brush->ob_mode = ob_mode; diff --git a/source/blender/blenkernel/intern/cachefile.cc b/source/blender/blenkernel/intern/cachefile.cc index d435571c00a..cac1caab1bc 100644 --- a/source/blender/blenkernel/intern/cachefile.cc +++ b/source/blender/blenkernel/intern/cachefile.cc @@ -307,7 +307,7 @@ static void cachefile_handle_free(CacheFile *cache_file) void *BKE_cachefile_add(Main *bmain, const char *name) { - CacheFile *cache_file = static_cast(BKE_id_new(bmain, ID_CF, name)); + CacheFile *cache_file = BKE_id_new(bmain, name); return cache_file; } diff --git a/source/blender/blenkernel/intern/camera.cc b/source/blender/blenkernel/intern/camera.cc index 6cd38920704..712873f0c53 100644 --- a/source/blender/blenkernel/intern/camera.cc +++ b/source/blender/blenkernel/intern/camera.cc @@ -290,7 +290,7 @@ Camera *BKE_camera_add(Main *bmain, const char *name) { Camera *cam; - cam = static_cast(BKE_id_new(bmain, ID_CA, name)); + cam = BKE_id_new(bmain, name); return cam; } diff --git a/source/blender/blenkernel/intern/collection.cc b/source/blender/blenkernel/intern/collection.cc index f86a57ae2f1..2e2050170cf 100644 --- a/source/blender/blenkernel/intern/collection.cc +++ b/source/blender/blenkernel/intern/collection.cc @@ -432,7 +432,7 @@ static Collection *collection_add(Main *bmain, } /* Create new collection. */ - Collection *collection = static_cast(BKE_id_new(bmain, ID_GR, name)); + Collection *collection = BKE_id_new(bmain, name); /* We increase collection user count when linking to Collections. */ id_us_min(&collection->id); diff --git a/source/blender/blenkernel/intern/curves.cc b/source/blender/blenkernel/intern/curves.cc index c3c41c75747..16f1d36e75f 100644 --- a/source/blender/blenkernel/intern/curves.cc +++ b/source/blender/blenkernel/intern/curves.cc @@ -168,7 +168,7 @@ IDTypeInfo IDType_ID_CV = { Curves *BKE_curves_add(Main *bmain, const char *name) { - Curves *curves = static_cast(BKE_id_new(bmain, ID_CV, name)); + Curves *curves = BKE_id_new(bmain, name); return curves; } diff --git a/source/blender/blenkernel/intern/grease_pencil.cc b/source/blender/blenkernel/intern/grease_pencil.cc index fc4d2f1508d..7c421cbaeca 100644 --- a/source/blender/blenkernel/intern/grease_pencil.cc +++ b/source/blender/blenkernel/intern/grease_pencil.cc @@ -2000,7 +2000,7 @@ bool BKE_grease_pencil_drawing_attribute_required(const GreasePencilDrawing * /* GreasePencil *BKE_grease_pencil_add(Main *bmain, const char *name) { - GreasePencil *grease_pencil = reinterpret_cast(BKE_id_new(bmain, ID_GP, name)); + GreasePencil *grease_pencil = BKE_id_new(bmain, name); return grease_pencil; } diff --git a/source/blender/blenkernel/intern/grease_pencil_test.cc b/source/blender/blenkernel/intern/grease_pencil_test.cc index 4a83ba93c7d..2ce2e036cbf 100644 --- a/source/blender/blenkernel/intern/grease_pencil_test.cc +++ b/source/blender/blenkernel/intern/grease_pencil_test.cc @@ -40,7 +40,7 @@ TEST(greasepencil, create_grease_pencil_id) { GreasePencilIDTestContext ctx; - GreasePencil &grease_pencil = *static_cast(BKE_id_new(ctx.bmain, ID_GP, "GP")); + GreasePencil &grease_pencil = *BKE_id_new(ctx.bmain, "GP"); EXPECT_EQ(grease_pencil.drawings().size(), 0); EXPECT_EQ(grease_pencil.root_group().num_nodes_total(), 0); } @@ -51,7 +51,7 @@ TEST(greasepencil, create_grease_pencil_id) TEST(greasepencil, add_empty_drawings) { GreasePencilIDTestContext ctx; - GreasePencil &grease_pencil = *static_cast(BKE_id_new(ctx.bmain, ID_GP, "GP")); + GreasePencil &grease_pencil = *BKE_id_new(ctx.bmain, "GP"); grease_pencil.add_empty_drawings(3); EXPECT_EQ(grease_pencil.drawings().size(), 3); } @@ -59,7 +59,7 @@ TEST(greasepencil, add_empty_drawings) TEST(greasepencil, remove_drawings) { GreasePencilIDTestContext ctx; - GreasePencil &grease_pencil = *static_cast(BKE_id_new(ctx.bmain, ID_GP, "GP")); + GreasePencil &grease_pencil = *BKE_id_new(ctx.bmain, "GP"); grease_pencil.add_empty_drawings(3); GreasePencilDrawing *drawing = reinterpret_cast(grease_pencil.drawing(1)); diff --git a/source/blender/blenkernel/intern/key.cc b/source/blender/blenkernel/intern/key.cc index ac7c849cf97..2a1d9fe9814 100644 --- a/source/blender/blenkernel/intern/key.cc +++ b/source/blender/blenkernel/intern/key.cc @@ -260,7 +260,7 @@ Key *BKE_key_add(Main *bmain, ID *id) /* common function */ Key *key; char *el; - key = static_cast(BKE_id_new(bmain, ID_KE, "Key")); + key = BKE_id_new(bmain, "Key"); key->type = KEY_NORMAL; key->from = id; diff --git a/source/blender/blenkernel/intern/lattice.cc b/source/blender/blenkernel/intern/lattice.cc index bf309e7a1c5..d1711b1adab 100644 --- a/source/blender/blenkernel/intern/lattice.cc +++ b/source/blender/blenkernel/intern/lattice.cc @@ -393,7 +393,7 @@ Lattice *BKE_lattice_add(Main *bmain, const char *name) { Lattice *lt; - lt = static_cast(BKE_id_new(bmain, ID_LT, name)); + lt = BKE_id_new(bmain, name); return lt; } diff --git a/source/blender/blenkernel/intern/lib_override.cc b/source/blender/blenkernel/intern/lib_override.cc index ad7aa8a7bd1..a365b08653d 100644 --- a/source/blender/blenkernel/intern/lib_override.cc +++ b/source/blender/blenkernel/intern/lib_override.cc @@ -1598,8 +1598,7 @@ static void lib_override_library_create_post_process(Main *bmain, if (ID_REAL_USERS(ob_new) != 0) { continue; } - default_instantiating_collection = static_cast( - BKE_id_new(bmain, ID_GR, "OVERRIDE_HIDDEN")); + default_instantiating_collection = BKE_id_new(bmain, "OVERRIDE_HIDDEN"); id_us_min(&default_instantiating_collection->id); /* Hide the collection from viewport and render. */ default_instantiating_collection->flag |= COLLECTION_HIDE_VIEWPORT | diff --git a/source/blender/blenkernel/intern/light.cc b/source/blender/blenkernel/intern/light.cc index 6eedd80de65..17563973a4e 100644 --- a/source/blender/blenkernel/intern/light.cc +++ b/source/blender/blenkernel/intern/light.cc @@ -190,7 +190,7 @@ Light *BKE_light_add(Main *bmain, const char *name) { Light *la; - la = static_cast(BKE_id_new(bmain, ID_LA, name)); + la = BKE_id_new(bmain, name); return la; } diff --git a/source/blender/blenkernel/intern/lightprobe.cc b/source/blender/blenkernel/intern/lightprobe.cc index f98dd9fee20..b3a7d5fc6c9 100644 --- a/source/blender/blenkernel/intern/lightprobe.cc +++ b/source/blender/blenkernel/intern/lightprobe.cc @@ -107,7 +107,7 @@ LightProbe *BKE_lightprobe_add(Main *bmain, const char *name) { LightProbe *probe; - probe = static_cast(BKE_id_new(bmain, ID_LP, name)); + probe = BKE_id_new(bmain, name); return probe; } diff --git a/source/blender/blenkernel/intern/main_test.cc b/source/blender/blenkernel/intern/main_test.cc index a989a7ce9cd..7289804a402 100644 --- a/source/blender/blenkernel/intern/main_test.cc +++ b/source/blender/blenkernel/intern/main_test.cc @@ -67,8 +67,8 @@ TEST_F(BMainMergeTest, basics) EXPECT_TRUE(BLI_listbase_is_empty(&bmain_src->objects)); BKE_id_new(bmain_dst, ID_GR, "Coll_dst"); - Collection *coll = static_cast(BKE_id_new(bmain_src, ID_GR, "Coll_src")); - Object *ob = static_cast(BKE_id_new(bmain_src, ID_OB, "Ob_src")); + Collection *coll = BKE_id_new(bmain_src, "Coll_src"); + Object *ob = BKE_id_new(bmain_src, "Ob_src"); BKE_collection_object_add(bmain_src, coll, ob); EXPECT_EQ(1, BLI_listbase_count(&bmain_dst->collections)); @@ -88,8 +88,8 @@ TEST_F(BMainMergeTest, basics) EXPECT_EQ(nullptr, bmain_src); bmain_src = BKE_main_new(); - Collection *coll_2 = static_cast(BKE_id_new(bmain_src, ID_GR, "Coll_src_2")); - Object *ob_2 = static_cast(BKE_id_new(bmain_src, ID_OB, "Ob_src")); + Collection *coll_2 = BKE_id_new(bmain_src, "Coll_src_2"); + Object *ob_2 = BKE_id_new(bmain_src, "Ob_src"); BKE_collection_object_add(bmain_src, coll_2, ob_2); EXPECT_EQ(2, BLI_listbase_count(&bmain_dst->collections)); @@ -142,12 +142,12 @@ TEST_F(BMainMergeTest, linked_data) STRNCPY(bmain_dst->filepath, DST_PATH); STRNCPY(bmain_src->filepath, SRC_PATH); - BKE_id_new(bmain_dst, ID_GR, "Coll_dst"); + BKE_id_new(bmain_dst, "Coll_dst"); - Collection *coll_1 = static_cast(BKE_id_new(bmain_src, ID_GR, "Coll_src")); - Object *ob_1 = static_cast(BKE_id_new(bmain_src, ID_OB, "Ob_src")); + Collection *coll_1 = BKE_id_new(bmain_src, "Coll_src"); + Object *ob_1 = BKE_id_new(bmain_src, "Ob_src"); BKE_collection_object_add(bmain_src, coll_1, ob_1); - Library *lib_src_1 = static_cast(BKE_id_new(bmain_src, ID_LI, LIB_PATH)); + Library *lib_src_1 = BKE_id_new(bmain_src, LIB_PATH); BKE_library_filepath_set(bmain_src, lib_src_1, LIB_PATH); ob_1->id.lib = lib_src_1; @@ -178,10 +178,10 @@ TEST_F(BMainMergeTest, linked_data) bmain_src = BKE_main_new(); STRNCPY(bmain_src->filepath, SRC_PATH); - Collection *coll_2 = static_cast(BKE_id_new(bmain_src, ID_GR, "Coll_src_2")); - Object *ob_2 = static_cast(BKE_id_new(bmain_src, ID_OB, "Ob_src_2")); + Collection *coll_2 = BKE_id_new(bmain_src, "Coll_src_2"); + Object *ob_2 = BKE_id_new(bmain_src, "Ob_src_2"); BKE_collection_object_add(bmain_src, coll_2, ob_2); - Library *lib_src_2 = static_cast(BKE_id_new(bmain_src, ID_LI, LIB_PATH)); + Library *lib_src_2 = BKE_id_new(bmain_src, LIB_PATH); BKE_library_filepath_set(bmain_src, lib_src_2, LIB_PATH); std::cout << lib_src_1->runtime->filepath_abs << "\n"; std::cout << lib_src_2->runtime->filepath_abs << "\n"; @@ -214,10 +214,10 @@ TEST_F(BMainMergeTest, linked_data) bmain_src = BKE_main_new(); STRNCPY(bmain_src->filepath, SRC_PATH); - Collection *coll_3 = static_cast(BKE_id_new(bmain_src, ID_GR, "Coll_src_3")); - Object *ob_3 = static_cast(BKE_id_new(bmain_src, ID_OB, "Ob_src")); + Collection *coll_3 = BKE_id_new(bmain_src, "Coll_src_3"); + Object *ob_3 = BKE_id_new(bmain_src, "Ob_src"); BKE_collection_object_add(bmain_src, coll_3, ob_3); - Library *lib_src_3 = static_cast(BKE_id_new(bmain_src, ID_LI, LIB_PATH_RELATIVE)); + Library *lib_src_3 = BKE_id_new(bmain_src, LIB_PATH_RELATIVE); BKE_library_filepath_set(bmain_src, lib_src_3, LIB_PATH_RELATIVE); ob_3->id.lib = lib_src_3; @@ -254,10 +254,10 @@ TEST_F(BMainMergeTest, linked_data) bmain_src = BKE_main_new(); STRNCPY(bmain_src->filepath, SRC_PATH); - Collection *coll_4 = static_cast(BKE_id_new(bmain_src, ID_GR, "Coll_src")); - Object *ob_4 = static_cast(BKE_id_new(bmain_src, ID_OB, "Ob_src_4")); + Collection *coll_4 = BKE_id_new(bmain_src, "Coll_src"); + Object *ob_4 = BKE_id_new(bmain_src, "Ob_src_4"); BKE_collection_object_add(bmain_src, coll_4, ob_4); - Library *lib_src_4 = static_cast(BKE_id_new(bmain_src, ID_LI, DST_PATH)); + Library *lib_src_4 = BKE_id_new(bmain_src, DST_PATH); BKE_library_filepath_set(bmain_src, lib_src_4, DST_PATH); coll_4->id.lib = lib_src_4; ob_4->id.lib = lib_src_4; diff --git a/source/blender/blenkernel/intern/material.cc b/source/blender/blenkernel/intern/material.cc index 0461f47503b..eb78c087e0b 100644 --- a/source/blender/blenkernel/intern/material.cc +++ b/source/blender/blenkernel/intern/material.cc @@ -304,7 +304,7 @@ Material *BKE_material_add(Main *bmain, const char *name) { Material *ma; - ma = static_cast(BKE_id_new(bmain, ID_MA, name)); + ma = BKE_id_new(bmain, name); return ma; } diff --git a/source/blender/blenkernel/intern/mball.cc b/source/blender/blenkernel/intern/mball.cc index 9eed98fce78..776515cc822 100644 --- a/source/blender/blenkernel/intern/mball.cc +++ b/source/blender/blenkernel/intern/mball.cc @@ -177,7 +177,7 @@ IDTypeInfo IDType_ID_MB = { MetaBall *BKE_mball_add(Main *bmain, const char *name) { - MetaBall *mb = static_cast(BKE_id_new(bmain, ID_MB, name)); + MetaBall *mb = BKE_id_new(bmain, name); return mb; } diff --git a/source/blender/blenkernel/intern/mesh.cc b/source/blender/blenkernel/intern/mesh.cc index 1bbd8f7a8f4..1c0cf39d098 100644 --- a/source/blender/blenkernel/intern/mesh.cc +++ b/source/blender/blenkernel/intern/mesh.cc @@ -678,7 +678,7 @@ static void mesh_tessface_clear_intern(Mesh *mesh, int free_customdata) Mesh *BKE_mesh_add(Main *bmain, const char *name) { - return static_cast(BKE_id_new(bmain, ID_ME, name)); + return BKE_id_new(bmain, name); } void BKE_mesh_face_offsets_ensure_alloc(Mesh *mesh) diff --git a/source/blender/blenkernel/intern/movieclip.cc b/source/blender/blenkernel/intern/movieclip.cc index 42e97de578e..48df579dc74 100644 --- a/source/blender/blenkernel/intern/movieclip.cc +++ b/source/blender/blenkernel/intern/movieclip.cc @@ -914,7 +914,7 @@ static MovieClip *movieclip_alloc(Main *bmain, const char *name) { MovieClip *clip; - clip = static_cast(BKE_id_new(bmain, ID_MC, name)); + clip = BKE_id_new(bmain, name); return clip; } diff --git a/source/blender/blenkernel/intern/paint.cc b/source/blender/blenkernel/intern/paint.cc index e57cec83d0f..b8cfb19fb96 100644 --- a/source/blender/blenkernel/intern/paint.cc +++ b/source/blender/blenkernel/intern/paint.cc @@ -1319,7 +1319,7 @@ std::optional BKE_paint_get_brush_type_from_paintmode(const Brush *brush, PaintCurve *BKE_paint_curve_add(Main *bmain, const char *name) { - PaintCurve *pc = static_cast(BKE_id_new(bmain, ID_PC, name)); + PaintCurve *pc = BKE_id_new(bmain, name); return pc; } @@ -1366,7 +1366,7 @@ void BKE_palette_clear(Palette *palette) Palette *BKE_palette_add(Main *bmain, const char *name) { - Palette *palette = static_cast(BKE_id_new(bmain, ID_PAL, name)); + Palette *palette = BKE_id_new(bmain, name); return palette; } diff --git a/source/blender/blenkernel/intern/particle.cc b/source/blender/blenkernel/intern/particle.cc index 7733e189f34..c7c1b0cfcf0 100644 --- a/source/blender/blenkernel/intern/particle.cc +++ b/source/blender/blenkernel/intern/particle.cc @@ -4087,7 +4087,7 @@ ParticleSettings *BKE_particlesettings_add(Main *bmain, const char *name) { ParticleSettings *part; - part = static_cast(BKE_id_new(bmain, ID_PA, name)); + part = BKE_id_new(bmain, name); return part; } diff --git a/source/blender/blenkernel/intern/pointcloud.cc b/source/blender/blenkernel/intern/pointcloud.cc index 803dd895d7c..67d7c8cf365 100644 --- a/source/blender/blenkernel/intern/pointcloud.cc +++ b/source/blender/blenkernel/intern/pointcloud.cc @@ -277,14 +277,14 @@ MutableSpan PointCloud::radius_for_write() PointCloud *BKE_pointcloud_add(Main *bmain, const char *name) { - PointCloud *pointcloud = static_cast(BKE_id_new(bmain, ID_PT, name)); + PointCloud *pointcloud = BKE_id_new(bmain, name); return pointcloud; } PointCloud *BKE_pointcloud_add_default(Main *bmain, const char *name) { - PointCloud *pointcloud = static_cast(BKE_id_new(bmain, ID_PT, name)); + PointCloud *pointcloud = BKE_id_new(bmain, name); pointcloud_random(pointcloud); diff --git a/source/blender/blenkernel/intern/scene.cc b/source/blender/blenkernel/intern/scene.cc index b07c1a29334..62cc6afe16e 100644 --- a/source/blender/blenkernel/intern/scene.cc +++ b/source/blender/blenkernel/intern/scene.cc @@ -1928,7 +1928,7 @@ bool BKE_scene_can_be_removed(const Main *bmain, const Scene *scene) Scene *BKE_scene_add(Main *bmain, const char *name) { - Scene *sce = static_cast(BKE_id_new(bmain, ID_SCE, name)); + Scene *sce = BKE_id_new(bmain, name); id_us_min(&sce->id); id_us_ensure_real(&sce->id); diff --git a/source/blender/blenkernel/intern/speaker.cc b/source/blender/blenkernel/intern/speaker.cc index 2e5ef7b756d..683d051c96d 100644 --- a/source/blender/blenkernel/intern/speaker.cc +++ b/source/blender/blenkernel/intern/speaker.cc @@ -82,7 +82,7 @@ Speaker *BKE_speaker_add(Main *bmain, const char *name) { Speaker *spk; - spk = static_cast(BKE_id_new(bmain, ID_SPK, name)); + spk = BKE_id_new(bmain, name); return spk; } diff --git a/source/blender/blenkernel/intern/text.cc b/source/blender/blenkernel/intern/text.cc index 1c9016f3d79..2755cb67670 100644 --- a/source/blender/blenkernel/intern/text.cc +++ b/source/blender/blenkernel/intern/text.cc @@ -281,7 +281,7 @@ Text *BKE_text_add(Main *bmain, const char *name) { Text *ta; - ta = static_cast(BKE_id_new(bmain, ID_TXT, name)); + ta = BKE_id_new(bmain, name); /* Texts have no users by default... Set the fake user flag to ensure that this text block * doesn't get deleted by default when cleaning up data blocks. */ id_us_min(&ta->id); diff --git a/source/blender/blenkernel/intern/texture.cc b/source/blender/blenkernel/intern/texture.cc index 7104aed646b..cd1bf75061e 100644 --- a/source/blender/blenkernel/intern/texture.cc +++ b/source/blender/blenkernel/intern/texture.cc @@ -375,7 +375,7 @@ Tex *BKE_texture_add(Main *bmain, const char *name) { Tex *tex; - tex = static_cast(BKE_id_new(bmain, ID_TE, name)); + tex = BKE_id_new(bmain, name); return tex; } diff --git a/source/blender/blenkernel/intern/volume.cc b/source/blender/blenkernel/intern/volume.cc index 25120fb1f4c..0617ddfe3b3 100644 --- a/source/blender/blenkernel/intern/volume.cc +++ b/source/blender/blenkernel/intern/volume.cc @@ -317,7 +317,7 @@ void BKE_volume_init_grids(Volume *volume) Volume *BKE_volume_add(Main *bmain, const char *name) { - Volume *volume = (Volume *)BKE_id_new(bmain, ID_VO, name); + Volume *volume = BKE_id_new(bmain, name); return volume; } diff --git a/source/blender/blenkernel/intern/volume_test.cc b/source/blender/blenkernel/intern/volume_test.cc index 2921f286829..e014f18c0ce 100644 --- a/source/blender/blenkernel/intern/volume_test.cc +++ b/source/blender/blenkernel/intern/volume_test.cc @@ -40,7 +40,7 @@ class VolumeTest : public ::testing::Test { TEST_F(VolumeTest, add_grid_with_name_and_find) { - Volume *volume = static_cast(BKE_id_new(bmain, ID_VO, nullptr)); + Volume *volume = BKE_id_new(bmain, nullptr); GVolumeGrid grid{VOLUME_GRID_FLOAT}; grid.get_for_write().set_name("My Grid"); const VolumeGridData *grid_data = grid.release(); @@ -52,8 +52,8 @@ TEST_F(VolumeTest, add_grid_with_name_and_find) TEST_F(VolumeTest, add_grid_in_two_volumes) { - Volume *volume_a = static_cast(BKE_id_new(bmain, ID_VO, nullptr)); - Volume *volume_b = static_cast(BKE_id_new(bmain, ID_VO, nullptr)); + Volume *volume_a = BKE_id_new(bmain, nullptr); + Volume *volume_b = BKE_id_new(bmain, nullptr); GVolumeGrid grid{VOLUME_GRID_FLOAT}; grid.get_for_write().set_name("My Grid"); const VolumeGridData *grid_data = grid.release(); diff --git a/source/blender/blenkernel/intern/workspace.cc b/source/blender/blenkernel/intern/workspace.cc index 77b58029a45..766c515faf4 100644 --- a/source/blender/blenkernel/intern/workspace.cc +++ b/source/blender/blenkernel/intern/workspace.cc @@ -316,7 +316,7 @@ static bool UNUSED_FUNCTION(workspaces_is_screen_used) WorkSpace *BKE_workspace_add(Main *bmain, const char *name) { - WorkSpace *new_workspace = static_cast(BKE_id_new(bmain, ID_WS, name)); + WorkSpace *new_workspace = BKE_id_new(bmain, name); id_us_ensure_real(&new_workspace->id); return new_workspace; } diff --git a/source/blender/blenkernel/intern/world.cc b/source/blender/blenkernel/intern/world.cc index cb348ea1819..933ffd6a635 100644 --- a/source/blender/blenkernel/intern/world.cc +++ b/source/blender/blenkernel/intern/world.cc @@ -211,7 +211,7 @@ World *BKE_world_add(Main *bmain, const char *name) { World *wrld; - wrld = static_cast(BKE_id_new(bmain, ID_WO, name)); + wrld = BKE_id_new(bmain, name); return wrld; } diff --git a/source/blender/blenloader/intern/readfile.cc b/source/blender/blenloader/intern/readfile.cc index 581f6a5ecb3..86a28297d81 100644 --- a/source/blender/blenloader/intern/readfile.cc +++ b/source/blender/blenloader/intern/readfile.cc @@ -543,8 +543,7 @@ static Main *blo_find_main(FileData *fd, const char *filepath, const char *relab /* Add library data-block itself to 'main' Main, since libraries are **never** linked data. * Fixes bug where you could end with all ID_LI data-blocks having the same name... */ - lib = static_cast( - BKE_id_new(static_cast
(mainlist->first), ID_LI, BLI_path_basename(filepath))); + lib = BKE_id_new(static_cast
(mainlist->first), BLI_path_basename(filepath)); /* Important, consistency with main ID reading code from read_libblock(). */ lib->id.us = ID_FAKE_USERS(lib); diff --git a/source/blender/blenloader/tests/blendfile_loading_base_test.cc b/source/blender/blenloader/tests/blendfile_loading_base_test.cc index ae65fca174c..43818295fcf 100644 --- a/source/blender/blenloader/tests/blendfile_loading_base_test.cc +++ b/source/blender/blenloader/tests/blendfile_loading_base_test.cc @@ -77,7 +77,7 @@ void BlendfileLoadingBaseTest::SetUpTestCase() /* Allocate a dummy window manager. The real window manager will try and load Python scripts from * the release directory, which it won't be able to find. */ ASSERT_EQ(G.main->wm.first, nullptr); - wmWindowManager *wm = static_cast(BKE_id_new(G.main, ID_WM, "WMdummy")); + wmWindowManager *wm = BKE_id_new(G.main, "WMdummy"); wm->runtime = MEM_new(__func__); } diff --git a/source/blender/editors/animation/anim_filter_test.cc b/source/blender/editors/animation/anim_filter_test.cc index 4d104ca6768..41df660d783 100644 --- a/source/blender/editors/animation/anim_filter_test.cc +++ b/source/blender/editors/animation/anim_filter_test.cc @@ -51,7 +51,7 @@ class ActionFilterTest : public testing::Test { bmain = BKE_main_new(); G_MAIN = bmain; /* For BKE_animdata_free(). */ - action = &static_cast(BKE_id_new(bmain, ID_AC, "ACÄnimåtië"))->wrap(); + action = &BKE_id_new(bmain, "ACÄnimåtië")->wrap(); cube = BKE_object_add_only_object(bmain, OB_EMPTY, "Küüübus"); suzanne = BKE_object_add_only_object(bmain, OB_EMPTY, "OBSuzanne"); } diff --git a/source/blender/editors/animation/keyframes_keylist_test.cc b/source/blender/editors/animation/keyframes_keylist_test.cc index 05921d3408b..0f4a468bd5d 100644 --- a/source/blender/editors/animation/keyframes_keylist_test.cc +++ b/source/blender/editors/animation/keyframes_keylist_test.cc @@ -186,7 +186,7 @@ class KeylistSummaryTest : public testing::Test { bmain = BKE_main_new(); G_MAIN = bmain; /* For BKE_animdata_free(). */ - action = &static_cast(BKE_id_new(bmain, ID_AC, "ACÄnimåtië"))->wrap(); + action = &BKE_id_new(bmain, "ACÄnimåtië")->wrap(); cube = BKE_object_add_only_object(bmain, OB_EMPTY, "Küüübus"); armature_data = BKE_armature_add(bmain, "ARArmature"); diff --git a/source/blender/editors/grease_pencil/tests/grease_pencil_merge_test.cc b/source/blender/editors/grease_pencil/tests/grease_pencil_merge_test.cc index be7e566151f..781b8498771 100644 --- a/source/blender/editors/grease_pencil/tests/grease_pencil_merge_test.cc +++ b/source/blender/editors/grease_pencil/tests/grease_pencil_merge_test.cc @@ -27,7 +27,7 @@ struct GreasePencilIDTestContext { { BKE_idtype_init(); this->bmain = BKE_main_new(); - this->grease_pencil = static_cast(BKE_id_new(this->bmain, ID_GP, "GP")); + this->grease_pencil = BKE_id_new(this->bmain, "GP"); } ~GreasePencilIDTestContext() { diff --git a/source/blender/editors/object/object_add.cc b/source/blender/editors/object/object_add.cc index 84cabdc66a2..6e5db774a36 100644 --- a/source/blender/editors/object/object_add.cc +++ b/source/blender/editors/object/object_add.cc @@ -2953,7 +2953,7 @@ static Object *convert_curves_component_to_curves(Base &base, newob = get_object_for_conversion(base, info, r_new_base); const Curves *curves_eval = geometry.get_curves(); - Curves *new_curves = static_cast(BKE_id_new(info.bmain, ID_CV, newob->id.name + 2)); + Curves *new_curves = BKE_id_new(info.bmain, newob->id.name + 2); newob->data = new_curves; newob->type = OB_CURVES; @@ -2990,7 +2990,7 @@ static Object *convert_grease_pencil_component_to_curves(Base &base, if (geometry.has_grease_pencil()) { newob = get_object_for_conversion(base, info, r_new_base); - Curves *new_curves = static_cast(BKE_id_new(info.bmain, ID_CV, newob->id.name + 2)); + Curves *new_curves = BKE_id_new(info.bmain, newob->id.name + 2); newob->data = new_curves; newob->type = OB_CURVES; @@ -3370,7 +3370,7 @@ static Object *convert_curves_to_mesh(Base &base, ObjectConversionInfo &info, Ba if (mesh_eval || curves_eval) { newob = get_object_for_conversion(base, info, r_new_base); - new_mesh = static_cast(BKE_id_new(info.bmain, ID_ME, newob->id.name + 2)); + new_mesh = BKE_id_new(info.bmain, newob->id.name + 2); newob->data = new_mesh; newob->type = OB_MESH; } @@ -3422,8 +3422,7 @@ static Object *convert_curves_to_grease_pencil(Base &base, if (grease_pencil_eval || curves_eval) { newob = get_object_for_conversion(base, info, r_new_base); - new_grease_pencil = static_cast( - BKE_id_new(info.bmain, ID_GP, newob->id.name + 2)); + new_grease_pencil = BKE_id_new(info.bmain, newob->id.name + 2); newob->data = new_grease_pencil; newob->type = OB_GREASE_PENCIL; } @@ -3497,7 +3496,7 @@ static Object *convert_grease_pencil_to_mesh(Base &base, newob = get_object_for_conversion(base, info, r_new_base); const Curves *curves_eval = geometry.get_curves(); - Curves *new_curves = static_cast(BKE_id_new(info.bmain, ID_CV, newob->id.name + 2)); + Curves *new_curves = BKE_id_new(info.bmain, newob->id.name + 2); newob->data = new_curves; newob->type = OB_CURVES; @@ -3547,7 +3546,7 @@ static Object *convert_grease_pencil_to_mesh(Base &base, } } - Mesh *new_mesh = static_cast(BKE_id_new(info.bmain, ID_ME, newob->id.name + 2)); + Mesh *new_mesh = BKE_id_new(info.bmain, newob->id.name + 2); newob->data = new_mesh; newob->type = OB_MESH; diff --git a/source/blender/editors/object/object_visual_geometry_to_objects.cc b/source/blender/editors/object/object_visual_geometry_to_objects.cc index 36edd24fc31..93a6f2a9a69 100644 --- a/source/blender/editors/object/object_visual_geometry_to_objects.cc +++ b/source/blender/editors/object/object_visual_geometry_to_objects.cc @@ -194,7 +194,7 @@ class GeometryToObjectsBuilder { const StringRefNull name) { return new_object_by_generated_geometry_.lookup_or_add_cb(&src_mesh.id, [&]() { - Mesh *new_mesh = reinterpret_cast(BKE_id_new(&bmain_, ID_ME, name.c_str())); + Mesh *new_mesh = BKE_id_new(&bmain_, name.c_str()); Object *new_ob = BKE_object_add_only_object(&bmain_, OB_MESH, name.c_str()); new_ob->data = new_mesh; @@ -212,7 +212,7 @@ class GeometryToObjectsBuilder { const StringRefNull name) { return new_object_by_generated_geometry_.lookup_or_add_cb(&src_curves.id, [&]() { - Curves *new_curves = reinterpret_cast(BKE_id_new(&bmain_, ID_CV, name.c_str())); + Curves *new_curves = BKE_id_new(&bmain_, name.c_str()); Object *new_ob = BKE_object_add_only_object(&bmain_, OB_CURVES, name.c_str()); new_ob->data = new_curves; @@ -228,8 +228,7 @@ class GeometryToObjectsBuilder { const StringRefNull name) { return new_object_by_generated_geometry_.lookup_or_add_cb(&src_pointcloud.id, [&]() { - PointCloud *new_pointcloud = reinterpret_cast( - BKE_id_new(&bmain_, ID_PT, name.c_str())); + PointCloud *new_pointcloud = BKE_id_new(&bmain_, name.c_str()); Object *new_ob = BKE_object_add_only_object(&bmain_, OB_POINTCLOUD, name.c_str()); new_ob->data = new_pointcloud; @@ -247,8 +246,7 @@ class GeometryToObjectsBuilder { const StringRefNull name) { return new_object_by_generated_geometry_.lookup_or_add_cb(&src_grease_pencil.id, [&]() { - GreasePencil *new_grease_pencil = reinterpret_cast( - BKE_id_new(&bmain_, ID_GP, name.c_str())); + GreasePencil *new_grease_pencil = BKE_id_new(&bmain_, name.c_str()); Object *new_ob = BKE_object_add_only_object(&bmain_, OB_GREASE_PENCIL, name.c_str()); new_ob->data = new_grease_pencil;