diff options
author | Antony Riakiotakis <kalast@gmail.com> | 2015-06-10 19:38:23 +0300 |
---|---|---|
committer | Antony Riakiotakis <kalast@gmail.com> | 2015-06-10 19:38:23 +0300 |
commit | 080cf9332bc9d71e0e14326bc8efdf06b738dea1 (patch) | |
tree | e8531a509dca4d8253aa19d89edc68152421f9e5 /source/blender/pointcache/alembic/abc_object.h | |
parent | 6d495cc4ef071171ff0686b2be898a41e05b8051 (diff) | |
parent | 9676642cc94599b3419c9aaa5cf1aae2fbbd235f (diff) |
Merge branch 'gooseberry' into temp_motionpathstemp_motionpaths
Conflicts:
source/blender/blenkernel/intern/object.c
Diffstat (limited to 'source/blender/pointcache/alembic/abc_object.h')
-rw-r--r-- | source/blender/pointcache/alembic/abc_object.h | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/source/blender/pointcache/alembic/abc_object.h b/source/blender/pointcache/alembic/abc_object.h new file mode 100644 index 00000000000..973a3312d1b --- /dev/null +++ b/source/blender/pointcache/alembic/abc_object.h @@ -0,0 +1,84 @@ +/* + * Copyright 2013, Blender Foundation. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef PTC_ABC_OBJECT_H +#define PTC_ABC_OBJECT_H + +#include <vector> + +#include <Alembic/Abc/IObject.h> +#include <Alembic/Abc/OObject.h> +#include <Alembic/AbcGeom/IXform.h> +#include <Alembic/AbcGeom/OXform.h> + +#include "ptc_types.h" + +#include "abc_reader.h" +#include "abc_schema.h" +#include "abc_writer.h" + +#include "util_thread.h" + +struct DerivedMesh; +struct Object; +struct Scene; + +namespace PTC { + +class AbcDerivedMeshWriter; +class AbcHairWriter; + +class AbcObjectWriter : public ObjectWriter, public AbcWriter { +public: + typedef std::vector<AbcHairWriter *> HairWriters; + + AbcObjectWriter(const std::string &name, Scene *scene, Object *ob, bool do_mesh, bool do_hair); + ~AbcObjectWriter(); + + void init_abc(); +#if 0 + void create_refs(); +#endif + + void write_sample(); + +private: + Scene *m_scene; + DerivedMesh *m_final_dm; + + Abc::OObject m_abc_object; + AbcDerivedMeshWriter *m_dm_writer; + HairWriters m_hair_writers; + static thread_mutex m_sample_write_mutex; +}; + +class AbcObjectReader : public ObjectReader, public AbcReader { +public: + AbcObjectReader(const std::string &name, Object *ob); + + void init_abc(Abc::IObject object); + + PTCReadSampleResult read_sample_abc(chrono_t time); + +private: + Abc::IObject m_abc_object; +}; + +} /* namespace PTC */ + +#endif /* PTC_OBJECT_H */ |