Changeset View
Changeset View
Standalone View
Standalone View
source/blender/alembic/intern/alembic_capi.cc
| Show First 20 Lines • Show All 629 Lines • ▼ Show 20 Lines | enum { | ||||
| ABC_ARCHIVE_FAIL, | ABC_ARCHIVE_FAIL, | ||||
| ABC_UNSUPPORTED_HDF5, | ABC_UNSUPPORTED_HDF5, | ||||
| }; | }; | ||||
| struct ImportJobData { | struct ImportJobData { | ||||
| Main *bmain; | Main *bmain; | ||||
| Scene *scene; | Scene *scene; | ||||
| ViewLayer *view_layer; | ViewLayer *view_layer; | ||||
| WorkSpace *workspace; | |||||
| char filename[1024]; | char filename[1024]; | ||||
| ImportSettings settings; | ImportSettings settings; | ||||
| std::vector<AbcObjectReader *> readers; | std::vector<AbcObjectReader *> readers; | ||||
| short *stop; | short *stop; | ||||
| short *do_update; | short *do_update; | ||||
| ▲ Show 20 Lines • Show All 205 Lines • ▼ Show 20 Lines | else { | ||||
| for (iter = data->readers.begin(); iter != data->readers.end(); ++iter) { | for (iter = data->readers.begin(); iter != data->readers.end(); ++iter) { | ||||
| Object *ob = (*iter)->object(); | Object *ob = (*iter)->object(); | ||||
| ob->lay = data->scene->lay; | ob->lay = data->scene->lay; | ||||
| BKE_collection_object_add(&data->scene->id, lc->scene_collection, ob); | BKE_collection_object_add(&data->scene->id, lc->scene_collection, ob); | ||||
| base = BKE_view_layer_base_find(view_layer, ob); | base = BKE_view_layer_base_find(view_layer, ob); | ||||
| BKE_view_layer_base_select(view_layer, base); | BKE_view_layer_base_select(view_layer, base, data->workspace); | ||||
| DEG_id_tag_update_ex(data->bmain, &ob->id, OB_RECALC_OB | OB_RECALC_DATA | OB_RECALC_TIME); | DEG_id_tag_update_ex(data->bmain, &ob->id, OB_RECALC_OB | OB_RECALC_DATA | OB_RECALC_TIME); | ||||
| } | } | ||||
| DEG_relations_tag_update(data->bmain); | DEG_relations_tag_update(data->bmain); | ||||
| } | } | ||||
| for (iter = data->readers.begin(); iter != data->readers.end(); ++iter) { | for (iter = data->readers.begin(); iter != data->readers.end(); ++iter) { | ||||
| Show All 32 Lines | bool ABC_import(bContext *C, const char *filepath, float scale, bool is_sequence, | ||||
| bool validate_meshes, bool as_background_job) | bool validate_meshes, bool as_background_job) | ||||
| { | { | ||||
| /* Using new here since MEM_* funcs do not call ctor to properly initialize | /* Using new here since MEM_* funcs do not call ctor to properly initialize | ||||
| * data. */ | * data. */ | ||||
| ImportJobData *job = new ImportJobData(); | ImportJobData *job = new ImportJobData(); | ||||
| job->bmain = CTX_data_main(C); | job->bmain = CTX_data_main(C); | ||||
| job->scene = CTX_data_scene(C); | job->scene = CTX_data_scene(C); | ||||
| job->view_layer = CTX_data_view_layer(C); | job->view_layer = CTX_data_view_layer(C); | ||||
| job->workspace = CTX_wm_workspace(C); | |||||
| job->import_ok = false; | job->import_ok = false; | ||||
| BLI_strncpy(job->filename, filepath, 1024); | BLI_strncpy(job->filename, filepath, 1024); | ||||
| job->settings.scale = scale; | job->settings.scale = scale; | ||||
| job->settings.is_sequence = is_sequence; | job->settings.is_sequence = is_sequence; | ||||
| job->settings.set_frame_range = set_frame_range; | job->settings.set_frame_range = set_frame_range; | ||||
| job->settings.sequence_len = sequence_len; | job->settings.sequence_len = sequence_len; | ||||
| job->settings.sequence_offset = offset; | job->settings.sequence_offset = offset; | ||||
| ▲ Show 20 Lines • Show All 128 Lines • Show Last 20 Lines | |||||