Merge branch 'master' into blender2.8
[blender.git] / source / blender / alembic / intern / abc_exporter.h
index 280682b28964bdfc003ca67d6f286e60ade41341..7e32178bc208a205796cf37ba12434f8773b43bd 100644 (file)
@@ -38,11 +38,14 @@ struct EvaluationContext;
 struct Main;
 struct Object;
 struct Scene;
+struct SceneLayer;
+struct Base;
 
 struct ExportSettings {
        ExportSettings();
 
        Scene *scene;
+       SceneLayer *sl;  // Scene layer to export; all its objects will be exported, unless selected_only=true
        SimpleLogger logger;
 
        bool selected_only;
@@ -88,6 +91,7 @@ class AbcExporter {
 
        unsigned int m_trans_sampling_index, m_shape_sampling_index;
 
+       EvaluationContext *m_eval_ctx;
        Scene *m_scene;
 
        ArchiveWriter *m_writer;
@@ -99,7 +103,7 @@ class AbcExporter {
        std::vector<AbcObjectWriter *> m_shapes;
 
 public:
-       AbcExporter(Main *bmain, Scene *scene, const char *filename, ExportSettings &settings);
+       AbcExporter(Main *bmain, EvaluationContext *eval_ctx, Scene *scene, const char *filename, ExportSettings &settings);
        ~AbcExporter();
 
        void operator()(Main *bmain, float &progress, bool &was_canceled);
@@ -114,11 +118,11 @@ private:
        Alembic::Abc::TimeSamplingPtr createTimeSampling(double step);
 
        void createTransformWritersHierarchy(EvaluationContext *eval_ctx);
-       AbcTransformWriter * createTransformWriter(Object *ob,  Object *parent, Object *dupliObParent);
-       void exploreTransform(EvaluationContext *eval_ctx, Object *ob, Object *parent, Object *dupliObParent = NULL);
-       void exploreObject(EvaluationContext *eval_ctx, Object *ob, Object *dupliObParent);
+       AbcTransformWriter * createTransformWriter(EvaluationContext *eval_ctx, Object *ob,  Object *parent, Object *dupliObParent);
+       void exploreTransform(EvaluationContext *eval_ctx, Base *ob_base, Object *parent, Object *dupliObParent);
+       void exploreObject(EvaluationContext *eval_ctx, Base *ob_base, Object *dupliObParent);
        void createShapeWriters(EvaluationContext *eval_ctx);
-       void createShapeWriter(Object *ob, Object *dupliObParent);
+       void createShapeWriter(Base *ob_base, Object *dupliObParent);
        void createParticleSystemsWriters(Object *ob, AbcTransformWriter *xform);
 
        AbcTransformWriter *getXForm(const std::string &name);