test_geom_primitives.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. from panda3d import core
  2. def test_geom_triangles_adjacency():
  3. prim = core.GeomTriangles(core.GeomEnums.UH_static)
  4. prim.add_vertex(0)
  5. prim.add_vertex(1)
  6. prim.add_vertex(2)
  7. prim.close_primitive()
  8. prim.add_vertex(2)
  9. prim.add_vertex(1)
  10. prim.add_vertex(3)
  11. prim.close_primitive()
  12. adj = prim.make_adjacency()
  13. verts = adj.get_vertex_list()
  14. assert tuple(verts) == (
  15. 0, 0, 1, 3, 2, 2,
  16. 2, 0, 1, 1, 3, 3,
  17. )
  18. def test_geom_lines_adjacency():
  19. prim = core.GeomLines(core.GeomEnums.UH_static)
  20. prim.add_vertex(0)
  21. prim.add_vertex(1)
  22. prim.close_primitive()
  23. prim.add_vertex(1)
  24. prim.add_vertex(2)
  25. prim.close_primitive()
  26. prim.add_vertex(2)
  27. prim.add_vertex(3)
  28. prim.close_primitive()
  29. adj = prim.make_adjacency()
  30. verts = adj.get_vertex_list()
  31. assert tuple(verts) == (
  32. 0, 0, 1, 2,
  33. 0, 1, 2, 3,
  34. 1, 2, 3, 3,
  35. )
  36. def test_geom_linestrips_adjacency():
  37. prim = core.GeomLinestrips(core.GeomEnums.UH_static)
  38. prim.add_vertex(0)
  39. prim.add_vertex(1)
  40. prim.close_primitive()
  41. prim.add_vertex(1)
  42. prim.add_vertex(2)
  43. prim.add_vertex(3)
  44. prim.close_primitive()
  45. prim.add_vertex(3)
  46. prim.add_vertex(4)
  47. prim.add_vertex(5)
  48. prim.add_vertex(6)
  49. prim.close_primitive()
  50. adj = prim.make_adjacency()
  51. verts = adj.get_vertex_list()
  52. cut = adj.get_strip_cut_index()
  53. assert tuple(verts) == (
  54. 0, 0, 1, 2,
  55. cut,
  56. 0, 1, 2, 3, 4,
  57. cut,
  58. 2, 3, 4, 5, 6, 6,
  59. )
  60. # Check that it decomposes properly to a lines-adjacency primitive
  61. prim = adj.decompose()
  62. assert isinstance(prim, core.GeomLinesAdjacency)
  63. verts = prim.get_vertex_list()
  64. assert tuple(verts) == (
  65. 0, 0, 1, 2,
  66. 0, 1, 2, 3,
  67. 1, 2, 3, 4,
  68. 2, 3, 4, 5,
  69. 3, 4, 5, 6,
  70. 4, 5, 6, 6,
  71. )