Commit: 20d3ce57d0730999373fcbb0b22696dbfdfa7326
Author: Sybren A. Stüvel
Date:   Thu Jun 7 17:54:36 2018 +0200
Branches: blender2.8
https://developer.blender.org/rB20d3ce57d0730999373fcbb0b22696dbfdfa7326

Alembic export: cleaned up multiply-passed depsgraph & scene

Those can now solely be found in the ExportSettings object.

===================================================================

M       source/blender/alembic/intern/abc_camera.cc
M       source/blender/alembic/intern/abc_camera.h
M       source/blender/alembic/intern/abc_curves.cc
M       source/blender/alembic/intern/abc_curves.h
M       source/blender/alembic/intern/abc_exporter.cc
M       source/blender/alembic/intern/abc_exporter.h
M       source/blender/alembic/intern/abc_hair.cc
M       source/blender/alembic/intern/abc_hair.h
M       source/blender/alembic/intern/abc_mball.cc
M       source/blender/alembic/intern/abc_mball.h
M       source/blender/alembic/intern/abc_mesh.cc
M       source/blender/alembic/intern/abc_mesh.h
M       source/blender/alembic/intern/abc_nurbs.cc
M       source/blender/alembic/intern/abc_nurbs.h
M       source/blender/alembic/intern/abc_object.cc
M       source/blender/alembic/intern/abc_object.h
M       source/blender/alembic/intern/abc_points.cc
M       source/blender/alembic/intern/abc_points.h
M       source/blender/alembic/intern/abc_transform.cc
M       source/blender/alembic/intern/abc_transform.h
M       source/blender/alembic/intern/alembic_capi.cc

===================================================================

diff --git a/source/blender/alembic/intern/abc_camera.cc 
b/source/blender/alembic/intern/abc_camera.cc
index 4c91b9a6252..457bbd2b3af 100644
--- a/source/blender/alembic/intern/abc_camera.cc
+++ b/source/blender/alembic/intern/abc_camera.cc
@@ -49,13 +49,11 @@ using Alembic::AbcGeom::kWrapExisting;
 
 /* ************************************************************************** 
*/
 
-AbcCameraWriter::AbcCameraWriter(Depsgraph *depsgraph,
-                                 Scene *scene,
-                                 Object *ob,
+AbcCameraWriter::AbcCameraWriter(Object *ob,
                                  AbcTransformWriter *parent,
                                  uint32_t time_sampling,
                                  ExportSettings &settings)
-    : AbcObjectWriter(depsgraph, scene, ob, time_sampling, settings, parent)
+    : AbcObjectWriter(ob, time_sampling, settings, parent)
 {
        OCamera camera(parent->alembicXform(), m_name, m_time_sampling);
        m_camera_schema = camera.getSchema();
diff --git a/source/blender/alembic/intern/abc_camera.h 
b/source/blender/alembic/intern/abc_camera.h
index a839ca947ca..dd5dc28d598 100644
--- a/source/blender/alembic/intern/abc_camera.h
+++ b/source/blender/alembic/intern/abc_camera.h
@@ -35,9 +35,7 @@ class AbcCameraWriter : public AbcObjectWriter {
        Alembic::AbcGeom::OFloatProperty m_eye_separation;
 
 public:
-       AbcCameraWriter(Depsgraph *depsgraph,
-                       Scene *scene,
-                       Object *ob,
+       AbcCameraWriter(Object *ob,
                        AbcTransformWriter *parent,
                        uint32_t time_sampling,
                        ExportSettings &settings);
diff --git a/source/blender/alembic/intern/abc_curves.cc 
b/source/blender/alembic/intern/abc_curves.cc
index 9c64fd0481e..158c325e4aa 100644
--- a/source/blender/alembic/intern/abc_curves.cc
+++ b/source/blender/alembic/intern/abc_curves.cc
@@ -71,13 +71,11 @@ using Alembic::AbcGeom::OV2fGeomParam;
 
 /* ************************************************************************** 
*/
 
-AbcCurveWriter::AbcCurveWriter(Depsgraph *depsgraph,
-                               Scene *scene,
-                               Object *ob,
+AbcCurveWriter::AbcCurveWriter(Object *ob,
                                AbcTransformWriter *parent,
                                uint32_t time_sampling,
                                ExportSettings &settings)
-    : AbcObjectWriter(depsgraph, scene, ob, time_sampling, settings, parent)
+    : AbcObjectWriter(ob, time_sampling, settings, parent)
 {
        OCurves curves(parent->alembicXform(), m_name, m_time_sampling);
        m_schema = curves.getSchema();
diff --git a/source/blender/alembic/intern/abc_curves.h 
b/source/blender/alembic/intern/abc_curves.h
index e2373381703..4fad27263ea 100644
--- a/source/blender/alembic/intern/abc_curves.h
+++ b/source/blender/alembic/intern/abc_curves.h
@@ -36,9 +36,7 @@ class AbcCurveWriter : public AbcObjectWriter {
        Alembic::AbcGeom::OCurvesSchema::Sample m_sample;
 
 public:
-       AbcCurveWriter(Depsgraph *depsgraph,
-                      Scene *scene,
-                      Object *ob,
+       AbcCurveWriter(Object *ob,
                       AbcTransformWriter *parent,
                       uint32_t time_sampling,
                       ExportSettings &settings);
diff --git a/source/blender/alembic/intern/abc_exporter.cc 
b/source/blender/alembic/intern/abc_exporter.cc
index eda3deab64d..cdb176ae02e 100644
--- a/source/blender/alembic/intern/abc_exporter.cc
+++ b/source/blender/alembic/intern/abc_exporter.cc
@@ -71,6 +71,8 @@ using Alembic::Abc::OBox3dProperty;
 
 ExportSettings::ExportSettings()
     : scene(NULL)
+    , view_layer(NULL)
+    , depsgraph(NULL)
        , logger()
     , selected_only(false)
     , visible_layers_only(false)
@@ -170,16 +172,12 @@ static bool export_object(const ExportSettings * const 
settings, const Base * co
 
 /* ************************************************************************** 
*/
 
-AbcExporter::AbcExporter(Main *bmain, Scene *scene,
-                         Depsgraph *depsgraph,
-                         const char *filename, ExportSettings &settings)
+AbcExporter::AbcExporter(Main *bmain, const char *filename, ExportSettings 
&settings)
     : m_bmain(bmain)
     , m_settings(settings)
     , m_filename(filename)
     , m_trans_sampling_index(0)
     , m_shape_sampling_index(0)
-    , m_scene(scene)
-    , m_depsgraph(depsgraph)
     , m_writer(NULL)
 {}
 
@@ -203,7 +201,7 @@ void AbcExporter::getShutterSamples(unsigned int 
nr_of_samples,
                                     bool time_relative,
                                     std::vector<double> &samples)
 {
-       Scene *scene = m_scene; /* for use in the FPS macro */
+       Scene *scene = m_settings.scene; /* for use in the FPS macro */
        samples.clear();
 
        unsigned int frame_offset = time_relative ? m_settings.frame_start : 0;
@@ -233,7 +231,7 @@ Alembic::Abc::TimeSamplingPtr 
AbcExporter::createTimeSampling(double step)
 
        Alembic::Abc::TimeSamplingType ts(
                    static_cast<uint32_t>(samples.size()),
-                   1.0 / m_scene->r.frs_sec);
+                   1.0 / m_settings.scene->r.frs_sec); /* TODO(Sybren): 
shouldn't we use the FPS macro here? */
 
        return TimeSamplingPtr(new Alembic::Abc::TimeSampling(ts, samples));
 }
@@ -267,7 +265,7 @@ void AbcExporter::operator()(float &progress, bool 
&was_canceled)
                scene_name = "untitled";
        }
 
-       Scene *scene = m_scene;
+       Scene *scene = m_settings.scene;
        const double fps = FPS;
        char buf[16];
        snprintf(buf, 15, "%f", fps);
@@ -299,8 +297,8 @@ void AbcExporter::operator()(float &progress, bool 
&was_canceled)
 
        OBox3dProperty archive_bounds_prop = 
Alembic::AbcGeom::CreateOArchiveBounds(m_writer->archive(), 
m_trans_sampling_index);
 
-       createTransformWritersHierarchy(m_depsgraph);
-       createShapeWriters(m_depsgraph);
+       createTransformWritersHierarchy();
+       createShapeWriters();
 
        /* Make a list of frames to export. */
 
@@ -362,7 +360,7 @@ void AbcExporter::operator()(float &progress, bool 
&was_canceled)
        }
 }
 
-void AbcExporter::createTransformWritersHierarchy(Depsgraph *depsgraph)
+void AbcExporter::createTransformWritersHierarchy()
 {
        for (Base *base = static_cast<Base 
*>(m_settings.view_layer->object_bases.first); base; base = base->next) {
                Object *ob = base->object;
@@ -375,13 +373,13 @@ void 
AbcExporter::createTransformWritersHierarchy(Depsgraph *depsgraph)
                                        /* We do not export transforms for 
objects of these classes. */
                                        break;
                                default:
-                                       exploreTransform(depsgraph, base, 
ob->parent, NULL);
+                                       exploreTransform(base, ob->parent, 
NULL);
                        }
                }
        }
 }
 
-void AbcExporter::exploreTransform(Depsgraph *depsgraph, Base *ob_base, Object 
*parent, Object *dupliObParent)
+void AbcExporter::exploreTransform(Base *ob_base, Object *parent, Object 
*dupliObParent)
 {
        /* If an object isn't exported itself, its duplilist shouldn't be
         * exported either. */
@@ -389,12 +387,12 @@ void AbcExporter::exploreTransform(Depsgraph *depsgraph, 
Base *ob_base, Object *
                return;
        }
 
-       Object *ob = DEG_get_evaluated_object(depsgraph, ob_base->object);
-       if (object_type_is_exportable(m_scene, ob)) {
-               createTransformWriter(depsgraph, ob, parent, dupliObParent);
+       Object *ob = DEG_get_evaluated_object(m_settings.depsgraph, 
ob_base->object);
+       if (object_type_is_exportable(m_settings.scene, ob)) {
+               createTransformWriter(ob, parent, dupliObParent);
        }
 
-       ListBase *lb = object_duplilist(depsgraph, m_scene, ob);
+       ListBase *lb = object_duplilist(m_settings.depsgraph, m_settings.scene, 
ob);
 
        if (lb) {
                Base fake_base = *ob_base;  // copy flags (like selection 
state) from the real object.
@@ -415,7 +413,7 @@ void AbcExporter::exploreTransform(Depsgraph *depsgraph, 
Base *ob_base, Object *
                                dupli_parent = (dupli_ob->parent) ? 
dupli_ob->parent : ob;
 
                                fake_base.object = dupli_ob;
-                               exploreTransform(depsgraph, &fake_base, 
dupli_parent, ob);
+                               exploreTransform(&fake_base, dupli_parent, ob);
                        }
                }
 
@@ -423,7 +421,7 @@ void AbcExporter::exploreTransform(Depsgraph *depsgraph, 
Base *ob_base, Object *
        }
 }
 
-AbcTransformWriter * AbcExporter::createTransformWriter(Depsgraph *depsgraph, 
Object *ob, Object *parent, Object *dupliObParent)
+AbcTransformWriter * AbcExporter::createTransformWriter(Object *ob, Object 
*parent, Object *dupliObParent)
 {
        /* An object should not be its own parent, or we'll get infinite loops. 
*/
        BLI_assert(ob != parent);
@@ -458,29 +456,29 @@ AbcTransformWriter * 
AbcExporter::createTransformWriter(Depsgraph *depsgraph, Ob
                 * return the parent's AbcTransformWriter pointer. */
                if (parent->parent) {
                        if (parent == dupliObParent) {
-                               parent_writer = 
createTransformWriter(depsgraph, parent, parent->parent, NULL);
+                               parent_writer = createTransformWriter(parent, 
parent->parent, NULL);
                        }
                        else {
-                               parent_writer = 
createTransformWriter(depsgraph, parent, parent->parent, dupliObParent);
+                               parent_writer = createTransformWriter(parent, 
parent->parent, dupliObParent);
                        }
                }
                else if (parent == dupliObParent) {
                        if (dupliObParent->parent == NULL) {
-                               parent_writer = 
createTransformWriter(depsgraph, parent, NULL, NULL);
+                               parent_writer = createTransformWriter(parent, 
NULL, NULL);
                        }
                        else {
-                               parent_writer = 
createTransformWriter(depsgraph, parent, dupliObParent->parent, 
dupliObParent->parent);
+                               parent_writer = createTransformWriter(parent, 
dupliObParent->parent, dupliObParent->parent);
                        }
                }
                else {
-                       parent_writer = createTransformWriter(depsgraph, 
parent, dupliObParent, dupliObParent);
+                       parent_writer = createTransformWriter(parent, 
dupliObParent, dupliObParent);
                }
 
                BLI_assert(parent_writer);
                alembic_parent = parent_writer->alembicXform();
        }
 
-       my_writer = new AbcTransformWriter(depsgraph, ob, alembic_parent, 
parent_writer,
+       my_writer = new AbcTransformWriter(ob, alembic_parent, parent_writer,
                                           m_trans_sampling_index, m_settings);
 
        /* When flattening, the matrix of the dupliobject has to be added. */
@@ -492,14 +490,14 @@ AbcTransformWriter * 
AbcExporter::createTransformWriter(Depsgraph *depsgraph, Ob
        return my_writer;
 }
 
-void AbcExporter::createShapeWriters(Depsgraph *depsgraph)
+void AbcExporter:

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to