testing.py 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. PRINTMASK_COORD = 0x0001
  2. PRINTMASK_NORMAL = 0x0002
  3. PRINTMASK_UV = 0x0004
  4. PRINTMASK_TANGENT = 0x0008
  5. PRINTMASK_WEIGHT = 0x0010
  6. def PrintUrhoData(data, mask):
  7. print()
  8. for model in data.models:
  9. print("Model: " + model.name)
  10. for ivb,vb in enumerate(model.vertexBuffers):
  11. print(" Vertex buffer {:d}".format(ivb) )
  12. print(" Mask: 0x{:X}".format(vb.elementMask) )
  13. for iv,v in enumerate(vb.vertices):
  14. print(" Vertex {:d}".format(iv) )
  15. if mask & PRINTMASK_COORD:
  16. print(" Coord: {:+.3f} {:+.3f} {:+.3f}".format(v.pos.x, v.pos.y, v.pos.z) )
  17. if mask & PRINTMASK_NORMAL:
  18. print(" Normal: {:+.3f} {:+.3f} {:+.3f}".format(v.normal.x, v.normal.y, v.normal.z) )
  19. if mask & PRINTMASK_UV:
  20. print(" Uv: {:+.3f} {:+.3f}".format(v.uv[0], v.uv[1]) )
  21. if mask & PRINTMASK_TANGENT:
  22. print(" Tangent: {:+.3f} {:+.3f} {:+.3f} {:+.3f}".format(v.tangent.x, v.tangent.y, v.tangent.z, v.tangent.w) )
  23. if mask & PRINTMASK_WEIGHT:
  24. print(" Weights:", end='')
  25. for w in v.weights:
  26. print(" {:d} {:.3f}".format(w[0],w[1]), end='' )
  27. print()
  28. #if iv > 20:
  29. # break
  30. for iib,ib in enumerate(model.indexBuffers):
  31. print(" Index buffer {:d}".format(iib) )
  32. for iix,ix in enumerate(ib.indexes):
  33. if iix and (iix % 12) == 0:
  34. print()
  35. if (iix % 3) == 0:
  36. print("|", end='' )
  37. print(" {:3d}".format(ix), end='' )
  38. print()
  39. for ib, bone in enumerate(model.bones):
  40. print(" Bone {:d} {:s}".format(ib, bone.name) )
  41. print(" parent index: {:d}".format(bone.parentIndex) )
  42. print(" position: " +str(bone.position) )
  43. print(" rotation: " +str(bone.rotation) )
  44. print(" scale: " +str(bone.scale) )
  45. print(" collisionMask: " +str(bone.collisionMask) )
  46. print(" radius: " +str(bone.radius) )
  47. print(" inverseMatrix:\n" +str(bone.inverseMatrix) )
  48. for morph in model.morphs:
  49. print(" Morph {:s}".format(morph.name) )
  50. for ivb, vb in morph.vertexBufferMap.items():
  51. print(" Vertex buffer {:d}".format(ivb) )
  52. print(" Mask: 0x{:X}".format(vb.elementMask) )
  53. for iv,v in enumerate(vb.vertices):
  54. print(" Vertex {:d}".format(iv) )
  55. if mask & PRINTMASK_COORD:
  56. print(" Coord: {:+.3f} {:+.3f} {:+.3f}".format(v.pos.x, v.pos.y, v.pos.z) )
  57. if mask & PRINTMASK_NORMAL:
  58. print(" Normal: {:+.3f} {:+.3f} {:+.3f}".format(v.normal.x, v.normal.y, v.normal.z) )
  59. if mask & PRINTMASK_UV:
  60. print(" Uv: {:+.3f} {:+.3f}".format(v.uv[0], v.uv[1]) )
  61. if mask & PRINTMASK_TANGENT:
  62. print(" Tangent: {:+.3f} {:+.3f} {:+.3f} {:+.3f}".format(v.tangent.x, v.tangent.y, v.tangent.z, v.tangent.w) )
  63. print()
  64. def PrintVerts(mesh):
  65. print("Mesh: " + mesh.name)
  66. print(" Vertices: ", len(mesh.vertices))
  67. for i, vt in enumerate(mesh.vertices):
  68. print("{:3d} coords: ".format(vt.index) + str(vt.co))
  69. print(" normals: " +str(vt.normal))
  70. if i > 12: break
  71. def PrintAll(tData):
  72. print('Vertexes:')
  73. for i,v in enumerate(tData.verticesList):
  74. print(i)
  75. print(v)
  76. if i > 20:
  77. break
  78. print('\nMorphs:')
  79. for i,v in enumerate(tData.morphsList):
  80. print(i)
  81. print(v)
  82. print('\nMaterials:')
  83. for i,v in enumerate(tData.materialsList):
  84. print(i)
  85. print(v)
  86. print('\nGeometries:')
  87. for i,v in enumerate(tData.geometriesList):
  88. print(i)
  89. print(v)
  90. print('\nSkeleton:')
  91. for (k,v) in sorted(tData.bonesMap.items()):
  92. print(k)
  93. print(v)
  94. def PrintMesh(mesh):
  95. print("Mesh: " + mesh.name)
  96. print(" vertices: ", len(mesh.vertices))
  97. print(" faces: " + str(len(mesh.polygons)))
  98. for vt in mesh.vertices:
  99. print(" Vertex ", vt.index)
  100. print(" coords: " + str(vt.co))
  101. print(" normals: " +str(vt.normal))
  102. for i,fc in enumerate(mesh.polygons):
  103. print(" Polygon ", i)
  104. print(" normal: " +str(fc.normal))
  105. print(" indexes: ", end="")
  106. for v in fc.vertices:
  107. print(v, " ", end="")
  108. print()