|
Blender V4.3
|
#include "../ABC_alembic.h"#include "IO_types.hh"#include <Alembic/AbcGeom/ILight.h>#include <Alembic/AbcMaterial/IMaterial.h>#include "abc_axis_conversion.h"#include "abc_reader_archive.h"#include "abc_reader_camera.h"#include "abc_reader_curves.h"#include "abc_reader_mesh.h"#include "abc_reader_nurbs.h"#include "abc_reader_points.h"#include "abc_reader_transform.h"#include "abc_util.h"#include "MEM_guardedalloc.h"#include "DNA_cachefile_types.h"#include "DNA_collection_types.h"#include "DNA_object_types.h"#include "DNA_scene_types.h"#include "BKE_cachefile.hh"#include "BKE_context.hh"#include "BKE_global.hh"#include "BKE_layer.hh"#include "BKE_lib_id.hh"#include "BKE_object.hh"#include "DEG_depsgraph.hh"#include "DEG_depsgraph_build.hh"#include "ED_undo.hh"#include "BLI_compiler_compat.h"#include "BLI_listbase.h"#include "BLI_math_matrix.h"#include "BLI_path_utils.hh"#include "BLI_sort.hh"#include "BLI_span.hh"#include "BLI_string.h"#include "BLI_timeit.hh"#include "BLT_translation.hh"#include "WM_api.hh"#include "WM_types.hh"Go to the source code of this file.
Classes | |
| struct | ImportJobData |
Enumerations | |
| enum | { ABC_NO_ERROR = 0 , ABC_ARCHIVE_FAIL } |
Functions | |
| BLI_INLINE ArchiveReader * | archive_from_handle (CacheArchiveHandle *handle) |
| BLI_INLINE CacheArchiveHandle * | handle_from_archive (ArchiveReader *archive) |
| static void | add_object_path (ListBase *object_paths, const IObject &object) |
| static bool | gather_objects_paths (const IObject &object, ListBase *object_paths) |
| CacheArchiveHandle * | ABC_create_handle (const Main *bmain, const char *filepath, const CacheFileLayer *layers, ListBase *object_paths) |
| void | ABC_free_handle (CacheArchiveHandle *handle) |
| int | ABC_get_version () |
| static void | find_iobject (const IObject &object, IObject &ret, const std::string &path) |
| static std::pair< bool, AbcObjectReader * > | visit_object (const IObject &object, AbcObjectReader::ptr_vector &readers, ImportSettings &settings, AbcObjectReader::ptr_vector &r_assign_as_parent) |
| static void | report_job_duration (const ImportJobData *data) |
| static void | sort_readers (blender::MutableSpan< AbcObjectReader * > readers) |
| static void | import_file (ImportJobData *data, const char *filepath, float progress_factor) |
| static void | set_frame_range (ImportJobData *data) |
| static void | import_startjob (void *user_data, wmJobWorkerStatus *worker_status) |
| static void | import_endjob (void *user_data) |
| static void | import_freejob (void *user_data) |
| bool | ABC_import (bContext *C, const AlembicImportParams *params, bool as_background_job) |
| void | ABC_get_transform (CacheReader *reader, float r_mat_world[4][4], double time, float scale) |
| static AbcObjectReader * | get_abc_reader (CacheReader *reader, Object *ob, const char **r_err_str) |
| static ISampleSelector | sample_selector_for_time (chrono_t time) |
| void | ABC_read_geometry (CacheReader *reader, Object *ob, blender::bke::GeometrySet &geometry_set, const ABCReadParams *params, const char **r_err_str) |
| bool | ABC_mesh_topology_changed (CacheReader *reader, Object *ob, const Mesh *existing_mesh, const double time, const char **r_err_str) |
| void | ABC_CacheReader_free (CacheReader *reader) |
| CacheReader * | CacheReader_open_alembic_object (CacheArchiveHandle *handle, CacheReader *reader, Object *object, const char *object_path, const bool is_sequence) |
| anonymous enum |
| Enumerator | |
|---|---|
| ABC_NO_ERROR | |
| ABC_ARCHIVE_FAIL | |
Definition at line 415 of file alembic_capi.cc.
| void ABC_CacheReader_free | ( | CacheReader * | reader | ) |
Definition at line 867 of file alembic_capi.cc.
References blender::io::alembic::AbcObjectReader::decref(), and blender::io::alembic::AbcObjectReader::refcount().
Referenced by BKE_cachefile_reader_free(), cachefile_handle_free(), and CacheReader_open_alembic_object().
| CacheArchiveHandle * ABC_create_handle | ( | const Main * | bmain, |
| const char * | filepath, | ||
| const CacheFileLayer * | layers, | ||
| ListBase * | object_paths ) |
Definition at line 153 of file alembic_capi.cc.
References CACHEFILE_LAYER_HIDDEN, gather_objects_paths(), blender::io::alembic::ArchiveReader::get(), blender::io::alembic::ArchiveReader::getTop(), handle_from_archive(), and blender::io::alembic::ArchiveReader::valid().
| void ABC_free_handle | ( | CacheArchiveHandle * | handle | ) |
Definition at line 185 of file alembic_capi.cc.
References archive_from_handle().
Referenced by cachefile_handle_free().
| void ABC_get_transform | ( | CacheReader * | reader, |
| float | r_mat_world[4][4], | ||
| double | time, | ||
| float | scale ) |
Definition at line 772 of file alembic_capi.cc.
References BKE_object_get_parent_matrix(), mul_m4_m4m4(), blender::io::alembic::AbcObjectReader::object(), and blender::io::alembic::AbcObjectReader::read_matrix().
Referenced by transformcache_evaluate().
| int ABC_get_version | ( | void | ) |
Definition at line 190 of file alembic_capi.cc.
Referenced by make_alembic_info().
| bool ABC_import | ( | bContext * | C, |
| const AlembicImportParams * | params, | ||
| bool | as_background_job ) |
Definition at line 717 of file alembic_capi.cc.
References ABC_NO_ERROR, blender::io::alembic::ImportSettings::always_add_cache_reader, ImportJobData::bmain, C, ImportJobData::C, CTX_data_main(), CTX_data_scene(), CTX_data_view_layer(), CTX_wm_manager(), CTX_wm_window(), ImportJobData::error_code, G, import_endjob(), import_freejob(), ImportJobData::import_ok, import_startjob(), ImportJobData::is_background_job, blender::io::alembic::ImportSettings::is_sequence, NC_SCENE, ND_FRAME, params, ImportJobData::paths, blender::io::alembic::ImportSettings::scale, ImportJobData::scene, blender::io::alembic::ImportSettings::sequence_max_frame, blender::io::alembic::ImportSettings::sequence_min_frame, blender::io::alembic::ImportSettings::set_frame_range, ImportJobData::settings, blender::io::alembic::ImportSettings::validate_meshes, ImportJobData::view_layer, ImportJobData::was_cancelled, ImportJobData::wm, WM_JOB_PROGRESS, WM_JOB_TYPE_ALEMBIC_IMPORT, WM_jobs_callbacks(), WM_jobs_customdata_set(), WM_jobs_get(), WM_jobs_start(), and WM_jobs_timer().
| bool ABC_mesh_topology_changed | ( | CacheReader * | reader, |
| Object * | ob, | ||
| const Mesh * | existing_mesh, | ||
| const double | time, | ||
| const char ** | r_err_str ) |
Definition at line 850 of file alembic_capi.cc.
References get_abc_reader(), sample_selector_for_time(), and blender::io::alembic::AbcObjectReader::topology_changed().
| void ABC_read_geometry | ( | CacheReader * | reader, |
| Object * | ob, | ||
| blender::bke::GeometrySet & | geometry_set, | ||
| const ABCReadParams * | params, | ||
| const char ** | r_err_str ) |
Definition at line 830 of file alembic_capi.cc.
References get_abc_reader(), params, blender::io::alembic::AbcObjectReader::read_geometry(), and sample_selector_for_time().
Referenced by modify_geometry_set().
|
static |
Definition at line 93 of file alembic_capi.cc.
References BLI_addtail(), CacheObjectPath::path, and STRNCPY.
Referenced by gather_objects_paths(), and visit_object().
| BLI_INLINE ArchiveReader * archive_from_handle | ( | CacheArchiveHandle * | handle | ) |
Definition at line 80 of file alembic_capi.cc.
Referenced by ABC_free_handle(), and CacheReader_open_alembic_object().
| CacheReader * CacheReader_open_alembic_object | ( | CacheArchiveHandle * | handle, |
| CacheReader * | reader, | ||
| Object * | object, | ||
| const char * | object_path, | ||
| const bool | is_sequence ) |
Definition at line 877 of file alembic_capi.cc.
References ABC_CacheReader_free(), archive_from_handle(), blender::io::alembic::create_reader(), find_iobject(), blender::io::alembic::ArchiveReader::getTop(), blender::io::alembic::AbcObjectReader::incref(), blender::io::alembic::ImportSettings::is_sequence, blender::io::alembic::AbcObjectReader::object(), and blender::io::alembic::ArchiveReader::valid().
Referenced by BKE_cachefile_reader_open().
|
static |
Definition at line 195 of file alembic_capi.cc.
References ret, and blender::io::alembic::split().
Referenced by CacheReader_open_alembic_object().
|
static |
Definition at line 104 of file alembic_capi.cc.
References add_object_path(), gather_objects_paths(), getParent(), and blender::io::alembic::has_property().
Referenced by ABC_create_handle(), and gather_objects_paths().
|
static |
Definition at line 804 of file alembic_capi.cc.
References blender::io::alembic::AbcObjectReader::accepts_object_type(), blender::io::alembic::AbcObjectReader::iobject(), and RPT_.
Referenced by ABC_mesh_topology_changed(), and ABC_read_geometry().
| BLI_INLINE CacheArchiveHandle * handle_from_archive | ( | ArchiveReader * | archive | ) |
Definition at line 85 of file alembic_capi.cc.
Referenced by ABC_create_handle().
|
static |
Definition at line 625 of file alembic_capi.cc.
References ABC_ARCHIVE_FAIL, ABC_NO_ERROR, BKE_collection_object_add(), BKE_id_free_us(), BKE_layer_collection_get_active(), BKE_view_layer_base_deselect_all(), BKE_view_layer_base_find(), BKE_view_layer_base_select_and_set_active(), BKE_view_layer_synced_ensure(), LayerCollection::collection, DEG_id_tag_update(), DEG_id_tag_update_ex(), DEG_relations_tag_update(), ED_undo_push(), Collection::id, Object::id, ID_RECALC_ANIMATION, ID_RECALC_BASE_FLAGS, ID_RECALC_GEOMETRY, ID_RECALC_SYNC_TO_EVAL, ID_RECALC_TRANSFORM, NA_ADDED, NC_ID, blender::io::alembic::report_job_duration(), RPT_ERROR, SCOPE_TIMER, WM_main_add_notifier(), WM_report(), and WM_set_locked_interface().
Referenced by ABC_import().
|
static |
Definition at line 468 of file alembic_capi.cc.
References ABC_ARCHIVE_FAIL, BKE_cachefile_add(), BLI_assert, BLI_path_basename(), CacheFile::filepath, float, G, blender::io::alembic::ArchiveReader::get(), blender::io::alembic::ArchiveReader::getTop(), CacheFile::id, id_us_min(), blender::io::alembic::AbcObjectReader::inherits_xform(), CacheFile::is_sequence, blender::io::alembic::AbcObjectReader::maxTime(), blender::io::alembic::AbcObjectReader::minTime(), blender::io::alembic::AbcObjectReader::name(), blender::io::alembic::AbcObjectReader::object(), Object::parent, blender::io::alembic::AbcObjectReader::parent_reader, blender::timeit::print_duration(), blender::io::alembic::AbcObjectReader::readObjectData(), CacheFile::scale, SCOPE_TIMER, blender::io::alembic::AbcObjectReader::setupObjectTransform(), size(), sort_readers(), STRNCPY, blender::io::alembic::AbcObjectReader::valid(), blender::io::alembic::ArchiveReader::valid(), and visit_object().
Referenced by import_startjob().
|
static |
|
static |
Definition at line 602 of file alembic_capi.cc.
References wmJobWorkerStatus::do_update, float, G, import_file(), wmJobWorkerStatus::progress, set_frame_range(), ImportJobData::stop, wmJobWorkerStatus::stop, and WM_set_locked_interface().
Referenced by ABC_import().
|
static |
Definition at line 450 of file alembic_capi.cc.
References blender::timeit::print_duration().
|
static |
Definition at line 823 of file alembic_capi.cc.
Referenced by ABC_mesh_topology_changed(), and ABC_read_geometry().
|
static |
Definition at line 584 of file alembic_capi.cc.
References FPS, int, Scene::r, and RenderData::sfra.
Referenced by import_startjob().
|
static |
Definition at line 458 of file alembic_capi.cc.
References b, blender::MutableSpan< T >::begin(), blender::MutableSpan< T >::end(), and blender::parallel_sort().
Referenced by import_file().
|
static |
Generates an AbcObjectReader for this Alembic object and its children.
| object | The Alembic IObject to visit. |
| readers | The created AbcObjectReader * will be appended to this vector. |
| settings | Import settings, not used directly but passed to the AbcObjectReader subclass constructors. |
| r_assign_as_parent | Return parameter, contains a list of reader pointers, whose parent pointer should still be set. This is filled when this call to visit_object() didn't create a reader that should be the parent. |
NOTE: this function is similar to gather_object_paths above, need to keep them in sync.
Definition at line 237 of file alembic_capi.cc.
References add_object_path(), BLI_assert, getParent(), blender::io::alembic::has_property(), blender::io::alembic::AbcObjectReader::incref(), blender::io::alembic::AbcObjectReader::parent_reader, UNUSED_VARS_NDEBUG, and visit_object().
Referenced by import_file(), and visit_object().