[Bf-blender-cvs] [e92989b0c1c] sybren-usd: USD: removed 'parent_writer' pointer

Sybren A. Stüvel noreply at git.blender.org
Fri Jul 19 11:15:23 CEST 2019


Commit: e92989b0c1c0a518a3208e98cd2b6af0cc424469
Author: Sybren A. Stüvel
Date:   Wed Jul 17 12:18:42 2019 +0200
Branches: sybren-usd
https://developer.blender.org/rBe92989b0c1c0a518a3208e98cd2b6af0cc424469

USD: removed 'parent_writer' pointer

The `parent_writer` pointer was intended to be used by an Alembic writer,
but now it's getting in the way. I'm removing it from the
`AbstractHierarchyIterator` with the intent of either restoring it or
finding another solution when we actually implement Alembic writers.

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

M	source/blender/usd/intern/abstract_hierarchy_iterator.cc
M	source/blender/usd/intern/abstract_hierarchy_iterator.h

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

diff --git a/source/blender/usd/intern/abstract_hierarchy_iterator.cc b/source/blender/usd/intern/abstract_hierarchy_iterator.cc
index 8d18d1f5b8d..10379b0a2b9 100644
--- a/source/blender/usd/intern/abstract_hierarchy_iterator.cc
+++ b/source/blender/usd/intern/abstract_hierarchy_iterator.cc
@@ -64,7 +64,7 @@ void AbstractHierarchyIterator::iterate()
 {
   export_graph_construct();
   export_graph_prune();
-  make_writers(HierarchyContext::root(), nullptr);
+  make_writers(HierarchyContext::root());
   export_graph_clear();
 }
 
@@ -132,7 +132,6 @@ void AbstractHierarchyIterator::visit_object(Object *object,
   context->weak_export = weak_export;
   context->animation_check_include_parent = false;
   context->export_path = "";
-  context->parent_writer = nullptr;
   copy_m4_m4(context->matrix_world, object->obmat);
 
   export_graph[std::make_pair(export_parent, nullptr)].insert(context);
@@ -157,7 +156,6 @@ void AbstractHierarchyIterator::visit_dupli_object(DupliObject *dupli_object,
   context->duplicator = duplicator;
   context->weak_export = false;
   context->export_path = "";
-  context->parent_writer = nullptr;
 
   /* If the dupli-object's scene parent is also instanced by this object, use that as the
    * export parent. Otherwise use the dupli-parent as export parent. */
@@ -259,8 +257,7 @@ AbstractHierarchyIterator::ExportGraph::mapped_type &AbstractHierarchyIterator::
   return export_graph[std::make_pair(parent_object, parent_duplicator)];
 }
 
-void AbstractHierarchyIterator::make_writers(const HierarchyContext *parent_context,
-                                             AbstractHierarchyWriter *parent_writer)
+void AbstractHierarchyIterator::make_writers(const HierarchyContext *parent_context)
 {
   AbstractHierarchyWriter *xform_writer = nullptr;
   float parent_matrix_inv_world[4][4];
@@ -276,7 +273,6 @@ void AbstractHierarchyIterator::make_writers(const HierarchyContext *parent_cont
 
   for (HierarchyContext *context : graph_children(parent_context)) {
     std::string export_path = path_concatenate(parent_export_path, context->export_name);
-    context->parent_writer = parent_writer;
     context->export_path = export_path;
     copy_m4_m4(context->parent_matrix_inv_world, parent_matrix_inv_world);
 
@@ -301,19 +297,19 @@ void AbstractHierarchyIterator::make_writers(const HierarchyContext *parent_cont
     xform_writer->write(*context);
 
     if (!context->weak_export) {
-      make_writers_particle_systems(context, xform_writer);
-      make_writer_object_data(context, xform_writer);
+      make_writers_particle_systems(context);
+      make_writer_object_data(context);
     }
 
     // Recurse into this object's children.
-    make_writers(context, xform_writer);
+    make_writers(context);
   }
 
   // TODO(Sybren): iterate over all unused writers and call unused_during_iteration() or something.
 }
 
 void AbstractHierarchyIterator::make_writers_particle_systems(
-    const HierarchyContext *xform_context, AbstractHierarchyWriter *xform_writer)
+    const HierarchyContext *xform_context)
 {
   Object *object = xform_context->object;
   ParticleSystem *psys = static_cast<ParticleSystem *>(object->particlesystem.first);
@@ -325,7 +321,6 @@ void AbstractHierarchyIterator::make_writers_particle_systems(
     HierarchyContext hair_context = *xform_context;
     hair_context.export_path = path_concatenate(xform_context->export_path,
                                                 get_id_name(&psys->part->id));
-    hair_context.parent_writer = xform_writer;
     hair_context.particle_system = psys;
 
     AbstractHierarchyWriter *writer = nullptr;
@@ -344,8 +339,7 @@ void AbstractHierarchyIterator::make_writers_particle_systems(
   }
 }
 
-void AbstractHierarchyIterator::make_writer_object_data(const HierarchyContext *context,
-                                                        AbstractHierarchyWriter *xform_writer)
+void AbstractHierarchyIterator::make_writer_object_data(const HierarchyContext *context)
 {
   if (context->object->data == nullptr) {
     return;
@@ -356,7 +350,6 @@ void AbstractHierarchyIterator::make_writer_object_data(const HierarchyContext *
   std::string data_path = path_concatenate(context->export_path, get_id_name(object_data));
 
   data_context.export_path = data_path;
-  data_context.parent_writer = xform_writer;
 
   AbstractHierarchyWriter *data_writer;
 
diff --git a/source/blender/usd/intern/abstract_hierarchy_iterator.h b/source/blender/usd/intern/abstract_hierarchy_iterator.h
index ab7cbf518fe..f2a1907bd8d 100644
--- a/source/blender/usd/intern/abstract_hierarchy_iterator.h
+++ b/source/blender/usd/intern/abstract_hierarchy_iterator.h
@@ -69,7 +69,6 @@ struct HierarchyContext {
   /* Determined during writer creation: */
   float parent_matrix_inv_world[4][4]; /* Inverse of the parent's world matrix. */
   std::string export_path;  // Hierarchical path, such as "/grandparent/parent/objectname".
-  AbstractHierarchyWriter *parent_writer;  // The parent of this object during the export.
   ParticleSystem *particle_system;         // Only set for particle/hair writers.
 
   // For making the struct insertable into a std::set<>.
@@ -120,12 +119,9 @@ class AbstractHierarchyIterator {
 
   ExportGraph::mapped_type &graph_children(const HierarchyContext *parent_context);
 
-  void make_writers(const HierarchyContext *parent_context,
-                    AbstractHierarchyWriter *parent_writer);
-  void make_writer_object_data(const HierarchyContext *context,
-                               AbstractHierarchyWriter *xform_writer);
-  void make_writers_particle_systems(const HierarchyContext *context,
-                                     AbstractHierarchyWriter *xform_writer);
+  void make_writers(const HierarchyContext *parent_context);
+  void make_writer_object_data(const HierarchyContext *context);
+  void make_writers_particle_systems(const HierarchyContext *context);
 
   std::string get_object_name(const Object *object) const;



More information about the Bf-blender-cvs mailing list