diff options
author | Julian Eisel <julian@blender.org> | 2021-03-31 23:53:03 +0300 |
---|---|---|
committer | Julian Eisel <julian@blender.org> | 2021-03-31 23:53:03 +0300 |
commit | c7904d2398fd4d43d15268c792aa15ea8ee538fe (patch) | |
tree | 484fd7f66ac59c82abd4aca18894f991b4935483 /intern/cycles/render/alembic.h | |
parent | 91b87d8d7fb8aec62faf00e5e0c3619d2753a92e (diff) | |
parent | 1a100d2d78c75c9a6ac015606cc16698e7775682 (diff) |
Merge branch 'master' into ui-asset-view-templateui-asset-view-template
Diffstat (limited to 'intern/cycles/render/alembic.h')
-rw-r--r-- | intern/cycles/render/alembic.h | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/intern/cycles/render/alembic.h b/intern/cycles/render/alembic.h index d0c5856a353..3bbd10fad61 100644 --- a/intern/cycles/render/alembic.h +++ b/intern/cycles/render/alembic.h @@ -239,6 +239,7 @@ template<typename T> class DataStore { { invalidate_last_loaded_time(); data.clear(); + index_data_map.clear(); } void invalidate_last_loaded_time() @@ -480,16 +481,23 @@ class AlembicProcedural : public Procedural { * invocation, and updates the data on subsequent invocations if the frame changed. */ void generate(Scene *scene, Progress &progress); - /* Add an object to our list of objects, and tag the socket as modified. */ - void add_object(AlembicObject *object); - /* Tag for an update only if something was modified. */ void tag_update(Scene *scene); - /* Returns a pointer to an existing or a newly created AlembicObject for the given path. */ + /* This should be called by scene exporters to request the rendering of an object located + * in the Alembic archive at the given path. + * + * Since we lazily load object, the function does not validate the existence of the object + * in the archive. If no objects with such path if found in the archive during the next call + * to `generate`, it will be ignored. + * + * Returns a pointer to an existing or a newly created AlembicObject for the given path. */ AlembicObject *get_or_create_object(const ustring &path); private: + /* Add an object to our list of objects, and tag the socket as modified. */ + void add_object(AlembicObject *object); + /* Load the data for all the objects whose data has not yet been loaded. */ void load_objects(Progress &progress); |