| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- from panda3d.core import PerspectiveLens, Point3, Point2, CS_zup_right
- def test_perspectivelens_extrude():
- lens = PerspectiveLens()
- lens.set_fov(90, 90)
- lens.set_near_far(0.5, 100)
- near = Point3()
- far = Point3()
- assert lens.extrude((0, 0), near, far)
- assert near.almost_equal((0, 0.5, 0), 0.001)
- assert far.almost_equal((0, 100, 0), 0.1)
- assert lens.extrude((-1, -1), near, far)
- assert near.almost_equal((-0.5, 0.5, -0.5), 0.001)
- assert far.almost_equal((-100, 100, -100), 0.1)
- assert lens.extrude((1, 0), near, far)
- assert near.almost_equal((0.5, 0.5, 0), 0.001)
- assert far.almost_equal((100, 100, 0), 0.1)
- def test_perspectivelens_extrude_depth():
- lens = PerspectiveLens()
- lens.set_fov(90, 90)
- lens.set_near_far(0.5, 100)
- point = Point3()
- assert lens.extrude_depth((0, 0, -1), point)
- assert point.almost_equal((0, 0.5, 0), 0.001)
- assert lens.extrude_depth((0, 0, 1), point)
- assert point.almost_equal((0, 100, 0), 0.001)
- assert lens.extrude_depth((-1, -1, -1), point)
- assert point.almost_equal((-0.5, 0.5, -0.5), 0.001)
- assert lens.extrude_depth((-1, -1, 1), point)
- assert point.almost_equal((-100, 100, -100), 0.1)
- assert lens.extrude_depth((1, 0, -1), point)
- assert point.almost_equal((0.5, 0.5, 0), 0.001)
- assert lens.extrude_depth((1, 0, 1), point)
- assert point.almost_equal((100, 100, 0), 0.1)
- def test_perspectivelens_project():
- lens = PerspectiveLens()
- lens.set_fov(90, 90)
- lens.set_near_far(0.5, 100)
- point = Point2()
- assert not lens.project((0, 0, 0), point)
- assert not lens.project((-1, 0.5, 0), point)
- assert lens.project((0, 0.5, 0), point)
- assert point.almost_equal((0, 0), 0.001)
- assert lens.project((0, 100, 0), point)
- assert point.almost_equal((0, 0), 0.001)
- assert lens.project((-0.5, 0.5, -0.5), point)
- assert point.almost_equal((-1, -1), 0.001)
- assert lens.project((-100, 100, -100), point)
- assert point.almost_equal((-1, -1), 0.001)
- assert lens.project((0.5, 0.5, 0), point)
- assert point.almost_equal((1, 0), 0.001)
- assert lens.project((100, 100, 0), point)
- assert point.almost_equal((1, 0), 0.001)
- def test_perspectivelens_far_inf():
- lens = PerspectiveLens()
- lens.set_fov(90, 90)
- lens.set_near_far(2, float("inf"))
- lens.coordinate_system = CS_zup_right
- mat = lens.get_projection_mat()
- assert mat[1][2] == 1
- assert mat[3][2] == -4
- def test_perspectivelens_near_inf():
- lens = PerspectiveLens()
- lens.set_fov(90, 90)
- lens.set_near_far(float("inf"), 2)
- lens.coordinate_system = CS_zup_right
- mat = lens.get_projection_mat()
- assert mat[1][2] == -1
- assert mat[3][2] == 4
|