Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'intern/cycles/util/util_transform.cpp')
-rw-r--r--intern/cycles/util/util_transform.cpp22
1 files changed, 11 insertions, 11 deletions
diff --git a/intern/cycles/util/util_transform.cpp b/intern/cycles/util/util_transform.cpp
index e4e0d627497..206c3da23eb 100644
--- a/intern/cycles/util/util_transform.cpp
+++ b/intern/cycles/util/util_transform.cpp
@@ -261,18 +261,18 @@ static void transform_decompose(DecomposedTransform *decomp, const Transform *tf
decomp->w = make_float4(scale.y.z, scale.z.x, scale.z.y, scale.z.z);
}
-void transform_motion_decompose(DecomposedMotionTransform *decomp, const MotionTransform *motion, const Transform *mid)
+void transform_motion_decompose(DecomposedTransform *decomp, const Transform *motion, size_t size)
{
- transform_decompose(&decomp->pre, &motion->pre);
- transform_decompose(&decomp->mid, mid);
- transform_decompose(&decomp->post, &motion->post);
-
- /* ensure rotation around shortest angle, negated quaternions are the same
- * but this means we don't have to do the check in quat_interpolate */
- if(dot(decomp->pre.x, decomp->mid.x) < 0.0f)
- decomp->pre.x = -decomp->pre.x;
- if(dot(decomp->mid.x, decomp->post.x) < 0.0f)
- decomp->mid.x = -decomp->mid.x;
+ for(size_t i = 0; i < size; i++) {
+ transform_decompose(decomp + i, motion + i);
+
+ if(i > 0) {
+ /* Ensure rotation around shortest angle, negated quaternions are the same
+ * but this means we don't have to do the check in quat_interpolate */
+ if(dot(decomp[i-1].x, decomp[i].x) < 0.0f)
+ decomp[i-1].x = -decomp[i-1].x;
+ }
+ }
}
Transform transform_from_viewplane(BoundBox2D& viewplane)