4#include "testing/testing.h"
45 if (this->bmain ==
nullptr) {
50 if (this->C ==
nullptr) {
58 if (this->bmain !=
nullptr) {
60 this->bmain =
nullptr;
64 if (this->C !=
nullptr) {
114 this->
object->data = this->mesh;
135 this->node =
static_cast<bNode *
>(this->
material->nodetree->nodes.first);
155 ASSERT_NE(context.scene,
nullptr);
156 ASSERT_NE(context.object,
nullptr);
157 ASSERT_NE(context.target,
nullptr);
158 ASSERT_NE(context.mesh,
nullptr);
171 if (*(cb_data->id_pointer)) {
172 (*(cb_data->id_pointer))->us = 42;
177 context.bmain, &context.scene->id, set_count,
nullptr,
IDWALK_READONLY);
186 if (*(cb_data->id_pointer) == &test_data->
mesh->
id) {
187 *(cb_data->id_pointer) =
nullptr;
192 context.bmain, &context.object->id, clear_mesh_pointer, &context,
IDWALK_NOP);
193 EXPECT_EQ(context.object->data,
nullptr);
197 context.object->data = context.mesh;
211 EXPECT_NE(context.scene,
nullptr);
212 EXPECT_NE(context.object,
nullptr);
213 EXPECT_NE(context.target,
nullptr);
214 EXPECT_NE(context.mesh,
nullptr);
227 if (*(cb_data->id_pointer)) {
228 (*(cb_data->id_pointer))->us = 42;
233 context.bmain, &context.scene->id, set_count,
nullptr,
IDWALK_RECURSE);
247 if (*(cb_data->id_pointer) && (cb_data->cb_flag &
IDWALK_CB_USER) != 0) {
248 (*(cb_data->id_pointer))->us++;
253 context.bmain, &context.scene->id, compute_count,
nullptr,
IDWALK_RECURSE);
266 ASSERT_NE(context.scene,
nullptr);
267 ASSERT_NE(context.object,
nullptr);
268 ASSERT_NE(context.target,
nullptr);
269 ASSERT_NE(context.mesh,
nullptr);
270 ASSERT_NE(context.material,
nullptr);
281 if (*(cb_data->id_pointer)) {
282 (*(cb_data->id_pointer))->us = 42;
291 &context.material->id,
292 &context.material->nodetree->id,
bool BKE_collection_object_add(Main *bmain, Collection *collection, Object *ob)
void CTX_data_main_set(bContext *C, Main *bmain)
void CTX_free(bContext *C)
void CTX_data_scene_set(bContext *C, Scene *scene)
bool IDP_AddToGroup(IDProperty *group, IDProperty *prop) ATTR_NONNULL()
void BKE_id_free(Main *bmain, void *idv)
void BKE_library_foreach_subdata_id(Main *bmain, ID *owner_id, ID *self_id, blender::FunctionRef< void(LibraryForeachIDData *data)> subdata_foreach_id, blender::FunctionRef< LibraryIDLinkCallback > callback, void *user_data, const LibraryForeachIDFlag flag)
void BKE_library_foreach_ID_link(Main *bmain, ID *id, blender::FunctionRef< LibraryIDLinkCallback > callback, void *user_data, LibraryForeachIDFlag flag)
#define FOREACH_MAIN_ID_END
void BKE_main_free(Main *bmain)
#define FOREACH_MAIN_ID_BEGIN(_bmain, _id)
General operations, lookup, etc. for materials.
void BKE_materials_init()
Material * BKE_material_add(Main *bmain, const char *name)
void BKE_object_material_assign(Main *bmain, Object *ob, Material *ma, short act, int assign_type)
void BKE_materials_exit()
Mesh * BKE_mesh_add(Main *bmain, const char *name)
General operations, lookup, etc. for blender objects.
Object * BKE_object_add_only_object(Main *bmain, int type, const char *name) ATTR_RETURNS_NONNULL
Scene * BKE_scene_add(Main *bmain, const char *name)
EXPECT_EQ(BLI_expr_pylike_eval(expr, nullptr, 0, &result), EXPR_PYLIKE_INVALID)
Object is a sort of wrapper for general info.
void ED_node_shader_default(const bContext *C, Main *bmain, ID *id)
GHOST_TSuccess GHOST_DisposeSystemPaths()
BMesh const char void * data
static void SetUpTestSuite()
static void TearDownTestSuite()
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.
std::unique_ptr< IDProperty, IDPropertyDeleter > create_group(StringRef prop_name, eIDPropertyFlag flags={})
Allocate a new IDProperty of type IDP_GROUP.
TEST_F(ArmatureDeformTest, MeshDeform)
void node_node_foreach_id(bNode *node, LibraryForeachIDData *data)
static void node_foreach_id(ID *id, LibraryForeachIDData *data)
struct Collection * master_collection