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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
|
import pytest
import f3d
def test_properties():
engine = f3d.Engine.create(True)
camera = engine.window.camera
pos = 1, 2, 3
foc = 1, 22, 3
up = 0, 0, 1
angle = 32
camera.position = pos
camera.focal_point = foc
camera.view_up = up
camera.view_angle = angle
assert camera.position == pos
assert camera.focal_point == foc
assert camera.view_up == up
assert camera.view_angle == angle
def test_get_state():
engine = f3d.Engine.create(True)
camera = engine.window.camera
pos = 1, 2, 3
foc = 1, 22, 3
up = 0, 0, 1
angle = 32
camera.position = pos
camera.focal_point = foc
camera.view_up = up
camera.view_angle = angle
assert camera.state.position == pos
assert camera.state.focal_point == foc
assert camera.state.view_up == up
assert camera.state.view_angle == angle
def test_set_state():
engine = f3d.Engine.create(True)
camera = engine.window.camera
state = f3d.CameraState((1, 2, 3), (1, 22, 3), (0, 0, 1), 32)
camera.state = state
assert camera.position == state.position
assert camera.focal_point == state.focal_point
assert camera.view_up == state.view_up
assert camera.view_angle == state.view_angle
def test_default_state():
new_state = f3d.CameraState()
assert new_state.position == (0, 0, 1)
assert new_state.focal_point == (0, 0, 0)
assert new_state.view_up == (0, 1, 0)
assert new_state.view_angle == 30
def test_state_init():
default_state = f3d.CameraState()
s1 = f3d.CameraState((1, 2, 3))
assert s1.position == (1, 2, 3)
assert s1.focal_point == default_state.focal_point
assert s1.view_up == default_state.view_up
assert s1.view_angle == default_state.view_angle
s2 = f3d.CameraState(focal_point=(1, 2, 3))
assert s2.position == default_state.position
assert s2.focal_point == (1, 2, 3)
assert s2.view_up == default_state.view_up
assert s2.view_angle == default_state.view_angle
s3 = f3d.CameraState(view_up=(1, 2, 3))
assert s3.position == default_state.position
assert s3.focal_point == default_state.focal_point
assert s3.view_up == (1, 2, 3)
assert s3.view_angle == default_state.view_angle
s4 = f3d.CameraState(view_angle=12.3)
assert s4.position == default_state.position
assert s4.focal_point == default_state.focal_point
assert s4.view_up == default_state.view_up
assert s4.view_angle == 12.3
@pytest.mark.xfail(reason="CameraState equality not implemented")
def test_state_compare():
state1 = f3d.CameraState((1, 2, 3), (1, 22, 3), (0, 0, 1), 32)
state2 = f3d.CameraState((1, 2, 3), (1, 22, 3), (0, 0, 1), 32)
assert state1 == state2
state3 = f3d.CameraState((1, 2, 3), (1, 22, 3), (0, 0, 1), 25)
assert state1 != state3
def test_moves():
engine = f3d.Engine.create(True)
camera = engine.window.camera
camera.dolly(10)
angle = 30
camera.roll(angle)
camera.azimuth(angle)
camera.yaw(angle)
camera.elevation(angle)
camera.pitch(angle)
def test_pan():
engine = f3d.Engine.create(True)
camera = engine.window.camera
camera.state = f3d.CameraState((1, 2, 3), (1, 2, 13), (0, 1, 0), 40)
camera.pan(1, 2)
assert camera.state.position == (0, 4, 3)
assert camera.state.focal_point == (0, 4, 13)
camera.state = f3d.CameraState((1, 2, 3), (1, -2, 3), (0, 0, 1), 40)
camera.pan(3, 4, 5)
assert camera.state.position == (-2, -3, 7)
assert camera.state.focal_point == (-2, -7, 7)
def test_resets():
engine = f3d.Engine.create(True)
camera = engine.window.camera
camera.set_current_as_default()
camera.reset_to_bounds()
camera.reset_to_default()
|