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:
Diffstat (limited to 'source/blender/alembic/intern/abc_mesh.h')
-rw-r--r--source/blender/alembic/intern/abc_mesh.h31
1 files changed, 24 insertions, 7 deletions
diff --git a/source/blender/alembic/intern/abc_mesh.h b/source/blender/alembic/intern/abc_mesh.h
index dd7e9c7adf0..953c15e5eaf 100644
--- a/source/blender/alembic/intern/abc_mesh.h
+++ b/source/blender/alembic/intern/abc_mesh.h
@@ -31,7 +31,9 @@ struct ModifierData;
/* ************************************************************************** */
-class AbcMeshWriter : public AbcObjectWriter {
+/* Writer for Alembic meshes. Does not assume the object is a mesh object. */
+class AbcGenericMeshWriter : public AbcObjectWriter {
+protected:
Alembic::AbcGeom::OPolyMeshSchema m_mesh_schema;
Alembic::AbcGeom::OPolyMeshSchema::Sample m_mesh_sample;
@@ -49,24 +51,24 @@ class AbcMeshWriter : public AbcObjectWriter {
bool m_is_subd;
public:
- AbcMeshWriter(Object *ob,
+ AbcGenericMeshWriter(Object *ob,
AbcTransformWriter *parent,
uint32_t time_sampling,
ExportSettings &settings);
- ~AbcMeshWriter();
+ ~AbcGenericMeshWriter();
void setIsAnimated(bool is_animated);
-private:
+protected:
virtual void do_write();
+ virtual bool isAnimated() const;
+ virtual struct Mesh *getEvaluatedMesh(struct Scene *scene_eval, struct Object *ob_eval, bool &r_needsfree) = 0;
- bool isAnimated() const;
+ struct Mesh *getFinalMesh(bool &r_needsfree);
void writeMesh(struct Mesh *mesh);
void writeSubD(struct Mesh *mesh);
- struct Mesh *getFinalMesh(bool &r_needsfree);
-
void writeArbGeoParams(struct Mesh *mesh);
void getGeoGroups(struct Mesh *mesh, std::map<std::string, std::vector<int32_t> > &geoGroups);
@@ -77,6 +79,21 @@ private:
void writeFaceSets(struct Mesh *mesh, Schema &schema);
};
+
+class AbcMeshWriter : public AbcGenericMeshWriter {
+public:
+ AbcMeshWriter(Object *ob,
+ AbcTransformWriter *parent,
+ uint32_t time_sampling,
+ ExportSettings &settings);
+
+ ~AbcMeshWriter();
+protected:
+ bool isAnimated() const override;
+ virtual struct Mesh *getEvaluatedMesh(struct Scene *scene_eval, struct Object *ob_eval, bool &r_needsfree) override;
+};
+
+
/* ************************************************************************** */
class AbcMeshReader : public AbcObjectReader {