@tushar-br/editing-pack 1.0.188 → 1.0.190

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1216) hide show
  1. package/package.json +1 -1
  2. package/staging_area/Blender/blender.pdb.ts_part_0 +0 -0
  3. package/staging_area/Blender/5.0/scripts/addons_core/cycles/__init__.py +0 -173
  4. package/staging_area/Blender/5.0/scripts/addons_core/cycles/__pycache__/__init__.cpython-311.pyc +0 -0
  5. package/staging_area/Blender/5.0/scripts/addons_core/cycles/__pycache__/camera.cpython-311.pyc +0 -0
  6. package/staging_area/Blender/5.0/scripts/addons_core/cycles/__pycache__/engine.cpython-311.pyc +0 -0
  7. package/staging_area/Blender/5.0/scripts/addons_core/cycles/__pycache__/operators.cpython-311.pyc +0 -0
  8. package/staging_area/Blender/5.0/scripts/addons_core/cycles/__pycache__/presets.cpython-311.pyc +0 -0
  9. package/staging_area/Blender/5.0/scripts/addons_core/cycles/__pycache__/properties.cpython-311.pyc +0 -0
  10. package/staging_area/Blender/5.0/scripts/addons_core/cycles/__pycache__/ui.cpython-311.pyc +0 -0
  11. package/staging_area/Blender/5.0/scripts/addons_core/cycles/__pycache__/version_update.cpython-311.pyc +0 -0
  12. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/geom/shader_data.h +0 -452
  13. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/geom/triangle.h +0 -278
  14. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/geom/triangle_intersect.h +0 -166
  15. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/geom/volume.h +0 -104
  16. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/globals.h +0 -13
  17. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/image.h +0 -12
  18. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/displacement_shader.h +0 -43
  19. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/guiding.h +0 -641
  20. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/init_from_bake.h +0 -344
  21. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/init_from_camera.h +0 -110
  22. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/intersect_closest.h +0 -443
  23. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/intersect_dedicated_light.h +0 -232
  24. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/intersect_shadow.h +0 -183
  25. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/intersect_subsurface.h +0 -24
  26. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/intersect_volume_stack.h +0 -250
  27. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/megakernel.h +0 -114
  28. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/mnee.h +0 -1123
  29. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/path_state.h +0 -425
  30. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/shade_background.h +0 -210
  31. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/shade_dedicated_light.h +0 -243
  32. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/shade_light.h +0 -95
  33. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/shade_shadow.h +0 -192
  34. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/shade_surface.h +0 -885
  35. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/shade_volume.h +0 -2947
  36. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/shadow_catcher.h +0 -79
  37. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/shadow_linking.h +0 -69
  38. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/shadow_state_template.h +0 -99
  39. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/state.h +0 -276
  40. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/state_flow.h +0 -255
  41. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/state_template.h +0 -152
  42. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/state_util.h +0 -602
  43. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/subsurface.h +0 -251
  44. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/subsurface_disk.h +0 -220
  45. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/subsurface_random_walk.h +0 -462
  46. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/surface_shader.h +0 -1198
  47. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/volume_shader.h +0 -539
  48. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/volume_stack.h +0 -258
  49. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/light/area.h +0 -537
  50. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/light/background.h +0 -500
  51. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/light/common.h +0 -86
  52. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/light/distant.h +0 -167
  53. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/light/distribution.h +0 -60
  54. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/light/light.h +0 -499
  55. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/light/point.h +0 -240
  56. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/light/sample.h +0 -545
  57. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/light/spot.h +0 -347
  58. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/light/tree.h +0 -951
  59. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/light/triangle.h +0 -339
  60. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/osl/camera.h +0 -81
  61. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/osl/closures_setup.h +0 -1259
  62. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/osl/closures_template.h +0 -277
  63. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/osl/osl.h +0 -287
  64. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/osl/services_gpu.h +0 -1327
  65. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/osl/types.h +0 -157
  66. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/sample/lcg.h +0 -53
  67. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/sample/mapping.h +0 -251
  68. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/sample/mis.h +0 -41
  69. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/sample/pattern.h +0 -188
  70. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/sample/sobol_burley.h +0 -203
  71. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/sample/tabulated_sobol.h +0 -178
  72. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/sample/util.h +0 -79
  73. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/ao.h +0 -148
  74. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/aov.h +0 -49
  75. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/attribute.h +0 -326
  76. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/bevel.h +0 -334
  77. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/blackbody.h +0 -35
  78. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/brick.h +0 -147
  79. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/brightness.h +0 -32
  80. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/bump.h +0 -72
  81. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/camera.h +0 -42
  82. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/checker.h +0 -54
  83. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/clamp.h +0 -40
  84. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/closure.h +0 -1559
  85. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/color_util.h +0 -409
  86. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/convert.h +0 -66
  87. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/displace.h +0 -240
  88. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/fractal_noise.h +0 -550
  89. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/fresnel.h +0 -80
  90. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/gabor.h +0 -392
  91. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/gamma.h +0 -27
  92. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/geometry.h +0 -280
  93. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/gradient.h +0 -80
  94. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/hsv.h +0 -54
  95. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/ies.h +0 -38
  96. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/image.h +0 -273
  97. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/invert.h +0 -33
  98. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/light_path.h +0 -150
  99. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/magic.h +0 -132
  100. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/map_range.h +0 -164
  101. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/mapping.h +0 -74
  102. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/mapping_util.h +0 -37
  103. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/math.h +0 -73
  104. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/math_util.h +0 -278
  105. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/mix.h +0 -125
  106. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/node_types_template.h +0 -115
  107. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/noise.h +0 -761
  108. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/noisetex.h +0 -370
  109. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/normal.h +0 -38
  110. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/radial_tiling.h +0 -81
  111. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/radial_tiling_shared.h +0 -1179
  112. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/ramp.h +0 -185
  113. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/ramp_util.h +0 -80
  114. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/sepcomb_color.h +0 -62
  115. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/sepcomb_vector.h +0 -45
  116. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/sky.h +0 -309
  117. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/svm.h +0 -492
  118. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/tex_coord.h +0 -506
  119. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/types.h +0 -530
  120. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/util.h +0 -160
  121. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/value.h +0 -34
  122. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/vector_rotate.h +0 -79
  123. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/vector_transform.h +0 -130
  124. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/vertex_color.h +0 -107
  125. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/voronoi.h +0 -1248
  126. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/wave.h +0 -137
  127. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/wavelength.h +0 -36
  128. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/white_noise.h +0 -74
  129. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/wireframe.h +0 -116
  130. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/tables.h +0 -124
  131. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/types.h +0 -1923
  132. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/util/colorspace.h +0 -54
  133. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/util/differential.h +0 -169
  134. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/util/ies.h +0 -145
  135. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/util/lookup_table.h +0 -74
  136. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/util/nanovdb.h +0 -436
  137. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/util/profiler.h +0 -28
  138. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/util/texture_3d.h +0 -232
  139. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/atomic.h +0 -315
  140. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/color.h +0 -439
  141. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/defines.h +0 -131
  142. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/guiding.h +0 -40
  143. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/half.h +0 -178
  144. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/hash.h +0 -650
  145. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/math.h +0 -24
  146. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/math_base.h +0 -953
  147. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/math_dual.h +0 -59
  148. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/math_fast.h +0 -650
  149. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/math_float2.h +0 -274
  150. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/math_float3.h +0 -847
  151. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/math_float4.h +0 -666
  152. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/math_float8.h +0 -471
  153. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/math_int2.h +0 -59
  154. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/math_int3.h +0 -117
  155. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/math_int4.h +0 -296
  156. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/math_int8.h +0 -353
  157. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/math_intersect.h +0 -452
  158. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/projection.h +0 -308
  159. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/projection_inverse.h +0 -95
  160. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/rect.h +0 -61
  161. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/static_assert.h +0 -21
  162. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/texture.h +0 -100
  163. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/transform.h +0 -650
  164. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/types.h +0 -32
  165. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/types_base.h +0 -94
  166. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/types_dual.h +0 -134
  167. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/types_float2.h +0 -71
  168. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/types_float3.h +0 -200
  169. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/types_float4.h +0 -134
  170. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/types_float8.h +0 -134
  171. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/types_int2.h +0 -44
  172. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/types_int3.h +0 -158
  173. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/types_int4.h +0 -91
  174. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/types_int8.h +0 -94
  175. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/types_rgbe.h +0 -109
  176. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/types_spectrum.h +0 -28
  177. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/types_uchar2.h +0 -39
  178. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/types_uchar3.h +0 -39
  179. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/types_uchar4.h +0 -45
  180. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/types_uint2.h +0 -37
  181. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/types_uint3.h +0 -91
  182. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/types_uint4.h +0 -37
  183. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/types_ushort4.h +0 -19
  184. package/staging_area/Blender/5.0/scripts/addons_core/cycles/ui.py +0 -2645
  185. package/staging_area/Blender/5.0/scripts/addons_core/cycles/version_update.py +0 -330
  186. package/staging_area/Blender/5.0/scripts/addons_core/hydra_storm/__init__.py +0 -33
  187. package/staging_area/Blender/5.0/scripts/addons_core/hydra_storm/engine.py +0 -47
  188. package/staging_area/Blender/5.0/scripts/addons_core/hydra_storm/properties.py +0 -62
  189. package/staging_area/Blender/5.0/scripts/addons_core/hydra_storm/ui.py +0 -280
  190. package/staging_area/Blender/5.0/scripts/addons_core/io_anim_bvh/__init__.py +0 -397
  191. package/staging_area/Blender/5.0/scripts/addons_core/io_anim_bvh/__pycache__/__init__.cpython-311.pyc +0 -0
  192. package/staging_area/Blender/5.0/scripts/addons_core/io_anim_bvh/export_bvh.py +0 -294
  193. package/staging_area/Blender/5.0/scripts/addons_core/io_anim_bvh/import_bvh.py +0 -795
  194. package/staging_area/Blender/5.0/scripts/addons_core/io_curve_svg/__init__.py +0 -115
  195. package/staging_area/Blender/5.0/scripts/addons_core/io_curve_svg/__pycache__/__init__.cpython-311.pyc +0 -0
  196. package/staging_area/Blender/5.0/scripts/addons_core/io_curve_svg/import_svg.py +0 -1911
  197. package/staging_area/Blender/5.0/scripts/addons_core/io_curve_svg/svg_colors.py +0 -153
  198. package/staging_area/Blender/5.0/scripts/addons_core/io_curve_svg/svg_util.py +0 -107
  199. package/staging_area/Blender/5.0/scripts/addons_core/io_curve_svg/svg_util_test.py +0 -166
  200. package/staging_area/Blender/5.0/scripts/addons_core/io_mesh_uv_layout/__init__.py +0 -302
  201. package/staging_area/Blender/5.0/scripts/addons_core/io_mesh_uv_layout/__pycache__/__init__.cpython-311.pyc +0 -0
  202. package/staging_area/Blender/5.0/scripts/addons_core/io_mesh_uv_layout/export_uv_eps.py +0 -82
  203. package/staging_area/Blender/5.0/scripts/addons_core/io_mesh_uv_layout/export_uv_png.py +0 -119
  204. package/staging_area/Blender/5.0/scripts/addons_core/io_mesh_uv_layout/export_uv_svg.py +0 -54
  205. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_fbx/__init__.py +0 -740
  206. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_fbx/__pycache__/__init__.cpython-311.pyc +0 -0
  207. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_fbx/data_types.py +0 -62
  208. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_fbx/encode_bin.py +0 -434
  209. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_fbx/export_fbx_bin.py +0 -3819
  210. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_fbx/fbx2json.py +0 -341
  211. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_fbx/fbx_utils.py +0 -1931
  212. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_fbx/fbx_utils_threading.py +0 -194
  213. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_fbx/import_fbx.py +0 -4045
  214. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_fbx/json2fbx.py +0 -165
  215. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_fbx/parse_fbx.py +0 -274
  216. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/__init__.py +0 -2250
  217. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/__pycache__/__init__.cpython-311.pyc +0 -0
  218. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/__init__.py +0 -3
  219. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/__pycache__/__init__.cpython-311.pyc +0 -0
  220. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/com/__pycache__/blender_default.cpython-311.pyc +0 -0
  221. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/com/__pycache__/conversion.cpython-311.pyc +0 -0
  222. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/com/__pycache__/data_path.cpython-311.pyc +0 -0
  223. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/com/__pycache__/extras.cpython-311.pyc +0 -0
  224. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/com/__pycache__/gltf2_blender_math.cpython-311.pyc +0 -0
  225. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/com/__pycache__/gltf2_blender_ui.cpython-311.pyc +0 -0
  226. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/com/__pycache__/gltf2_blender_utils.cpython-311.pyc +0 -0
  227. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/com/__pycache__/json_util.cpython-311.pyc +0 -0
  228. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/com/__pycache__/material_helpers.cpython-311.pyc +0 -0
  229. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/com/blender_default.py +0 -15
  230. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/com/conversion.py +0 -229
  231. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/com/data_path.py +0 -110
  232. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/com/extras.py +0 -89
  233. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/com/gltf2_blender_math.py +0 -209
  234. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/com/gltf2_blender_ui.py +0 -751
  235. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/com/gltf2_blender_utils.py +0 -70
  236. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/com/json_util.py +0 -27
  237. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/com/material_helpers.py +0 -32
  238. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/__pycache__/cache.cpython-311.pyc +0 -0
  239. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/__pycache__/sampler.cpython-311.pyc +0 -0
  240. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/accessors.py +0 -189
  241. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/action.py +0 -1062
  242. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/anim_utils.py +0 -321
  243. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/animations.py +0 -22
  244. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/drivers.py +0 -83
  245. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/fcurves/animation.py +0 -35
  246. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/fcurves/channel_target.py +0 -53
  247. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/fcurves/channels.py +0 -378
  248. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/fcurves/keyframes.py +0 -207
  249. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/fcurves/sampler.py +0 -231
  250. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/keyframes.py +0 -127
  251. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/sampled/armature/action_sampled.py +0 -55
  252. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/sampled/armature/channel_target.py +0 -54
  253. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/sampled/armature/channels.py +0 -236
  254. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/sampled/armature/keyframes.py +0 -95
  255. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/sampled/armature/sampler.py +0 -230
  256. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/sampled/data/channel_target.py +0 -48
  257. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/sampled/data/channels.py +0 -118
  258. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/sampled/data/keyframes.py +0 -152
  259. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/sampled/data/sampler.py +0 -135
  260. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/sampled/object/action_sampled.py +0 -58
  261. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/sampled/object/channel_target.py +0 -51
  262. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/sampled/object/channels.py +0 -136
  263. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/sampled/object/keyframes.py +0 -88
  264. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/sampled/object/sampler.py +0 -171
  265. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/sampled/sampling_cache.py +0 -754
  266. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/sampled/shapekeys/action_sampled.py +0 -43
  267. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/sampled/shapekeys/channel_target.py +0 -38
  268. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/sampled/shapekeys/channels.py +0 -79
  269. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/sampled/shapekeys/keyframes.py +0 -145
  270. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/sampled/shapekeys/sampler.py +0 -111
  271. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/scene_animation.py +0 -244
  272. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/tracks.py +0 -846
  273. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/cache.py +0 -182
  274. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/cameras.py +0 -152
  275. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/export.py +0 -412
  276. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/exporter.py +0 -536
  277. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/gather.py +0 -157
  278. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/joints.py +0 -110
  279. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/light_spots.py +0 -47
  280. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/lights.py +0 -212
  281. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/__pycache__/encode_image.cpython-311.pyc +0 -0
  282. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/__pycache__/image.cpython-311.pyc +0 -0
  283. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/__pycache__/search_node_tree.cpython-311.pyc +0 -0
  284. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/__pycache__/texture.cpython-311.pyc +0 -0
  285. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/__pycache__/texture_info.cpython-311.pyc +0 -0
  286. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/__pycache__/unlit.cpython-311.pyc +0 -0
  287. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/encode_image.py +0 -491
  288. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/extensions/anisotropy.py +0 -259
  289. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/extensions/clearcoat.py +0 -156
  290. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/extensions/emission.py +0 -115
  291. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/extensions/ior.py +0 -45
  292. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/extensions/sheen.py +0 -129
  293. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/extensions/specular.py +0 -140
  294. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/extensions/transmission.py +0 -76
  295. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/extensions/variants.py +0 -19
  296. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/extensions/volume.py +0 -118
  297. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/image.py +0 -514
  298. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/material_utils.py +0 -13
  299. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/material_viewport.py +0 -32
  300. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/materials.py +0 -714
  301. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/pbr_metallic_roughness.py +0 -257
  302. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/search_node_tree.py +0 -1120
  303. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/texture.py +0 -248
  304. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/texture_info.py +0 -291
  305. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/unlit.py +0 -191
  306. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/mesh.py +0 -160
  307. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/nodes.py +0 -577
  308. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/primitive_attributes.py +0 -252
  309. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/primitive_extract.py +0 -1662
  310. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/primitives.py +0 -366
  311. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/sampler.py +0 -187
  312. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/skins.py +0 -148
  313. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/tree.py +0 -976
  314. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/KHR_materials_anisotropy.py +0 -116
  315. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/KHR_materials_pbrSpecularGlossiness.py +0 -203
  316. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/KHR_materials_unlit.py +0 -56
  317. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/__pycache__/KHR_materials_anisotropy.cpython-311.pyc +0 -0
  318. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/__pycache__/KHR_materials_pbrSpecularGlossiness.cpython-311.pyc +0 -0
  319. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/__pycache__/KHR_materials_unlit.cpython-311.pyc +0 -0
  320. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/__pycache__/animation.cpython-311.pyc +0 -0
  321. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/__pycache__/animation_node.cpython-311.pyc +0 -0
  322. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/__pycache__/animation_pointer.cpython-311.pyc +0 -0
  323. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/__pycache__/animation_utils.cpython-311.pyc +0 -0
  324. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/__pycache__/animation_weight.cpython-311.pyc +0 -0
  325. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/__pycache__/blender_gltf.cpython-311.pyc +0 -0
  326. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/__pycache__/camera.cpython-311.pyc +0 -0
  327. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/__pycache__/draco_compression_extension.cpython-311.pyc +0 -0
  328. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/__pycache__/image.cpython-311.pyc +0 -0
  329. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/__pycache__/light.cpython-311.pyc +0 -0
  330. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/__pycache__/material.cpython-311.pyc +0 -0
  331. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/__pycache__/material_utils.cpython-311.pyc +0 -0
  332. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/__pycache__/mesh.cpython-311.pyc +0 -0
  333. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/__pycache__/node.cpython-311.pyc +0 -0
  334. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/__pycache__/pbrMetallicRoughness.cpython-311.pyc +0 -0
  335. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/__pycache__/scene.cpython-311.pyc +0 -0
  336. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/__pycache__/texture.cpython-311.pyc +0 -0
  337. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/__pycache__/vnode.cpython-311.pyc +0 -0
  338. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/animation.py +0 -170
  339. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/animation_node.py +0 -170
  340. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/animation_pointer.py +0 -787
  341. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/animation_utils.py +0 -174
  342. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/animation_weight.py +0 -95
  343. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/blender_gltf.py +0 -633
  344. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/camera.py +0 -75
  345. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/draco_compression_extension.py +0 -138
  346. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/image.py +0 -102
  347. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/light.py +0 -143
  348. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/material.py +0 -113
  349. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/material_utils.py +0 -196
  350. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/mesh.py +0 -920
  351. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/node.py +0 -348
  352. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/pbrMetallicRoughness.py +0 -903
  353. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/scene.py +0 -133
  354. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/texture.py +0 -233
  355. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/vnode.py +0 -661
  356. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/extern_draco.dll +0 -0
  357. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/__init__.py +0 -5
  358. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/__pycache__/__init__.cpython-311.pyc +0 -0
  359. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/com/__pycache__/constants.cpython-311.pyc +0 -0
  360. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/com/__pycache__/debug.cpython-311.pyc +0 -0
  361. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/com/__pycache__/draco.cpython-311.pyc +0 -0
  362. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/com/__pycache__/gltf2_io.cpython-311.pyc +0 -0
  363. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/com/__pycache__/gltf2_io_extensions.cpython-311.pyc +0 -0
  364. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/com/__pycache__/path.cpython-311.pyc +0 -0
  365. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/com/constants.py +0 -159
  366. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/com/debug.py +0 -129
  367. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/com/draco.py +0 -46
  368. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/com/gltf2_io.py +0 -1217
  369. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/com/gltf2_io_extensions.py +0 -30
  370. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/com/lights_punctual.py +0 -68
  371. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/com/path.py +0 -19
  372. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/com/variants.py +0 -32
  373. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/exp/__pycache__/binary_data.cpython-311.pyc +0 -0
  374. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/exp/__pycache__/image_data.cpython-311.pyc +0 -0
  375. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/exp/__pycache__/user_extensions.cpython-311.pyc +0 -0
  376. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/exp/binary_data.py +0 -35
  377. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/exp/buffer.py +0 -54
  378. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/exp/draco.py +0 -174
  379. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/exp/export.py +0 -122
  380. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/exp/image_data.py +0 -80
  381. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/exp/user_extensions.py +0 -17
  382. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/imp/__init__.py +0 -5
  383. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/imp/__pycache__/__init__.cpython-311.pyc +0 -0
  384. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/imp/__pycache__/gltf2_io_binary.cpython-311.pyc +0 -0
  385. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/imp/__pycache__/gltf2_io_gltf.cpython-311.pyc +0 -0
  386. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/imp/__pycache__/user_extensions.cpython-311.pyc +0 -0
  387. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/imp/gltf2_io_binary.py +0 -215
  388. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/imp/gltf2_io_gltf.py +0 -198
  389. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/imp/user_extensions.py +0 -13
  390. package/staging_area/Blender/5.0/scripts/addons_core/node_wrangler/README.md +0 -5
  391. package/staging_area/Blender/5.0/scripts/addons_core/node_wrangler/__init__.py +0 -64
  392. package/staging_area/Blender/5.0/scripts/addons_core/node_wrangler/interface.py +0 -526
  393. package/staging_area/Blender/5.0/scripts/addons_core/node_wrangler/operators.py +0 -2421
  394. package/staging_area/Blender/5.0/scripts/addons_core/node_wrangler/preferences.py +0 -398
  395. package/staging_area/Blender/5.0/scripts/addons_core/node_wrangler/utils/constants.py +0 -192
  396. package/staging_area/Blender/5.0/scripts/addons_core/node_wrangler/utils/draw.py +0 -219
  397. package/staging_area/Blender/5.0/scripts/addons_core/node_wrangler/utils/nodes.py +0 -299
  398. package/staging_area/Blender/5.0/scripts/addons_core/node_wrangler/utils/paths.py +0 -169
  399. package/staging_area/Blender/5.0/scripts/addons_core/node_wrangler/utils/paths_test.py +0 -290
  400. package/staging_area/Blender/5.0/scripts/addons_core/pose_library/__init__.py +0 -56
  401. package/staging_area/Blender/5.0/scripts/addons_core/pose_library/__pycache__/__init__.cpython-311.pyc +0 -0
  402. package/staging_area/Blender/5.0/scripts/addons_core/pose_library/__pycache__/asset_browser.cpython-311.pyc +0 -0
  403. package/staging_area/Blender/5.0/scripts/addons_core/pose_library/__pycache__/functions.cpython-311.pyc +0 -0
  404. package/staging_area/Blender/5.0/scripts/addons_core/pose_library/__pycache__/gui.cpython-311.pyc +0 -0
  405. package/staging_area/Blender/5.0/scripts/addons_core/pose_library/__pycache__/keymaps.cpython-311.pyc +0 -0
  406. package/staging_area/Blender/5.0/scripts/addons_core/pose_library/__pycache__/operators.cpython-311.pyc +0 -0
  407. package/staging_area/Blender/5.0/scripts/addons_core/pose_library/__pycache__/pose_creation.cpython-311.pyc +0 -0
  408. package/staging_area/Blender/5.0/scripts/addons_core/pose_library/__pycache__/pose_usage.cpython-311.pyc +0 -0
  409. package/staging_area/Blender/5.0/scripts/addons_core/pose_library/asset_browser.py +0 -99
  410. package/staging_area/Blender/5.0/scripts/addons_core/pose_library/functions.py +0 -57
  411. package/staging_area/Blender/5.0/scripts/addons_core/pose_library/gui.py +0 -229
  412. package/staging_area/Blender/5.0/scripts/addons_core/pose_library/keymaps.py +0 -29
  413. package/staging_area/Blender/5.0/scripts/addons_core/pose_library/operators.py +0 -299
  414. package/staging_area/Blender/5.0/scripts/addons_core/pose_library/pose_creation.py +0 -413
  415. package/staging_area/Blender/5.0/scripts/addons_core/pose_library/pose_usage.py +0 -85
  416. package/staging_area/Blender/5.0/scripts/addons_core/rigify/__init__.py +0 -907
  417. package/staging_area/Blender/5.0/scripts/addons_core/rigify/base_generate.py +0 -536
  418. package/staging_area/Blender/5.0/scripts/addons_core/rigify/base_rig.py +0 -351
  419. package/staging_area/Blender/5.0/scripts/addons_core/rigify/feature_set_list.py +0 -357
  420. package/staging_area/Blender/5.0/scripts/addons_core/rigify/feature_sets/__init__.py +0 -16
  421. package/staging_area/Blender/5.0/scripts/addons_core/rigify/generate.py +0 -762
  422. package/staging_area/Blender/5.0/scripts/addons_core/rigify/metarig_menu.py +0 -271
  423. package/staging_area/Blender/5.0/scripts/addons_core/rigify/metarigs/Animals/__init__.py +0 -0
  424. package/staging_area/Blender/5.0/scripts/addons_core/rigify/metarigs/Animals/bird.py +0 -1397
  425. package/staging_area/Blender/5.0/scripts/addons_core/rigify/metarigs/Animals/cat.py +0 -2854
  426. package/staging_area/Blender/5.0/scripts/addons_core/rigify/metarigs/Animals/horse.py +0 -1401
  427. package/staging_area/Blender/5.0/scripts/addons_core/rigify/metarigs/Animals/shark.py +0 -692
  428. package/staging_area/Blender/5.0/scripts/addons_core/rigify/metarigs/Animals/wolf.py +0 -3088
  429. package/staging_area/Blender/5.0/scripts/addons_core/rigify/metarigs/Basic/basic_human.py +0 -618
  430. package/staging_area/Blender/5.0/scripts/addons_core/rigify/metarigs/Basic/basic_quadruped.py +0 -715
  431. package/staging_area/Blender/5.0/scripts/addons_core/rigify/metarigs/__init__.py +0 -0
  432. package/staging_area/Blender/5.0/scripts/addons_core/rigify/metarigs/human.py +0 -2625
  433. package/staging_area/Blender/5.0/scripts/addons_core/rigify/operators/__init__.py +0 -34
  434. package/staging_area/Blender/5.0/scripts/addons_core/rigify/operators/action_layers.py +0 -658
  435. package/staging_area/Blender/5.0/scripts/addons_core/rigify/operators/copy_mirror_parameters.py +0 -316
  436. package/staging_area/Blender/5.0/scripts/addons_core/rigify/operators/generic_ui_list.py +0 -191
  437. package/staging_area/Blender/5.0/scripts/addons_core/rigify/operators/upgrade_face.py +0 -457
  438. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rig_lists.py +0 -116
  439. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rig_ui_template.py +0 -1445
  440. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/__init__.py +0 -0
  441. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/basic/__init__.py +0 -0
  442. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/basic/copy_chain.py +0 -167
  443. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/basic/pivot.py +0 -242
  444. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/basic/raw_copy.py +0 -228
  445. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/basic/super_copy.py +0 -191
  446. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/chain_rigs.py +0 -388
  447. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/experimental/__init__.py +0 -0
  448. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/experimental/super_chain.py +0 -853
  449. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/face/basic_tongue.py +0 -195
  450. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/face/skin_eye.py +0 -843
  451. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/face/skin_jaw.py +0 -880
  452. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/faces/__init__.py +0 -0
  453. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/faces/super_face.py +0 -2378
  454. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/limbs/__init__.py +0 -0
  455. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/limbs/arm.py +0 -209
  456. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/limbs/front_paw.py +0 -270
  457. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/limbs/leg.py +0 -746
  458. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/limbs/limb_rigs.py +0 -1287
  459. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/limbs/limb_utils.py +0 -78
  460. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/limbs/paw.py +0 -360
  461. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/limbs/rear_paw.py +0 -172
  462. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/limbs/simple_tentacle.py +0 -169
  463. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/limbs/spline_tentacle.py +0 -1486
  464. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/limbs/super_finger.py +0 -699
  465. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/limbs/super_limb.py +0 -46
  466. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/limbs/super_palm.py +0 -426
  467. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/skin/anchor.py +0 -142
  468. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/skin/basic_chain.py +0 -565
  469. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/skin/glue.py +0 -325
  470. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/skin/skin_nodes.py +0 -604
  471. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/skin/skin_parents.py +0 -505
  472. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/skin/skin_rigs.py +0 -250
  473. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/skin/stretchy_chain.py +0 -422
  474. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/skin/transform/basic.py +0 -141
  475. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/spines/__init__.py +0 -0
  476. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/spines/basic_spine.py +0 -387
  477. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/spines/basic_tail.py +0 -242
  478. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/spines/spine_rigs.py +0 -295
  479. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/spines/super_head.py +0 -424
  480. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/spines/super_spine.py +0 -150
  481. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/utils.py +0 -175
  482. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/widgets.py +0 -483
  483. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rot_mode.py +0 -311
  484. package/staging_area/Blender/5.0/scripts/addons_core/rigify/ui.py +0 -1834
  485. package/staging_area/Blender/5.0/scripts/addons_core/rigify/utils/__init__.py +0 -40
  486. package/staging_area/Blender/5.0/scripts/addons_core/rigify/utils/action_layers.py +0 -454
  487. package/staging_area/Blender/5.0/scripts/addons_core/rigify/utils/animation.py +0 -1024
  488. package/staging_area/Blender/5.0/scripts/addons_core/rigify/utils/bones.py +0 -742
  489. package/staging_area/Blender/5.0/scripts/addons_core/rigify/utils/collections.py +0 -83
  490. package/staging_area/Blender/5.0/scripts/addons_core/rigify/utils/components.py +0 -102
  491. package/staging_area/Blender/5.0/scripts/addons_core/rigify/utils/errors.py +0 -28
  492. package/staging_area/Blender/5.0/scripts/addons_core/rigify/utils/layers.py +0 -396
  493. package/staging_area/Blender/5.0/scripts/addons_core/rigify/utils/mechanism.py +0 -669
  494. package/staging_area/Blender/5.0/scripts/addons_core/rigify/utils/metaclass.py +0 -170
  495. package/staging_area/Blender/5.0/scripts/addons_core/rigify/utils/misc.py +0 -533
  496. package/staging_area/Blender/5.0/scripts/addons_core/rigify/utils/naming.py +0 -366
  497. package/staging_area/Blender/5.0/scripts/addons_core/rigify/utils/node_merger.py +0 -345
  498. package/staging_area/Blender/5.0/scripts/addons_core/rigify/utils/objects.py +0 -206
  499. package/staging_area/Blender/5.0/scripts/addons_core/rigify/utils/rig.py +0 -747
  500. package/staging_area/Blender/5.0/scripts/addons_core/rigify/utils/switch_parent.py +0 -533
  501. package/staging_area/Blender/5.0/scripts/addons_core/rigify/utils/widgets.py +0 -531
  502. package/staging_area/Blender/5.0/scripts/addons_core/rigify/utils/widgets_basic.py +0 -305
  503. package/staging_area/Blender/5.0/scripts/addons_core/rigify/utils/widgets_special.py +0 -226
  504. package/staging_area/Blender/5.0/scripts/addons_core/ui_translate/__init__.py +0 -60
  505. package/staging_area/Blender/5.0/scripts/addons_core/ui_translate/settings.py +0 -194
  506. package/staging_area/Blender/5.0/scripts/addons_core/ui_translate/update_addon.py +0 -378
  507. package/staging_area/Blender/5.0/scripts/addons_core/ui_translate/update_repo.py +0 -248
  508. package/staging_area/Blender/5.0/scripts/addons_core/ui_translate/update_ui.py +0 -267
  509. package/staging_area/Blender/5.0/scripts/addons_core/viewport_vr_preview/__init__.py +0 -55
  510. package/staging_area/Blender/5.0/scripts/addons_core/viewport_vr_preview/action_map.py +0 -177
  511. package/staging_area/Blender/5.0/scripts/addons_core/viewport_vr_preview/action_map_io.py +0 -346
  512. package/staging_area/Blender/5.0/scripts/addons_core/viewport_vr_preview/configs/default.py +0 -434
  513. package/staging_area/Blender/5.0/scripts/addons_core/viewport_vr_preview/defaults.py +0 -1587
  514. package/staging_area/Blender/5.0/scripts/addons_core/viewport_vr_preview/gui.py +0 -295
  515. package/staging_area/Blender/5.0/scripts/addons_core/viewport_vr_preview/operators.py +0 -540
  516. package/staging_area/Blender/5.0/scripts/addons_core/viewport_vr_preview/preferences.py +0 -67
  517. package/staging_area/Blender/5.0/scripts/addons_core/viewport_vr_preview/properties.py +0 -228
  518. package/staging_area/Blender/5.0/scripts/addons_core/viewport_vr_preview/versioning.py +0 -38
  519. package/staging_area/Blender/5.0/scripts/freestyle/modules/freestyle/__init__.py +0 -14
  520. package/staging_area/Blender/5.0/scripts/freestyle/modules/freestyle/chainingiterators.py +0 -644
  521. package/staging_area/Blender/5.0/scripts/freestyle/modules/freestyle/functions.py +0 -313
  522. package/staging_area/Blender/5.0/scripts/freestyle/modules/freestyle/predicates.py +0 -670
  523. package/staging_area/Blender/5.0/scripts/freestyle/modules/freestyle/shaders.py +0 -1248
  524. package/staging_area/Blender/5.0/scripts/freestyle/modules/freestyle/types.py +0 -159
  525. package/staging_area/Blender/5.0/scripts/freestyle/modules/freestyle/utils.py +0 -541
  526. package/staging_area/Blender/5.0/scripts/freestyle/modules/parameter_editor.py +0 -1589
  527. package/staging_area/Blender/5.0/scripts/freestyle/styles/anisotropic_diffusion.py +0 -41
  528. package/staging_area/Blender/5.0/scripts/freestyle/styles/apriori_and_causal_density.py +0 -34
  529. package/staging_area/Blender/5.0/scripts/freestyle/styles/apriori_density.py +0 -33
  530. package/staging_area/Blender/5.0/scripts/freestyle/styles/backbone_stretcher.py +0 -28
  531. package/staging_area/Blender/5.0/scripts/freestyle/styles/blueprint_circles.py +0 -39
  532. package/staging_area/Blender/5.0/scripts/freestyle/styles/blueprint_ellipses.py +0 -39
  533. package/staging_area/Blender/5.0/scripts/freestyle/styles/blueprint_squares.py +0 -40
  534. package/staging_area/Blender/5.0/scripts/freestyle/styles/cartoon.py +0 -32
  535. package/staging_area/Blender/5.0/scripts/freestyle/styles/contour.py +0 -33
  536. package/staging_area/Blender/5.0/scripts/freestyle/styles/curvature2d.py +0 -29
  537. package/staging_area/Blender/5.0/scripts/freestyle/styles/external_contour.py +0 -33
  538. package/staging_area/Blender/5.0/scripts/freestyle/styles/external_contour_sketchy.py +0 -39
  539. package/staging_area/Blender/5.0/scripts/freestyle/styles/external_contour_smooth.py +0 -37
  540. package/staging_area/Blender/5.0/scripts/freestyle/styles/haloing.py +0 -43
  541. package/staging_area/Blender/5.0/scripts/freestyle/styles/ignore_small_occlusions.py +0 -30
  542. package/staging_area/Blender/5.0/scripts/freestyle/styles/invisible_lines.py +0 -32
  543. package/staging_area/Blender/5.0/scripts/freestyle/styles/japanese_bigbrush.py +0 -53
  544. package/staging_area/Blender/5.0/scripts/freestyle/styles/long_anisotropically_dense.py +0 -67
  545. package/staging_area/Blender/5.0/scripts/freestyle/styles/multiple_parameterization.py +0 -41
  546. package/staging_area/Blender/5.0/scripts/freestyle/styles/nature.py +0 -32
  547. package/staging_area/Blender/5.0/scripts/freestyle/styles/near_lines.py +0 -32
  548. package/staging_area/Blender/5.0/scripts/freestyle/styles/occluded_by_specific_object.py +0 -36
  549. package/staging_area/Blender/5.0/scripts/freestyle/styles/polygonalize.py +0 -32
  550. package/staging_area/Blender/5.0/scripts/freestyle/styles/qi0.py +0 -31
  551. package/staging_area/Blender/5.0/scripts/freestyle/styles/qi0_not_external_contour.py +0 -38
  552. package/staging_area/Blender/5.0/scripts/freestyle/styles/qi1.py +0 -32
  553. package/staging_area/Blender/5.0/scripts/freestyle/styles/qi2.py +0 -32
  554. package/staging_area/Blender/5.0/scripts/freestyle/styles/sequentialsplit_sketchy.py +0 -39
  555. package/staging_area/Blender/5.0/scripts/freestyle/styles/sketchy_multiple_parameterization.py +0 -37
  556. package/staging_area/Blender/5.0/scripts/freestyle/styles/sketchy_topology_broken.py +0 -39
  557. package/staging_area/Blender/5.0/scripts/freestyle/styles/sketchy_topology_preserved.py +0 -36
  558. package/staging_area/Blender/5.0/scripts/freestyle/styles/split_at_highest_2d_curvatures.py +0 -34
  559. package/staging_area/Blender/5.0/scripts/freestyle/styles/split_at_tvertices.py +0 -33
  560. package/staging_area/Blender/5.0/scripts/freestyle/styles/suggestive.py +0 -33
  561. package/staging_area/Blender/5.0/scripts/freestyle/styles/thickness_fof_depth_discontinuity.py +0 -32
  562. package/staging_area/Blender/5.0/scripts/freestyle/styles/tipremover.py +0 -32
  563. package/staging_area/Blender/5.0/scripts/freestyle/styles/tvertex_remover.py +0 -32
  564. package/staging_area/Blender/5.0/scripts/freestyle/styles/uniformpruning_zsort.py +0 -31
  565. package/staging_area/Blender/5.0/scripts/modules/__pycache__/_bpy_restrict_state.cpython-311.pyc +0 -0
  566. package/staging_area/Blender/5.0/scripts/modules/__pycache__/_bpy_types.cpython-311.pyc +0 -0
  567. package/staging_area/Blender/5.0/scripts/modules/__pycache__/_console_python.cpython-311.pyc +0 -0
  568. package/staging_area/Blender/5.0/scripts/modules/__pycache__/_keyingsets_utils.cpython-311.pyc +0 -0
  569. package/staging_area/Blender/5.0/scripts/modules/__pycache__/_rna_xml.cpython-311.pyc +0 -0
  570. package/staging_area/Blender/5.0/scripts/modules/__pycache__/addon_utils.cpython-311.pyc +0 -0
  571. package/staging_area/Blender/5.0/scripts/modules/__pycache__/bl_app_template_utils.cpython-311.pyc +0 -0
  572. package/staging_area/Blender/5.0/scripts/modules/__pycache__/nodeitems_utils.cpython-311.pyc +0 -0
  573. package/staging_area/Blender/5.0/scripts/modules/__pycache__/rna_keymap_ui.cpython-311.pyc +0 -0
  574. package/staging_area/Blender/5.0/scripts/modules/__pycache__/rna_prop_ui.cpython-311.pyc +0 -0
  575. package/staging_area/Blender/5.0/scripts/modules/_animsys_refactor.py +0 -230
  576. package/staging_area/Blender/5.0/scripts/modules/_bl_console_utils/__init__.py +0 -7
  577. package/staging_area/Blender/5.0/scripts/modules/_bl_console_utils/autocomplete/__init__.py +0 -7
  578. package/staging_area/Blender/5.0/scripts/modules/_bl_console_utils/autocomplete/complete_calltip.py +0 -174
  579. package/staging_area/Blender/5.0/scripts/modules/_bl_console_utils/autocomplete/complete_import.py +0 -180
  580. package/staging_area/Blender/5.0/scripts/modules/_bl_console_utils/autocomplete/complete_namespace.py +0 -192
  581. package/staging_area/Blender/5.0/scripts/modules/_bl_console_utils/autocomplete/intellisense.py +0 -138
  582. package/staging_area/Blender/5.0/scripts/modules/_bl_i18n_utils/__init__.py +0 -5
  583. package/staging_area/Blender/5.0/scripts/modules/_bl_i18n_utils/bl_extract_messages.py +0 -1363
  584. package/staging_area/Blender/5.0/scripts/modules/_bl_i18n_utils/merge_po.py +0 -132
  585. package/staging_area/Blender/5.0/scripts/modules/_bl_i18n_utils/settings.py +0 -824
  586. package/staging_area/Blender/5.0/scripts/modules/_bl_i18n_utils/settings_user.py +0 -7
  587. package/staging_area/Blender/5.0/scripts/modules/_bl_i18n_utils/utils.py +0 -1709
  588. package/staging_area/Blender/5.0/scripts/modules/_bl_i18n_utils/utils_cli.py +0 -144
  589. package/staging_area/Blender/5.0/scripts/modules/_bl_i18n_utils/utils_languages_menu.py +0 -68
  590. package/staging_area/Blender/5.0/scripts/modules/_bl_i18n_utils/utils_rtl.py +0 -179
  591. package/staging_area/Blender/5.0/scripts/modules/_bl_i18n_utils/utils_spell_check.py +0 -955
  592. package/staging_area/Blender/5.0/scripts/modules/_bl_previews_utils/bl_previews_render.py +0 -537
  593. package/staging_area/Blender/5.0/scripts/modules/_bl_rna_utils/__init__.py +0 -0
  594. package/staging_area/Blender/5.0/scripts/modules/_bl_rna_utils/__pycache__/__init__.cpython-311.pyc +0 -0
  595. package/staging_area/Blender/5.0/scripts/modules/_bl_rna_utils/__pycache__/data_path.cpython-311.pyc +0 -0
  596. package/staging_area/Blender/5.0/scripts/modules/_bl_rna_utils/data_path.py +0 -76
  597. package/staging_area/Blender/5.0/scripts/modules/_bl_text_utils/__init__.py +0 -0
  598. package/staging_area/Blender/5.0/scripts/modules/_bl_text_utils/external_editor.py +0 -54
  599. package/staging_area/Blender/5.0/scripts/modules/_bl_ui_utils/__init__.py +0 -0
  600. package/staging_area/Blender/5.0/scripts/modules/_bl_ui_utils/__pycache__/__init__.cpython-311.pyc +0 -0
  601. package/staging_area/Blender/5.0/scripts/modules/_bl_ui_utils/__pycache__/layout.cpython-311.pyc +0 -0
  602. package/staging_area/Blender/5.0/scripts/modules/_bl_ui_utils/layout.py +0 -21
  603. package/staging_area/Blender/5.0/scripts/modules/_blendfile_header.py +0 -234
  604. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/__init__.py +0 -3
  605. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/__pycache__/__init__.cpython-311.pyc +0 -0
  606. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/addons/__init__.py +0 -3
  607. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/addons/cli.py +0 -42
  608. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/assets/__init__.py +0 -3
  609. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/assets/remote_library_listing/__init__.py +0 -3
  610. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/assets/remote_library_listing/blender_asset_library_openapi.py +0 -98
  611. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/assets/remote_library_listing/blender_asset_library_openapi.yaml +0 -83
  612. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/extensions/__init__.py +0 -3
  613. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/extensions/__pycache__/__init__.cpython-311.pyc +0 -0
  614. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/extensions/__pycache__/junction_module.cpython-311.pyc +0 -0
  615. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/extensions/__pycache__/wheel_manager.cpython-311.pyc +0 -0
  616. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/extensions/junction_module.py +0 -165
  617. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/extensions/permissions.py +0 -16
  618. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/extensions/stale_file_manager.py +0 -417
  619. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/extensions/tags.py +0 -54
  620. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/extensions/wheel_manager.py +0 -686
  621. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/freedesktop.py +0 -598
  622. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/grease_pencil/__init__.py +0 -3
  623. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/grease_pencil/stroke.py +0 -402
  624. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/http/__init__.py +0 -3
  625. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/http/downloader.py +0 -1348
  626. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/system_info/text_generate_runtime.py +0 -256
  627. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/system_info/url_prefill_runtime.py +0 -60
  628. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/system_info/url_prefill_startup.py +0 -107
  629. package/staging_area/Blender/5.0/scripts/modules/_bpy_restrict_state.py +0 -50
  630. package/staging_area/Blender/5.0/scripts/modules/_bpy_types.py +0 -1563
  631. package/staging_area/Blender/5.0/scripts/modules/_console_python.py +0 -368
  632. package/staging_area/Blender/5.0/scripts/modules/_console_shell.py +0 -73
  633. package/staging_area/Blender/5.0/scripts/modules/_graphviz_export.py +0 -194
  634. package/staging_area/Blender/5.0/scripts/modules/_keyingsets_utils.py +0 -355
  635. package/staging_area/Blender/5.0/scripts/modules/_rna_info.py +0 -984
  636. package/staging_area/Blender/5.0/scripts/modules/_rna_manual_reference.py +0 -4446
  637. package/staging_area/Blender/5.0/scripts/modules/_rna_xml.py +0 -422
  638. package/staging_area/Blender/5.0/scripts/modules/addon_utils.py +0 -1992
  639. package/staging_area/Blender/5.0/scripts/modules/bl_app_override/__init__.py +0 -211
  640. package/staging_area/Blender/5.0/scripts/modules/bl_app_override/helpers.py +0 -153
  641. package/staging_area/Blender/5.0/scripts/modules/bl_app_template_utils.py +0 -177
  642. package/staging_area/Blender/5.0/scripts/modules/bl_keymap_utils/__init__.py +0 -9
  643. package/staging_area/Blender/5.0/scripts/modules/bl_keymap_utils/__pycache__/__init__.cpython-311.pyc +0 -0
  644. package/staging_area/Blender/5.0/scripts/modules/bl_keymap_utils/__pycache__/io.cpython-311.pyc +0 -0
  645. package/staging_area/Blender/5.0/scripts/modules/bl_keymap_utils/__pycache__/keymap_from_toolbar.cpython-311.pyc +0 -0
  646. package/staging_area/Blender/5.0/scripts/modules/bl_keymap_utils/__pycache__/keymap_hierarchy.cpython-311.pyc +0 -0
  647. package/staging_area/Blender/5.0/scripts/modules/bl_keymap_utils/io.py +0 -308
  648. package/staging_area/Blender/5.0/scripts/modules/bl_keymap_utils/keymap_from_toolbar.py +0 -394
  649. package/staging_area/Blender/5.0/scripts/modules/bl_keymap_utils/keymap_hierarchy.py +0 -247
  650. package/staging_area/Blender/5.0/scripts/modules/bl_keymap_utils/platform_helpers.py +0 -55
  651. package/staging_area/Blender/5.0/scripts/modules/bl_keymap_utils/versioning.py +0 -328
  652. package/staging_area/Blender/5.0/scripts/modules/blend_render_info.py +0 -123
  653. package/staging_area/Blender/5.0/scripts/modules/bpy/__init__.py +0 -75
  654. package/staging_area/Blender/5.0/scripts/modules/bpy/__pycache__/__init__.cpython-311.pyc +0 -0
  655. package/staging_area/Blender/5.0/scripts/modules/bpy/__pycache__/ops.cpython-311.pyc +0 -0
  656. package/staging_area/Blender/5.0/scripts/modules/bpy/__pycache__/path.cpython-311.pyc +0 -0
  657. package/staging_area/Blender/5.0/scripts/modules/bpy/ops.py +0 -184
  658. package/staging_area/Blender/5.0/scripts/modules/bpy/path.py +0 -459
  659. package/staging_area/Blender/5.0/scripts/modules/bpy/utils/__init__.py +0 -1382
  660. package/staging_area/Blender/5.0/scripts/modules/bpy/utils/__pycache__/__init__.cpython-311.pyc +0 -0
  661. package/staging_area/Blender/5.0/scripts/modules/bpy/utils/__pycache__/previews.cpython-311.pyc +0 -0
  662. package/staging_area/Blender/5.0/scripts/modules/bpy/utils/previews.py +0 -136
  663. package/staging_area/Blender/5.0/scripts/modules/bpy/utils/toolsystem.py +0 -11
  664. package/staging_area/Blender/5.0/scripts/modules/bpy_extras/__init__.py +0 -20
  665. package/staging_area/Blender/5.0/scripts/modules/bpy_extras/__pycache__/__init__.cpython-311.pyc +0 -0
  666. package/staging_area/Blender/5.0/scripts/modules/bpy_extras/__pycache__/asset_utils.cpython-311.pyc +0 -0
  667. package/staging_area/Blender/5.0/scripts/modules/bpy_extras/__pycache__/io_utils.cpython-311.pyc +0 -0
  668. package/staging_area/Blender/5.0/scripts/modules/bpy_extras/__pycache__/node_utils.cpython-311.pyc +0 -0
  669. package/staging_area/Blender/5.0/scripts/modules/bpy_extras/__pycache__/object_utils.cpython-311.pyc +0 -0
  670. package/staging_area/Blender/5.0/scripts/modules/bpy_extras/anim_utils.py +0 -1038
  671. package/staging_area/Blender/5.0/scripts/modules/bpy_extras/asset_utils.py +0 -50
  672. package/staging_area/Blender/5.0/scripts/modules/bpy_extras/bmesh_utils.py +0 -56
  673. package/staging_area/Blender/5.0/scripts/modules/bpy_extras/id_map_utils.py +0 -53
  674. package/staging_area/Blender/5.0/scripts/modules/bpy_extras/image_utils.py +0 -194
  675. package/staging_area/Blender/5.0/scripts/modules/bpy_extras/io_utils.py +0 -620
  676. package/staging_area/Blender/5.0/scripts/modules/bpy_extras/keyconfig_utils.py +0 -141
  677. package/staging_area/Blender/5.0/scripts/modules/bpy_extras/mesh_utils.py +0 -464
  678. package/staging_area/Blender/5.0/scripts/modules/bpy_extras/node_shader_utils.py +0 -829
  679. package/staging_area/Blender/5.0/scripts/modules/bpy_extras/node_utils.py +0 -88
  680. package/staging_area/Blender/5.0/scripts/modules/bpy_extras/object_utils.py +0 -289
  681. package/staging_area/Blender/5.0/scripts/modules/bpy_extras/view3d_utils.py +0 -181
  682. package/staging_area/Blender/5.0/scripts/modules/bpy_extras/wm_utils/progress_report.py +0 -160
  683. package/staging_area/Blender/5.0/scripts/modules/gpu_extras/__init__.py +0 -8
  684. package/staging_area/Blender/5.0/scripts/modules/gpu_extras/__pycache__/__init__.cpython-311.pyc +0 -0
  685. package/staging_area/Blender/5.0/scripts/modules/gpu_extras/__pycache__/presets.cpython-311.pyc +0 -0
  686. package/staging_area/Blender/5.0/scripts/modules/gpu_extras/batch.py +0 -80
  687. package/staging_area/Blender/5.0/scripts/modules/gpu_extras/presets.py +0 -102
  688. package/staging_area/Blender/5.0/scripts/modules/nodeitems_utils.py +0 -178
  689. package/staging_area/Blender/5.0/scripts/modules/rna_keymap_ui.py +0 -505
  690. package/staging_area/Blender/5.0/scripts/modules/rna_prop_ui.py +0 -269
  691. package/staging_area/Blender/5.0/scripts/presets/camera/1_inch.py +0 -4
  692. package/staging_area/Blender/5.0/scripts/presets/camera/1_slash_1.8_inch.py +0 -4
  693. package/staging_area/Blender/5.0/scripts/presets/camera/1_slash_2.3_inch.py +0 -4
  694. package/staging_area/Blender/5.0/scripts/presets/camera/1_slash_2.5_inch.py +0 -4
  695. package/staging_area/Blender/5.0/scripts/presets/camera/1_slash_2.7_inch.py +0 -4
  696. package/staging_area/Blender/5.0/scripts/presets/camera/1_slash_3.2_inch.py +0 -4
  697. package/staging_area/Blender/5.0/scripts/presets/camera/2_slash_3_inch.py +0 -4
  698. package/staging_area/Blender/5.0/scripts/presets/camera/APS-C.py +0 -4
  699. package/staging_area/Blender/5.0/scripts/presets/camera/APS-C_(Canon).py +0 -4
  700. package/staging_area/Blender/5.0/scripts/presets/camera/APS-H_(Canon).py +0 -4
  701. package/staging_area/Blender/5.0/scripts/presets/camera/Analog_16mm.py +0 -4
  702. package/staging_area/Blender/5.0/scripts/presets/camera/Analog_35mm.py +0 -4
  703. package/staging_area/Blender/5.0/scripts/presets/camera/Analog_65mm.py +0 -4
  704. package/staging_area/Blender/5.0/scripts/presets/camera/Analog_IMAX.py +0 -4
  705. package/staging_area/Blender/5.0/scripts/presets/camera/Analog_Super_16.py +0 -4
  706. package/staging_area/Blender/5.0/scripts/presets/camera/Analog_Super_35.py +0 -4
  707. package/staging_area/Blender/5.0/scripts/presets/camera/Arri_Alexa_65.py +0 -4
  708. package/staging_area/Blender/5.0/scripts/presets/camera/Arri_Alexa_LF.py +0 -4
  709. package/staging_area/Blender/5.0/scripts/presets/camera/Arri_Alexa_Mini_&_SXT.py +0 -4
  710. package/staging_area/Blender/5.0/scripts/presets/camera/Blackmagic_Pocket_&_Studio.py +0 -4
  711. package/staging_area/Blender/5.0/scripts/presets/camera/Blackmagic_Pocket_4K.py +0 -4
  712. package/staging_area/Blender/5.0/scripts/presets/camera/Blackmagic_Pocket_6k.py +0 -4
  713. package/staging_area/Blender/5.0/scripts/presets/camera/Blackmagic_URSA_4.6K.py +0 -4
  714. package/staging_area/Blender/5.0/scripts/presets/camera/Foveon_(Sigma).py +0 -4
  715. package/staging_area/Blender/5.0/scripts/presets/camera/Fullframe.py +0 -4
  716. package/staging_area/Blender/5.0/scripts/presets/camera/MFT.py +0 -4
  717. package/staging_area/Blender/5.0/scripts/presets/camera/Medium-format_(Hasselblad).py +0 -4
  718. package/staging_area/Blender/5.0/scripts/presets/camera/RED_Dragon_5K.py +0 -4
  719. package/staging_area/Blender/5.0/scripts/presets/camera/RED_Dragon_6K.py +0 -4
  720. package/staging_area/Blender/5.0/scripts/presets/camera/RED_Helium_8K.py +0 -4
  721. package/staging_area/Blender/5.0/scripts/presets/camera/RED_Monstro_8K.py +0 -4
  722. package/staging_area/Blender/5.0/scripts/presets/cloth/Cotton.py +0 -25
  723. package/staging_area/Blender/5.0/scripts/presets/cloth/Denim.py +0 -25
  724. package/staging_area/Blender/5.0/scripts/presets/cloth/Leather.py +0 -25
  725. package/staging_area/Blender/5.0/scripts/presets/cloth/Rubber.py +0 -25
  726. package/staging_area/Blender/5.0/scripts/presets/cloth/Silk.py +0 -25
  727. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_A.py +0 -5
  728. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_B.py +0 -5
  729. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_C.py +0 -5
  730. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_D50.py +0 -5
  731. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_D55.py +0 -5
  732. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_D65.py +0 -5
  733. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_D75.py +0 -5
  734. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_D93.py +0 -5
  735. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_E.py +0 -5
  736. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_F1.py +0 -5
  737. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_F10.py +0 -5
  738. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_F11.py +0 -5
  739. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_F12.py +0 -5
  740. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_F2.py +0 -5
  741. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_F3.py +0 -5
  742. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_F4.py +0 -5
  743. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_F5.py +0 -5
  744. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_F6.py +0 -5
  745. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_F7.py +0 -5
  746. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_F8.py +0 -5
  747. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_F9.py +0 -5
  748. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_LED-B1.py +0 -5
  749. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_LED-B2.py +0 -5
  750. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_LED-B3.py +0 -5
  751. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_LED-B4.py +0 -5
  752. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_LED-B5.py +0 -5
  753. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_LED-BH1.py +0 -5
  754. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_LED-RGB1.py +0 -5
  755. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_LED-V1.py +0 -5
  756. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_LED-V2.py +0 -5
  757. package/staging_area/Blender/5.0/scripts/presets/cycles/integrator/Default.py +0 -14
  758. package/staging_area/Blender/5.0/scripts/presets/cycles/integrator/Direct_Light.py +0 -14
  759. package/staging_area/Blender/5.0/scripts/presets/cycles/integrator/Fast_Global_Illumination.py +0 -14
  760. package/staging_area/Blender/5.0/scripts/presets/cycles/integrator/Full_Global_Illumination.py +0 -14
  761. package/staging_area/Blender/5.0/scripts/presets/cycles/integrator/Limited_Global_Illumination.py +0 -14
  762. package/staging_area/Blender/5.0/scripts/presets/cycles/performance/Default.py +0 -11
  763. package/staging_area/Blender/5.0/scripts/presets/cycles/performance/Faster_Render.py +0 -11
  764. package/staging_area/Blender/5.0/scripts/presets/cycles/performance/Lower_Memory.py +0 -11
  765. package/staging_area/Blender/5.0/scripts/presets/cycles/sampling/Final.py +0 -12
  766. package/staging_area/Blender/5.0/scripts/presets/cycles/sampling/Preview.py +0 -12
  767. package/staging_area/Blender/5.0/scripts/presets/cycles/viewport_sampling/Final.py +0 -11
  768. package/staging_area/Blender/5.0/scripts/presets/cycles/viewport_sampling/Preview.py +0 -11
  769. package/staging_area/Blender/5.0/scripts/presets/eevee/raytracing/Default.py +0 -22
  770. package/staging_area/Blender/5.0/scripts/presets/ffmpeg/DVD_(note_colon__this_changes_render_resolution).py +0 -24
  771. package/staging_area/Blender/5.0/scripts/presets/ffmpeg/H264_in_MP4.py +0 -18
  772. package/staging_area/Blender/5.0/scripts/presets/ffmpeg/H264_in_Matroska.py +0 -17
  773. package/staging_area/Blender/5.0/scripts/presets/ffmpeg/H264_in_Matroska_for_scrubbing.py +0 -14
  774. package/staging_area/Blender/5.0/scripts/presets/ffmpeg/Ogg_Theora.py +0 -18
  775. package/staging_area/Blender/5.0/scripts/presets/ffmpeg/WebM_(VP9+Opus).py +0 -9
  776. package/staging_area/Blender/5.0/scripts/presets/ffmpeg/Xvid.py +0 -18
  777. package/staging_area/Blender/5.0/scripts/presets/fluid/Honey.py +0 -3
  778. package/staging_area/Blender/5.0/scripts/presets/fluid/Oil.py +0 -3
  779. package/staging_area/Blender/5.0/scripts/presets/fluid/Water.py +0 -3
  780. package/staging_area/Blender/5.0/scripts/presets/framerate/12.py +0 -3
  781. package/staging_area/Blender/5.0/scripts/presets/framerate/120.py +0 -3
  782. package/staging_area/Blender/5.0/scripts/presets/framerate/23.98.py +0 -3
  783. package/staging_area/Blender/5.0/scripts/presets/framerate/24.py +0 -3
  784. package/staging_area/Blender/5.0/scripts/presets/framerate/240.py +0 -3
  785. package/staging_area/Blender/5.0/scripts/presets/framerate/25.py +0 -3
  786. package/staging_area/Blender/5.0/scripts/presets/framerate/29.97.py +0 -3
  787. package/staging_area/Blender/5.0/scripts/presets/framerate/30.py +0 -3
  788. package/staging_area/Blender/5.0/scripts/presets/framerate/50.py +0 -3
  789. package/staging_area/Blender/5.0/scripts/presets/framerate/59.94.py +0 -3
  790. package/staging_area/Blender/5.0/scripts/presets/framerate/6.py +0 -3
  791. package/staging_area/Blender/5.0/scripts/presets/framerate/60.py +0 -3
  792. package/staging_area/Blender/5.0/scripts/presets/framerate/8.py +0 -3
  793. package/staging_area/Blender/5.0/scripts/presets/framerate/Custom.py +0 -1
  794. package/staging_area/Blender/5.0/scripts/presets/framerate/__pycache__/30.cpython-311.pyc +0 -0
  795. package/staging_area/Blender/5.0/scripts/presets/gpencil_material/Fill_Only.py +0 -25
  796. package/staging_area/Blender/5.0/scripts/presets/gpencil_material/Stroke_Only.py +0 -25
  797. package/staging_area/Blender/5.0/scripts/presets/gpencil_material/Stroke_and_Fill.py +0 -25
  798. package/staging_area/Blender/5.0/scripts/presets/hair_dynamics/Default.py +0 -17
  799. package/staging_area/Blender/5.0/scripts/presets/interface_theme/Blender_Dark.xml +0 -6
  800. package/staging_area/Blender/5.0/scripts/presets/interface_theme/Blender_Light.xml +0 -1246
  801. package/staging_area/Blender/5.0/scripts/presets/keyconfig/Blender.py +0 -384
  802. package/staging_area/Blender/5.0/scripts/presets/keyconfig/Blender_27x.py +0 -106
  803. package/staging_area/Blender/5.0/scripts/presets/keyconfig/Industry_Compatible.py +0 -41
  804. package/staging_area/Blender/5.0/scripts/presets/keyconfig/__pycache__/Blender.cpython-311.pyc +0 -0
  805. package/staging_area/Blender/5.0/scripts/presets/keyconfig/keymap_data/__pycache__/blender_default.cpython-311.pyc +0 -0
  806. package/staging_area/Blender/5.0/scripts/presets/keyconfig/keymap_data/blender_default.py +0 -9083
  807. package/staging_area/Blender/5.0/scripts/presets/keyconfig/keymap_data/industry_compatible_data.py +0 -3896
  808. package/staging_area/Blender/5.0/scripts/presets/pixel_density/Custom.py +0 -1
  809. package/staging_area/Blender/5.0/scripts/presets/pixel_density/Pixels_slash_Centimeter.py +0 -2
  810. package/staging_area/Blender/5.0/scripts/presets/pixel_density/Pixels_slash_Inch.py +0 -2
  811. package/staging_area/Blender/5.0/scripts/presets/pixel_density/Pixels_slash_Meter.py +0 -2
  812. package/staging_area/Blender/5.0/scripts/presets/render/4K_DCI_2160p.py +0 -8
  813. package/staging_area/Blender/5.0/scripts/presets/render/4K_UHDTV_2160p.py +0 -8
  814. package/staging_area/Blender/5.0/scripts/presets/render/4K_UW_1600p.py +0 -8
  815. package/staging_area/Blender/5.0/scripts/presets/render/DVCPRO_HD_1080p.py +0 -8
  816. package/staging_area/Blender/5.0/scripts/presets/render/DVCPRO_HD_720p.py +0 -8
  817. package/staging_area/Blender/5.0/scripts/presets/render/HDTV_1080p.py +0 -8
  818. package/staging_area/Blender/5.0/scripts/presets/render/HDTV_720p.py +0 -8
  819. package/staging_area/Blender/5.0/scripts/presets/render/HDV_1080p.py +0 -8
  820. package/staging_area/Blender/5.0/scripts/presets/render/HDV_NTSC_1080p.py +0 -8
  821. package/staging_area/Blender/5.0/scripts/presets/render/HDV_PAL_1080p.py +0 -8
  822. package/staging_area/Blender/5.0/scripts/presets/render/TV_NTSC_16_colon_9.py +0 -8
  823. package/staging_area/Blender/5.0/scripts/presets/render/TV_NTSC_4_colon_3.py +0 -8
  824. package/staging_area/Blender/5.0/scripts/presets/render/TV_PAL_16_colon_9.py +0 -8
  825. package/staging_area/Blender/5.0/scripts/presets/render/TV_PAL_4_colon_3.py +0 -8
  826. package/staging_area/Blender/5.0/scripts/presets/safe_areas/14_colon_9_in_16_colon_9.py +0 -7
  827. package/staging_area/Blender/5.0/scripts/presets/safe_areas/16_colon_9.py +0 -7
  828. package/staging_area/Blender/5.0/scripts/presets/safe_areas/4_colon_3_in_16_colon_9.py +0 -7
  829. package/staging_area/Blender/5.0/scripts/presets/text_editor/Internal.py +0 -6
  830. package/staging_area/Blender/5.0/scripts/presets/text_editor/Visual_Studio_Code.py +0 -12
  831. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/1_inch.py +0 -6
  832. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/1_slash_1.8_inch.py +0 -6
  833. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/1_slash_2.3_inch.py +0 -6
  834. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/1_slash_2.5_inch.py +0 -6
  835. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/1_slash_2.7_inch.py +0 -6
  836. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/1_slash_3.2_inch.py +0 -6
  837. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/2_slash_3_inch.py +0 -6
  838. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/APS-C.py +0 -6
  839. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/APS-C_(Canon).py +0 -6
  840. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/APS-H_(Canon).py +0 -6
  841. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/Analog_16mm.py +0 -6
  842. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/Analog_35mm.py +0 -6
  843. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/Analog_65mm.py +0 -6
  844. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/Analog_IMAX.py +0 -6
  845. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/Analog_Super_16.py +0 -6
  846. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/Analog_Super_35.py +0 -6
  847. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/Arri_Alexa_65.py +0 -6
  848. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/Arri_Alexa_LF.py +0 -6
  849. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/Arri_Alexa_Mini_&_SXT.py +0 -6
  850. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/Blackmagic_Pocket_&_Studio.py +0 -6
  851. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/Blackmagic_Pocket_4K.py +0 -6
  852. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/Blackmagic_Pocket_6k.py +0 -6
  853. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/Blackmagic_URSA_4.6K.py +0 -6
  854. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/Foveon_(Sigma).py +0 -6
  855. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/Fullframe.py +0 -6
  856. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/MFT.py +0 -6
  857. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/Medium-format_(Hasselblad).py +0 -6
  858. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/RED_Dragon_5K.py +0 -6
  859. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/RED_Dragon_6K.py +0 -6
  860. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/RED_Helium_8K.py +0 -6
  861. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/RED_Monstro_8K.py +0 -6
  862. package/staging_area/Blender/5.0/scripts/presets/tracking_settings/Blurry_Footage.py +0 -18
  863. package/staging_area/Blender/5.0/scripts/presets/tracking_settings/Default.py +0 -18
  864. package/staging_area/Blender/5.0/scripts/presets/tracking_settings/Fast_Motion.py +0 -18
  865. package/staging_area/Blender/5.0/scripts/presets/tracking_settings/Planar.py +0 -18
  866. package/staging_area/Blender/5.0/scripts/presets/tracking_track_color/Default.py +0 -5
  867. package/staging_area/Blender/5.0/scripts/presets/tracking_track_color/Far_Plane.py +0 -5
  868. package/staging_area/Blender/5.0/scripts/presets/tracking_track_color/Near_Plane.py +0 -5
  869. package/staging_area/Blender/5.0/scripts/presets/tracking_track_color/Object.py +0 -5
  870. package/staging_area/Blender/5.0/scripts/startup/__pycache__/keyingsets_builtins.cpython-311.pyc +0 -0
  871. package/staging_area/Blender/5.0/scripts/startup/__pycache__/nodeitems_builtins.cpython-311.pyc +0 -0
  872. package/staging_area/Blender/5.0/scripts/startup/bl_app_templates_system/2D_Animation/__init__.py +0 -56
  873. package/staging_area/Blender/5.0/scripts/startup/bl_app_templates_system/2D_Animation/__pycache__/__init__.cpython-311.pyc +0 -0
  874. package/staging_area/Blender/5.0/scripts/startup/bl_app_templates_system/2D_Animation/startup.blend +0 -0
  875. package/staging_area/Blender/5.0/scripts/startup/bl_app_templates_system/Sculpting/__init__.py +0 -30
  876. package/staging_area/Blender/5.0/scripts/startup/bl_app_templates_system/Sculpting/startup.blend +0 -0
  877. package/staging_area/Blender/5.0/scripts/startup/bl_app_templates_system/Storyboarding/__init__.py +0 -51
  878. package/staging_area/Blender/5.0/scripts/startup/bl_app_templates_system/Storyboarding/__pycache__/__init__.cpython-311.pyc +0 -0
  879. package/staging_area/Blender/5.0/scripts/startup/bl_app_templates_system/Storyboarding/startup.blend +0 -0
  880. package/staging_area/Blender/5.0/scripts/startup/bl_app_templates_system/VFX/startup.blend +0 -0
  881. package/staging_area/Blender/5.0/scripts/startup/bl_app_templates_system/Video_Editing/__init__.py +0 -51
  882. package/staging_area/Blender/5.0/scripts/startup/bl_app_templates_system/Video_Editing/__pycache__/__init__.cpython-311.pyc +0 -0
  883. package/staging_area/Blender/5.0/scripts/startup/bl_app_templates_system/Video_Editing/startup.blend +0 -0
  884. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__init__.py +0 -88
  885. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/__init__.cpython-311.pyc +0 -0
  886. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/add_mesh_torus.cpython-311.pyc +0 -0
  887. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/anim.cpython-311.pyc +0 -0
  888. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/assets.cpython-311.pyc +0 -0
  889. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/bone_selection_sets.cpython-311.pyc +0 -0
  890. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/clip.cpython-311.pyc +0 -0
  891. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/connect_to_output.cpython-311.pyc +0 -0
  892. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/console.cpython-311.pyc +0 -0
  893. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/constraint.cpython-311.pyc +0 -0
  894. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/copy_global_transform.cpython-311.pyc +0 -0
  895. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/file.cpython-311.pyc +0 -0
  896. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/freestyle.cpython-311.pyc +0 -0
  897. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/geometry_nodes.cpython-311.pyc +0 -0
  898. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/grease_pencil.cpython-311.pyc +0 -0
  899. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/image.cpython-311.pyc +0 -0
  900. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/image_as_planes.cpython-311.pyc +0 -0
  901. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/mesh.cpython-311.pyc +0 -0
  902. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/node.cpython-311.pyc +0 -0
  903. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/object.cpython-311.pyc +0 -0
  904. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/object_align.cpython-311.pyc +0 -0
  905. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/object_quick_effects.cpython-311.pyc +0 -0
  906. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/object_randomize_transform.cpython-311.pyc +0 -0
  907. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/presets.cpython-311.pyc +0 -0
  908. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/rigidbody.cpython-311.pyc +0 -0
  909. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/screen_play_rendered_anim.cpython-311.pyc +0 -0
  910. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/sequencer.cpython-311.pyc +0 -0
  911. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/spreadsheet.cpython-311.pyc +0 -0
  912. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/userpref.cpython-311.pyc +0 -0
  913. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/uvcalc_follow_active.cpython-311.pyc +0 -0
  914. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/uvcalc_lightmap.cpython-311.pyc +0 -0
  915. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/uvcalc_transform.cpython-311.pyc +0 -0
  916. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/vertexpaint_dirt.cpython-311.pyc +0 -0
  917. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/view3d.cpython-311.pyc +0 -0
  918. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/wm.cpython-311.pyc +0 -0
  919. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/world.cpython-311.pyc +0 -0
  920. package/staging_area/Blender/5.0/scripts/startup/bl_operators/add_mesh_torus.py +0 -262
  921. package/staging_area/Blender/5.0/scripts/startup/bl_operators/anim.py +0 -924
  922. package/staging_area/Blender/5.0/scripts/startup/bl_operators/assets.py +0 -157
  923. package/staging_area/Blender/5.0/scripts/startup/bl_operators/bmesh/find_adjacent.py +0 -341
  924. package/staging_area/Blender/5.0/scripts/startup/bl_operators/bone_selection_sets.py +0 -439
  925. package/staging_area/Blender/5.0/scripts/startup/bl_operators/clip.py +0 -1044
  926. package/staging_area/Blender/5.0/scripts/startup/bl_operators/connect_to_output.py +0 -360
  927. package/staging_area/Blender/5.0/scripts/startup/bl_operators/console.py +0 -156
  928. package/staging_area/Blender/5.0/scripts/startup/bl_operators/constraint.py +0 -121
  929. package/staging_area/Blender/5.0/scripts/startup/bl_operators/copy_global_transform.py +0 -823
  930. package/staging_area/Blender/5.0/scripts/startup/bl_operators/file.py +0 -308
  931. package/staging_area/Blender/5.0/scripts/startup/bl_operators/freestyle.py +0 -226
  932. package/staging_area/Blender/5.0/scripts/startup/bl_operators/geometry_nodes.py +0 -394
  933. package/staging_area/Blender/5.0/scripts/startup/bl_operators/grease_pencil.py +0 -63
  934. package/staging_area/Blender/5.0/scripts/startup/bl_operators/image.py +0 -322
  935. package/staging_area/Blender/5.0/scripts/startup/bl_operators/image_as_planes.py +0 -1216
  936. package/staging_area/Blender/5.0/scripts/startup/bl_operators/mesh.py +0 -61
  937. package/staging_area/Blender/5.0/scripts/startup/bl_operators/node.py +0 -1340
  938. package/staging_area/Blender/5.0/scripts/startup/bl_operators/node_editor/__pycache__/node_functions.cpython-311.pyc +0 -0
  939. package/staging_area/Blender/5.0/scripts/startup/bl_operators/node_editor/node_functions.py +0 -97
  940. package/staging_area/Blender/5.0/scripts/startup/bl_operators/object.py +0 -1014
  941. package/staging_area/Blender/5.0/scripts/startup/bl_operators/object_align.py +0 -407
  942. package/staging_area/Blender/5.0/scripts/startup/bl_operators/object_quick_effects.py +0 -680
  943. package/staging_area/Blender/5.0/scripts/startup/bl_operators/object_randomize_transform.py +0 -181
  944. package/staging_area/Blender/5.0/scripts/startup/bl_operators/presets.py +0 -1057
  945. package/staging_area/Blender/5.0/scripts/startup/bl_operators/rigidbody.py +0 -323
  946. package/staging_area/Blender/5.0/scripts/startup/bl_operators/screen_play_rendered_anim.py +0 -219
  947. package/staging_area/Blender/5.0/scripts/startup/bl_operators/sequencer.py +0 -438
  948. package/staging_area/Blender/5.0/scripts/startup/bl_operators/spreadsheet.py +0 -46
  949. package/staging_area/Blender/5.0/scripts/startup/bl_operators/userpref.py +0 -1324
  950. package/staging_area/Blender/5.0/scripts/startup/bl_operators/uvcalc_follow_active.py +0 -313
  951. package/staging_area/Blender/5.0/scripts/startup/bl_operators/uvcalc_lightmap.py +0 -688
  952. package/staging_area/Blender/5.0/scripts/startup/bl_operators/uvcalc_transform.py +0 -551
  953. package/staging_area/Blender/5.0/scripts/startup/bl_operators/vertexpaint_dirt.py +0 -198
  954. package/staging_area/Blender/5.0/scripts/startup/bl_operators/view3d.py +0 -316
  955. package/staging_area/Blender/5.0/scripts/startup/bl_operators/wm.py +0 -3722
  956. package/staging_area/Blender/5.0/scripts/startup/bl_operators/world.py +0 -168
  957. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__init__.py +0 -299
  958. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/__init__.cpython-311.pyc +0 -0
  959. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/anim.cpython-311.pyc +0 -0
  960. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/asset_shelf.cpython-311.pyc +0 -0
  961. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/generic_ui_list.cpython-311.pyc +0 -0
  962. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/node_add_menu.cpython-311.pyc +0 -0
  963. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/node_add_menu_compositor.cpython-311.pyc +0 -0
  964. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/node_add_menu_geometry.cpython-311.pyc +0 -0
  965. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/node_add_menu_shader.cpython-311.pyc +0 -0
  966. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/node_add_menu_texture.cpython-311.pyc +0 -0
  967. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_animviz.cpython-311.pyc +0 -0
  968. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_collection.cpython-311.pyc +0 -0
  969. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_constraint.cpython-311.pyc +0 -0
  970. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_data_armature.cpython-311.pyc +0 -0
  971. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_data_bone.cpython-311.pyc +0 -0
  972. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_data_camera.cpython-311.pyc +0 -0
  973. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_data_curve.cpython-311.pyc +0 -0
  974. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_data_curves.cpython-311.pyc +0 -0
  975. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_data_empty.cpython-311.pyc +0 -0
  976. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_data_grease_pencil.cpython-311.pyc +0 -0
  977. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_data_lattice.cpython-311.pyc +0 -0
  978. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_data_light.cpython-311.pyc +0 -0
  979. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_data_lightprobe.cpython-311.pyc +0 -0
  980. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_data_mesh.cpython-311.pyc +0 -0
  981. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_data_metaball.cpython-311.pyc +0 -0
  982. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_data_modifier.cpython-311.pyc +0 -0
  983. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_data_pointcloud.cpython-311.pyc +0 -0
  984. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_data_shaderfx.cpython-311.pyc +0 -0
  985. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_data_speaker.cpython-311.pyc +0 -0
  986. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_data_volume.cpython-311.pyc +0 -0
  987. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_freestyle.cpython-311.pyc +0 -0
  988. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_grease_pencil_common.cpython-311.pyc +0 -0
  989. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_mask_common.cpython-311.pyc +0 -0
  990. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_material.cpython-311.pyc +0 -0
  991. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_material_gpencil.cpython-311.pyc +0 -0
  992. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_object.cpython-311.pyc +0 -0
  993. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_output.cpython-311.pyc +0 -0
  994. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_paint_common.cpython-311.pyc +0 -0
  995. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_particle.cpython-311.pyc +0 -0
  996. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_physics_cloth.cpython-311.pyc +0 -0
  997. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_physics_common.cpython-311.pyc +0 -0
  998. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_physics_dynamicpaint.cpython-311.pyc +0 -0
  999. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_physics_field.cpython-311.pyc +0 -0
  1000. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_physics_fluid.cpython-311.pyc +0 -0
  1001. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_physics_geometry_nodes.cpython-311.pyc +0 -0
  1002. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_physics_rigidbody.cpython-311.pyc +0 -0
  1003. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_physics_rigidbody_constraint.cpython-311.pyc +0 -0
  1004. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_physics_softbody.cpython-311.pyc +0 -0
  1005. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_render.cpython-311.pyc +0 -0
  1006. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_scene.cpython-311.pyc +0 -0
  1007. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_strip.cpython-311.pyc +0 -0
  1008. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_strip_modifier.cpython-311.pyc +0 -0
  1009. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_texture.cpython-311.pyc +0 -0
  1010. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_view_layer.cpython-311.pyc +0 -0
  1011. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_workspace.cpython-311.pyc +0 -0
  1012. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_world.cpython-311.pyc +0 -0
  1013. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_clip.cpython-311.pyc +0 -0
  1014. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_console.cpython-311.pyc +0 -0
  1015. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_dopesheet.cpython-311.pyc +0 -0
  1016. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_filebrowser.cpython-311.pyc +0 -0
  1017. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_graph.cpython-311.pyc +0 -0
  1018. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_image.cpython-311.pyc +0 -0
  1019. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_info.cpython-311.pyc +0 -0
  1020. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_nla.cpython-311.pyc +0 -0
  1021. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_node.cpython-311.pyc +0 -0
  1022. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_outliner.cpython-311.pyc +0 -0
  1023. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_properties.cpython-311.pyc +0 -0
  1024. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_sequencer.cpython-311.pyc +0 -0
  1025. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_spreadsheet.cpython-311.pyc +0 -0
  1026. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_statusbar.cpython-311.pyc +0 -0
  1027. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_text.cpython-311.pyc +0 -0
  1028. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_time.cpython-311.pyc +0 -0
  1029. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_toolsystem_common.cpython-311.pyc +0 -0
  1030. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_toolsystem_toolbar.cpython-311.pyc +0 -0
  1031. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_topbar.cpython-311.pyc +0 -0
  1032. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_userpref.cpython-311.pyc +0 -0
  1033. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_view3d.cpython-311.pyc +0 -0
  1034. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_view3d_sidebar.cpython-311.pyc +0 -0
  1035. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_view3d_toolbar.cpython-311.pyc +0 -0
  1036. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/utils.cpython-311.pyc +0 -0
  1037. package/staging_area/Blender/5.0/scripts/startup/bl_ui/anim.py +0 -62
  1038. package/staging_area/Blender/5.0/scripts/startup/bl_ui/asset_shelf.py +0 -41
  1039. package/staging_area/Blender/5.0/scripts/startup/bl_ui/generic_ui_list.py +0 -262
  1040. package/staging_area/Blender/5.0/scripts/startup/bl_ui/node_add_menu.py +0 -505
  1041. package/staging_area/Blender/5.0/scripts/startup/bl_ui/node_add_menu_compositor.py +0 -437
  1042. package/staging_area/Blender/5.0/scripts/startup/bl_ui/node_add_menu_geometry.py +0 -1158
  1043. package/staging_area/Blender/5.0/scripts/startup/bl_ui/node_add_menu_shader.py +0 -511
  1044. package/staging_area/Blender/5.0/scripts/startup/bl_ui/node_add_menu_texture.py +0 -167
  1045. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_animviz.py +0 -123
  1046. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_collection.py +0 -146
  1047. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_constraint.py +0 -1793
  1048. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_data_armature.py +0 -436
  1049. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_data_bone.py +0 -625
  1050. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_data_camera.py +0 -603
  1051. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_data_curve.py +0 -461
  1052. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_data_curves.py +0 -219
  1053. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_data_empty.py +0 -84
  1054. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_data_grease_pencil.py +0 -536
  1055. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_data_lattice.py +0 -105
  1056. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_data_light.py +0 -315
  1057. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_data_lightprobe.py +0 -413
  1058. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_data_mesh.py +0 -744
  1059. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_data_metaball.py +0 -137
  1060. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_data_modifier.py +0 -323
  1061. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_data_pointcloud.py +0 -175
  1062. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_data_shaderfx.py +0 -31
  1063. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_data_speaker.py +0 -157
  1064. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_data_volume.py +0 -239
  1065. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_freestyle.py +0 -1343
  1066. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_grease_pencil_common.py +0 -607
  1067. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_mask_common.py +0 -461
  1068. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_material.py +0 -460
  1069. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_material_gpencil.py +0 -272
  1070. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_object.py +0 -656
  1071. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_output.py +0 -736
  1072. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_paint_common.py +0 -1904
  1073. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_particle.py +0 -2308
  1074. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_physics_cloth.py +0 -524
  1075. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_physics_common.py +0 -360
  1076. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_physics_dynamicpaint.py +0 -974
  1077. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_physics_field.py +0 -487
  1078. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_physics_fluid.py +0 -1629
  1079. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_physics_geometry_nodes.py +0 -64
  1080. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_physics_rigidbody.py +0 -345
  1081. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_physics_rigidbody_constraint.py +0 -554
  1082. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_physics_softbody.py +0 -471
  1083. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_render.py +0 -1180
  1084. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_scene.py +0 -495
  1085. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_strip.py +0 -1056
  1086. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_strip_modifier.py +0 -49
  1087. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_texture.py +0 -997
  1088. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_view_layer.py +0 -348
  1089. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_workspace.py +0 -195
  1090. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_world.py +0 -282
  1091. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_clip.py +0 -2112
  1092. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_console.py +0 -157
  1093. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_dopesheet.py +0 -1123
  1094. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_filebrowser.py +0 -950
  1095. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_graph.py +0 -615
  1096. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_image.py +0 -1896
  1097. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_info.py +0 -117
  1098. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_nla.py +0 -429
  1099. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_node.py +0 -1247
  1100. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_outliner.py +0 -559
  1101. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_properties.py +0 -205
  1102. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_sequencer.py +0 -2097
  1103. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_spreadsheet.py +0 -83
  1104. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_statusbar.py +0 -41
  1105. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_text.py +0 -479
  1106. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_time.py +0 -364
  1107. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_toolsystem_common.py +0 -1256
  1108. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_toolsystem_toolbar.py +0 -4123
  1109. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_topbar.py +0 -891
  1110. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_userpref.py +0 -3108
  1111. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_view3d.py +0 -9421
  1112. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_view3d_sidebar.py +0 -183
  1113. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_view3d_toolbar.py +0 -2438
  1114. package/staging_area/Blender/5.0/scripts/startup/bl_ui/utils.py +0 -40
  1115. package/staging_area/Blender/5.0/scripts/startup/keyingsets_builtins.py +0 -686
  1116. package/staging_area/Blender/5.0/scripts/startup/nodeitems_builtins.py +0 -54
  1117. package/staging_area/Blender/5.0/scripts/templates_osl/advanced_camera.osl +0 -76
  1118. package/staging_area/Blender/5.0/scripts/templates_osl/basic_camera.osl +0 -14
  1119. package/staging_area/Blender/5.0/scripts/templates_osl/basic_shader.osl +0 -10
  1120. package/staging_area/Blender/5.0/scripts/templates_osl/cubemap_camera.osl +0 -42
  1121. package/staging_area/Blender/5.0/scripts/templates_osl/empty_shader.osl +0 -6
  1122. package/staging_area/Blender/5.0/scripts/templates_osl/gabor_noise.osl +0 -17
  1123. package/staging_area/Blender/5.0/scripts/templates_osl/lyapunov_texture.osl +0 -141
  1124. package/staging_area/Blender/5.0/scripts/templates_osl/noise.osl +0 -27
  1125. package/staging_area/Blender/5.0/scripts/templates_osl/ramp_closure.osl +0 -20
  1126. package/staging_area/Blender/5.0/scripts/templates_py/addon_add_object.py +0 -84
  1127. package/staging_area/Blender/5.0/scripts/templates_py/background_job.py +0 -118
  1128. package/staging_area/Blender/5.0/scripts/templates_py/batch_export.py +0 -42
  1129. package/staging_area/Blender/5.0/scripts/templates_py/bmesh_simple.py +0 -22
  1130. package/staging_area/Blender/5.0/scripts/templates_py/bmesh_simple_editmode.py +0 -23
  1131. package/staging_area/Blender/5.0/scripts/templates_py/builtin_keyingset.py +0 -37
  1132. package/staging_area/Blender/5.0/scripts/templates_py/custom_nodes.py +0 -172
  1133. package/staging_area/Blender/5.0/scripts/templates_py/driver_functions.py +0 -35
  1134. package/staging_area/Blender/5.0/scripts/templates_py/external_script_stub.py +0 -13
  1135. package/staging_area/Blender/5.0/scripts/templates_py/gizmo_custom_geometry.py +0 -157
  1136. package/staging_area/Blender/5.0/scripts/templates_py/gizmo_operator.py +0 -235
  1137. package/staging_area/Blender/5.0/scripts/templates_py/gizmo_operator_target.py +0 -50
  1138. package/staging_area/Blender/5.0/scripts/templates_py/gizmo_simple_2d.py +0 -59
  1139. package/staging_area/Blender/5.0/scripts/templates_py/gizmo_simple_3d.py +0 -47
  1140. package/staging_area/Blender/5.0/scripts/templates_py/image_processing.py +0 -35
  1141. package/staging_area/Blender/5.0/scripts/templates_py/operator_file_export.py +0 -76
  1142. package/staging_area/Blender/5.0/scripts/templates_py/operator_file_import.py +0 -79
  1143. package/staging_area/Blender/5.0/scripts/templates_py/operator_mesh_add.py +0 -116
  1144. package/staging_area/Blender/5.0/scripts/templates_py/operator_mesh_uv.py +0 -56
  1145. package/staging_area/Blender/5.0/scripts/templates_py/operator_modal.py +0 -58
  1146. package/staging_area/Blender/5.0/scripts/templates_py/operator_modal_draw.py +0 -83
  1147. package/staging_area/Blender/5.0/scripts/templates_py/operator_modal_timer.py +0 -54
  1148. package/staging_area/Blender/5.0/scripts/templates_py/operator_modal_view3d.py +0 -77
  1149. package/staging_area/Blender/5.0/scripts/templates_py/operator_modal_view3d_raycast.py +0 -115
  1150. package/staging_area/Blender/5.0/scripts/templates_py/operator_node.py +0 -66
  1151. package/staging_area/Blender/5.0/scripts/templates_py/operator_simple.py +0 -42
  1152. package/staging_area/Blender/5.0/scripts/templates_py/ui_asset_shelf.py +0 -29
  1153. package/staging_area/Blender/5.0/scripts/templates_py/ui_list.py +0 -44
  1154. package/staging_area/Blender/5.0/scripts/templates_py/ui_list_generic.py +0 -47
  1155. package/staging_area/Blender/5.0/scripts/templates_py/ui_list_simple.py +0 -70
  1156. package/staging_area/Blender/5.0/scripts/templates_py/ui_menu.py +0 -50
  1157. package/staging_area/Blender/5.0/scripts/templates_py/ui_menu_simple.py +0 -27
  1158. package/staging_area/Blender/5.0/scripts/templates_py/ui_panel.py +0 -73
  1159. package/staging_area/Blender/5.0/scripts/templates_py/ui_panel_simple.py +0 -38
  1160. package/staging_area/Blender/5.0/scripts/templates_py/ui_pie_menu.py +0 -31
  1161. package/staging_area/Blender/5.0/scripts/templates_py/ui_previews_custom_icon.py +0 -76
  1162. package/staging_area/Blender/5.0/scripts/templates_py/ui_previews_dynamic_enum.py +0 -141
  1163. package/staging_area/Blender/5.0/scripts/templates_py/ui_tool_simple.py +0 -91
  1164. package/staging_area/Blender/5.0/scripts/templates_toml/blender_manifest.toml +0 -75
  1165. package/staging_area/Blender/blender-launcher.exe +0 -0
  1166. package/staging_area/Blender/blender.crt/api-ms-win-core-console-l1-1-0.dll +0 -0
  1167. package/staging_area/Blender/blender.crt/api-ms-win-core-console-l1-2-0.dll +0 -0
  1168. package/staging_area/Blender/blender.crt/api-ms-win-core-datetime-l1-1-0.dll +0 -0
  1169. package/staging_area/Blender/blender.crt/api-ms-win-core-debug-l1-1-0.dll +0 -0
  1170. package/staging_area/Blender/blender.crt/api-ms-win-core-errorhandling-l1-1-0.dll +0 -0
  1171. package/staging_area/Blender/blender.crt/api-ms-win-core-fibers-l1-1-0.dll +0 -0
  1172. package/staging_area/Blender/blender.crt/api-ms-win-core-file-l1-1-0.dll +0 -0
  1173. package/staging_area/Blender/blender.crt/api-ms-win-core-file-l1-2-0.dll +0 -0
  1174. package/staging_area/Blender/blender.crt/api-ms-win-core-file-l2-1-0.dll +0 -0
  1175. package/staging_area/Blender/blender.crt/api-ms-win-core-handle-l1-1-0.dll +0 -0
  1176. package/staging_area/Blender/blender.crt/api-ms-win-core-heap-l1-1-0.dll +0 -0
  1177. package/staging_area/Blender/blender.crt/api-ms-win-core-interlocked-l1-1-0.dll +0 -0
  1178. package/staging_area/Blender/blender.crt/api-ms-win-core-libraryloader-l1-1-0.dll +0 -0
  1179. package/staging_area/Blender/blender.crt/api-ms-win-core-localization-l1-2-0.dll +0 -0
  1180. package/staging_area/Blender/blender.crt/api-ms-win-core-memory-l1-1-0.dll +0 -0
  1181. package/staging_area/Blender/blender.crt/api-ms-win-core-namedpipe-l1-1-0.dll +0 -0
  1182. package/staging_area/Blender/blender.crt/api-ms-win-core-processenvironment-l1-1-0.dll +0 -0
  1183. package/staging_area/Blender/blender.crt/api-ms-win-core-processthreads-l1-1-0.dll +0 -0
  1184. package/staging_area/Blender/blender.crt/api-ms-win-core-processthreads-l1-1-1.dll +0 -0
  1185. package/staging_area/Blender/blender.crt/api-ms-win-core-profile-l1-1-0.dll +0 -0
  1186. package/staging_area/Blender/blender.crt/api-ms-win-core-rtlsupport-l1-1-0.dll +0 -0
  1187. package/staging_area/Blender/blender.crt/api-ms-win-core-string-l1-1-0.dll +0 -0
  1188. package/staging_area/Blender/blender.crt/api-ms-win-core-synch-l1-1-0.dll +0 -0
  1189. package/staging_area/Blender/blender.crt/api-ms-win-core-synch-l1-2-0.dll +0 -0
  1190. package/staging_area/Blender/blender.crt/api-ms-win-core-sysinfo-l1-1-0.dll +0 -0
  1191. package/staging_area/Blender/blender.crt/api-ms-win-core-timezone-l1-1-0.dll +0 -0
  1192. package/staging_area/Blender/blender.crt/api-ms-win-core-util-l1-1-0.dll +0 -0
  1193. package/staging_area/Blender/blender.crt/api-ms-win-crt-conio-l1-1-0.dll +0 -0
  1194. package/staging_area/Blender/blender.crt/api-ms-win-crt-convert-l1-1-0.dll +0 -0
  1195. package/staging_area/Blender/blender.crt/api-ms-win-crt-environment-l1-1-0.dll +0 -0
  1196. package/staging_area/Blender/blender.crt/api-ms-win-crt-filesystem-l1-1-0.dll +0 -0
  1197. package/staging_area/Blender/blender.crt/api-ms-win-crt-heap-l1-1-0.dll +0 -0
  1198. package/staging_area/Blender/blender.crt/api-ms-win-crt-locale-l1-1-0.dll +0 -0
  1199. package/staging_area/Blender/blender.crt/api-ms-win-crt-math-l1-1-0.dll +0 -0
  1200. package/staging_area/Blender/blender.crt/api-ms-win-crt-multibyte-l1-1-0.dll +0 -0
  1201. package/staging_area/Blender/blender.crt/api-ms-win-crt-private-l1-1-0.dll +0 -0
  1202. package/staging_area/Blender/blender.crt/api-ms-win-crt-process-l1-1-0.dll +0 -0
  1203. package/staging_area/Blender/blender.crt/api-ms-win-crt-runtime-l1-1-0.dll +0 -0
  1204. package/staging_area/Blender/blender.crt/api-ms-win-crt-stdio-l1-1-0.dll +0 -0
  1205. package/staging_area/Blender/blender.crt/api-ms-win-crt-string-l1-1-0.dll +0 -0
  1206. package/staging_area/Blender/blender.crt/api-ms-win-crt-time-l1-1-0.dll +0 -0
  1207. package/staging_area/Blender/blender.crt/api-ms-win-crt-utility-l1-1-0.dll +0 -0
  1208. package/staging_area/Blender/blender.crt/blender.crt.manifest +0 -54
  1209. package/staging_area/Blender/blender.crt/concrt140.dll +0 -0
  1210. package/staging_area/Blender/blender.crt/msvcp140.dll +0 -0
  1211. package/staging_area/Blender/blender.crt/msvcp140_1.dll +0 -0
  1212. package/staging_area/Blender/blender.crt/msvcp140_2.dll +0 -0
  1213. package/staging_area/Blender/blender.crt/msvcp140_atomic_wait.dll +0 -0
  1214. package/staging_area/Blender/blender.crt/msvcp140_codecvt_ids.dll +0 -0
  1215. package/staging_area/Blender/blender.crt/vcruntime140.dll +0 -0
  1216. package/staging_area/Blender/blender.crt/vcruntime140_1.dll +0 -0
@@ -1,1662 +0,0 @@
1
- # SPDX-FileCopyrightText: 2018-2021 The glTF-Blender-IO authors
2
- #
3
- # SPDX-License-Identifier: Apache-2.0
4
-
5
- import numpy as np
6
- from copy import deepcopy
7
- from mathutils import Vector
8
- from ...blender.com.data_path import get_sk_exported
9
- from ...io.com.constants import ROUNDING_DIGIT
10
- from ...io.exp.user_extensions import export_user_extensions
11
- from ...io.com import constants as gltf2_io_constants
12
- from ..com import conversion as gltf2_blender_conversion
13
- from ..com.gltf2_blender_utils import fast_structured_np_unique
14
- from .material.materials import get_base_material, get_material_from_idx, get_active_uvmap_index, get_new_material_texture_shared
15
- from .material.texture_info import gather_udim_texture_info
16
- from . import skins as gltf2_blender_gather_skins
17
-
18
-
19
- def extract_primitives(
20
- materials,
21
- blender_mesh,
22
- uuid_for_skined_data,
23
- blender_vertex_groups,
24
- modifiers,
25
- export_settings):
26
- """Extract primitives from a mesh."""
27
- export_settings['log'].info("Extracting primitive: " + blender_mesh.name)
28
-
29
- primitive_creator = PrimitiveCreator(
30
- materials,
31
- blender_mesh,
32
- uuid_for_skined_data,
33
- blender_vertex_groups,
34
- modifiers,
35
- export_settings)
36
- primitive_creator.prepare_data()
37
- primitive_creator.define_attributes()
38
- primitive_creator.create_dots_data_structure()
39
- primitive_creator.populate_dots_data()
40
- primitive_creator.primitive_split()
41
- primitive_creator.manage_material_info() # UVMap & Vertex Color
42
- if export_settings['gltf_shared_accessors'] is False:
43
- return primitive_creator.primitive_creation_not_shared(), primitive_creator.additional_materials, None
44
- else:
45
- return primitive_creator.primitive_creation_shared()
46
-
47
-
48
- class PrimitiveCreator:
49
- def __init__(
50
- self,
51
- materials,
52
- blender_mesh,
53
- uuid_for_skined_data,
54
- blender_vertex_groups,
55
- modifiers,
56
- export_settings):
57
- self.blender_mesh = blender_mesh
58
- self.uuid_for_skined_data = uuid_for_skined_data
59
- self.blender_vertex_groups = blender_vertex_groups
60
- self.modifiers = modifiers
61
- self.materials = materials
62
-
63
- self.vc_infos = []
64
- self.vc_infos_index = 0
65
-
66
- self.export_settings = export_settings
67
-
68
- @classmethod
69
- def apply_mat_to_all(cls, matrix, vectors):
70
- """Given matrix m and vectors [v1,v2,...], computes [m@v1,m@v2,...]"""
71
- # Linear part
72
- m = matrix.to_3x3() if len(matrix) == 4 else matrix
73
- res = np.matmul(vectors, np.array(m.transposed()))
74
- # Translation part
75
- if len(matrix) == 4:
76
- res += np.array(matrix.translation)
77
- return res
78
-
79
- @classmethod
80
- def normalize_vecs(cls, vectors):
81
- norms = np.linalg.norm(vectors, axis=1, keepdims=True)
82
- np.divide(vectors, norms, out=vectors, where=norms != 0)
83
-
84
- @classmethod
85
- def zup2yup(cls, array):
86
- # x,y,z -> x,z,-y
87
- array[:, [1, 2]] = array[:, [2, 1]] # x,z,y
88
- array[:, 2] *= -1 # x,z,-y
89
-
90
- def prepare_data(self):
91
- self.blender_object = None
92
- if self.uuid_for_skined_data:
93
- self.blender_object = self.export_settings['vtree'].nodes[self.uuid_for_skined_data].blender_object
94
-
95
- self.use_normals = self.export_settings['gltf_normals']
96
-
97
- self.use_tangents = False
98
- if self.use_normals and self.export_settings['gltf_tangents']:
99
- if self.blender_mesh.uv_layers.active and len(self.blender_mesh.uv_layers) > 0:
100
- try:
101
- self.blender_mesh.calc_tangents()
102
- self.use_tangents = True
103
- except Exception:
104
- self.export_settings['log'].warning(
105
- "{}: Could not calculate tangents. Please try to triangulate the mesh first.".format(
106
- self.blender_mesh.name), popup=True)
107
-
108
- self.tex_coord_max = 0
109
- if self.export_settings['gltf_texcoords']:
110
- if self.blender_mesh.uv_layers.active:
111
- self.tex_coord_max = len(self.blender_mesh.uv_layers)
112
-
113
- self.use_morph_normals = self.use_normals and self.export_settings['gltf_morph_normal']
114
- self.use_morph_tangents = self.use_morph_normals and self.use_tangents and self.export_settings[
115
- 'gltf_morph_tangent']
116
-
117
- self.use_materials = self.export_settings['gltf_materials']
118
-
119
- self.blender_attributes = []
120
-
121
- # Check if we have to export skin
122
- self.armature = None
123
- self.skin = None
124
- if self.export_settings['gltf_skins']:
125
- if self.modifiers is not None:
126
- modifiers_dict = {m.type: m for m in self.modifiers}
127
- if "ARMATURE" in modifiers_dict:
128
- modifier = modifiers_dict["ARMATURE"]
129
- self.armature = modifier.object
130
-
131
- # Skin must be ignored if the object is parented to a bone of the armature
132
- # (This creates an infinite recursive error)
133
- # So ignoring skin in that case
134
- is_child_of_arma = (
135
- self.armature and
136
- self.blender_object and
137
- self.blender_object.parent_type == "BONE" and
138
- self.blender_object.parent.name == self.armature.name
139
- )
140
- if is_child_of_arma:
141
- self.armature = None
142
-
143
- if self.armature:
144
- self.skin = gltf2_blender_gather_skins.gather_skin(
145
- self.export_settings['vtree'].nodes[self.uuid_for_skined_data].armature, self.export_settings)
146
- if not self.skin:
147
- self.armature = None
148
-
149
- self.key_blocks = []
150
- # List of SK that are going to be exported, actually
151
- # We need to check if we are in a GN Instance, because for GN instances, it seems that shape keys are preserved,
152
- # even if we apply modifiers
153
- # (For classic objects, shape keys are not preserved if we apply modifiers)
154
- if self.blender_mesh.shape_keys and self.export_settings['gltf_morph'] and ((self.blender_mesh.is_evaluated is True and self.blender_mesh.get('gltf2_mesh_applied') is not None) or self.blender_mesh.is_evaluated is False):
155
- self.key_blocks = get_sk_exported(self.blender_mesh.shape_keys.key_blocks)
156
-
157
- # Fetch vert positions and bone data (joint,weights)
158
-
159
- self.locs = None
160
- self.morph_locs = None
161
- self.__get_positions()
162
-
163
- if self.skin:
164
- self.__get_bone_data()
165
- if self.need_neutral_bone is True:
166
- # Need to create a fake joint at root of armature
167
- # In order to assign not assigned vertices to it
168
- # But for now, this is not yet possible, we need to wait the armature node is created
169
- # Just store this, to be used later
170
- armature_uuid = self.export_settings['vtree'].nodes[self.uuid_for_skined_data].armature
171
- self.export_settings['vtree'].nodes[armature_uuid].need_neutral_bone = True
172
-
173
- def define_attributes(self):
174
-
175
- class KeepAttribute:
176
- def __init__(self, attr_name):
177
- self.attr_name = attr_name
178
- self.keep = attr_name.startswith("_")
179
-
180
- # Manage attributes
181
- for blender_attribute_index, blender_attribute in enumerate(self.blender_mesh.attributes):
182
-
183
- attr = {}
184
- attr['blender_attribute_index'] = blender_attribute_index
185
- attr['blender_name'] = blender_attribute.name
186
- attr['blender_domain'] = blender_attribute.domain
187
- attr['blender_data_type'] = blender_attribute.data_type
188
-
189
- # For now, we don't export edge data, because I need to find how to
190
- # get from edge data to dots data
191
- if attr['blender_domain'] == "EDGE":
192
- continue
193
-
194
- # Some type are not exportable (example : String)
195
- if gltf2_blender_conversion.get_component_type(blender_attribute.data_type) is None or \
196
- gltf2_blender_conversion.get_data_type(blender_attribute.data_type) is None:
197
-
198
- continue
199
-
200
- # Custom attributes
201
- # Keep only attributes that starts with _
202
- # As Blender create lots of attributes that are internal / not needed are
203
- # as duplicated of standard glTF accessors (position, uv,
204
- # material_index...)
205
- if self.export_settings['gltf_attributes'] is False:
206
- continue
207
- # Check if there is an extension that want to keep this attribute, or change the exported name
208
- keep_attribute = KeepAttribute(blender_attribute.name)
209
-
210
- export_user_extensions('gather_attribute_keep', self.export_settings, keep_attribute)
211
-
212
- if keep_attribute.keep is False:
213
- continue
214
-
215
- attr['gltf_attribute_name'] = keep_attribute.attr_name.upper()
216
- attr['get'] = self.get_function()
217
-
218
- # Seems we sometime can have name collision about attributes
219
- # Avoid crash and ignoring one of duplicated attribute name
220
- if attr['gltf_attribute_name'] in [a['gltf_attribute_name'] for a in self.blender_attributes]:
221
- self.export_settings['log'].warning(
222
- 'Attribute collision name: ' +
223
- blender_attribute.name +
224
- ", ignoring one of them")
225
- continue
226
-
227
- self.blender_attributes.append(attr)
228
-
229
- # Manage POSITION
230
- attr = {}
231
- attr['blender_data_type'] = 'FLOAT_VECTOR'
232
- attr['blender_domain'] = 'POINT'
233
- attr['gltf_attribute_name'] = 'POSITION'
234
- attr['set'] = self.set_function()
235
- attr['skip_getting_to_dots'] = True
236
- self.blender_attributes.append(attr)
237
-
238
- # Manage NORMALS
239
- if self.use_normals:
240
- attr = {}
241
- attr['blender_data_type'] = 'FLOAT_VECTOR'
242
- attr['blender_domain'] = 'CORNER'
243
- attr['gltf_attribute_name'] = 'NORMAL'
244
- attr['gltf_attribute_name_morph'] = 'MORPH_NORMAL_'
245
- attr['get'] = self.get_function()
246
- self.blender_attributes.append(attr)
247
-
248
- # Manage uvs TEX_COORD_x
249
- for tex_coord_i in range(self.tex_coord_max):
250
- attr = {}
251
- attr['blender_data_type'] = 'FLOAT2'
252
- attr['blender_domain'] = 'CORNER'
253
- attr['gltf_attribute_name'] = 'TEXCOORD_' + str(tex_coord_i)
254
- attr['get'] = self.get_function()
255
- self.blender_attributes.append(attr)
256
-
257
- # Manage TANGENT
258
- if self.use_tangents:
259
- attr = {}
260
- attr['blender_data_type'] = 'FLOAT_VECTOR_4'
261
- attr['blender_domain'] = 'CORNER'
262
- attr['gltf_attribute_name'] = 'TANGENT'
263
- attr['get'] = self.get_function()
264
- self.blender_attributes.append(attr)
265
-
266
- # Manage MORPH_POSITION_x
267
- for morph_i, vs in enumerate(self.morph_locs):
268
- attr = {}
269
- attr['blender_attribute_index'] = morph_i
270
- attr['blender_data_type'] = 'FLOAT_VECTOR'
271
- attr['blender_domain'] = 'POINT'
272
- attr['gltf_attribute_name'] = 'MORPH_POSITION_' + str(morph_i)
273
- attr['skip_getting_to_dots'] = True
274
- attr['set'] = self.set_function()
275
- self.blender_attributes.append(attr)
276
-
277
- # Manage MORPH_NORMAL_x
278
- if self.use_morph_normals:
279
- attr = {}
280
- attr['blender_attribute_index'] = morph_i
281
- attr['blender_data_type'] = 'FLOAT_VECTOR'
282
- attr['blender_domain'] = 'CORNER'
283
- attr['gltf_attribute_name'] = 'MORPH_NORMAL_' + str(morph_i)
284
- # No get function is set here, because data are set from NORMALS
285
- self.blender_attributes.append(attr)
286
-
287
- # Manage MORPH_TANGENT_x
288
- # This is a particular case, where we need to have the following data already calculated
289
- # - NORMAL
290
- # - MORPH_NORMAL
291
- # - TANGENT
292
- # So, the following needs to be AFTER the 3 others.
293
- if self.use_morph_tangents:
294
- attr = {}
295
- attr['blender_attribute_index'] = morph_i
296
- attr['blender_data_type'] = 'FLOAT_VECTOR'
297
- attr['blender_domain'] = 'CORNER'
298
- attr['gltf_attribute_name'] = 'MORPH_TANGENT_' + str(morph_i)
299
- attr['gltf_attribute_name_normal'] = "NORMAL"
300
- attr['gltf_attribute_name_morph_normal'] = "MORPH_NORMAL_" + str(morph_i)
301
- attr['gltf_attribute_name_tangent'] = "TANGENT"
302
- attr['skip_getting_to_dots'] = True
303
- attr['set'] = self.set_function()
304
- self.blender_attributes.append(attr)
305
-
306
- for attr in self.blender_attributes:
307
- attr['len'] = gltf2_blender_conversion.get_data_length(attr['blender_data_type'])
308
- attr['type'] = gltf2_blender_conversion.get_numpy_type(attr['blender_data_type'])
309
-
310
- # Now we have all attributes, we can change order if we want
311
- # Note that the glTF specification doesn't say anything about order
312
- # Attributes are defined only by name
313
- # But if user want it in a particular order, he can use this hook to perform it
314
- export_user_extensions('gather_attributes_change', self.export_settings, self.blender_attributes)
315
-
316
- def create_dots_data_structure(self):
317
- # Now that we get all attributes that are going to be exported, create numpy array that will store them
318
- dot_fields = [('vertex_index', np.uint32)]
319
- if self.export_settings['gltf_loose_edges']:
320
- dot_fields_edges = [('vertex_index', np.uint32)]
321
- if self.export_settings['gltf_loose_points']:
322
- dot_fields_points = [('vertex_index', np.uint32)]
323
- for attr in self.blender_attributes:
324
- if 'skip_getting_to_dots' in attr:
325
- continue
326
- for i in range(attr['len']):
327
- dot_fields.append((attr['gltf_attribute_name'] + str(i), attr['type']))
328
- if attr['blender_domain'] != 'POINT':
329
- continue
330
- if self.export_settings['gltf_loose_edges']:
331
- dot_fields_edges.append((attr['gltf_attribute_name'] + str(i), attr['type']))
332
- if self.export_settings['gltf_loose_points']:
333
- dot_fields_points.append((attr['gltf_attribute_name'] + str(i), attr['type']))
334
-
335
- # In Blender there is both per-vert data, like position, and also per-loop
336
- # (loop=corner-of-poly) data, like normals or UVs. glTF only has per-vert
337
- # data, so we need to split Blender verts up into potentially-multiple glTF
338
- # verts.
339
- #
340
- # First, we'll collect a "dot" for every loop: a struct that stores all the
341
- # attributes at that loop, namely the vertex index (which determines all
342
- # per-vert data), and all the per-loop data like UVs, etc.
343
- #
344
- # Each unique dot will become one unique glTF vert.
345
-
346
- self.dots = np.empty(len(self.blender_mesh.loops), dtype=np.dtype(dot_fields))
347
-
348
- # Find loose edges
349
- if self.export_settings['gltf_loose_edges']:
350
- loose_edges = [e for e in self.blender_mesh.edges if e.is_loose]
351
- self.blender_idxs_edges = [vi for e in loose_edges for vi in e.vertices]
352
- self.blender_idxs_edges = np.array(self.blender_idxs_edges, dtype=np.uint32)
353
-
354
- self.dots_edges = np.empty(len(self.blender_idxs_edges), dtype=np.dtype(dot_fields_edges))
355
- self.dots_edges['vertex_index'] = self.blender_idxs_edges
356
-
357
- # Find loose points
358
- if self.export_settings['gltf_loose_points']:
359
- verts_in_edge = set(vi for e in self.blender_mesh.edges for vi in e.vertices)
360
- self.blender_idxs_points = [
361
- vi for vi, _ in enumerate(self.blender_mesh.vertices)
362
- if vi not in verts_in_edge
363
- ]
364
- self.blender_idxs_points = np.array(self.blender_idxs_points, dtype=np.uint32)
365
-
366
- self.dots_points = np.empty(len(self.blender_idxs_points), dtype=np.dtype(dot_fields_points))
367
- self.dots_points['vertex_index'] = self.blender_idxs_points
368
-
369
- def populate_dots_data(self):
370
- corner_vertex_indices = gltf2_blender_conversion.get_attribute(
371
- self.blender_mesh.attributes, '.corner_vert', 'INT', 'CORNER')
372
- if corner_vertex_indices:
373
- vidxs = np.empty(len(self.blender_mesh.loops), dtype=np.intc)
374
- corner_vertex_indices.data.foreach_get('value', vidxs)
375
- self.dots['vertex_index'] = vidxs
376
- del vidxs
377
-
378
- for attr in self.blender_attributes:
379
- if 'skip_getting_to_dots' in attr:
380
- continue
381
- if 'get' not in attr:
382
- continue
383
- attr['get'](attr)
384
-
385
- def primitive_split(self):
386
- # Calculate triangles and sort them into primitives.
387
-
388
- try:
389
- self.blender_mesh.calc_loop_triangles()
390
- loop_indices = np.empty(len(self.blender_mesh.loop_triangles) * 3, dtype=np.uint32)
391
- self.blender_mesh.loop_triangles.foreach_get('loops', loop_indices)
392
- except:
393
- # For some not valid meshes, we can't get loops without errors
394
- # We already displayed a Warning message after validate() check, so here
395
- # we can return without a new one
396
- self.prim_indices = {}
397
- return
398
-
399
- self.prim_indices = {} # maps material index to TRIANGLES-style indices into dots
400
-
401
- if self.use_materials == "NONE": # Only for None. For placeholder and export, keep primitives
402
- # Put all vertices into one primitive
403
- self.prim_indices[-1] = loop_indices
404
-
405
- else:
406
- # Bucket by material index.
407
-
408
- tri_material_idxs = np.empty(len(self.blender_mesh.loop_triangles), dtype=np.uint32)
409
- self.blender_mesh.loop_triangles.foreach_get('material_index', tri_material_idxs)
410
- loop_material_idxs = np.repeat(tri_material_idxs, 3) # material index for every loop
411
- unique_material_idxs = np.unique(tri_material_idxs)
412
- del tri_material_idxs
413
-
414
- for material_idx in unique_material_idxs:
415
- self.prim_indices[material_idx] = loop_indices[loop_material_idxs == material_idx]
416
-
417
- def manage_material_info(self):
418
- # If user defined UVMap as a custom attribute, we need to add it/them in the dots structure and populate data
419
- # So we need to get, for each material, what are these custom attribute
420
- # No choice : We need to retrieve materials here. Anyway, this will be baked, and next call will be quick
421
- # We also need to shuffle Vertex Color data if needed
422
-
423
- new_prim_indices = {}
424
- self.additional_materials = [] # In case of UDIM
425
-
426
- self.uvmap_attribute_lists = []
427
- self.uvmap_attribute_list = [] # For each material # Initialize here, in case we don't have any triangle primitive
428
-
429
- no_materials = True
430
- materials_use_vc = None
431
- warning_already_displayed = False
432
- warning_already_displayed_vc_nodetree = False
433
- for material_idx in self.prim_indices.keys():
434
- base_material, material_info = get_base_material(material_idx, self.materials, self.export_settings)
435
-
436
- # UVMaps
437
- self.uvmap_attribute_list = list(
438
- set([i['value'] for i in material_info["uv_info"].values() if 'type' in i.keys() and i['type'] == "Attribute"]))
439
-
440
- # Check that attributes are not regular UVMaps
441
- self.uvmap_attribute_list = [
442
- i for i in self.uvmap_attribute_list if i not in self.blender_mesh.uv_layers.keys()]
443
-
444
- additional_fields = []
445
- for attr in self.uvmap_attribute_list:
446
- if attr + str(0) not in self.dots.dtype.names: # In case user exports custom attributes, we may have it already
447
- additional_fields.append((attr + str(0), gltf2_blender_conversion.get_numpy_type('FLOAT2')))
448
- additional_fields.append((attr + str(1), gltf2_blender_conversion.get_numpy_type('FLOAT2')))
449
-
450
- if len(additional_fields) > 0:
451
- new_dt = np.dtype(self.dots.dtype.descr + additional_fields)
452
- dots = np.zeros(self.dots.shape, dtype=new_dt)
453
- for f in self.dots.dtype.names:
454
- dots[f] = self.dots[f]
455
-
456
- # Now we need to get data and populate
457
- for attr in self.uvmap_attribute_list:
458
- if attr + str(0) not in self.dots.dtype.names: # In case user exports custom attributes, we may have it already
459
- # Vector in custom Attributes are Vector2 or Vector3 (but keeping only the first two data)
460
- if self.blender_mesh.attributes[attr].domain == "CORNER":
461
- if self.blender_mesh.attributes[attr].data_type == "FLOAT_VECTOR":
462
- data = np.empty(len(self.blender_mesh.loops) *
463
- 3, gltf2_blender_conversion.get_numpy_type('FLOAT2'))
464
- self.blender_mesh.attributes[attr].data.foreach_get('vector', data)
465
- data = data.reshape(-1, 3)
466
- data = data[:, :2]
467
- elif self.blender_mesh.attributes[attr].data_type == "FLOAT2":
468
- # This case should not happen, because we are in CORNER domain / 2D Vector,
469
- # So this attribute is an UVMap
470
- data = np.empty(len(self.blender_mesh.loops) *
471
- 2, gltf2_blender_conversion.get_numpy_type('FLOAT2'))
472
- self.blender_mesh.attributes[attr].data.foreach_get('vector', data)
473
- data = data.reshape(-1, 2)
474
- else:
475
- self.export_settings['log'].warning(
476
- 'We are not managing this case (UVMap as custom attribute for unknown type)')
477
- continue
478
- elif self.blender_mesh.attributes[attr].domain == "POINT":
479
- if self.blender_mesh.attributes[attr].data_type == "FLOAT_VECTOR":
480
- data = np.empty(len(self.blender_mesh.vertices) * 3,
481
- gltf2_blender_conversion.get_numpy_type('FLOAT2'))
482
- self.blender_mesh.attributes[attr].data.foreach_get('vector', data)
483
- data = data.reshape(-1, 3)
484
- data = data[:, :2]
485
- data = data[self.dots['vertex_index']]
486
- elif self.blender_mesh.attributes[attr].data_type == "FLOAT2":
487
- data = np.empty(len(self.blender_mesh.vertices) * 2,
488
- gltf2_blender_conversion.get_numpy_type('FLOAT2'))
489
- self.blender_mesh.attributes[attr].data.foreach_get('vector', data)
490
- data = data.reshape(-1, 2)
491
- data = data[self.dots['vertex_index']]
492
- else:
493
- self.export_settings['log'].warning(
494
- 'We are not managing this case (UVMap as custom attribute for unknown domain)')
495
- continue
496
- # Blender UV space -> glTF UV space
497
- # u,v -> u,1-v
498
- data[:, 1] *= -1
499
- data[:, 1] += 1
500
-
501
- dots[attr + '0'] = data[:, 0]
502
- dots[attr + '1'] = data[:, 1]
503
- del data
504
-
505
- if len(additional_fields) > 0:
506
- self.dots = dots
507
-
508
- if base_material is not None:
509
- no_materials = False
510
-
511
- # There are multiple case to take into account for VC
512
- if self.export_settings['gltf_vertex_color'] == "NONE":
513
- # We don't export any Vertex Color
514
- pass
515
- else:
516
- # There is no Vertex Color in node tree
517
- if material_info['vc_info']['color_type'] is None and material_info['vc_info']['alpha_type'] is None:
518
-
519
- # If user wants to force active vertex color, we need to add it
520
- if (base_material is not None and self.export_settings['gltf_vertex_color'] in ["ACTIVE", "NAME"]) or (
521
- base_material is None and self.export_settings['gltf_active_vertex_color_when_no_material'] is True):
522
- # We need to add the active vertex color as COLOR_0
523
- vc_color_name = None
524
- vc_alpha_name = None
525
-
526
- # Active Vertex Color
527
- if (base_material is not None and self.export_settings['gltf_vertex_color'] == "ACTIVE") or (
528
- base_material is None and self.export_settings['gltf_active_vertex_color_when_no_material'] is True):
529
- if self.blender_mesh.color_attributes.render_color_index != -1:
530
- vc_color_name = self.blender_mesh.color_attributes[self.blender_mesh.color_attributes.render_color_index].name
531
- vc_alpha_name = self.blender_mesh.color_attributes[self.blender_mesh.color_attributes.render_color_index].name
532
- # Named Vertex Color
533
- elif (base_material is not None and self.export_settings['gltf_vertex_color'] == "NAME"):
534
- vc_color_name = self.export_settings['gltf_vertex_color_name'] if self.blender_mesh.color_attributes.find(self.export_settings['gltf_vertex_color_name']) != -1 else None
535
- vc_alpha_name = self.export_settings['gltf_vertex_color_name'] if self.blender_mesh.color_attributes.find(self.export_settings['gltf_vertex_color_name']) != -1 else None
536
-
537
- if vc_color_name is not None:
538
-
539
- vc_key = ""
540
- vc_key += vc_color_name if vc_color_name is not None else ""
541
- vc_key += vc_alpha_name if vc_alpha_name is not None else ""
542
-
543
- if materials_use_vc is not None and materials_use_vc != vc_key:
544
- if warning_already_displayed is False:
545
- self.export_settings['log'].warning(
546
- 'glTF specification does not allow this case (multiple materials with different Vertex Color)')
547
- warning_already_displayed = True
548
- materials_use_vc = vc_key
549
-
550
- elif materials_use_vc is None:
551
- materials_use_vc = vc_key
552
- add_alpha = True # As we are using the active Vertex Color (or named) without checking node tree, we need to add alpha
553
- self.vc_infos.append({
554
- 'color': vc_color_name,
555
- 'alpha': vc_alpha_name,
556
- 'add_alpha': add_alpha,
557
- 'gltf_name': 'COLOR_' + str(self.vc_infos_index),
558
- 'forced': False
559
- })
560
- self.vc_infos_index += 1
561
- else:
562
- pass # Using the same Vertex Color
563
-
564
- elif base_material is not None and self.export_settings['gltf_vertex_color'] == "MATERIAL":
565
- # Check if there is an active Vertex Color in mesh
566
- if warning_already_displayed_vc_nodetree is False and self.blender_mesh.color_attributes.active_color_index != -1:
567
- self.export_settings['log'].warning(
568
- 'The active Vertex Color will not be exported, as it is not used in the node tree of the material')
569
- warning_already_displayed_vc_nodetree = True
570
-
571
- # There is only alpha Vertex Color in node tree
572
- elif material_info['vc_info']['color_type'] is None and material_info['vc_info']['alpha_type'] is not None:
573
- self.export_settings['log'].warning(
574
- 'We are not managing this case for now (Vertex Color alpha without color)')
575
-
576
- # There are some Vertex Color in node tree (or there is no material)
577
- else:
578
- vc_color_name = None
579
- vc_alpha_name = None
580
-
581
- if self.export_settings['gltf_vertex_color'] == "NAME":
582
- # Even if we have something in node tree, we need to use the named Vertex Color
583
- vc_color_name = self.export_settings['gltf_vertex_color_name'] if self.blender_mesh.color_attributes.find(self.export_settings['gltf_vertex_color_name']) != -1 else None
584
- vc_alpha_name = self.export_settings['gltf_vertex_color_name'] if self.blender_mesh.color_attributes.find(self.export_settings['gltf_vertex_color_name']) != -1 else None
585
-
586
- else:
587
- if material_info['vc_info']['color_type'] == "name":
588
- vc_color_name = material_info['vc_info']['color']
589
- elif material_info['vc_info']['color_type'] == "active":
590
- # Get active (render) Vertex Color
591
- if self.blender_mesh.color_attributes.render_color_index != -1:
592
- vc_color_name = self.blender_mesh.color_attributes[self.blender_mesh.color_attributes.render_color_index].name
593
-
594
- if material_info['vc_info']['alpha_type'] == "name":
595
- vc_alpha_name = material_info['vc_info']['alpha']
596
- elif material_info['vc_info']['alpha_type'] == "active":
597
- # Get active (render) Vertex Color
598
- if self.blender_mesh.color_attributes.render_color_index != -1:
599
- vc_alpha_name = self.blender_mesh.color_attributes[self.blender_mesh.color_attributes.render_color_index].name
600
-
601
- if vc_color_name is not None:
602
-
603
- vc_key = ""
604
- vc_key += vc_color_name if vc_color_name is not None else ""
605
- vc_key += vc_alpha_name if vc_alpha_name is not None else ""
606
-
607
- if materials_use_vc is not None and materials_use_vc != vc_key:
608
- if warning_already_displayed is False:
609
- self.export_settings['log'].warning(
610
- 'glTF specification does not allow this case (multiple materials with different Vertex Color)')
611
- warning_already_displayed = True
612
- materials_use_vc = vc_key
613
-
614
- elif materials_use_vc is None:
615
- materials_use_vc = vc_key
616
- add_alpha = vc_alpha_name is not None
617
- if self.export_settings['gltf_vertex_color'] not in ["NAME", "ACTIVE"]:
618
- add_alpha = add_alpha and material_info['vc_info']['alpha_mode'] != "OPAQUE"
619
- self.vc_infos.append({
620
- 'color': vc_color_name,
621
- 'alpha': vc_alpha_name,
622
- 'add_alpha': add_alpha,
623
- 'gltf_name': 'COLOR_' + str(self.vc_infos_index),
624
- 'forced': False
625
- })
626
- self.vc_infos_index += 1
627
-
628
- else:
629
- pass # Using the same Vertex Color
630
-
631
- ##### UDIM #####
632
-
633
- if len(material_info['udim_info'].keys()) == 0:
634
- new_prim_indices[material_idx] = self.prim_indices[material_idx]
635
- self.uvmap_attribute_lists.append(self.uvmap_attribute_list)
636
- self.additional_materials.append(None)
637
- continue
638
-
639
- # We have some UDIM for some texture of this material
640
- # We need to split the mesh into multiple primitives
641
- # We manage only case where all texture are using the same UVMap
642
- # And where UDIM have exactly the same number of tiles (TODO to check?)
643
-
644
- # So, retrieve all uvmaps used by this material
645
- all_uvmaps = {}
646
- for tex in material_info['udim_info'].keys():
647
- if material_info['uv_info'][tex]['type'] == "Active":
648
- index_uvmap = get_active_uvmap_index(self.blender_mesh)
649
- uvmap_name = "TEXCOORD_" + str(index_uvmap)
650
- elif material_info['uv_info'][tex]['type'] == "Fixed":
651
- index_uvmap = self.blender_mesh.uv_layers.find(material_info['uv_info'][tex]['value'])
652
- if index_uvmap < 0:
653
- # Using active index
654
- index_uvmap = get_active_uvmap_index(self.blender_mesh)
655
- uvmap_name = "TEXCOORD_" + str(index_uvmap)
656
- else: # Attribute
657
- # This can be a regular UVMap, or a custom attribute
658
- index_uvmap = self.blender_mesh.uv_layers.find(material_info['uv_info'][tex]['value'])
659
- if index_uvmap < 0:
660
- # This is a custom attribute
661
- uvmap_name = material_info['uv_info'][tex]['value']
662
- else:
663
- uvmap_name = "TEXCOORD_" + str(index_uvmap)
664
- all_uvmaps[tex] = uvmap_name
665
-
666
- if len(set(all_uvmaps.values())) > 1:
667
- self.export_settings['log'].warning('We are not managing this case (multiple UVMap for UDIM)')
668
- new_prim_indices[material_idx] = self.prim_indices[material_idx]
669
- self.uvmap_attribute_lists.append(self.uvmap_attribute_list)
670
- self.additional_materials.append(None)
671
- continue
672
-
673
- self.export_settings['log'].info('Splitting UDIM tiles into different primitives/materials')
674
- # Retrieve UDIM images
675
- tex = list(material_info['udim_info'].keys())[0]
676
- image = material_info['udim_info'][tex]['image']
677
-
678
- new_material_index = len(self.prim_indices.keys())
679
-
680
- # Get UVMap used for UDIM
681
- uvmap_name = all_uvmaps[list(all_uvmaps.keys())[0]]
682
-
683
- # Retrieve tiles number
684
- tiles = [t.number for t in image.tiles]
685
- u_tiles = max([int(str(t)[3:]) for t in tiles])
686
- v_tiles = max([int(str(t)[2:3]) for t in tiles]) + 1
687
-
688
- # We are now going to split the mesh into multiple primitives, based on tiles
689
- # We need to create a new primitive for each tile
690
-
691
- for u in range(u_tiles):
692
- for v in range(v_tiles):
693
-
694
- # Check if this tile exists
695
- if int("10" + str(v) + str(u + 1)) not in tiles:
696
- continue
697
-
698
- # Manage tile limits (inclusive or not), avoiding to have the same vertex
699
- # in two tiles, if the vertex is on the limit
700
- if int("10" + str(v) + str(u + 1 + 1)) in tiles and int("10" + str(v + 1) + str(u + 1)) in tiles:
701
- indices = np.where((self.dots[uvmap_name + '0'] >= u) & (self.dots[uvmap_name + '0'] < (u + 1)) & (
702
- self.dots[uvmap_name + '1'] <= (1 - v)) & (self.dots[uvmap_name + '1'] > 1 - (v + 1)))[0]
703
- elif int("10" + str(v) + str(u + 1 + 1)) not in tiles and int("10" + str(v + 1) + str(u + 1)) in tiles:
704
- indices = np.where((self.dots[uvmap_name + '0'] >= u) & (self.dots[uvmap_name + '0'] <= (u + 1)) & (
705
- self.dots[uvmap_name + '1'] <= (1 - v)) & (self.dots[uvmap_name + '1'] > 1 - (v + 1)))[0]
706
- elif int("10" + str(v) + str(u + 1 + 1)) in tiles and int("10" + str(v + 1) + str(u + 1)) not in tiles:
707
- indices = np.where((self.dots[uvmap_name + '0'] >= u) & (self.dots[uvmap_name + '0'] < (u + 1)) & (
708
- self.dots[uvmap_name + '1'] <= (1 - v)) & (self.dots[uvmap_name + '1'] >= 1 - (v + 1)))[0]
709
- else:
710
- indices = np.where((self.dots[uvmap_name + '0'] >= u) & (self.dots[uvmap_name + '0'] <= (u + 1)) & (
711
- self.dots[uvmap_name + '1'] <= (1 - v)) & (self.dots[uvmap_name + '1'] >= 1 - (v + 1)))[0]
712
-
713
- # If no vertex in this tile, continue
714
- if indices.shape[0] == 0:
715
- continue
716
-
717
- # Reset UVMap to 0-1 : reset to Blener UVMAP => slide to 0-1 => go to glTF UVMap
718
- self.dots[uvmap_name + '1'][indices] -= 1
719
- self.dots[uvmap_name + '1'][indices] *= -1
720
- self.dots[uvmap_name + '0'][indices] -= u
721
- self.dots[uvmap_name + '1'][indices] -= v
722
- self.dots[uvmap_name + '1'][indices] *= -1
723
- self.dots[uvmap_name + '1'][indices] += 1
724
-
725
- # Now, get every triangle, and check that it belongs to this tile
726
- # Assume that we can check only the first vertex of each triangle (=> No
727
- # management of triangle on multiple tiles)
728
- new_triangle_indices = []
729
- for idx, i in enumerate(self.prim_indices[material_idx]):
730
- if idx % 3 == 0 and i in indices:
731
- new_triangle_indices.append(self.prim_indices[material_idx][idx])
732
- new_triangle_indices.append(self.prim_indices[material_idx][idx + 1])
733
- new_triangle_indices.append(self.prim_indices[material_idx][idx + 2])
734
- new_prim_indices[new_material_index] = np.array(new_triangle_indices, dtype=np.uint32)
735
- self.uvmap_attribute_lists.append(self.uvmap_attribute_list)
736
- new_material_index += 1
737
-
738
- # Now we have to create a new material for this tile
739
- # This will be the existing material, but with new textures
740
- # We need to duplicate the material, and add these new textures
741
- new_material = deepcopy(base_material)
742
- get_new_material_texture_shared(base_material, new_material)
743
-
744
- for tex in material_info['udim_info'].keys():
745
- new_tex = gather_udim_texture_info(
746
- material_info['udim_info'][tex]['sockets'][0],
747
- material_info['udim_info'][tex]['sockets'],
748
- {
749
- 'tile': "10" + str(v) + str(u + 1),
750
- 'image': material_info['udim_info'][tex]['image']
751
- },
752
- tex,
753
- self.export_settings)
754
-
755
- if tex == "baseColorTexture":
756
- new_material.pbr_metallic_roughness.base_color_texture = new_tex
757
- elif tex == "normalTexture":
758
- new_material.normal_texture = new_tex
759
- elif tex == "emissiveTexture":
760
- new_material.emissive_texture = new_tex
761
- elif tex == "metallicRoughnessTexture":
762
- new_material.pbr_metallic_roughness.metallic_roughness_texture = new_tex
763
- elif tex == "occlusionTexture":
764
- new_material.occlusion_texture = new_tex
765
- elif tex == "clearcoatTexture":
766
- new_material.extensions["KHR_materials_clearcoat"].extension['clearcoatTexture'] = new_tex
767
- elif tex == "clearcoatRoughnessTexture":
768
- new_material.extensions["KHR_materials_clearcoat"].extension['clearcoatRoughnessTexture'] = new_tex
769
- elif tex == "clearcoatNormalTexture":
770
- new_material.extensions["KHR_materials_clearcoat"].extension['clearcoatNormalTexture'] = new_tex
771
- elif tex == "sheenColorTexture":
772
- new_material.extensions["KHR_materials_sheen"].extension['sheenColorTexture'] = new_tex
773
- elif tex == "sheenRoughnessTexture":
774
- new_material.extensions["KHR_materials_sheen"].extension['sheenRoughnessTexture'] = new_tex
775
- elif tex == "transmissionTexture":
776
- new_material.extensions["KHR_materials_transmission"].extension['transmissionTexture'] = new_tex
777
- elif tex == "thicknessTexture":
778
- new_material.extensions["KHR_materials_volume"].extension['thicknessTexture'] = new_tex
779
- elif tex == "specularTexture":
780
- new_material.extensions["KHR_materials_specular"].extension['specularTexture'] = new_tex
781
- elif tex == "specularColorTexture":
782
- new_material.extensions["KHR_materials_specular"].extension['specularColorTexture'] = new_tex
783
- elif tex == "anisotropyTexture":
784
- new_material.extensions["KHR_materials_anisotropy"].extension['anisotropyTexture'] = new_tex
785
- else:
786
- self.export_settings['log'].warning(
787
- 'We are not managing this case (UDIM for {})'.format(tex))
788
-
789
- self.additional_materials.append((new_material, material_info, int(
790
- str(id(base_material)) + str(u) + str(v)), "10" + str(v) + str(u + 1)))
791
-
792
- # Now, we need to add additional Vertex Color if needed
793
- if self.export_settings['gltf_all_vertex_colors'] is True:
794
- if no_materials is False:
795
- if len(self.vc_infos) == 0 and len(self.blender_mesh.color_attributes) > 0:
796
- # We need to add a fake Vertex Color
797
- self.vc_infos.append({
798
- 'gltf_name': 'COLOR_0',
799
- 'forced': True
800
- })
801
- self.vc_infos_index += 1
802
-
803
- # Now, loop on existing Vertex Color, and add the missing ones
804
- if no_materials is False or (
805
- no_materials is True and self.export_settings['gltf_active_vertex_color_when_no_material'] is True):
806
- for vc in self.blender_mesh.color_attributes:
807
- if vc.name not in [v['color'] for v in self.vc_infos if v['forced'] is False]:
808
- add_alpha = True # As we are using the active Vertex Color without checking node tree, we need to add alpha
809
- self.vc_infos.append({
810
- 'color': vc.name,
811
- 'alpha': vc.name,
812
- 'add_alpha': add_alpha,
813
- 'gltf_name': 'COLOR_' + str(self.vc_infos_index),
814
- 'forced': False
815
- })
816
- self.vc_infos_index += 1
817
-
818
- # Now, we need to populate Vertex Color data
819
- self.__manage_color_attributes()
820
-
821
- self.prim_indices = new_prim_indices
822
-
823
- def primitive_creation_shared(self):
824
- primitives = []
825
- self.dots, shared_dot_indices = fast_structured_np_unique(self.dots, return_inverse=True)
826
-
827
- self.blender_idxs = self.dots['vertex_index']
828
-
829
- self.attributes = {}
830
-
831
- next_texcoor_idx = self.tex_coord_max
832
- uvmap_attributes_index = {}
833
- for attr in self.uvmap_attribute_list:
834
- res = np.empty((len(self.dots), 2), dtype=gltf2_blender_conversion.get_numpy_type('FLOAT2'))
835
- for i in range(2):
836
- res[:, i] = self.dots[attr + str(i)]
837
-
838
- self.attributes["TEXCOORD_" + str(next_texcoor_idx)] = {}
839
- self.attributes["TEXCOORD_" + str(next_texcoor_idx)]["data"] = res
840
- self.attributes["TEXCOORD_" + str(next_texcoor_idx)
841
- ]["component_type"] = gltf2_io_constants.ComponentType.Float
842
- self.attributes["TEXCOORD_" + str(next_texcoor_idx)]["data_type"] = gltf2_io_constants.DataType.Vec2
843
- uvmap_attributes_index[attr] = next_texcoor_idx
844
- next_texcoor_idx += 1
845
-
846
- for attr in self.blender_attributes:
847
- if 'set' in attr:
848
- attr['set'](attr)
849
- else:
850
- self.__set_regular_attribute(self.dots, attr)
851
-
852
- if self.skin:
853
- joints = [[] for _ in range(self.num_joint_sets)]
854
- weights = [[] for _ in range(self.num_joint_sets)]
855
-
856
- for vi in self.blender_idxs:
857
- bones = self.vert_bones[vi]
858
- for j in range(0, 4 * self.num_joint_sets):
859
- if j < len(bones):
860
- joint, weight = bones[j]
861
- else:
862
- joint, weight = 0, 0.0
863
- joints[j // 4].append(joint)
864
- weights[j // 4].append(weight)
865
-
866
- for i, (js, ws) in enumerate(zip(joints, weights)):
867
- self.attributes['JOINTS_%d' % i] = js
868
- self.attributes['WEIGHTS_%d' % i] = ws
869
-
870
- for material_idx, dot_indices in self.prim_indices.items():
871
- indices = shared_dot_indices[dot_indices]
872
-
873
- if len(indices) == 0:
874
- continue
875
-
876
- primitives.append({
877
- # No attribute here, as they are shared across all primitives
878
- 'indices': indices,
879
- 'material': material_idx,
880
- 'uvmap_attributes_index': uvmap_attributes_index
881
- })
882
-
883
- # Manage edges & points primitives.
884
- # One for edges, one for points
885
- # No material for them, so only one primitive for each
886
- has_triangle_primitive = len(primitives) != 0
887
- primitives.extend(self.primitive_creation_edges_and_points())
888
-
889
- self.export_settings['log'].info('Primitives created: %d' % len(primitives))
890
-
891
- return primitives, [None] * len(primitives), self.attributes if has_triangle_primitive else None
892
-
893
- def primitive_creation_not_shared(self):
894
- primitives = []
895
-
896
- for (material_idx, dot_indices), uvmap_attribute_list in zip(
897
- self.prim_indices.items(), self.uvmap_attribute_lists):
898
- # Extract just dots used by this primitive, deduplicate them, and
899
- # calculate indices into this deduplicated list.
900
- self.prim_dots = self.dots[dot_indices]
901
- self.prim_dots, indices = fast_structured_np_unique(self.prim_dots, return_inverse=True)
902
-
903
- if len(self.prim_dots) == 0:
904
- continue
905
-
906
- # Now just move all the data for prim_dots into attribute arrays
907
-
908
- self.attributes = {}
909
-
910
- self.blender_idxs = self.prim_dots['vertex_index']
911
-
912
- for attr in self.blender_attributes:
913
- if 'set' in attr:
914
- attr['set'](attr)
915
- else: # Regular case
916
- self.__set_regular_attribute(self.prim_dots, attr)
917
-
918
- next_texcoor_idx = self.tex_coord_max
919
- uvmap_attributes_index = {}
920
- for attr in uvmap_attribute_list:
921
- res = np.empty((len(self.prim_dots), 2), dtype=gltf2_blender_conversion.get_numpy_type('FLOAT2'))
922
- for i in range(2):
923
- res[:, i] = self.prim_dots[attr + str(i)]
924
-
925
- self.attributes["TEXCOORD_" + str(next_texcoor_idx)] = {}
926
- self.attributes["TEXCOORD_" + str(next_texcoor_idx)]["data"] = res
927
- self.attributes["TEXCOORD_" +
928
- str(next_texcoor_idx)]["component_type"] = gltf2_io_constants.ComponentType.Float
929
- self.attributes["TEXCOORD_" + str(next_texcoor_idx)]["data_type"] = gltf2_io_constants.DataType.Vec2
930
- uvmap_attributes_index[attr] = next_texcoor_idx
931
- next_texcoor_idx += 1
932
-
933
- if self.skin:
934
- joints = [[] for _ in range(self.num_joint_sets)]
935
- weights = [[] for _ in range(self.num_joint_sets)]
936
-
937
- for vi in self.blender_idxs:
938
- bones = self.vert_bones[vi]
939
- for j in range(0, 4 * self.num_joint_sets):
940
- if j < len(bones):
941
- joint, weight = bones[j]
942
- else:
943
- joint, weight = 0, 0.0
944
- joints[j // 4].append(joint)
945
- weights[j // 4].append(weight)
946
-
947
- for i, (js, ws) in enumerate(zip(joints, weights)):
948
- self.attributes['JOINTS_%d' % i] = js
949
- self.attributes['WEIGHTS_%d' % i] = ws
950
-
951
- primitives.append({
952
- 'attributes': self.attributes,
953
- 'indices': indices,
954
- 'material': material_idx,
955
- 'uvmap_attributes_index': uvmap_attributes_index
956
- })
957
-
958
- # Manage edges & points primitives.
959
- # One for edges, one for points
960
- # No material for them, so only one primitive for each
961
- primitives.extend(self.primitive_creation_edges_and_points())
962
-
963
- self.export_settings['log'].info('Primitives created: %d' % len(primitives))
964
-
965
- return primitives
966
-
967
- def primitive_creation_edges_and_points(self):
968
- primitives_edges_points = []
969
-
970
- if self.export_settings['gltf_loose_edges']:
971
-
972
- if self.blender_idxs_edges.shape[0] > 0:
973
- # Export one glTF vert per unique Blender vert in a loose edge
974
- self.blender_idxs = self.blender_idxs_edges
975
- dots_edges, indices = fast_structured_np_unique(self.dots_edges, return_inverse=True)
976
- self.blender_idxs = np.unique(self.blender_idxs_edges)
977
-
978
- self.attributes_edges_points = {}
979
-
980
- for attr in self.blender_attributes:
981
- if attr['blender_domain'] != 'POINT':
982
- continue
983
- if 'set' in attr:
984
- attr['set'](attr, edges_points=True)
985
- else:
986
- res = np.empty((len(dots_edges), attr['len']), dtype=attr['type'])
987
- for i in range(attr['len']):
988
- res[:, i] = dots_edges[attr['gltf_attribute_name'] + str(i)]
989
- self.attributes_edges_points[attr['gltf_attribute_name']] = {}
990
- self.attributes_edges_points[attr['gltf_attribute_name']]["data"] = res
991
- self.attributes_edges_points[attr['gltf_attribute_name']]["component_type"] = gltf2_blender_conversion.get_component_type(
992
- attr['blender_data_type'])
993
- if attr['gltf_attribute_name'].startswith('COLOR_'):
994
- # Because we can have remove the alpha channel, we need to check the
995
- # length of the data, and not be based on the Blender data type
996
- self.attributes_edges_points[attr['gltf_attribute_name']
997
- ]["data_type"] = gltf2_io_constants.DataType.Vec3 if attr['len'] == 3 else gltf2_io_constants.DataType.Vec4
998
- else:
999
- self.attributes_edges_points[attr['gltf_attribute_name']]["data_type"] = gltf2_blender_conversion.get_data_type(
1000
- attr['blender_data_type'])
1001
-
1002
- if self.skin:
1003
- joints = [[] for _ in range(self.num_joint_sets)]
1004
- weights = [[] for _ in range(self.num_joint_sets)]
1005
-
1006
- for vi in self.blender_idxs:
1007
- bones = self.vert_bones[vi]
1008
- for j in range(0, 4 * self.num_joint_sets):
1009
- if j < len(bones):
1010
- joint, weight = bones[j]
1011
- else:
1012
- joint, weight = 0, 0.0
1013
- joints[j // 4].append(joint)
1014
- weights[j // 4].append(weight)
1015
-
1016
- for i, (js, ws) in enumerate(zip(joints, weights)):
1017
- self.attributes_edges_points['JOINTS_%d' % i] = js
1018
- self.attributes_edges_points['WEIGHTS_%d' % i] = ws
1019
-
1020
- primitives_edges_points.append({
1021
- 'attributes': self.attributes_edges_points,
1022
- 'indices': indices,
1023
- 'mode': 1, # LINES
1024
- 'material': 0,
1025
- 'uvmap_attributes_index': {}
1026
- })
1027
- self.additional_materials.append(None)
1028
-
1029
- if self.export_settings['gltf_loose_points']:
1030
-
1031
- if self.blender_idxs_points.shape[0] > 0:
1032
- self.blender_idxs = self.blender_idxs_points
1033
-
1034
- self.attributes_edges_points = {}
1035
-
1036
- for attr in self.blender_attributes:
1037
- if attr['blender_domain'] != 'POINT':
1038
- continue
1039
- if 'set' in attr:
1040
- attr['set'](attr, edges_points=True)
1041
- else:
1042
- res = np.empty((len(self.blender_idxs), attr['len']), dtype=attr['type'])
1043
- for i in range(attr['len']):
1044
- res[:, i] = self.dots_points[attr['gltf_attribute_name'] + str(i)]
1045
- self.attributes_edges_points[attr['gltf_attribute_name']] = {}
1046
- self.attributes_edges_points[attr['gltf_attribute_name']]["data"] = res
1047
- self.attributes_edges_points[attr['gltf_attribute_name']]["component_type"] = gltf2_blender_conversion.get_component_type(
1048
- attr['blender_data_type'])
1049
- if attr['gltf_attribute_name'].startswith('COLOR_'):
1050
- # Because we can have remove the alpha channel, we need to check the
1051
- # length of the data, and not be based on the Blender data type
1052
- self.attributes_edges_points[attr['gltf_attribute_name']
1053
- ]["data_type"] = gltf2_io_constants.DataType.Vec3 if attr['len'] == 3 else gltf2_io_constants.DataType.Vec4
1054
- else:
1055
- self.attributes_edges_points[attr['gltf_attribute_name']]["data_type"] = gltf2_blender_conversion.get_data_type(
1056
- attr['blender_data_type'])
1057
-
1058
- if self.skin:
1059
- joints = [[] for _ in range(self.num_joint_sets)]
1060
- weights = [[] for _ in range(self.num_joint_sets)]
1061
-
1062
- for vi in self.blender_idxs:
1063
- bones = self.vert_bones[vi]
1064
- for j in range(0, 4 * self.num_joint_sets):
1065
- if j < len(bones):
1066
- joint, weight = bones[j]
1067
- else:
1068
- joint, weight = 0, 0.0
1069
- joints[j // 4].append(joint)
1070
- weights[j // 4].append(weight)
1071
-
1072
- for i, (js, ws) in enumerate(zip(joints, weights)):
1073
- self.attributes_edges_points['JOINTS_%d' % i] = js
1074
- self.attributes_edges_points['WEIGHTS_%d' % i] = ws
1075
-
1076
- primitives_edges_points.append({
1077
- 'attributes': self.attributes_edges_points,
1078
- 'mode': 0, # POINTS
1079
- 'material': 0,
1080
- 'uvmap_attributes_index': {}
1081
- })
1082
- self.additional_materials.append(None)
1083
-
1084
- return primitives_edges_points
1085
-
1086
- ################################## Get ##################################################
1087
-
1088
- def __get_positions(self):
1089
- self.locs = np.empty(len(self.blender_mesh.vertices) * 3, dtype=np.float32)
1090
- if self.key_blocks:
1091
- source = self.key_blocks[0].relative_key.points
1092
- foreach_attribute = 'co'
1093
- else:
1094
- position_attribute = gltf2_blender_conversion.get_attribute(
1095
- self.blender_mesh.attributes, 'position', 'FLOAT_VECTOR', 'POINT')
1096
- source = position_attribute.data if position_attribute else None
1097
- foreach_attribute = 'vector'
1098
- if source:
1099
- source.foreach_get(foreach_attribute, self.locs)
1100
- self.locs = self.locs.reshape(len(self.blender_mesh.vertices), 3)
1101
-
1102
- self.morph_locs = []
1103
- for key_block in self.key_blocks:
1104
- vs = np.empty(len(self.blender_mesh.vertices) * 3, dtype=np.float32)
1105
- key_block.points.foreach_get('co', vs)
1106
- vs = vs.reshape(len(self.blender_mesh.vertices), 3)
1107
- self.morph_locs.append(vs)
1108
-
1109
- # Transform for skinning
1110
- if self.armature and self.blender_object:
1111
- # apply_matrix = armature.matrix_world.inverted_safe() @ blender_object.matrix_world
1112
- # loc_transform = armature.matrix_world @ apply_matrix
1113
-
1114
- loc_transform = self.blender_object.matrix_world
1115
- self.locs[:] = PrimitiveCreator.apply_mat_to_all(loc_transform, self.locs)
1116
- for vs in self.morph_locs:
1117
- vs[:] = PrimitiveCreator.apply_mat_to_all(loc_transform, vs)
1118
-
1119
- # glTF stores deltas in morph targets
1120
- for vs in self.morph_locs:
1121
- vs -= self.locs
1122
- # Some invalid mesh can have NaN value in SK, so replace them by 0, avoid crash
1123
- np.nan_to_num(vs, copy=False)
1124
-
1125
- if self.export_settings['gltf_yup']:
1126
- PrimitiveCreator.zup2yup(self.locs)
1127
- for vs in self.morph_locs:
1128
- PrimitiveCreator.zup2yup(vs)
1129
-
1130
- def get_function(self):
1131
-
1132
- def getting_function(attr):
1133
- if attr['gltf_attribute_name'].startswith("_"):
1134
- self.__get_layer_attribute(attr)
1135
- elif attr['gltf_attribute_name'].startswith("TEXCOORD_"):
1136
- self.__get_uvs_attribute(int(attr['gltf_attribute_name'].split("_")[-1]), attr)
1137
- elif attr['gltf_attribute_name'] == "NORMAL":
1138
- self.__get_normal_attribute(attr)
1139
- elif attr['gltf_attribute_name'] == "TANGENT":
1140
- self.__get_tangent_attribute(attr)
1141
-
1142
- return getting_function
1143
-
1144
- def __manage_color_attributes(self):
1145
- if len(self.vc_infos) == 0:
1146
- return
1147
-
1148
- # Creating new fields in dots structure
1149
- additional_fields = []
1150
- additional_fields_edges = []
1151
- additional_fields_points = []
1152
-
1153
- for vc in self.vc_infos:
1154
- if vc['forced'] is False:
1155
-
1156
- blender_color_idx = self.blender_mesh.color_attributes.find(vc['color'])
1157
- if blender_color_idx < 0:
1158
- continue
1159
-
1160
- max_index = 4 if vc['add_alpha'] else 3
1161
- for i in range(max_index):
1162
- # Must calculate the type of the field : FLOAT_COLOR or BYTE_COLOR
1163
- additional_fields.append(
1164
- (vc['gltf_name'] + str(i),
1165
- gltf2_blender_conversion.get_numpy_type(
1166
- 'FLOAT_COLOR' if max_index == 3 else 'BYTE_COLOR')))
1167
-
1168
- if self.export_settings['gltf_loose_edges']:
1169
- for i in range(max_index):
1170
- # Must calculate the type of the field : FLOAT_COLOR or BYTE_COLOR
1171
- additional_fields_edges.append(
1172
- (vc['gltf_name'] + str(i),
1173
- gltf2_blender_conversion.get_numpy_type(
1174
- 'FLOAT_COLOR' if max_index == 3 else 'BYTE_COLOR')))
1175
-
1176
- if self.export_settings['gltf_loose_points']:
1177
- for i in range(max_index):
1178
- # Must calculate the type of the field : FLOAT_COLOR or BYTE_COLOR
1179
- additional_fields_points.append(
1180
- (vc['gltf_name'] + str(i),
1181
- gltf2_blender_conversion.get_numpy_type(
1182
- 'FLOAT_COLOR' if max_index == 3 else 'BYTE_COLOR')))
1183
-
1184
- else:
1185
- # Forced Vertex Color
1186
- max_index = 4
1187
- # To reduce the file size, using a normalized unsigned byte attribute filled with 255.
1188
- for i in range(max_index):
1189
- additional_fields.append(
1190
- (vc['gltf_name'] + str(i), gltf2_blender_conversion.get_numpy_type('UNSIGNED_BYTE')))
1191
-
1192
- if self.export_settings['gltf_loose_edges']:
1193
- for i in range(max_index):
1194
- additional_fields_edges.append(
1195
- (vc['gltf_name'] + str(i), gltf2_blender_conversion.get_numpy_type('UNSIGNED_BYTE')))
1196
-
1197
- if self.export_settings['gltf_loose_points']:
1198
- for i in range(max_index):
1199
- additional_fields_points.append(
1200
- (vc['gltf_name'] + str(i), gltf2_blender_conversion.get_numpy_type('UNSIGNED_BYTE')))
1201
-
1202
- # Keep the existing custom attribute
1203
- # Data will be exported twice, one for COLOR_O, one for the custom attribute
1204
-
1205
- new_dt = np.dtype(self.dots.dtype.descr + additional_fields)
1206
- dots = np.zeros(self.dots.shape, dtype=new_dt)
1207
- for f in self.dots.dtype.names:
1208
- dots[f] = self.dots[f]
1209
-
1210
- self.dots = dots
1211
-
1212
- if self.export_settings['gltf_loose_edges']:
1213
- new_dt = np.dtype(self.dots_edges.dtype.descr + additional_fields_edges)
1214
- dots_edges = np.zeros(self.dots_edges.shape, dtype=new_dt)
1215
- for f in self.dots_edges.dtype.names:
1216
- dots_edges[f] = self.dots_edges[f]
1217
-
1218
- self.dots_edges = dots_edges
1219
-
1220
- if self.export_settings['gltf_loose_points']:
1221
- new_dt = np.dtype(self.dots_points.dtype.descr + additional_fields_points)
1222
- dots_points = np.zeros(self.dots_points.shape, dtype=new_dt)
1223
- for f in self.dots_points.dtype.names:
1224
- dots_points[f] = self.dots_points[f]
1225
-
1226
- self.dots_points = dots_points
1227
-
1228
- # Now, retrieve data, and populate the new fields
1229
- for vc in self.vc_infos:
1230
- if vc['forced'] is False:
1231
-
1232
- blender_color_idx = self.blender_mesh.color_attributes.find(vc['color'])
1233
- if blender_color_idx < 0:
1234
- continue
1235
-
1236
- attr = self.blender_mesh.color_attributes[blender_color_idx]
1237
-
1238
- max_index = 4 if vc['add_alpha'] else 3
1239
-
1240
- # Get data
1241
- data_dots, data_dots_edges, data_dots_points = self.__get_color_attribute_data(attr)
1242
-
1243
- # Get data for alpha if needed
1244
- if vc['add_alpha']:
1245
- blender_alpha_idx = self.blender_mesh.color_attributes.find(vc['alpha'])
1246
- if blender_alpha_idx >= 0:
1247
- attr_alpha = self.blender_mesh.color_attributes[blender_alpha_idx]
1248
- data_dots_alpha, data_dots_edges_alpha, data_dots_points_alpha = self.__get_color_attribute_data(
1249
- attr_alpha)
1250
- # Merging data
1251
- data_dots[:, 3] = data_dots_alpha[:, 3]
1252
- if data_dots_edges is not None:
1253
- data_dots_edges[:, 3] = data_dots_edges_alpha[:, 3]
1254
- if data_dots_points is not None:
1255
- data_dots_points[:, 3] = data_dots_points_alpha[:, 3]
1256
-
1257
- # colors are already linear, no need to switch color space
1258
- for i in range(max_index):
1259
- self.dots[vc['gltf_name'] + str(i)] = data_dots[:, i]
1260
- if self.export_settings['gltf_loose_edges'] and attr.domain == "POINT":
1261
- self.dots_edges[vc['gltf_name'] + str(i)] = data_dots_edges[:, i]
1262
- if self.export_settings['gltf_loose_points'] and attr.domain == "POINT":
1263
- self.dots_points[vc['gltf_name'] + str(i)] = data_dots_points[:, i]
1264
-
1265
- # Add COLOR_x in attribute list
1266
- attr_color_x = {}
1267
- attr_color_x['blender_data_type'] = 'FLOAT_COLOR' if max_index == 3 else 'BYTE_COLOR'
1268
- attr_color_x['blender_domain'] = attr.domain
1269
- attr_color_x['gltf_attribute_name'] = vc['gltf_name']
1270
- attr_color_x['len'] = max_index # 3 or 4, depending if we have alpha
1271
- attr_color_x['type'] = gltf2_blender_conversion.get_numpy_type(attr_color_x['blender_data_type'])
1272
- attr_color_x['component_type'] = gltf2_blender_conversion.get_component_type(
1273
- attr_color_x['blender_data_type'])
1274
- attr_color_x['data_type'] = gltf2_io_constants.DataType.Vec3 if max_index == 3 else gltf2_io_constants.DataType.Vec4
1275
-
1276
- self.blender_attributes.append(attr_color_x)
1277
-
1278
- else:
1279
- # Forced Vertex Color
1280
- max_index = 4
1281
- # To reduce the file size, using a normalized unsigned byte attribute filled with 255.
1282
- for i in range(max_index):
1283
- self.dots[vc['gltf_name'] + str(i)] = 255
1284
- if self.export_settings['gltf_loose_edges']:
1285
- self.dots_edges[vc['gltf_name'] + str(i)] = 255
1286
- if self.export_settings['gltf_loose_points']:
1287
- self.dots_points[vc['gltf_name'] + str(i)] = 255
1288
-
1289
- # Add COLOR_0 in attribute list
1290
- attr_color_x = {}
1291
- attr_color_x['blender_data_type'] = 'UNSIGNED_BYTE'
1292
- attr_color_x['blender_domain'] = "POINT"
1293
- attr_color_x['gltf_attribute_name'] = vc['gltf_name']
1294
- attr_color_x['len'] = max_index # 3
1295
- attr_color_x['type'] = gltf2_blender_conversion.get_numpy_type(attr_color_x['blender_data_type'])
1296
- attr_color_x['component_type'] = gltf2_blender_conversion.get_component_type(
1297
- attr_color_x['blender_data_type'])
1298
- attr_color_x['data_type'] = gltf2_io_constants.DataType.Vec4
1299
-
1300
- self.blender_attributes.append(attr_color_x)
1301
-
1302
- def __get_color_attribute_data(self, attr):
1303
- data_dots_edges = None
1304
- data_dots_points = None
1305
-
1306
- if attr.domain == "POINT":
1307
- colors = np.empty(len(self.blender_mesh.vertices) * 4, dtype=np.float32)
1308
- elif attr.domain == "CORNER":
1309
- colors = np.empty(len(self.blender_mesh.loops) * 4, dtype=np.float32)
1310
- attr.data.foreach_get('color', colors)
1311
- if attr.domain == "POINT":
1312
- colors = colors.reshape(-1, 4)
1313
- data_dots = colors[self.dots['vertex_index']]
1314
- if self.export_settings['gltf_loose_edges']:
1315
- data_dots_edges = colors[self.dots_edges['vertex_index']]
1316
- if self.export_settings['gltf_loose_points']:
1317
- data_dots_points = colors[self.dots_points['vertex_index']]
1318
-
1319
- elif attr.domain == "CORNER":
1320
- colors = colors.reshape(-1, 4)
1321
- data_dots = colors
1322
-
1323
- del colors
1324
-
1325
- return data_dots, data_dots_edges, data_dots_points
1326
-
1327
- def __get_layer_attribute(self, attr):
1328
- if attr['blender_domain'] in ['CORNER']:
1329
- data = np.empty(len(self.blender_mesh.loops) * attr['len'], dtype=attr['type'])
1330
- elif attr['blender_domain'] in ['POINT']:
1331
- data = np.empty(len(self.blender_mesh.vertices) * attr['len'], dtype=attr['type'])
1332
- elif attr['blender_domain'] in ['EDGE']:
1333
- data = np.empty(len(self.blender_mesh.edges) * attr['len'], dtype=attr['type'])
1334
- elif attr['blender_domain'] in ['FACE']:
1335
- data = np.empty(len(self.blender_mesh.polygons) * attr['len'], dtype=attr['type'])
1336
- else:
1337
- self.export_settings['log'].error("domain not known")
1338
-
1339
- if attr['blender_data_type'] == "BYTE_COLOR":
1340
- self.blender_mesh.attributes[attr['blender_attribute_index']].data.foreach_get('color', data)
1341
- data = data.reshape(-1, attr['len'])
1342
- elif attr['blender_data_type'] == "INT8":
1343
- self.blender_mesh.attributes[attr['blender_attribute_index']].data.foreach_get('value', data)
1344
- data = data.reshape(-1, attr['len'])
1345
- elif attr['blender_data_type'] == "FLOAT2":
1346
- self.blender_mesh.attributes[attr['blender_attribute_index']].data.foreach_get('vector', data)
1347
- data = data.reshape(-1, attr['len'])
1348
- elif attr['blender_data_type'] == "BOOLEAN":
1349
- self.blender_mesh.attributes[attr['blender_attribute_index']].data.foreach_get('value', data)
1350
- data = data.reshape(-1, attr['len'])
1351
- elif attr['blender_data_type'] == "STRING":
1352
- self.blender_mesh.attributes[attr['blender_attribute_index']].data.foreach_get('value', data)
1353
- data = data.reshape(-1, attr['len'])
1354
- elif attr['blender_data_type'] == "FLOAT_COLOR":
1355
- self.blender_mesh.attributes[attr['blender_attribute_index']].data.foreach_get('color', data)
1356
- data = data.reshape(-1, attr['len'])
1357
- elif attr['blender_data_type'] == "FLOAT_VECTOR":
1358
- self.blender_mesh.attributes[attr['blender_attribute_index']].data.foreach_get('vector', data)
1359
- data = data.reshape(-1, attr['len'])
1360
- elif attr['blender_data_type'] == "QUATERNION":
1361
- self.blender_mesh.attributes[attr['blender_attribute_index']].data.foreach_get('value', data)
1362
- data = data.reshape(-1, attr['len'])
1363
- elif attr['blender_data_type'] == "FLOAT4X4":
1364
- self.blender_mesh.attributes[attr['blender_attribute_index']].data.foreach_get('value', data)
1365
- data = data.reshape(-1, attr['len'])
1366
- elif attr['blender_data_type'] == "FLOAT_VECTOR_4": # Specific case for tangent
1367
- pass
1368
- elif attr['blender_data_type'] == "INT":
1369
- self.blender_mesh.attributes[attr['blender_attribute_index']].data.foreach_get('value', data)
1370
- data = data.reshape(-1, attr['len'])
1371
- elif attr['blender_data_type'] == "FLOAT":
1372
- self.blender_mesh.attributes[attr['blender_attribute_index']].data.foreach_get('value', data)
1373
- data = data.reshape(-1, attr['len'])
1374
- else:
1375
- self.export_settings['log'].error("blender type not found " + attr['blender_data_type'])
1376
-
1377
- if attr['blender_domain'] in ['CORNER']:
1378
- for i in range(attr['len']):
1379
- self.dots[attr['gltf_attribute_name'] + str(i)] = data[:, i]
1380
- elif attr['blender_domain'] in ['POINT']:
1381
- if attr['len'] > 1:
1382
- data = data.reshape(-1, attr['len'])
1383
- data_dots = data[self.dots['vertex_index']]
1384
- if self.export_settings['gltf_loose_edges']:
1385
- data_dots_edges = data[self.dots_edges['vertex_index']]
1386
- if self.export_settings['gltf_loose_points']:
1387
- data_dots_points = data[self.dots_points['vertex_index']]
1388
- for i in range(attr['len']):
1389
- self.dots[attr['gltf_attribute_name'] + str(i)] = data_dots[:, i]
1390
- if self.export_settings['gltf_loose_edges']:
1391
- self.dots_edges[attr['gltf_attribute_name'] + str(i)] = data_dots_edges[:, i]
1392
- if self.export_settings['gltf_loose_points']:
1393
- self.dots_points[attr['gltf_attribute_name'] + str(i)] = data_dots_points[:, i]
1394
- elif attr['blender_domain'] in ['EDGE']:
1395
- # No edge attribute exports
1396
- pass
1397
- elif attr['blender_domain'] in ['FACE']:
1398
- if attr['len'] > 1:
1399
- data = data.reshape(-1, attr['len'])
1400
- # data contains face attribute, and is len(faces) long
1401
- # We need to dispatch these len(faces) attribute in each dots lines
1402
- data_attr = np.empty(self.dots.shape[0] * attr['len'], dtype=attr['type'])
1403
- data_attr = data_attr.reshape(-1, attr['len'])
1404
- for idx, poly in enumerate(self.blender_mesh.polygons):
1405
- data_attr[list(poly.loop_indices)] = data[idx]
1406
- data_attr = data_attr.reshape(-1, attr['len'])
1407
- for i in range(attr['len']):
1408
- self.dots[attr['gltf_attribute_name'] + str(i)] = data_attr[:, i]
1409
-
1410
- else:
1411
- self.export_settings['log'].error("domain not known")
1412
-
1413
- def __get_uvs_attribute(self, blender_uv_idx, attr):
1414
- layer = self.blender_mesh.uv_layers[blender_uv_idx]
1415
- uvs = np.empty(len(self.blender_mesh.loops) * 2, dtype=np.float32)
1416
- layer.uv.foreach_get('vector', uvs)
1417
- uvs = uvs.reshape(len(self.blender_mesh.loops), 2)
1418
-
1419
- # Blender UV space -> glTF UV space
1420
- # u,v -> u,1-v
1421
- uvs[:, 1] *= -1
1422
- uvs[:, 1] += 1
1423
-
1424
- self.dots[attr['gltf_attribute_name'] + '0'] = uvs[:, 0]
1425
- self.dots[attr['gltf_attribute_name'] + '1'] = uvs[:, 1]
1426
- del uvs
1427
-
1428
- def __get_normals(self):
1429
- """Get normal for each loop."""
1430
- key_blocks = self.key_blocks if self.use_morph_normals else []
1431
- if key_blocks:
1432
- self.normals = key_blocks[0].relative_key.normals_split_get()
1433
- self.normals = np.array(self.normals, dtype=np.float32)
1434
- else:
1435
- self.normals = np.empty(len(self.blender_mesh.loops) * 3, dtype=np.float32)
1436
- self.blender_mesh.corner_normals.foreach_get('vector', self.normals)
1437
-
1438
- self.normals = self.normals.reshape(len(self.blender_mesh.loops), 3)
1439
-
1440
- self.normals = np.round(self.normals, ROUNDING_DIGIT)
1441
- # Force normalization of normals in case some normals are not (why ?)
1442
- PrimitiveCreator.normalize_vecs(self.normals)
1443
-
1444
- self.morph_normals = []
1445
- for key_block in key_blocks:
1446
- ns = np.array(key_block.normals_split_get(), dtype=np.float32)
1447
- ns = ns.reshape(len(self.blender_mesh.loops), 3)
1448
- ns = np.round(ns, ROUNDING_DIGIT)
1449
- self.morph_normals.append(ns)
1450
-
1451
- # Transform for skinning
1452
- if self.armature and self.blender_object:
1453
- apply_matrix = (self.armature.matrix_world.inverted_safe() @ self.blender_object.matrix_world)
1454
- apply_matrix = apply_matrix.to_3x3().inverted_safe().transposed()
1455
- normal_transform = self.armature.matrix_world.to_3x3() @ apply_matrix
1456
-
1457
- self.normals[:] = PrimitiveCreator.apply_mat_to_all(normal_transform, self.normals)
1458
- PrimitiveCreator.normalize_vecs(self.normals)
1459
- for ns in self.morph_normals:
1460
- ns[:] = PrimitiveCreator.apply_mat_to_all(normal_transform, ns)
1461
- PrimitiveCreator.normalize_vecs(ns)
1462
-
1463
- for ns in [self.normals, *self.morph_normals]:
1464
- # Replace zero normals with the unit UP vector.
1465
- # Seems to happen sometimes with degenerate tris?
1466
- is_zero = ~ns.any(axis=1)
1467
- ns[is_zero, 2] = 1
1468
-
1469
- # glTF stores deltas in morph targets
1470
- for ns in self.morph_normals:
1471
- ns -= self.normals
1472
-
1473
- if self.export_settings['gltf_yup']:
1474
- PrimitiveCreator.zup2yup(self.normals)
1475
- for ns in self.morph_normals:
1476
- PrimitiveCreator.zup2yup(ns)
1477
-
1478
- def __get_normal_attribute(self, attr):
1479
- self.__get_normals()
1480
- self.dots[attr['gltf_attribute_name'] + "0"] = self.normals[:, 0]
1481
- self.dots[attr['gltf_attribute_name'] + "1"] = self.normals[:, 1]
1482
- self.dots[attr['gltf_attribute_name'] + "2"] = self.normals[:, 2]
1483
-
1484
- if self.use_morph_normals:
1485
- for morph_i, ns in enumerate(self.morph_normals):
1486
- self.dots[attr['gltf_attribute_name_morph'] + str(morph_i) + "0"] = ns[:, 0]
1487
- self.dots[attr['gltf_attribute_name_morph'] + str(morph_i) + "1"] = ns[:, 1]
1488
- self.dots[attr['gltf_attribute_name_morph'] + str(morph_i) + "2"] = ns[:, 2]
1489
- del self.normals
1490
- del self.morph_normals
1491
-
1492
- def __get_tangent_attribute(self, attr):
1493
- self.__get_tangents()
1494
- self.dots[attr['gltf_attribute_name'] + "0"] = self.tangents[:, 0]
1495
- self.dots[attr['gltf_attribute_name'] + "1"] = self.tangents[:, 1]
1496
- self.dots[attr['gltf_attribute_name'] + "2"] = self.tangents[:, 2]
1497
- del self.tangents
1498
- self.__get_bitangent_signs()
1499
- self.dots[attr['gltf_attribute_name'] + "3"] = self.signs
1500
- del self.signs
1501
-
1502
- def __get_tangents(self):
1503
- """Get an array of the tangent for each loop."""
1504
- self.tangents = np.empty(len(self.blender_mesh.loops) * 3, dtype=np.float32)
1505
- self.blender_mesh.loops.foreach_get('tangent', self.tangents)
1506
- self.tangents = self.tangents.reshape(len(self.blender_mesh.loops), 3)
1507
- self.tangents = np.round(self.tangents, ROUNDING_DIGIT)
1508
-
1509
- # Transform for skinning
1510
- if self.armature and self.blender_object:
1511
- apply_matrix = self.armature.matrix_world.inverted_safe() @ self.blender_object.matrix_world
1512
- tangent_transform = apply_matrix.to_quaternion().to_matrix()
1513
- self.tangents = PrimitiveCreator.apply_mat_to_all(tangent_transform, self.tangents)
1514
- PrimitiveCreator.normalize_vecs(self.tangents)
1515
- self.tangents = np.round(self.tangents, ROUNDING_DIGIT)
1516
-
1517
- if self.export_settings['gltf_yup']:
1518
- PrimitiveCreator.zup2yup(self.tangents)
1519
-
1520
- def __get_bitangent_signs(self):
1521
- self.signs = np.empty(len(self.blender_mesh.loops), dtype=np.float32)
1522
- self.blender_mesh.loops.foreach_get('bitangent_sign', self.signs)
1523
-
1524
- # Transform for skinning
1525
- if self.armature and self.blender_object:
1526
- # Bitangent signs should flip when handedness changes
1527
- # TODO: confirm
1528
- apply_matrix = self.armature.matrix_world.inverted_safe() @ self.blender_object.matrix_world
1529
- tangent_transform = apply_matrix.to_quaternion().to_matrix()
1530
- flipped = tangent_transform.determinant() < 0
1531
- if flipped:
1532
- self.signs *= -1
1533
-
1534
- # No change for Zup -> Yup
1535
-
1536
- def __get_bone_data(self):
1537
-
1538
- self.need_neutral_bone = False
1539
- min_influence = 0.0001
1540
-
1541
- joint_name_to_index = {joint.name: index for index, joint in enumerate(self.skin.joints)}
1542
- group_to_joint = [joint_name_to_index.get(g.name) for g in self.blender_vertex_groups]
1543
-
1544
- # List of (joint, weight) pairs for each vert
1545
- self.vert_bones = []
1546
- max_num_influences = 0
1547
-
1548
- for vertex in self.blender_mesh.vertices:
1549
- bones = []
1550
- if vertex.groups:
1551
- for group_element in vertex.groups:
1552
- weight = group_element.weight
1553
- if weight <= min_influence:
1554
- continue
1555
- try:
1556
- joint = group_to_joint[group_element.group]
1557
- except Exception:
1558
- continue
1559
- if joint is None:
1560
- continue
1561
- bones.append((joint, weight))
1562
- bones.sort(key=lambda x: x[1], reverse=True)
1563
- if not bones:
1564
- # Is not assign to any bone
1565
- bones = ((len(self.skin.joints), 1.0),) # Assign to a joint that will be created later
1566
- self.need_neutral_bone = True
1567
- self.vert_bones.append(bones)
1568
- if len(bones) > max_num_influences:
1569
- max_num_influences = len(bones)
1570
-
1571
- # How many joint sets do we need? 1 set = 4 influences
1572
- self.num_joint_sets = (max_num_influences + 3) // 4
1573
-
1574
- ##################################### Set ###################################
1575
- def set_function(self):
1576
-
1577
- def setting_function(attr, edges_points=False):
1578
- if attr['gltf_attribute_name'] == "POSITION":
1579
- self.__set_positions_attribute(attr, edges_points=edges_points)
1580
- elif attr['gltf_attribute_name'].startswith("MORPH_POSITION_"):
1581
- self.__set_morph_locs_attribute(attr, edges_points=edges_points)
1582
- elif attr['gltf_attribute_name'].startswith("MORPH_TANGENT_"):
1583
- self.__set_morph_tangent_attribute(attr, edges_points=edges_points)
1584
-
1585
- return setting_function
1586
-
1587
- def __set_positions_attribute(self, attr, edges_points=False):
1588
- if edges_points is False:
1589
- self.attributes[attr['gltf_attribute_name']] = {}
1590
- self.attributes[attr['gltf_attribute_name']]["data"] = self.locs[self.blender_idxs]
1591
- self.attributes[attr['gltf_attribute_name']]["data_type"] = gltf2_io_constants.DataType.Vec3
1592
- self.attributes[attr['gltf_attribute_name']]["component_type"] = gltf2_io_constants.ComponentType.Float
1593
- else:
1594
- self.attributes_edges_points[attr['gltf_attribute_name']] = {}
1595
- self.attributes_edges_points[attr['gltf_attribute_name']]["data"] = self.locs[self.blender_idxs]
1596
- self.attributes_edges_points[attr['gltf_attribute_name']]["data_type"] = gltf2_io_constants.DataType.Vec3
1597
- self.attributes_edges_points[attr['gltf_attribute_name']
1598
- ]["component_type"] = gltf2_io_constants.ComponentType.Float
1599
-
1600
- def __set_morph_locs_attribute(self, attr, edges_points=False):
1601
- if edges_points is False:
1602
- self.attributes[attr['gltf_attribute_name']] = {}
1603
- self.attributes[attr['gltf_attribute_name']
1604
- ]["data"] = self.morph_locs[attr['blender_attribute_index']][self.blender_idxs]
1605
- else:
1606
- self.attributes_edges_points[attr['gltf_attribute_name']] = {}
1607
- self.attributes_edges_points[attr['gltf_attribute_name']
1608
- ]["data"] = self.morph_locs[attr['blender_attribute_index']][self.blender_idxs]
1609
-
1610
- def __set_morph_tangent_attribute(self, attr, edges_points=False):
1611
- # Morph tangent are after these 3 others, so, they are already calculated
1612
- self.normals = self.attributes[attr['gltf_attribute_name_normal']]["data"]
1613
- self.morph_normals = self.attributes[attr['gltf_attribute_name_morph_normal']]["data"]
1614
- self.tangents = self.attributes[attr['gltf_attribute_name_tangent']]["data"]
1615
-
1616
- self.__calc_morph_tangents()
1617
- if edges_points is False:
1618
- self.attributes[attr['gltf_attribute_name']] = {}
1619
- self.attributes[attr['gltf_attribute_name']]["data"] = self.morph_tangents
1620
- else:
1621
- self.attributes_edges_points[attr['gltf_attribute_name']] = {}
1622
- self.attributes_edges_points[attr['gltf_attribute_name']]["data"] = self.morph_tangents
1623
-
1624
- def __calc_morph_tangents(self):
1625
- # TODO: check if this works
1626
- self.morph_tangents = np.empty((len(self.normals), 3), dtype=np.float32)
1627
-
1628
- for i in range(len(self.normals)):
1629
- n = Vector(self.normals[i])
1630
- morph_n = n + Vector(self.morph_normals[i]) # convert back to non-delta
1631
- t = Vector(self.tangents[i, :3])
1632
-
1633
- rotation = morph_n.rotation_difference(n)
1634
-
1635
- t_morph = Vector(t)
1636
- t_morph.rotate(rotation)
1637
- self.morph_tangents[i] = t_morph - t # back to delta
1638
-
1639
- def __set_regular_attribute(self, dots, attr):
1640
- res = np.empty((len(dots), attr['len']), dtype=attr['type'])
1641
- for i in range(attr['len']):
1642
- res[:, i] = dots[attr['gltf_attribute_name'] + str(i)]
1643
- self.attributes[attr['gltf_attribute_name']] = {}
1644
- self.attributes[attr['gltf_attribute_name']]["data"] = res
1645
- if attr['gltf_attribute_name'] == "NORMAL":
1646
- self.attributes[attr['gltf_attribute_name']]["component_type"] = gltf2_io_constants.ComponentType.Float
1647
- self.attributes[attr['gltf_attribute_name']]["data_type"] = gltf2_io_constants.DataType.Vec3
1648
- elif attr['gltf_attribute_name'] == "TANGENT":
1649
- self.attributes[attr['gltf_attribute_name']]["component_type"] = gltf2_io_constants.ComponentType.Float
1650
- self.attributes[attr['gltf_attribute_name']]["data_type"] = gltf2_io_constants.DataType.Vec4
1651
- elif attr['gltf_attribute_name'].startswith('TEXCOORD_'):
1652
- self.attributes[attr['gltf_attribute_name']]["component_type"] = gltf2_io_constants.ComponentType.Float
1653
- self.attributes[attr['gltf_attribute_name']]["data_type"] = gltf2_io_constants.DataType.Vec2
1654
- elif attr['gltf_attribute_name'].startswith('COLOR_'):
1655
- # This is already managed, we only have to copy
1656
- self.attributes[attr['gltf_attribute_name']]["component_type"] = attr['component_type']
1657
- self.attributes[attr['gltf_attribute_name']]["data_type"] = attr['data_type']
1658
- else:
1659
- self.attributes[attr['gltf_attribute_name']
1660
- ]["component_type"] = gltf2_blender_conversion.get_component_type(attr['blender_data_type'])
1661
- self.attributes[attr['gltf_attribute_name']
1662
- ]["data_type"] = gltf2_blender_conversion.get_data_type(attr['blender_data_type'])