Commit: 98329a57600cf22ccd2cf6709255059bc04f3e0f
Author: Sybren A. Stüvel
Date: Thu Apr 6 15:08:19 2017 +0200
Branches: master
https://developer.blender.org/rB98329a57600cf22ccd2cf6709255059bc04f3e0f
Alembic import: compatibility with pre-C++11 compilers.
===================================================================
M source/blender/alembic/intern/alembic_capi.cc
===================================================================
diff --git a/source/blender/alembic/intern/alembic_capi.cc
b/source/blender/alembic/intern/alembic_capi.cc
index d170ed2b99c..264b9f5ffc5 100644
--- a/source/blender/alembic/intern/alembic_capi.cc
+++ b/source/blender/alembic/intern/alembic_capi.cc
@@ -21,6 +21,7 @@
*/
#include "../ABC_alembic.h"
+#include <boost/foreach.hpp>
#include <Alembic/AbcMaterial/IMaterial.h>
@@ -438,10 +439,14 @@ static std::pair<bool, AbcObjectReader *> visit_object(
AbcObjectReader::ptr_vector assign_as_parent;
for (size_t i = 0; i < num_children; ++i) {
const IObject ichild = object.getChild(i);
- bool child_claims_this_object;
- AbcObjectReader *child_reader;
- std::tie(child_claims_this_object, child_reader) =
visit_object(ichild, readers, settings, assign_as_parent);
+ /* TODO: When we only support C++11, use std::tie() instead. */
+ std::pair<bool, AbcObjectReader *> child_result;
+ child_result = visit_object(ichild, readers, settings,
assign_as_parent);
+
+ bool child_claims_this_object = child_result.first;
+ AbcObjectReader *child_reader = child_result.second;
+
if (child_reader == NULL) {
BLI_assert(!child_claims_this_object);
}
@@ -547,10 +552,11 @@ static std::pair<bool, AbcObjectReader *> visit_object(
/* We can now assign this reader as parent for our children. */
if (nonclaiming_child_readers.size() + assign_as_parent.size()
> 0) {
- for(AbcObjectReader *child_reader :
nonclaiming_child_readers) {
+ /* TODO: When we only support C++11, use for (a: b)
instead. */
+ BOOST_FOREACH(AbcObjectReader *child_reader,
nonclaiming_child_readers) {
child_reader->parent_reader = reader;
}
- for(AbcObjectReader *child_reader : assign_as_parent) {
+ BOOST_FOREACH(AbcObjectReader *child_reader,
assign_as_parent) {
child_reader->parent_reader = reader;
}
}
@@ -561,14 +567,14 @@ static std::pair<bool, AbcObjectReader *> visit_object(
* our non-claiming children. Since all claiming
children share
* the same XForm, it doesn't really matter which one
we pick. */
AbcObjectReader *claiming_child =
claiming_child_readers[0];
- for(AbcObjectReader *child_reader :
nonclaiming_child_readers) {
+ BOOST_FOREACH(AbcObjectReader *child_reader,
nonclaiming_child_readers) {
child_reader->parent_reader = claiming_child;
}
- for(AbcObjectReader *child_reader : assign_as_parent) {
+ BOOST_FOREACH(AbcObjectReader *child_reader,
assign_as_parent) {
child_reader->parent_reader = claiming_child;
}
/* Claiming children should have our parent set as
their parent. */
- for(AbcObjectReader *child_reader :
claiming_child_readers) {
+ BOOST_FOREACH(AbcObjectReader *child_reader,
claiming_child_readers) {
r_assign_as_parent.push_back(child_reader);
}
}
@@ -576,13 +582,13 @@ static std::pair<bool, AbcObjectReader *> visit_object(
/* This object isn't claimed by any child, and didn't
produce
* a reader. Odd situation, could be the top Alembic
object, or
* an unsupported Alembic schema. Delegate to our
parent. */
- for(AbcObjectReader *child_reader :
claiming_child_readers) {
+ BOOST_FOREACH(AbcObjectReader *child_reader,
claiming_child_readers) {
r_assign_as_parent.push_back(child_reader);
}
- for(AbcObjectReader *child_reader :
nonclaiming_child_readers) {
+ BOOST_FOREACH(AbcObjectReader *child_reader,
nonclaiming_child_readers) {
r_assign_as_parent.push_back(child_reader);
}
- for(AbcObjectReader *child_reader : assign_as_parent) {
+ BOOST_FOREACH(AbcObjectReader *child_reader,
assign_as_parent) {
r_assign_as_parent.push_back(child_reader);
}
}
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs