File: test_cameras.py

package info (click to toggle)
python-vispy 0.14.3-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 8,840 kB
  • sloc: python: 59,436; javascript: 6,800; makefile: 69; sh: 6
file content (27 lines) | stat: -rw-r--r-- 1,068 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# -*- coding: utf-8 -*-
# -----------------------------------------------------------------------------
# Copyright (c) Vispy Development Team. All Rights Reserved.
# Distributed under the (new) BSD License. See LICENSE.txt for more info.
# -----------------------------------------------------------------------------
import numpy as np
import pytest
from vispy.scene.cameras import TurntableCamera
from vispy.testing import run_tests_if_main


@pytest.mark.parametrize(
    "elevation, azimuth, roll, expected",
    [
        [0, 0, 0, np.eye(4)],
        [90, 0, 0, [[1, 0, 0, 0], [0, 0, -1, 0], [0, 1, 0, 0], [0, 0, 0, 1]]],
        [0, 90, 0, [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]],
        [0, 0, 90, [[0, 0, -1, 0], [0, 1, 0, 0], [1, 0, 0, 0], [0, 0, 0, 1]]],
    ],
)
def test_turntable_camera_transform(elevation, azimuth, roll, expected):
    camera = TurntableCamera(elevation=elevation, azimuth=azimuth, roll=roll)
    matrix = camera._get_rotation_tr()
    np.testing.assert_allclose(matrix, expected, atol=1e-5)


run_tests_if_main()