[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