Changeset View
Changeset View
Standalone View
Standalone View
source/blender/blenkernel/intern/mball.c
| Show First 20 Lines • Show All 382 Lines • ▼ Show 20 Lines | void BKE_mball_properties_copy(Scene *scene, Object *active_object) | ||||
| MetaBall *active_mball = (MetaBall *)active_object->data; | MetaBall *active_mball = (MetaBall *)active_object->data; | ||||
| int basisnr, obnr; | int basisnr, obnr; | ||||
| char basisname[MAX_ID_NAME], obname[MAX_ID_NAME]; | char basisname[MAX_ID_NAME], obname[MAX_ID_NAME]; | ||||
| SceneBaseIter iter; | SceneBaseIter iter; | ||||
| EvaluationContext *eval_ctx = G.main->eval_ctx; | EvaluationContext *eval_ctx = G.main->eval_ctx; | ||||
| BLI_split_name_num(basisname, &basisnr, active_object->id.name + 2, '.'); | BLI_split_name_num(basisname, &basisnr, active_object->id.name + 2, '.'); | ||||
| BKE_scene_base_iter_next(eval_ctx, &iter, &sce_iter, 0, NULL, NULL); | BKE_scene_base_iter_next(eval_ctx, &iter, &sce_iter, 0, scene->lay, NULL, NULL); | ||||
| while (BKE_scene_base_iter_next(eval_ctx, &iter, &sce_iter, 1, &base, &ob)) { | while (BKE_scene_base_iter_next(eval_ctx, &iter, &sce_iter, 1, scene->lay, &base, &ob)) { | ||||
| if (ob->type == OB_MBALL) { | if (ob->type == OB_MBALL) { | ||||
| if (ob != active_object) { | if (ob != active_object) { | ||||
| BLI_split_name_num(obname, &obnr, ob->id.name + 2, '.'); | BLI_split_name_num(obname, &obnr, ob->id.name + 2, '.'); | ||||
| /* Object ob has to be in same "group" ... it means, that it has to have | /* Object ob has to be in same "group" ... it means, that it has to have | ||||
| * same base of its name */ | * same base of its name */ | ||||
| if (STREQ(obname, basisname)) { | if (STREQ(obname, basisname)) { | ||||
| MetaBall *mb = ob->data; | MetaBall *mb = ob->data; | ||||
| Show All 25 Lines | Object *BKE_mball_basis_find(Scene *scene, Object *basis) | ||||
| Object *ob, *bob = basis; | Object *ob, *bob = basis; | ||||
| int basisnr, obnr; | int basisnr, obnr; | ||||
| char basisname[MAX_ID_NAME], obname[MAX_ID_NAME]; | char basisname[MAX_ID_NAME], obname[MAX_ID_NAME]; | ||||
| SceneBaseIter iter; | SceneBaseIter iter; | ||||
| EvaluationContext *eval_ctx = G.main->eval_ctx; | EvaluationContext *eval_ctx = G.main->eval_ctx; | ||||
| BLI_split_name_num(basisname, &basisnr, basis->id.name + 2, '.'); | BLI_split_name_num(basisname, &basisnr, basis->id.name + 2, '.'); | ||||
| BKE_scene_base_iter_next(eval_ctx, &iter, &sce_iter, 0, NULL, NULL); | BKE_scene_base_iter_next(eval_ctx, &iter, &sce_iter, 0, scene->lay, NULL, NULL); | ||||
| while (BKE_scene_base_iter_next(eval_ctx, &iter, &sce_iter, 1, &base, &ob)) { | while (BKE_scene_base_iter_next(eval_ctx, &iter, &sce_iter, 1, scene->lay, &base, &ob)) { | ||||
| if ((ob->type == OB_MBALL) && !(base->flag & OB_FROMDUPLI)) { | if ((ob->type == OB_MBALL) && !(base->flag & OB_FROMDUPLI)) { | ||||
| if (ob != bob) { | if (ob != bob) { | ||||
| BLI_split_name_num(obname, &obnr, ob->id.name + 2, '.'); | BLI_split_name_num(obname, &obnr, ob->id.name + 2, '.'); | ||||
| /* object ob has to be in same "group" ... it means, that it has to have same base of its name */ | /* object ob has to be in same "group" ... it means, that it has to have same base of its name */ | ||||
| if (STREQ(obname, basisname)) { | if (STREQ(obname, basisname)) { | ||||
| if (obnr < basisnr) { | if (obnr < basisnr) { | ||||
| basis = ob; | basis = ob; | ||||
| ▲ Show 20 Lines • Show All 158 Lines • Show Last 20 Lines | |||||