topview-3d-cli 0.1.0__py3-none-any.whl

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 (332) hide show
  1. topview_3d_cli/__init__.py +3 -0
  2. topview_3d_cli/__main__.py +5 -0
  3. topview_3d_cli/_runtime/builtin-assets/LICENSE +396 -0
  4. topview_3d_cli/_runtime/builtin-assets/NOTICE +24 -0
  5. topview_3d_cli/_runtime/builtin-assets/characters/a3d_char_30ec53c93eae4173946b38639691ebe0.glb +0 -0
  6. topview_3d_cli/_runtime/builtin-assets/characters/a3d_char_461b4f4b76ae4b198f439fa4f6f743b6.glb +0 -0
  7. topview_3d_cli/_runtime/builtin-assets/characters/a3d_char_7d220ac359844c80a8faaf0e25478477.glb +0 -0
  8. topview_3d_cli/_runtime/builtin-assets/characters/a3d_char_de37873a79244fbe8a0660ea08d1b4ab.glb +0 -0
  9. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_action-attack-jab.webp +0 -0
  10. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_action-attack-lunge.webp +0 -0
  11. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_action-attack-rear.webp +0 -0
  12. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_action-crawling-forward-reaching-with-le.webp +0 -0
  13. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_action-exaggerated-punch-with-right-hand.webp +0 -0
  14. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_action-examine-fwd.webp +0 -0
  15. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_action-holding-bow.webp +0 -0
  16. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_action-jab-with-right-hand.webp +0 -0
  17. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_action-on-hands-and-toes-right-leg-forwa.webp +0 -0
  18. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_action-on-right-leg.webp +0 -0
  19. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_action-push-up.webp +0 -0
  20. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_action-pushing-backwards.webp +0 -0
  21. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_action-pushing-with-both-hands.webp +0 -0
  22. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_action-pushing-with-left-side-of-body.webp +0 -0
  23. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_action-sliding.webp +0 -0
  24. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_crouch-arms-spread-looking-upwards.webp +0 -0
  25. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_crouch-examine-fwd.webp +0 -0
  26. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_crouch-lean-fwd-right-hand-supporting.webp +0 -0
  27. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_crouch-leaning-against-object-look-l.webp +0 -0
  28. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_crouch-look-back.webp +0 -0
  29. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_crouch-look-down-back.webp +0 -0
  30. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_crouch-look-fwd-f.webp +0 -0
  31. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_crouch-look-fwd-m.webp +0 -0
  32. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_crouch-on-knees-arms-up.webp +0 -0
  33. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_crouch-sneaking.webp +0 -0
  34. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_dance-l-toe-top-of-right-foot.webp +0 -0
  35. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_dance-legs-spread-lean-l.webp +0 -0
  36. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_dance-legs-spread-lean-r.webp +0 -0
  37. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_dance-legs-x.webp +0 -0
  38. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_dance-r-foot-arms-extended-backwards.webp +0 -0
  39. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_dance-r-toe-arms-up.webp +0 -0
  40. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_dance-r-toe-l-leg-up.webp +0 -0
  41. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_dance-toes-arch.webp +0 -0
  42. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_dance-toes-reach.webp +0 -0
  43. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_dyn-floating-bent-forwards.webp +0 -0
  44. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_dyn-floating-left-leg-bent-hands-spread.webp +0 -0
  45. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_dyn-floating-legs-bent-and-arms-spread.webp +0 -0
  46. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_dyn-floating-legs-raised-arms-extended-u.webp +0 -0
  47. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_dyn-l-toe-look-l.webp +0 -0
  48. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_dyn-leaping-forward-arms-extended-backwa.webp +0 -0
  49. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_dynamic-float-arch.webp +0 -0
  50. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_dynamic-float-dive.webp +0 -0
  51. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_lay-back-arched-arms-supp.webp +0 -0
  52. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_lay-legs-to-side-arms-up.webp +0 -0
  53. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_lay-legs-x-arms-supp.webp +0 -0
  54. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_lay-on-back-left-leg-bent-hands-head.webp +0 -0
  55. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_lay-on-back-left-leg-bent.webp +0 -0
  56. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_lay-on-back-legs-x-hands-head.webp +0 -0
  57. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_lay-on-left-side-left-arm-supporting-hea.webp +0 -0
  58. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_lay-on-left-side-left-arm-supporting.webp +0 -0
  59. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_lay-on-right-side-right-arm-supporting.webp +0 -0
  60. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_lay-on-right-side-right-hand-supporting.webp +0 -0
  61. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_lay-on-stomach-elbows-supporting.webp +0 -0
  62. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_lay-right-arm-supporting-l-arm-up.webp +0 -0
  63. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_lay-right-leg-forward-arms-supp.webp +0 -0
  64. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_loco-run-fwd.webp +0 -0
  65. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_loco-run-reach.webp +0 -0
  66. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_loco-sneaking-forward.webp +0 -0
  67. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_loco-sprinting.webp +0 -0
  68. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_loco-stepping-forward-look-l.webp +0 -0
  69. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_loco-walk-fwd-look-r.webp +0 -0
  70. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_loco-walk-fwd.webp +0 -0
  71. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_loco-walking-arms-on-hips.webp +0 -0
  72. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_loco-walking-right-arm-on-hip.webp +0 -0
  73. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_loco-walking.webp +0 -0
  74. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_sit-arms-holding-left-knee-reclining.webp +0 -0
  75. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_sit-arms-holding-right-knee.webp +0 -0
  76. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_sit-arms-resting-on-knees.webp +0 -0
  77. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_sit-arms-supp.webp +0 -0
  78. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_sit-arms-up.webp +0 -0
  79. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_sit-elbows-on-legs-lean-fwd.webp +0 -0
  80. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_sit-elbows-on-legs-lean-l.webp +0 -0
  81. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_sit-knees-up-hold.webp +0 -0
  82. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_sit-lean-back-arms-supp.webp +0 -0
  83. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_sit-lean-fwd-elbows-on-knees.webp +0 -0
  84. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_sit-lean-fwd-hands-in-front.webp +0 -0
  85. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_sit-legs-x-arms-x.webp +0 -0
  86. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_sit-legs-x-hands-head.webp +0 -0
  87. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_sit-legs-x-hold.webp +0 -0
  88. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_sit-legs-x-reclining.webp +0 -0
  89. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_sit-legs-x-right-arm-over-knee.webp +0 -0
  90. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_sit-reaching-hands-towards-toes.webp +0 -0
  91. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_sit-reaching-left-hand-towards-right-toe.webp +0 -0
  92. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_sit-reclined-facepalm.webp +0 -0
  93. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_sit-reclined-hands-head.webp +0 -0
  94. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_sit-reclined-left-leg-crossed-hands-head.webp +0 -0
  95. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_sit-reclined-left-leg-crossed.webp +0 -0
  96. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_sit-reclined-look-down.webp +0 -0
  97. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_sit-reclined-right-leg-crossed-hands-hea.webp +0 -0
  98. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_sit-rev-sit-hands-grasping.webp +0 -0
  99. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_sit-rev-sit-hands-relaxed.webp +0 -0
  100. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_stand-arms-behind-back.webp +0 -0
  101. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_stand-arms-down.webp +0 -0
  102. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_stand-arms-slightly-spread.webp +0 -0
  103. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_stand-bending-forward-arms-x-over-knees.webp +0 -0
  104. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_stand-hands-on-hips-look-back.webp +0 -0
  105. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_stand-l-hip-f.webp +0 -0
  106. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_stand-l-hip-m.webp +0 -0
  107. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_stand-l-leg-r-hip-l-arm-up.webp +0 -0
  108. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_stand-lean-back-arms-behind.webp +0 -0
  109. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_stand-lean-back-l-hip.webp +0 -0
  110. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_stand-left-elbow-resting-obj.webp +0 -0
  111. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_stand-left-leg-obj-left-hand-on-knee-r-h.webp +0 -0
  112. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_stand-left-leg-obj-left-hand-on-knee.webp +0 -0
  113. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_stand-legs-x-arms-up.webp +0 -0
  114. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_stand-legs-x-l-hip.webp +0 -0
  115. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_stand-legs-x-leaning-obj.webp +0 -0
  116. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_stand-legs-x-left-arm-obj-r-hip.webp +0 -0
  117. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_stand-look-down-r.webp +0 -0
  118. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_stand-look-fwd.webp +0 -0
  119. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_stand-look-l.webp +0 -0
  120. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_stand-look-r.webp +0 -0
  121. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_stand-r-arm-up-l-hip.webp +0 -0
  122. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_stand-r-foot-l-leg-up.webp +0 -0
  123. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_stand-r-foot-up.webp +0 -0
  124. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_stand-r-hip-l-arm-up.webp +0 -0
  125. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_stand-r-hip.webp +0 -0
  126. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_stand-right-hand-behind-head.webp +0 -0
  127. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_stand-right-leg-obj-arms-x.webp +0 -0
  128. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_stand-right-leg-obj-l-hip-right-hand-on.webp +0 -0
  129. topview_3d_cli/_runtime/builtin-assets/covers/a3d_pose_t-pose.webp +0 -0
  130. topview_3d_cli/_runtime/builtin-assets/manifest.json +2372 -0
  131. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_action-attack-jab.json +1 -0
  132. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_action-attack-lunge.json +1 -0
  133. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_action-attack-rear.json +1 -0
  134. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_action-crawling-forward-reaching-with-le.json +1 -0
  135. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_action-exaggerated-punch-with-right-hand.json +1 -0
  136. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_action-examine-fwd.json +1 -0
  137. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_action-holding-bow.json +1 -0
  138. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_action-jab-with-right-hand.json +1 -0
  139. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_action-on-hands-and-toes-right-leg-forwa.json +1 -0
  140. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_action-on-right-leg.json +1 -0
  141. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_action-push-up.json +1 -0
  142. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_action-pushing-backwards.json +1 -0
  143. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_action-pushing-with-both-hands.json +1 -0
  144. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_action-pushing-with-left-side-of-body.json +1 -0
  145. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_action-sliding.json +1 -0
  146. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_crouch-arms-spread-looking-upwards.json +1 -0
  147. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_crouch-examine-fwd.json +1 -0
  148. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_crouch-lean-fwd-right-hand-supporting.json +1 -0
  149. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_crouch-leaning-against-object-look-l.json +1 -0
  150. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_crouch-look-back.json +1 -0
  151. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_crouch-look-down-back.json +1 -0
  152. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_crouch-look-fwd-f.json +1 -0
  153. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_crouch-look-fwd-m.json +1 -0
  154. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_crouch-on-knees-arms-up.json +1 -0
  155. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_crouch-sneaking.json +1 -0
  156. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_dance-l-toe-top-of-right-foot.json +1 -0
  157. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_dance-legs-spread-lean-l.json +1 -0
  158. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_dance-legs-spread-lean-r.json +1 -0
  159. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_dance-legs-x.json +1 -0
  160. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_dance-r-foot-arms-extended-backwards.json +1 -0
  161. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_dance-r-toe-arms-up.json +1 -0
  162. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_dance-r-toe-l-leg-up.json +1 -0
  163. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_dance-toes-arch.json +1 -0
  164. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_dance-toes-reach.json +1 -0
  165. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_dyn-floating-bent-forwards.json +1 -0
  166. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_dyn-floating-left-leg-bent-hands-spread.json +1 -0
  167. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_dyn-floating-legs-bent-and-arms-spread.json +1 -0
  168. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_dyn-floating-legs-raised-arms-extended-u.json +1 -0
  169. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_dyn-l-toe-look-l.json +1 -0
  170. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_dyn-leaping-forward-arms-extended-backwa.json +1 -0
  171. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_dynamic-float-arch.json +1 -0
  172. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_dynamic-float-dive.json +1 -0
  173. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_lay-back-arched-arms-supp.json +1 -0
  174. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_lay-legs-to-side-arms-up.json +1 -0
  175. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_lay-legs-x-arms-supp.json +1 -0
  176. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_lay-on-back-left-leg-bent-hands-head.json +1 -0
  177. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_lay-on-back-left-leg-bent.json +1 -0
  178. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_lay-on-back-legs-x-hands-head.json +1 -0
  179. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_lay-on-left-side-left-arm-supporting-hea.json +1 -0
  180. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_lay-on-left-side-left-arm-supporting.json +1 -0
  181. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_lay-on-right-side-right-arm-supporting.json +1 -0
  182. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_lay-on-right-side-right-hand-supporting.json +1 -0
  183. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_lay-on-stomach-elbows-supporting.json +1 -0
  184. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_lay-right-arm-supporting-l-arm-up.json +1 -0
  185. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_lay-right-leg-forward-arms-supp.json +1 -0
  186. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_loco-run-fwd.json +1 -0
  187. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_loco-run-reach.json +1 -0
  188. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_loco-sneaking-forward.json +1 -0
  189. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_loco-sprinting.json +1 -0
  190. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_loco-stepping-forward-look-l.json +1 -0
  191. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_loco-walk-fwd-look-r.json +1 -0
  192. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_loco-walk-fwd.json +1 -0
  193. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_loco-walking-arms-on-hips.json +1 -0
  194. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_loco-walking-right-arm-on-hip.json +1 -0
  195. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_loco-walking.json +1 -0
  196. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_sit-arms-holding-left-knee-reclining.json +1 -0
  197. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_sit-arms-holding-right-knee.json +1 -0
  198. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_sit-arms-resting-on-knees.json +1 -0
  199. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_sit-arms-supp.json +1 -0
  200. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_sit-arms-up.json +1 -0
  201. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_sit-elbows-on-legs-lean-fwd.json +1 -0
  202. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_sit-elbows-on-legs-lean-l.json +1 -0
  203. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_sit-knees-up-hold.json +1 -0
  204. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_sit-lean-back-arms-supp.json +1 -0
  205. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_sit-lean-fwd-elbows-on-knees.json +1 -0
  206. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_sit-lean-fwd-hands-in-front.json +1 -0
  207. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_sit-legs-x-arms-x.json +1 -0
  208. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_sit-legs-x-hands-head.json +1 -0
  209. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_sit-legs-x-hold.json +1 -0
  210. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_sit-legs-x-reclining.json +1 -0
  211. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_sit-legs-x-right-arm-over-knee.json +1 -0
  212. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_sit-reaching-hands-towards-toes.json +1 -0
  213. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_sit-reaching-left-hand-towards-right-toe.json +1 -0
  214. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_sit-reclined-facepalm.json +1 -0
  215. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_sit-reclined-hands-head.json +1 -0
  216. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_sit-reclined-left-leg-crossed-hands-head.json +1 -0
  217. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_sit-reclined-left-leg-crossed.json +1 -0
  218. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_sit-reclined-look-down.json +1 -0
  219. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_sit-reclined-right-leg-crossed-hands-hea.json +1 -0
  220. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_sit-rev-sit-hands-grasping.json +1 -0
  221. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_sit-rev-sit-hands-relaxed.json +1 -0
  222. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_stand-arms-behind-back.json +1 -0
  223. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_stand-arms-down.json +1 -0
  224. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_stand-arms-slightly-spread.json +1 -0
  225. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_stand-bending-forward-arms-x-over-knees.json +1 -0
  226. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_stand-hands-on-hips-look-back.json +1 -0
  227. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_stand-l-hip-f.json +1 -0
  228. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_stand-l-hip-m.json +1 -0
  229. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_stand-l-leg-r-hip-l-arm-up.json +1 -0
  230. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_stand-lean-back-arms-behind.json +1 -0
  231. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_stand-lean-back-l-hip.json +1 -0
  232. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_stand-left-elbow-resting-obj.json +1 -0
  233. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_stand-left-leg-obj-left-hand-on-knee-r-h.json +1 -0
  234. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_stand-left-leg-obj-left-hand-on-knee.json +1 -0
  235. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_stand-legs-x-arms-up.json +1 -0
  236. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_stand-legs-x-l-hip.json +1 -0
  237. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_stand-legs-x-leaning-obj.json +1 -0
  238. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_stand-legs-x-left-arm-obj-r-hip.json +1 -0
  239. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_stand-look-down-r.json +1 -0
  240. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_stand-look-fwd.json +1 -0
  241. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_stand-look-l.json +1 -0
  242. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_stand-look-r.json +1 -0
  243. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_stand-r-arm-up-l-hip.json +1 -0
  244. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_stand-r-foot-l-leg-up.json +1 -0
  245. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_stand-r-foot-up.json +1 -0
  246. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_stand-r-hip-l-arm-up.json +1 -0
  247. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_stand-r-hip.json +1 -0
  248. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_stand-right-hand-behind-head.json +1 -0
  249. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_stand-right-leg-obj-arms-x.json +1 -0
  250. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_stand-right-leg-obj-l-hip-right-hand-on.json +1 -0
  251. topview_3d_cli/_runtime/builtin-assets/poses/a3d_pose_t-pose.json +1 -0
  252. topview_3d_cli/_runtime/director-cli/applyIntent.mjs +35 -0
  253. topview_3d_cli/_runtime/director-cli/browser.mjs +47 -0
  254. topview_3d_cli/_runtime/director-cli/cli.mjs +56 -0
  255. topview_3d_cli/_runtime/director-cli/editSequence.mjs +125 -0
  256. topview_3d_cli/_runtime/director-cli/evaluate.mjs +254 -0
  257. topview_3d_cli/_runtime/director-cli/mediaUrl.mjs +47 -0
  258. topview_3d_cli/_runtime/director-cli/node_modules/@topview/3d-builder/dist/draco/draco_decoder.js +34 -0
  259. topview_3d_cli/_runtime/director-cli/node_modules/@topview/3d-builder/dist/draco/draco_decoder.wasm +0 -0
  260. topview_3d_cli/_runtime/director-cli/node_modules/@topview/3d-builder/dist/draco/draco_wasm_wrapper.js +117 -0
  261. topview_3d_cli/_runtime/director-cli/node_modules/@topview/3d-builder/dist/engine/index.mjs +22219 -0
  262. topview_3d_cli/_runtime/director-cli/node_modules/@topview/3d-builder/dist/evaluate/index.mjs +4229 -0
  263. topview_3d_cli/_runtime/director-cli/node_modules/@topview/3d-builder/dist/headless/index.mjs +22832 -0
  264. topview_3d_cli/_runtime/director-cli/node_modules/@topview/3d-builder/package.json +75 -0
  265. topview_3d_cli/_runtime/director-cli/node_modules/three/LICENSE +21 -0
  266. topview_3d_cli/_runtime/director-cli/node_modules/three/build/three.core.js +59732 -0
  267. topview_3d_cli/_runtime/director-cli/node_modules/three/build/three.module.js +19552 -0
  268. topview_3d_cli/_runtime/director-cli/node_modules/three/examples/jsm/controls/OrbitControls.js +1963 -0
  269. topview_3d_cli/_runtime/director-cli/node_modules/three/examples/jsm/curves/NURBSCurve.js +155 -0
  270. topview_3d_cli/_runtime/director-cli/node_modules/three/examples/jsm/curves/NURBSUtils.js +532 -0
  271. topview_3d_cli/_runtime/director-cli/node_modules/three/examples/jsm/libs/draco/draco_decoder.js +34 -0
  272. topview_3d_cli/_runtime/director-cli/node_modules/three/examples/jsm/libs/draco/draco_decoder.wasm +0 -0
  273. topview_3d_cli/_runtime/director-cli/node_modules/three/examples/jsm/libs/draco/draco_wasm_wrapper.js +117 -0
  274. topview_3d_cli/_runtime/director-cli/node_modules/three/examples/jsm/libs/fflate.module.js +2672 -0
  275. topview_3d_cli/_runtime/director-cli/node_modules/three/examples/jsm/lines/LineMaterial.js +703 -0
  276. topview_3d_cli/_runtime/director-cli/node_modules/three/examples/jsm/lines/LineSegments2.js +426 -0
  277. topview_3d_cli/_runtime/director-cli/node_modules/three/examples/jsm/lines/LineSegmentsGeometry.js +298 -0
  278. topview_3d_cli/_runtime/director-cli/node_modules/three/examples/jsm/loaders/DRACOLoader.js +739 -0
  279. topview_3d_cli/_runtime/director-cli/node_modules/three/examples/jsm/loaders/FBXLoader.js +4580 -0
  280. topview_3d_cli/_runtime/director-cli/node_modules/three/examples/jsm/loaders/GLTFLoader.js +4860 -0
  281. topview_3d_cli/_runtime/director-cli/node_modules/three/examples/jsm/utils/BufferGeometryUtils.js +1434 -0
  282. topview_3d_cli/_runtime/director-cli/node_modules/three/examples/jsm/utils/SkeletonUtils.js +496 -0
  283. topview_3d_cli/_runtime/director-cli/node_modules/three/package.json +123 -0
  284. topview_3d_cli/_runtime/director-cli/node_modules/zod/LICENSE +21 -0
  285. topview_3d_cli/_runtime/director-cli/node_modules/zod/index.js +4 -0
  286. topview_3d_cli/_runtime/director-cli/node_modules/zod/package.json +118 -0
  287. topview_3d_cli/_runtime/director-cli/node_modules/zod/v3/ZodError.js +133 -0
  288. topview_3d_cli/_runtime/director-cli/node_modules/zod/v3/errors.js +9 -0
  289. topview_3d_cli/_runtime/director-cli/node_modules/zod/v3/external.js +6 -0
  290. topview_3d_cli/_runtime/director-cli/node_modules/zod/v3/helpers/errorUtil.js +6 -0
  291. topview_3d_cli/_runtime/director-cli/node_modules/zod/v3/helpers/parseUtil.js +109 -0
  292. topview_3d_cli/_runtime/director-cli/node_modules/zod/v3/helpers/typeAliases.js +1 -0
  293. topview_3d_cli/_runtime/director-cli/node_modules/zod/v3/helpers/util.js +133 -0
  294. topview_3d_cli/_runtime/director-cli/node_modules/zod/v3/locales/en.js +109 -0
  295. topview_3d_cli/_runtime/director-cli/node_modules/zod/v3/types.js +3693 -0
  296. topview_3d_cli/_runtime/director-cli/package.json +6 -0
  297. topview_3d_cli/_runtime/director-cli/playwright.mjs +26 -0
  298. topview_3d_cli/_runtime/director-cli/render.mjs +336 -0
  299. topview_3d_cli/_runtime/director-cli/static/headless.html +124 -0
  300. topview_3d_cli/_runtime/director-cli/static/measure.mjs +61 -0
  301. topview_3d_cli/_runtime/director-cli/static/pose.mjs +71 -0
  302. topview_3d_cli/_runtime/director-cli/staticIntent.mjs +135 -0
  303. topview_3d_cli/_runtime/runtime.json +6 -0
  304. topview_3d_cli/bom.py +326 -0
  305. topview_3d_cli/contracts/director-v1/schema/director-document.schema.json +1097 -0
  306. topview_3d_cli/contracts/director-v1/schema/fcurves-compact-v1.schema.json +105 -0
  307. topview_3d_cli/director_camera_view.py +54 -0
  308. topview_3d_cli/director_document.py +793 -0
  309. topview_3d_cli/director_geometry.py +66 -0
  310. topview_3d_cli/director_operations.py +679 -0
  311. topview_3d_cli/director_static.py +134 -0
  312. topview_3d_cli/local_assets.py +248 -0
  313. topview_3d_cli/local_bom.py +108 -0
  314. topview_3d_cli/local_catalog.py +156 -0
  315. topview_3d_cli/local_cli.py +493 -0
  316. topview_3d_cli/local_edit.py +350 -0
  317. topview_3d_cli/local_errors.py +104 -0
  318. topview_3d_cli/local_inspect.py +302 -0
  319. topview_3d_cli/local_project.py +280 -0
  320. topview_3d_cli/local_read.py +139 -0
  321. topview_3d_cli/local_render.py +97 -0
  322. topview_3d_cli/node_batch.py +299 -0
  323. topview_3d_cli/renderer.py +75 -0
  324. topview_3d_cli/runtime.py +107 -0
  325. topview_3d_cli-0.1.0.dist-info/METADATA +48 -0
  326. topview_3d_cli-0.1.0.dist-info/RECORD +332 -0
  327. topview_3d_cli-0.1.0.dist-info/WHEEL +5 -0
  328. topview_3d_cli-0.1.0.dist-info/entry_points.txt +2 -0
  329. topview_3d_cli-0.1.0.dist-info/licenses/LICENSE +202 -0
  330. topview_3d_cli-0.1.0.dist-info/licenses/LICENSE-ASSETS +396 -0
  331. topview_3d_cli-0.1.0.dist-info/licenses/NOTICE +18 -0
  332. topview_3d_cli-0.1.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,703 @@
1
+ import {
2
+ ShaderLib,
3
+ ShaderMaterial,
4
+ UniformsLib,
5
+ UniformsUtils,
6
+ Vector2,
7
+ } from 'three';
8
+
9
+ UniformsLib.line = {
10
+
11
+ worldUnits: { value: 1 },
12
+ linewidth: { value: 1 },
13
+ resolution: { value: new Vector2( 1, 1 ) },
14
+ dashOffset: { value: 0 },
15
+ dashScale: { value: 1 },
16
+ dashSize: { value: 1 },
17
+ gapSize: { value: 1 } // todo FIX - maybe change to totalSize
18
+
19
+ };
20
+
21
+ ShaderLib[ 'line' ] = {
22
+
23
+ uniforms: UniformsUtils.merge( [
24
+ UniformsLib.common,
25
+ UniformsLib.fog,
26
+ UniformsLib.line
27
+ ] ),
28
+
29
+ vertexShader:
30
+ /* glsl */`
31
+ #include <common>
32
+ #include <color_pars_vertex>
33
+ #include <fog_pars_vertex>
34
+ #include <logdepthbuf_pars_vertex>
35
+ #include <clipping_planes_pars_vertex>
36
+
37
+ uniform float linewidth;
38
+ uniform vec2 resolution;
39
+
40
+ attribute vec3 instanceStart;
41
+ attribute vec3 instanceEnd;
42
+
43
+ attribute vec3 instanceColorStart;
44
+ attribute vec3 instanceColorEnd;
45
+
46
+ #ifdef WORLD_UNITS
47
+
48
+ varying vec4 worldPos;
49
+ varying vec3 worldStart;
50
+ varying vec3 worldEnd;
51
+
52
+ #ifdef USE_DASH
53
+
54
+ varying vec2 vUv;
55
+
56
+ #endif
57
+
58
+ #else
59
+
60
+ varying vec2 vUv;
61
+
62
+ #endif
63
+
64
+ #ifdef USE_DASH
65
+
66
+ uniform float dashScale;
67
+ attribute float instanceDistanceStart;
68
+ attribute float instanceDistanceEnd;
69
+ varying float vLineDistance;
70
+
71
+ #endif
72
+
73
+ void trimSegment( const in vec4 start, inout vec4 end ) {
74
+
75
+ // trim end segment so it terminates between the camera plane and the near plane
76
+
77
+ // conservative estimate of the near plane
78
+ float a = projectionMatrix[ 2 ][ 2 ]; // 3nd entry in 3th column
79
+ float b = projectionMatrix[ 3 ][ 2 ]; // 3nd entry in 4th column
80
+ float nearEstimate = - 0.5 * b / a;
81
+
82
+ float alpha = ( nearEstimate - start.z ) / ( end.z - start.z );
83
+
84
+ end.xyz = mix( start.xyz, end.xyz, alpha );
85
+
86
+ }
87
+
88
+ void main() {
89
+
90
+ #ifdef USE_COLOR
91
+
92
+ vColor.xyz = ( position.y < 0.5 ) ? instanceColorStart : instanceColorEnd;
93
+
94
+ #endif
95
+
96
+ #ifdef USE_DASH
97
+
98
+ vLineDistance = ( position.y < 0.5 ) ? dashScale * instanceDistanceStart : dashScale * instanceDistanceEnd;
99
+ vUv = uv;
100
+
101
+ #endif
102
+
103
+ float aspect = resolution.x / resolution.y;
104
+
105
+ // camera space
106
+ vec4 start = modelViewMatrix * vec4( instanceStart, 1.0 );
107
+ vec4 end = modelViewMatrix * vec4( instanceEnd, 1.0 );
108
+
109
+ #ifdef WORLD_UNITS
110
+
111
+ worldStart = start.xyz;
112
+ worldEnd = end.xyz;
113
+
114
+ #else
115
+
116
+ vUv = uv;
117
+
118
+ #endif
119
+
120
+ // special case for perspective projection, and segments that terminate either in, or behind, the camera plane
121
+ // clearly the gpu firmware has a way of addressing this issue when projecting into ndc space
122
+ // but we need to perform ndc-space calculations in the shader, so we must address this issue directly
123
+ // perhaps there is a more elegant solution -- WestLangley
124
+
125
+ bool perspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 ); // 4th entry in the 3rd column
126
+
127
+ if ( perspective ) {
128
+
129
+ if ( start.z < 0.0 && end.z >= 0.0 ) {
130
+
131
+ trimSegment( start, end );
132
+
133
+ } else if ( end.z < 0.0 && start.z >= 0.0 ) {
134
+
135
+ trimSegment( end, start );
136
+
137
+ }
138
+
139
+ }
140
+
141
+ // clip space
142
+ vec4 clipStart = projectionMatrix * start;
143
+ vec4 clipEnd = projectionMatrix * end;
144
+
145
+ // ndc space
146
+ vec3 ndcStart = clipStart.xyz / clipStart.w;
147
+ vec3 ndcEnd = clipEnd.xyz / clipEnd.w;
148
+
149
+ // direction
150
+ vec2 dir = ndcEnd.xy - ndcStart.xy;
151
+
152
+ // account for clip-space aspect ratio
153
+ dir.x *= aspect;
154
+ dir = normalize( dir );
155
+
156
+ #ifdef WORLD_UNITS
157
+
158
+ vec3 worldDir = normalize( end.xyz - start.xyz );
159
+ vec3 tmpFwd = normalize( mix( start.xyz, end.xyz, 0.5 ) );
160
+ vec3 worldUp = normalize( cross( worldDir, tmpFwd ) );
161
+ vec3 worldFwd = cross( worldDir, worldUp );
162
+ worldPos = position.y < 0.5 ? start: end;
163
+
164
+ // height offset
165
+ float hw = linewidth * 0.5;
166
+ worldPos.xyz += position.x < 0.0 ? hw * worldUp : - hw * worldUp;
167
+
168
+ // don't extend the line if we're rendering dashes because we
169
+ // won't be rendering the endcaps
170
+ #ifndef USE_DASH
171
+
172
+ // cap extension
173
+ worldPos.xyz += position.y < 0.5 ? - hw * worldDir : hw * worldDir;
174
+
175
+ // add width to the box
176
+ worldPos.xyz += worldFwd * hw;
177
+
178
+ // endcaps
179
+ if ( position.y > 1.0 || position.y < 0.0 ) {
180
+
181
+ worldPos.xyz -= worldFwd * 2.0 * hw;
182
+
183
+ }
184
+
185
+ #endif
186
+
187
+ // project the worldpos
188
+ vec4 clip = projectionMatrix * worldPos;
189
+
190
+ // shift the depth of the projected points so the line
191
+ // segments overlap neatly
192
+ vec3 clipPose = ( position.y < 0.5 ) ? ndcStart : ndcEnd;
193
+ clip.z = clipPose.z * clip.w;
194
+
195
+ #else
196
+
197
+ vec2 offset = vec2( dir.y, - dir.x );
198
+ // undo aspect ratio adjustment
199
+ dir.x /= aspect;
200
+ offset.x /= aspect;
201
+
202
+ // sign flip
203
+ if ( position.x < 0.0 ) offset *= - 1.0;
204
+
205
+ // endcaps
206
+ if ( position.y < 0.0 ) {
207
+
208
+ offset += - dir;
209
+
210
+ } else if ( position.y > 1.0 ) {
211
+
212
+ offset += dir;
213
+
214
+ }
215
+
216
+ // adjust for linewidth
217
+ offset *= linewidth;
218
+
219
+ // adjust for clip-space to screen-space conversion // maybe resolution should be based on viewport ...
220
+ offset /= resolution.y;
221
+
222
+ // select end
223
+ vec4 clip = ( position.y < 0.5 ) ? clipStart : clipEnd;
224
+
225
+ // back to clip space
226
+ offset *= clip.w;
227
+
228
+ clip.xy += offset;
229
+
230
+ #endif
231
+
232
+ gl_Position = clip;
233
+
234
+ vec4 mvPosition = ( position.y < 0.5 ) ? start : end; // this is an approximation
235
+
236
+ #include <logdepthbuf_vertex>
237
+ #include <clipping_planes_vertex>
238
+ #include <fog_vertex>
239
+
240
+ }
241
+ `,
242
+
243
+ fragmentShader:
244
+ /* glsl */`
245
+ uniform vec3 diffuse;
246
+ uniform float opacity;
247
+ uniform float linewidth;
248
+
249
+ #ifdef USE_DASH
250
+
251
+ uniform float dashOffset;
252
+ uniform float dashSize;
253
+ uniform float gapSize;
254
+
255
+ #endif
256
+
257
+ varying float vLineDistance;
258
+
259
+ #ifdef WORLD_UNITS
260
+
261
+ varying vec4 worldPos;
262
+ varying vec3 worldStart;
263
+ varying vec3 worldEnd;
264
+
265
+ #ifdef USE_DASH
266
+
267
+ varying vec2 vUv;
268
+
269
+ #endif
270
+
271
+ #else
272
+
273
+ varying vec2 vUv;
274
+
275
+ #endif
276
+
277
+ #include <common>
278
+ #include <color_pars_fragment>
279
+ #include <fog_pars_fragment>
280
+ #include <logdepthbuf_pars_fragment>
281
+ #include <clipping_planes_pars_fragment>
282
+
283
+ vec2 closestLineToLine(vec3 p1, vec3 p2, vec3 p3, vec3 p4) {
284
+
285
+ float mua;
286
+ float mub;
287
+
288
+ vec3 p13 = p1 - p3;
289
+ vec3 p43 = p4 - p3;
290
+
291
+ vec3 p21 = p2 - p1;
292
+
293
+ float d1343 = dot( p13, p43 );
294
+ float d4321 = dot( p43, p21 );
295
+ float d1321 = dot( p13, p21 );
296
+ float d4343 = dot( p43, p43 );
297
+ float d2121 = dot( p21, p21 );
298
+
299
+ float denom = d2121 * d4343 - d4321 * d4321;
300
+
301
+ float numer = d1343 * d4321 - d1321 * d4343;
302
+
303
+ mua = numer / denom;
304
+ mua = clamp( mua, 0.0, 1.0 );
305
+ mub = ( d1343 + d4321 * ( mua ) ) / d4343;
306
+ mub = clamp( mub, 0.0, 1.0 );
307
+
308
+ return vec2( mua, mub );
309
+
310
+ }
311
+
312
+ void main() {
313
+
314
+ float alpha = opacity;
315
+ vec4 diffuseColor = vec4( diffuse, alpha );
316
+
317
+ #include <clipping_planes_fragment>
318
+
319
+ #ifdef USE_DASH
320
+
321
+ if ( vUv.y < - 1.0 || vUv.y > 1.0 ) discard; // discard endcaps
322
+
323
+ if ( mod( vLineDistance + dashOffset, dashSize + gapSize ) > dashSize ) discard; // todo - FIX
324
+
325
+ #endif
326
+
327
+ #ifdef WORLD_UNITS
328
+
329
+ // Find the closest points on the view ray and the line segment
330
+ vec3 rayEnd = normalize( worldPos.xyz ) * 1e5;
331
+ vec3 lineDir = worldEnd - worldStart;
332
+ vec2 params = closestLineToLine( worldStart, worldEnd, vec3( 0.0, 0.0, 0.0 ), rayEnd );
333
+
334
+ vec3 p1 = worldStart + lineDir * params.x;
335
+ vec3 p2 = rayEnd * params.y;
336
+ vec3 delta = p1 - p2;
337
+ float len = length( delta );
338
+ float norm = len / linewidth;
339
+
340
+ #ifndef USE_DASH
341
+
342
+ #ifdef USE_ALPHA_TO_COVERAGE
343
+
344
+ float dnorm = fwidth( norm );
345
+ alpha = 1.0 - smoothstep( 0.5 - dnorm, 0.5 + dnorm, norm );
346
+
347
+ #else
348
+
349
+ if ( norm > 0.5 ) {
350
+
351
+ discard;
352
+
353
+ }
354
+
355
+ #endif
356
+
357
+ #endif
358
+
359
+ #else
360
+
361
+ #ifdef USE_ALPHA_TO_COVERAGE
362
+
363
+ // artifacts appear on some hardware if a derivative is taken within a conditional
364
+ float a = vUv.x;
365
+ float b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0;
366
+ float len2 = a * a + b * b;
367
+ float dlen = fwidth( len2 );
368
+
369
+ if ( abs( vUv.y ) > 1.0 ) {
370
+
371
+ alpha = 1.0 - smoothstep( 1.0 - dlen, 1.0 + dlen, len2 );
372
+
373
+ }
374
+
375
+ #else
376
+
377
+ if ( abs( vUv.y ) > 1.0 ) {
378
+
379
+ float a = vUv.x;
380
+ float b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0;
381
+ float len2 = a * a + b * b;
382
+
383
+ if ( len2 > 1.0 ) discard;
384
+
385
+ }
386
+
387
+ #endif
388
+
389
+ #endif
390
+
391
+ #include <logdepthbuf_fragment>
392
+ #include <color_fragment>
393
+
394
+ gl_FragColor = vec4( diffuseColor.rgb, alpha );
395
+
396
+ #include <tonemapping_fragment>
397
+ #include <colorspace_fragment>
398
+ #include <fog_fragment>
399
+ #include <premultiplied_alpha_fragment>
400
+
401
+ }
402
+ `
403
+ };
404
+
405
+ /**
406
+ * A material for drawing wireframe-style geometries.
407
+ *
408
+ * Unlike {@link LineBasicMaterial}, it supports arbitrary line widths and allows using world units
409
+ * instead of screen space units. This material is used with {@link LineSegments2} and {@link Line2}.
410
+ *
411
+ * This module can only be used with {@link WebGLRenderer}. When using {@link WebGPURenderer},
412
+ * use {@link Line2NodeMaterial}.
413
+ *
414
+ * @augments ShaderMaterial
415
+ * @three_import import { LineMaterial } from 'three/addons/lines/LineMaterial.js';
416
+ */
417
+ class LineMaterial extends ShaderMaterial {
418
+
419
+ /**
420
+ * Constructs a new line segments geometry.
421
+ *
422
+ * @param {Object} [parameters] - An object with one or more properties
423
+ * defining the material's appearance. Any property of the material
424
+ * (including any property from inherited materials) can be passed
425
+ * in here. Color values can be passed any type of value accepted
426
+ * by {@link Color#set}.
427
+ */
428
+ constructor( parameters ) {
429
+
430
+ super( {
431
+
432
+ type: 'LineMaterial',
433
+ uniforms: UniformsUtils.clone( ShaderLib[ 'line' ].uniforms ),
434
+
435
+ vertexShader: ShaderLib[ 'line' ].vertexShader,
436
+ fragmentShader: ShaderLib[ 'line' ].fragmentShader,
437
+
438
+ clipping: true // required for clipping support
439
+
440
+ } );
441
+
442
+ /**
443
+ * This flag can be used for type testing.
444
+ *
445
+ * @type {boolean}
446
+ * @readonly
447
+ * @default true
448
+ */
449
+ this.isLineMaterial = true;
450
+
451
+ this.setValues( parameters );
452
+
453
+ }
454
+
455
+ /**
456
+ * The material's color.
457
+ *
458
+ * @type {Color}
459
+ * @default (1,1,1)
460
+ */
461
+ get color() {
462
+
463
+ return this.uniforms.diffuse.value;
464
+
465
+ }
466
+
467
+ set color( value ) {
468
+
469
+ this.uniforms.diffuse.value = value;
470
+
471
+ }
472
+
473
+ /**
474
+ * Whether the material's sizes (width, dash gaps) are in world units.
475
+ *
476
+ * @type {boolean}
477
+ * @default false
478
+ */
479
+ get worldUnits() {
480
+
481
+ return 'WORLD_UNITS' in this.defines;
482
+
483
+ }
484
+
485
+ set worldUnits( value ) {
486
+
487
+ if ( ( value === true ) !== this.worldUnits ) {
488
+
489
+ this.needsUpdate = true;
490
+
491
+ }
492
+
493
+ if ( value === true ) {
494
+
495
+ this.defines.WORLD_UNITS = '';
496
+
497
+ } else {
498
+
499
+ delete this.defines.WORLD_UNITS;
500
+
501
+ }
502
+
503
+ }
504
+
505
+ /**
506
+ * Controls line thickness in CSS pixel units when `worldUnits` is `false` (default),
507
+ * or in world units when `worldUnits` is `true`.
508
+ *
509
+ * @type {number}
510
+ * @default 1
511
+ */
512
+ get linewidth() {
513
+
514
+ return this.uniforms.linewidth.value;
515
+
516
+ }
517
+
518
+ set linewidth( value ) {
519
+
520
+ if ( ! this.uniforms.linewidth ) return;
521
+ this.uniforms.linewidth.value = value;
522
+
523
+ }
524
+
525
+ /**
526
+ * Whether the line is dashed, or solid.
527
+ *
528
+ * @type {boolean}
529
+ * @default false
530
+ */
531
+ get dashed() {
532
+
533
+ return 'USE_DASH' in this.defines;
534
+
535
+ }
536
+
537
+ set dashed( value ) {
538
+
539
+ if ( ( value === true ) !== this.dashed ) {
540
+
541
+ this.needsUpdate = true;
542
+
543
+ }
544
+
545
+ if ( value === true ) {
546
+
547
+ this.defines.USE_DASH = '';
548
+
549
+ } else {
550
+
551
+ delete this.defines.USE_DASH;
552
+
553
+ }
554
+
555
+ }
556
+
557
+ /**
558
+ * The scale of the dashes and gaps.
559
+ *
560
+ * @type {number}
561
+ * @default 1
562
+ */
563
+ get dashScale() {
564
+
565
+ return this.uniforms.dashScale.value;
566
+
567
+ }
568
+
569
+ set dashScale( value ) {
570
+
571
+ this.uniforms.dashScale.value = value;
572
+
573
+ }
574
+
575
+ /**
576
+ * The size of the dash.
577
+ *
578
+ * @type {number}
579
+ * @default 1
580
+ */
581
+ get dashSize() {
582
+
583
+ return this.uniforms.dashSize.value;
584
+
585
+ }
586
+
587
+ set dashSize( value ) {
588
+
589
+ this.uniforms.dashSize.value = value;
590
+
591
+ }
592
+
593
+ /**
594
+ * Where in the dash cycle the dash starts.
595
+ *
596
+ * @type {number}
597
+ * @default 0
598
+ */
599
+ get dashOffset() {
600
+
601
+ return this.uniforms.dashOffset.value;
602
+
603
+ }
604
+
605
+ set dashOffset( value ) {
606
+
607
+ this.uniforms.dashOffset.value = value;
608
+
609
+ }
610
+
611
+ /**
612
+ * The size of the gap.
613
+ *
614
+ * @type {number}
615
+ * @default 0
616
+ */
617
+ get gapSize() {
618
+
619
+ return this.uniforms.gapSize.value;
620
+
621
+ }
622
+
623
+ set gapSize( value ) {
624
+
625
+ this.uniforms.gapSize.value = value;
626
+
627
+ }
628
+
629
+ /**
630
+ * The opacity.
631
+ *
632
+ * @type {number}
633
+ * @default 1
634
+ */
635
+ get opacity() {
636
+
637
+ return this.uniforms.opacity.value;
638
+
639
+ }
640
+
641
+ set opacity( value ) {
642
+
643
+ if ( ! this.uniforms ) return;
644
+ this.uniforms.opacity.value = value;
645
+
646
+ }
647
+
648
+ /**
649
+ * The size of the viewport, in screen pixels. This must be kept updated to make
650
+ * screen-space rendering accurate. The `LineSegments2.onBeforeRender` callback
651
+ * performs the update for visible objects.
652
+ *
653
+ * @type {Vector2}
654
+ */
655
+ get resolution() {
656
+
657
+ return this.uniforms.resolution.value;
658
+
659
+ }
660
+
661
+ set resolution( value ) {
662
+
663
+ this.uniforms.resolution.value.copy( value );
664
+
665
+ }
666
+
667
+ /**
668
+ * Whether to use alphaToCoverage or not. When enabled, this can improve the
669
+ * anti-aliasing of line edges when using MSAA.
670
+ *
671
+ * @type {boolean}
672
+ */
673
+ get alphaToCoverage() {
674
+
675
+ return 'USE_ALPHA_TO_COVERAGE' in this.defines;
676
+
677
+ }
678
+
679
+ set alphaToCoverage( value ) {
680
+
681
+ if ( ! this.defines ) return;
682
+
683
+ if ( ( value === true ) !== this.alphaToCoverage ) {
684
+
685
+ this.needsUpdate = true;
686
+
687
+ }
688
+
689
+ if ( value === true ) {
690
+
691
+ this.defines.USE_ALPHA_TO_COVERAGE = '';
692
+
693
+ } else {
694
+
695
+ delete this.defines.USE_ALPHA_TO_COVERAGE;
696
+
697
+ }
698
+
699
+ }
700
+
701
+ }
702
+
703
+ export { LineMaterial };