2 * ***** BEGIN GPL LICENSE BLOCK *****
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License
6 * as published by the Free Software Foundation; either version 2
7 * of the License, or (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software Foundation,
16 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 * Contributor(s): Esteban Tovagliari, Cedric Paille, Kevin Dietrich
20 * ***** END GPL LICENSE BLOCK *****
23 #ifndef __ABC_ALEMBIC_H__
24 #define __ABC_ALEMBIC_H__
37 typedef struct AbcArchiveHandle AbcArchiveHandle;
40 ABC_ARCHIVE_OGAWA = 0,
44 int ABC_get_version(void);
46 struct AlembicExportParams {
50 double frame_step_xform;
51 double frame_step_shape;
61 bool flatten_hierarchy;
62 bool visible_layers_only;
65 bool use_subdiv_schema;
69 unsigned int compression_type : 1;
71 /* See MOD_TRIANGULATE_NGON_xxx and MOD_TRIANGULATE_QUAD_xxx
72 * in DNA_modifier_types.h */
83 const struct AlembicExportParams *params);
85 void ABC_import(struct bContext *C,
92 bool validate_meshes);
94 AbcArchiveHandle *ABC_create_handle(const char *filename, struct ListBase *object_paths);
96 void ABC_free_handle(AbcArchiveHandle *handle);
98 void ABC_get_transform(struct CacheReader *reader,
103 struct DerivedMesh *ABC_read_mesh(struct CacheReader *reader,
105 struct DerivedMesh *dm,
107 const char **err_str,
110 void CacheReader_free(struct CacheReader *reader);
112 struct CacheReader *CacheReader_open_alembic_object(struct AbcArchiveHandle *handle,
113 struct CacheReader *reader,
114 struct Object *object,
115 const char *object_path);
121 #endif /* __ABC_ALEMBIC_H__ */