Changeset View
Changeset View
Standalone View
Standalone View
source/blender/io/alembic/intern/alembic_capi.cc
| Context not available. | |||||
| ImportJobData *data = static_cast<ImportJobData *>(user_data); | ImportJobData *data = static_cast<ImportJobData *>(user_data); | ||||
| std::vector<AbcObjectReader *>::iterator iter; | |||||
| /* Delete objects on cancellation. */ | /* Delete objects on cancellation. */ | ||||
| if (data->was_cancelled) { | if (data->was_cancelled) { | ||||
| for (iter = data->readers.begin(); iter != data->readers.end(); ++iter) { | for (AbcObjectReader *reader : data->readers) { | ||||
| Object *ob = (*iter)->object(); | Object *ob = reader->object(); | ||||
| /* It's possible that cancellation occurred between the creation of | /* It's possible that cancellation occurred between the creation of | ||||
| * the reader and the creation of the Blender object. */ | * the reader and the creation of the Blender object. */ | ||||
| Context not available. | |||||
| } | } | ||||
| } | } | ||||
| else { | else { | ||||
| /* Add object to scene. */ | |||||
| Base *base; | Base *base; | ||||
| LayerCollection *lc; | LayerCollection *lc; | ||||
| ViewLayer *view_layer = data->view_layer; | ViewLayer *view_layer = data->view_layer; | ||||
| Context not available. | |||||
| lc = BKE_layer_collection_get_active(view_layer); | lc = BKE_layer_collection_get_active(view_layer); | ||||
| for (iter = data->readers.begin(); iter != data->readers.end(); ++iter) { | /* Add all objects to the collection (don't do sync for each object). */ | ||||
| Object *ob = (*iter)->object(); | BKE_layer_collection_resync_forbid(); | ||||
| for (AbcObjectReader *reader : data->readers) { | |||||
| Object *ob = reader->object(); | |||||
| BKE_collection_object_add(data->bmain, lc->collection, ob); | BKE_collection_object_add(data->bmain, lc->collection, ob); | ||||
| } | |||||
| /* Sync the collection, and do view layer operations. */ | |||||
| BKE_layer_collection_resync_allow(); | |||||
| BKE_main_collection_sync(data->bmain); | |||||
| for (AbcObjectReader *reader : data->readers) { | |||||
| Object *ob = reader->object(); | |||||
| base = BKE_view_layer_base_find(view_layer, ob); | base = BKE_view_layer_base_find(view_layer, ob); | ||||
| /* TODO: is setting active needed? */ | /* TODO: is setting active needed? */ | ||||
| BKE_view_layer_base_select_and_set_active(view_layer, base); | BKE_view_layer_base_select_and_set_active(view_layer, base); | ||||
| Context not available. | |||||
| } | } | ||||
| } | } | ||||
| for (iter = data->readers.begin(); iter != data->readers.end(); ++iter) { | for (AbcObjectReader *reader : data->readers) { | ||||
| AbcObjectReader *reader = *iter; | |||||
| reader->decref(); | reader->decref(); | ||||
| if (reader->refcount() == 0) { | if (reader->refcount() == 0) { | ||||
| Context not available. | |||||