[Bf-blender-cvs] [fb2f100d894] master: Cleanup: Alembic, renamed and moved convert_matrix function
Sybren A. Stüvel
noreply at git.blender.org
Fri Feb 14 15:42:51 CET 2020
Commit: fb2f100d8949463358fbb3a1ae64c425198fb033
Author: Sybren A. Stüvel
Date: Fri Feb 14 15:41:02 2020 +0100
Branches: master
https://developer.blender.org/rBfb2f100d8949463358fbb3a1ae64c425198fb033
Cleanup: Alembic, renamed and moved convert_matrix function
The `convert_matrix()` function just converts between the Alembic and
Blender matrix data types, and doesn't do any coordinate system conversion.
To clarify this, the function has now been renamed to
`convert_matrix_datatype()`.
I also moved the implementations next to each other in the source file,
so that it's visible that there are actually two of them.
No functional changes.
===================================================================
M source/blender/alembic/intern/abc_object.cc
M source/blender/alembic/intern/abc_transform.cc
M source/blender/alembic/intern/abc_util.cc
M source/blender/alembic/intern/abc_util.h
===================================================================
diff --git a/source/blender/alembic/intern/abc_object.cc b/source/blender/alembic/intern/abc_object.cc
index 4799ed557c8..76aec9ad998 100644
--- a/source/blender/alembic/intern/abc_object.cc
+++ b/source/blender/alembic/intern/abc_object.cc
@@ -339,7 +339,7 @@ void AbcObjectReader::read_matrix(float r_mat[4][4] /* local matrix */,
}
const Imath::M44d matrix = get_matrix(schema, time);
- convert_matrix(matrix, r_mat);
+ convert_matrix_datatype(matrix, r_mat);
copy_m44_axis_swap(r_mat, r_mat, ABC_ZUP_FROM_YUP);
/* Convert from Maya to Blender camera orientation. Children of this camera
diff --git a/source/blender/alembic/intern/abc_transform.cc b/source/blender/alembic/intern/abc_transform.cc
index 838e657fee9..5135af131b1 100644
--- a/source/blender/alembic/intern/abc_transform.cc
+++ b/source/blender/alembic/intern/abc_transform.cc
@@ -105,7 +105,7 @@ void AbcTransformWriter::do_write()
yup_mat[3][3] /= m_settings.global_scale; /* normalise the homogeneous component */
}
- m_matrix = convert_matrix(yup_mat);
+ m_matrix = convert_matrix_datatype(yup_mat);
m_sample.setMatrix(m_matrix);
m_sample.setInheritsXforms(m_inherits_xform);
m_schema.set(m_sample);
diff --git a/source/blender/alembic/intern/abc_util.cc b/source/blender/alembic/intern/abc_util.cc
index 56978374512..9a4d4e1a8cc 100644
--- a/source/blender/alembic/intern/abc_util.cc
+++ b/source/blender/alembic/intern/abc_util.cc
@@ -86,7 +86,7 @@ std::string get_object_dag_path_name(const Object *const ob, Object *dupli_paren
return name;
}
-Imath::M44d convert_matrix(float mat[4][4])
+Imath::M44d convert_matrix_datatype(float mat[4][4])
{
Imath::M44d m;
@@ -99,6 +99,15 @@ Imath::M44d convert_matrix(float mat[4][4])
return m;
}
+void convert_matrix_datatype(const Imath::M44d &xform, float r_mat[4][4])
+{
+ for (int i = 0; i < 4; i++) {
+ for (int j = 0; j < 4; j++) {
+ r_mat[i][j] = static_cast<float>(xform[i][j]);
+ }
+ }
+}
+
void split(const std::string &s, const char delim, std::vector<std::string> &tokens)
{
tokens.clear();
@@ -224,15 +233,6 @@ void copy_m44_axis_swap(float dst_mat[4][4], float src_mat[4][4], AbcAxisSwapMod
mul_m4_m4m4(dst_mat, dst_mat, dst_scale_mat);
}
-void convert_matrix(const Imath::M44d &xform, float r_mat[4][4])
-{
- for (int i = 0; i < 4; i++) {
- for (int j = 0; j < 4; j++) {
- r_mat[i][j] = static_cast<float>(xform[i][j]);
- }
- }
-}
-
/* Recompute transform matrix of object in new coordinate system
* (from Z-Up to Y-Up). */
void create_transform_matrix(Object *obj,
diff --git a/source/blender/alembic/intern/abc_util.h b/source/blender/alembic/intern/abc_util.h
index bfeded37c12..0b3462c2132 100644
--- a/source/blender/alembic/intern/abc_util.h
+++ b/source/blender/alembic/intern/abc_util.h
@@ -52,7 +52,9 @@ std::string get_id_name(const Object *const ob);
std::string get_object_dag_path_name(const Object *const ob, Object *dupli_parent);
/* Convert from float to Alembic matrix representations. Does NOT convert from Z-up to Y-up. */
-Imath::M44d convert_matrix(float mat[4][4]);
+Imath::M44d convert_matrix_datatype(float mat[4][4]);
+/* Convert from Alembic to float matrix representations. Does NOT convert from Y-up to Z-up. */
+void convert_matrix_datatype(const Imath::M44d &xform, float r_mat[4][4]);
typedef enum {
ABC_MATRIX_WORLD = 1,
@@ -70,9 +72,6 @@ template<class TContainer> bool begins_with(const TContainer &input, const TCont
return input.size() >= match.size() && std::equal(match.begin(), match.end(), input.begin());
}
-/* Convert from Alembic to float matrix representations. Does NOT convert from Y-up to Z-up. */
-void convert_matrix(const Imath::M44d &xform, float r_mat[4][4]);
-
template<typename Schema>
void get_min_max_time_ex(const Schema &schema, chrono_t &min, chrono_t &max)
{
More information about the Bf-blender-cvs
mailing list