Alembic import: fix scene min/max time computation to take objects with
[blender.git] / source / blender / alembic / intern / abc_util.h
index 688a25d85f60829d400497c5c1f7ed1662a90ce1..8cdfe21e43f50ac5828d39d7c5f6fa2babf4d747 100644 (file)
@@ -64,7 +64,7 @@ void create_input_transform(const Alembic::AbcGeom::ISampleSelector &sample_sel,
                             float r_mat[4][4], float scale, bool has_alembic_parent = false);
 
 template <typename Schema>
-void get_min_max_time(const Schema &schema, chrono_t &min, chrono_t &max)
+void get_min_max_time_ex(const Schema &schema, chrono_t &min, chrono_t &max)
 {
        const Alembic::Abc::TimeSamplingPtr &time_samp = schema.getTimeSampling();
 
@@ -81,6 +81,15 @@ void get_min_max_time(const Schema &schema, chrono_t &min, chrono_t &max)
        }
 }
 
+template <typename Schema>
+void get_min_max_time(const Alembic::AbcGeom::IObject &object, const Schema &schema, chrono_t &min, chrono_t &max)
+{
+       get_min_max_time_ex(schema, min, max);
+
+       Alembic::AbcGeom::IXform parent(object.getParent(), Alembic::AbcGeom::kWrapExisting);
+       get_min_max_time_ex(parent.getSchema(), min, max);
+}
+
 bool has_property(const Alembic::Abc::ICompoundProperty &prop, const std::string &name);
 
 /* ************************** */