Blender
V4.3
intern
cycles
test
util_transform_test.cpp
Go to the documentation of this file.
1
/* SPDX-FileCopyrightText: 2011-2022 Blender Foundation
2
*
3
* SPDX-License-Identifier: Apache-2.0 */
4
5
#include "testing/testing.h"
6
7
#include "
util/transform.h
"
8
#include "
util/vector.h
"
9
10
CCL_NAMESPACE_BEGIN
11
12
TEST
(
transform_motion_decompose
, Degenerated)
13
{
14
// Simple case: single degenerated matrix.
15
{
16
vector<Transform>
motion = {
transform_scale
(0.0f, 0.0f, 0.0f)};
17
vector<DecomposedTransform>
decomp(motion.size());
18
transform_motion_decompose
(decomp.data(), motion.data(), motion.size());
19
EXPECT_TRUE(
transform_decomposed_isfinite_safe
(&decomp[0]));
20
}
21
22
// Copy from previous to current.
23
{
24
vector<Transform>
motion = {
transform_rotate
(M_PI_4_F,
one_float3
()),
25
transform_scale
(0.0f, 0.0f, 0.0f)};
26
vector<DecomposedTransform>
decomp(motion.size());
27
transform_motion_decompose
(decomp.data(), motion.data(), motion.size());
28
EXPECT_NEAR(
len
(decomp[1].x - decomp[0].x), 0.0f, 1e-6f);
29
}
30
31
// Copy from next to current.
32
{
33
vector<Transform>
motion = {
transform_scale
(0.0f, 0.0f, 0.0f),
34
transform_rotate
(M_PI_4_F,
one_float3
())};
35
vector<DecomposedTransform>
decomp(motion.size());
36
transform_motion_decompose
(decomp.data(), motion.data(), motion.size());
37
EXPECT_NEAR(
len
(decomp[0].x - decomp[1].x), 0.0f, 1e-6f);
38
}
39
}
40
41
CCL_NAMESPACE_END
vector
Definition
cycles/util/vector.h:22
vector.h
CCL_NAMESPACE_END
#define CCL_NAMESPACE_END
Definition
device/cuda/compat.h:10
len
int len
Definition
draw_manager_c.cc:115
one_float3
ccl_device_inline float3 one_float3()
Definition
math_float3.h:24
CCL_NAMESPACE_BEGIN
Definition
python.cpp:44
transform_motion_decompose
void transform_motion_decompose(DecomposedTransform *decomp, const Transform *motion, size_t size)
Definition
transform.cpp:254
transform.h
transform_rotate
ccl_device_inline Transform transform_rotate(float angle, float3 axis)
Definition
transform.h:264
transform_decomposed_isfinite_safe
ccl_device_inline bool transform_decomposed_isfinite_safe(ccl_private DecomposedTransform *decomp)
Definition
transform.h:511
transform_scale
ccl_device_inline Transform transform_scale(float3 s)
Definition
transform.h:254
TEST
CCL_NAMESPACE_BEGIN TEST(transform_motion_decompose, Degenerated)
Definition
util_transform_test.cpp:12
Generated on Thu Feb 6 2025 07:36:39 for Blender by
doxygen
1.11.0