Commit: f0cdc1f6a43fcd61be534dfad0f6321c15973b97
Author: Kévin Dietrich
Date:   Thu Jul 14 14:01:02 2016 +0200
Branches: alembic_basic_io
https://developer.blender.org/rBf0cdc1f6a43fcd61be534dfad0f6321c15973b97

Cleanup: use has_animations.

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

M       source/blender/alembic/intern/abc_curves.cc
M       source/blender/alembic/intern/abc_mesh.cc
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_util.h

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

diff --git a/source/blender/alembic/intern/abc_curves.cc 
b/source/blender/alembic/intern/abc_curves.cc
index c17c279..63933c2 100644
--- a/source/blender/alembic/intern/abc_curves.cc
+++ b/source/blender/alembic/intern/abc_curves.cc
@@ -208,8 +208,8 @@ void AbcCurveReader::readObjectData(Main *bmain, Scene 
*scene, float time)
 
        read_curve_sample(cu, m_curves_schema, time);
 
-       if (m_settings->is_sequence || !m_curves_schema.isConstant()) {
-               addDefaultModifier();
+       if (has_animations(m_curves_schema, m_settings)) {
+               addCacheModifier();
        }
 }
 
diff --git a/source/blender/alembic/intern/abc_mesh.cc 
b/source/blender/alembic/intern/abc_mesh.cc
index a73ce7a..f6e6a95 100644
--- a/source/blender/alembic/intern/abc_mesh.cc
+++ b/source/blender/alembic/intern/abc_mesh.cc
@@ -964,41 +964,6 @@ ABC_INLINE void read_normals_params(AbcMeshData &abc_data,
        }
 }
 
-template <typename Schema>
-static bool has_animations(Schema &schema, ImportSettings *settings)
-{
-       if (settings->is_sequence) {
-               return true;
-       }
-
-       if (!schema.isConstant()) {
-               return true;
-       }
-
-       const ICompoundProperty &arb_geom_params = schema.getArbGeomParams();
-
-       if (!arb_geom_params.valid()) {
-               return false;
-       }
-
-       const size_t num_props = arb_geom_params.getNumProperties();
-
-       for (size_t i = 0; i < num_props; ++i) {
-               const Alembic::Abc::PropertyHeader &propHeader = 
arb_geom_params.getPropertyHeader(i);
-
-               /* Check for animated UVs. */
-               if (IV2fGeomParam::matches(propHeader) && 
Alembic::AbcGeom::isUV(propHeader)) {
-                       IV2fGeomParam uv_geom_param(arb_geom_params, 
propHeader.getName());
-
-                       if (!uv_geom_param.isConstant()) {
-                               return true;
-                       }
-               }
-       }
-
-       return false;
-}
-
 /* ************************************************************************** 
*/
 
 AbcMeshReader::AbcMeshReader(const IObject &object, ImportSettings &settings, 
bool is_subd)
@@ -1043,7 +1008,7 @@ void AbcMeshReader::readObjectData(Main *bmain, Scene 
*scene, float time)
        readFaceSetsSample(bmain, mesh, 0, sample_sel);
 
        if (has_animations(m_schema, m_settings)) {
-               addDefaultModifier();
+               addCacheModifier();
        }
 }
 
@@ -1191,7 +1156,7 @@ void AbcSubDReader::readObjectData(Main *bmain, Scene 
*scene, float time)
        BKE_mesh_validate(mesh, false, false);
 
        if (has_animations(m_schema, m_settings)) {
-               addDefaultModifier();
+               addCacheModifier();
        }
 }
 
diff --git a/source/blender/alembic/intern/abc_object.cc 
b/source/blender/alembic/intern/abc_object.cc
index bf92172..24f699b 100644
--- a/source/blender/alembic/intern/abc_object.cc
+++ b/source/blender/alembic/intern/abc_object.cc
@@ -214,7 +214,7 @@ void AbcObjectReader::readObjectMatrix(const float time)
        }
 }
 
-void AbcObjectReader::addDefaultModifier() const
+void AbcObjectReader::addCacheModifier() const
 {
        ModifierData *md = modifier_new(eModifierType_MeshSequenceCache);
        BLI_addtail(&m_object->modifiers, md);
diff --git a/source/blender/alembic/intern/abc_object.h 
b/source/blender/alembic/intern/abc_object.h
index ac2fbf8..0c2e08d 100644
--- a/source/blender/alembic/intern/abc_object.h
+++ b/source/blender/alembic/intern/abc_object.h
@@ -94,6 +94,20 @@ struct ImportSettings {
        CacheFile *cache_file;
 };
 
+template <typename Schema>
+static bool has_animations(Schema &schema, ImportSettings *settings)
+{
+       if (settings->is_sequence) {
+               return true;
+       }
+
+       if (!schema.isConstant()) {
+               return true;
+       }
+
+       return false;
+}
+
 /* ************************************************************************** 
*/
 
 using Alembic::AbcCoreAbstract::chrono_t;
@@ -126,7 +140,7 @@ public:
 
        void readObjectMatrix(const float time);
 
-       void addDefaultModifier() const;
+       void addCacheModifier() const;
 
        chrono_t minTime() const;
        chrono_t maxTime() const;
diff --git a/source/blender/alembic/intern/abc_points.cc 
b/source/blender/alembic/intern/abc_points.cc
index ca58bd8..f86f5ef 100644
--- a/source/blender/alembic/intern/abc_points.cc
+++ b/source/blender/alembic/intern/abc_points.cc
@@ -178,7 +178,7 @@ void AbcPointsReader::readObjectData(Main *bmain, Scene 
*scene, float time)
        m_object = BKE_object_add(bmain, scene, OB_MESH, m_object_name.c_str());
        m_object->data = mesh;
 
-       if (m_settings->is_sequence || !m_schema.isConstant()) {
-               addDefaultModifier();
+       if (has_animations(m_schema, m_settings)) {
+               addCacheModifier();
        }
 }
diff --git a/source/blender/alembic/intern/abc_util.h 
b/source/blender/alembic/intern/abc_util.h
index b2ab046..0409f28 100644
--- a/source/blender/alembic/intern/abc_util.h
+++ b/source/blender/alembic/intern/abc_util.h
@@ -25,8 +25,16 @@
 #include <Alembic/Abc/All.h>
 #include <Alembic/AbcGeom/All.h>
 
+#ifdef _MSC_VER
+#  define ABC_INLINE static __forceinline
+#else
+#  define ABC_INLINE static inline
+#endif
+
 using Alembic::Abc::chrono_t;
 
+class ImportSettings;
+
 struct ID;
 struct Object;
 
@@ -76,12 +84,6 @@ bool has_property(const Alembic::Abc::ICompoundProperty 
&prop, const std::string
 
 /* ************************** */
 
-#ifdef _MSC_VER
-#  define ABC_INLINE static __forceinline
-#else
-#  define ABC_INLINE static inline
-#endif
-
 /* TODO(kevin): for now keeping these transformations hardcoded to make sure
  * everything works properly, and also because Alembic is almost exclusively
  * used in Y-up software, but eventually they'll be set by the user in the UI

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to