1 from panda3d
.core
import load_prc_file_data
2 load_prc_file_data('', 'window-type offscreen')
3 from pathlib
import Path
5 if '' in sys
.path
: sys
.path
.remove('')
6 sys
.path
.append(str(Path(__file__
).parent
.parent
.parent
))
7 from unittest
import TestCase
8 from panda3d
.core
import get_model_path
, Texture
9 from direct
.showbase
.ShowBase
import ShowBase
10 from ya2
.utils
.gfx
import GfxTools
, Point
13 class TestApp(ShowBase
): pass
16 class GraphicsToolsTests(TestCase
):
19 self
.__app
= TestApp()
20 get_model_path().append_directory(str(Path(__file__
).parent
.parent
.parent
))
26 model
= GfxTools
.build_model('assets/models/bam/cube1/cube.bam')
27 srgb_formats
= [Texture
.F_srgb
, Texture
.F_srgb_alpha
]
28 formats
= [t
.get_format() for t
in model
.find_all_textures()]
29 count_before
= [f
in srgb_formats
for f
in formats
].count(True)
30 model
.set_srgb_textures()
31 formats
= [t
.get_format() for t
in model
.find_all_textures()]
32 count_after
= [f
in srgb_formats
for f
in formats
].count(True)
33 self
.assertGreater(count_after
, count_before
)
35 def test_positions(self
):
36 n
= GfxTools
.build_empty_node('temporary node')
39 base
.camera
.set_pos(-8, -10, 5)
40 base
.camera
.look_at(0, 0, 0)
42 self
.assertAlmostEqual(pos
[0], .18, delta
=.01)
43 self
.assertAlmostEqual(pos
[1], .07, delta
=.01)
45 self
.assertEqual(pos
[0], 473)
46 self
.assertEqual(pos
[1], 279)
47 pos
= Point(n
.get_pos()).screen_coord()
48 self
.assertAlmostEqual(pos
[0], .24, delta
=.01)
49 self
.assertAlmostEqual(pos
[1], .07, delta
=.01)
50 from_
, to
= pos
.from_to_points()
51 self
.assertAlmostEqual(from_
[0], -7.35, delta
=.01)
52 self
.assertAlmostEqual(from_
[1], -9.32, delta
=.01)
53 self
.assertAlmostEqual(to
[0], 65471.92, delta
=.01)
54 self
.assertAlmostEqual(to
[1], 67972.78, delta
=.01)