Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Kowalski <makowalski>2021-08-03 12:55:53 +0300
committerSybren A. Stüvel <sybren@blender.org>2021-08-03 13:33:36 +0300
commitea54cbe1b42efb3107285c89685f555c06997062 (patch)
treebfaf0cb2315172e330c982ae081a4299cc3dc82b /source/blender/makesdna/DNA_cachefile_types.h
parent28b9dd7b1f0a8d4ae56eafca188796936a6e3723 (diff)
USD: add USD importer
This is an initial implementation of a USD importer. This work is comprised of Tangent Animation's open source USD importer, combined with features @makowalski had implemented. The design is very similar to the approach taken in the Alembic importer. The core functionality resides in a collection of "reader" classes, each of which is responsible for converting an instance of a USD prim to the corresponding Blender Object representation. The flow of control for the conversion can be followed in the `import_startjob()` and `import_endjob()` functions in `usd_capi.cc`. The `USDStageReader` class is responsible for traversing the USD stage and instantiating the appropriate readers. Reviewed By: sybren, HooglyBoogly Differential Revision: https://developer.blender.org/D10700
Diffstat (limited to 'source/blender/makesdna/DNA_cachefile_types.h')
-rw-r--r--source/blender/makesdna/DNA_cachefile_types.h26
1 files changed, 18 insertions, 8 deletions
diff --git a/source/blender/makesdna/DNA_cachefile_types.h b/source/blender/makesdna/DNA_cachefile_types.h
index 04c99c6c4b1..b38c7827ea5 100644
--- a/source/blender/makesdna/DNA_cachefile_types.h
+++ b/source/blender/makesdna/DNA_cachefile_types.h
@@ -31,6 +31,13 @@ extern "C" {
struct GSet;
+/* CacheFile::type */
+typedef enum {
+ CACHEFILE_TYPE_ALEMBIC = 1,
+ CACHEFILE_TYPE_USD = 2,
+ CACHE_FILE_TYPE_INVALID = 0,
+} eCacheFileType;
+
/* CacheFile::flag */
enum {
CACHEFILE_DS_EXPAND = (1 << 0),
@@ -44,13 +51,13 @@ enum {
};
#endif
-/* Representation of an object's path inside the Alembic file.
+/* Representation of an object's path inside the archive.
* Note that this is not a file path. */
-typedef struct AlembicObjectPath {
- struct AlembicObjectPath *next, *prev;
+typedef struct CacheObjectPath {
+ struct CacheObjectPath *next, *prev;
char path[4096];
-} AlembicObjectPath;
+} CacheObjectPath;
/* CacheFile::velocity_unit
* Determines what temporal unit is used to interpret velocity vectors for motion blur effects. */
@@ -63,7 +70,7 @@ typedef struct CacheFile {
ID id;
struct AnimData *adt;
- /** Paths of the objects inside of the Alembic archive referenced by this CacheFile. */
+ /** Paths of the objects inside of the archive referenced by this CacheFile. */
ListBase object_paths;
/** 1024 = FILE_MAX. */
@@ -84,14 +91,17 @@ typedef struct CacheFile {
short flag;
short draw_flag; /* UNUSED */
- char _pad[3];
+ /* eCacheFileType enum. */
+ char type;
+
+ char _pad[2];
char velocity_unit;
- /* Name of the velocity property in the Alembic file. */
+ /* Name of the velocity property in the archive. */
char velocity_name[64];
/* Runtime */
- struct AbcArchiveHandle *handle;
+ struct CacheArchiveHandle *handle;
char handle_filepath[1024];
struct GSet *handle_readers;
} CacheFile;