test_lenses.py 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. from panda3d.core import PerspectiveLens, Point3, Point2
  2. def test_perspectivelens_extrude():
  3. lens = PerspectiveLens()
  4. lens.set_fov(90, 90)
  5. lens.set_near_far(0.5, 100)
  6. near = Point3()
  7. far = Point3()
  8. assert lens.extrude((0, 0), near, far)
  9. assert near.almost_equal((0, 0.5, 0), 0.001)
  10. assert far.almost_equal((0, 100, 0), 0.1)
  11. assert lens.extrude((-1, -1), near, far)
  12. assert near.almost_equal((-0.5, 0.5, -0.5), 0.001)
  13. assert far.almost_equal((-100, 100, -100), 0.1)
  14. assert lens.extrude((1, 0), near, far)
  15. assert near.almost_equal((0.5, 0.5, 0), 0.001)
  16. assert far.almost_equal((100, 100, 0), 0.1)
  17. def test_perspectivelens_extrude_depth():
  18. lens = PerspectiveLens()
  19. lens.set_fov(90, 90)
  20. lens.set_near_far(0.5, 100)
  21. point = Point3()
  22. assert lens.extrude_depth((0, 0, -1), point)
  23. assert point.almost_equal((0, 0.5, 0), 0.001)
  24. assert lens.extrude_depth((0, 0, 1), point)
  25. assert point.almost_equal((0, 100, 0), 0.001)
  26. assert lens.extrude_depth((-1, -1, -1), point)
  27. assert point.almost_equal((-0.5, 0.5, -0.5), 0.001)
  28. assert lens.extrude_depth((-1, -1, 1), point)
  29. assert point.almost_equal((-100, 100, -100), 0.1)
  30. assert lens.extrude_depth((1, 0, -1), point)
  31. assert point.almost_equal((0.5, 0.5, 0), 0.001)
  32. assert lens.extrude_depth((1, 0, 1), point)
  33. assert point.almost_equal((100, 100, 0), 0.1)
  34. def test_perspectivelens_project():
  35. lens = PerspectiveLens()
  36. lens.set_fov(90, 90)
  37. lens.set_near_far(0.5, 100)
  38. point = Point2()
  39. assert not lens.project((0, 0, 0), point)
  40. assert not lens.project((-1, 0.5, 0), point)
  41. assert lens.project((0, 0.5, 0), point)
  42. assert point.almost_equal((0, 0), 0.001)
  43. assert lens.project((0, 100, 0), point)
  44. assert point.almost_equal((0, 0), 0.001)
  45. assert lens.project((-0.5, 0.5, -0.5), point)
  46. assert point.almost_equal((-1, -1), 0.001)
  47. assert lens.project((-100, 100, -100), point)
  48. assert point.almost_equal((-1, -1), 0.001)
  49. assert lens.project((0.5, 0.5, 0), point)
  50. assert point.almost_equal((1, 0), 0.001)
  51. assert lens.project((100, 100, 0), point)
  52. assert point.almost_equal((1, 0), 0.001)