python-cad-tools 0.1.0rc1__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 (236) hide show
  1. python_cad_tools/__init__.py +10 -0
  2. python_cad_tools/_locking.py +63 -0
  3. python_cad_tools/_project_loader.py +273 -0
  4. python_cad_tools/_project_state.py +65 -0
  5. python_cad_tools/_scaffold.py +66 -0
  6. python_cad_tools/_transaction.py +208 -0
  7. python_cad_tools/_viewer_static/app.webmanifest +18 -0
  8. python_cad_tools/_viewer_static/asset-manifest.json +1 -0
  9. python_cad_tools/_viewer_static/assets/animationGroup-Sd34ntWg.js +1 -0
  10. python_cad_tools/_viewer_static/assets/bakedVertexAnimation-Cd_pRdrn.js +316 -0
  11. python_cad_tools/_viewer_static/assets/basisTextureLoader-DWgvS_1G.js +1 -0
  12. python_cad_tools/_viewer_static/assets/brdfTextureTools-CWGiG1W2.js +2 -0
  13. python_cad_tools/_viewer_static/assets/bumpFragment-CWULheF1.js +127 -0
  14. python_cad_tools/_viewer_static/assets/bumpVertex-DqzFZayE.js +6 -0
  15. python_cad_tools/_viewer_static/assets/bumpVertexDeclaration-C5EFyTio.js +6 -0
  16. python_cad_tools/_viewer_static/assets/clipPlaneFragment-BXRtt4jj.js +46 -0
  17. python_cad_tools/_viewer_static/assets/clipPlaneVertex-B_VhD1oQ.js +37 -0
  18. python_cad_tools/_viewer_static/assets/cubemapToSphericalPolynomial-DRpaukza.js +1 -0
  19. python_cad_tools/_viewer_static/assets/dds-Dkb2Cx2N.js +1 -0
  20. python_cad_tools/_viewer_static/assets/dds.pure-DtvJsKvY.js +1 -0
  21. python_cad_tools/_viewer_static/assets/ddsTextureLoader-H78xux1g.js +1 -0
  22. python_cad_tools/_viewer_static/assets/default.fragment-oSQ-tWhe.js +469 -0
  23. python_cad_tools/_viewer_static/assets/default.vertex-DhFjw_Da.js +209 -0
  24. python_cad_tools/_viewer_static/assets/defaultUboDeclaration-BMDHNppx.js +5 -0
  25. python_cad_tools/_viewer_static/assets/dumpTools-BaNZPjUX.js +2 -0
  26. python_cad_tools/_viewer_static/assets/envTextureLoader-V0YnLcIM.js +1 -0
  27. python_cad_tools/_viewer_static/assets/exrTextureLoader-CjGyIK3x.js +1 -0
  28. python_cad_tools/_viewer_static/assets/flowGraphApplyForceBlock-CW5nuobR.js +1 -0
  29. python_cad_tools/_viewer_static/assets/flowGraphApplyImpulseBlock-LFqYIkhj.js +1 -0
  30. python_cad_tools/_viewer_static/assets/flowGraphArrayIndexBlock-BMOHUbBm.js +1 -0
  31. python_cad_tools/_viewer_static/assets/flowGraphBezierCurveEasingBlock-knmTiuEk.js +1 -0
  32. python_cad_tools/_viewer_static/assets/flowGraphBinaryOperationBlock-DFLuCAKJ.js +1 -0
  33. python_cad_tools/_viewer_static/assets/flowGraphBranchBlock-BJRHMXMo.js +1 -0
  34. python_cad_tools/_viewer_static/assets/flowGraphCachedOperationBlock-Dng-6jE0.js +1 -0
  35. python_cad_tools/_viewer_static/assets/flowGraphCancelDelayBlock-CgbK3CQZ.js +1 -0
  36. python_cad_tools/_viewer_static/assets/flowGraphCodeExecutionBlock-8zMtq9tg.js +1 -0
  37. python_cad_tools/_viewer_static/assets/flowGraphConditionalDataBlock-BiLr2rkI.js +1 -0
  38. python_cad_tools/_viewer_static/assets/flowGraphConsoleLogBlock-J1vcCtNP.js +1 -0
  39. python_cad_tools/_viewer_static/assets/flowGraphConstantBlock-CFb5nuaV.js +1 -0
  40. python_cad_tools/_viewer_static/assets/flowGraphContextBlock-DAeGVzhC.js +1 -0
  41. python_cad_tools/_viewer_static/assets/flowGraphCounterBlock-lZlAQiJd.js +1 -0
  42. python_cad_tools/_viewer_static/assets/flowGraphDataSwitchBlock-BIzvmbVy.js +1 -0
  43. python_cad_tools/_viewer_static/assets/flowGraphDebounceBlock-DvNuMVwy.js +1 -0
  44. python_cad_tools/_viewer_static/assets/flowGraphDebugBlock-Dymd2VEE.js +1 -0
  45. python_cad_tools/_viewer_static/assets/flowGraphDoNBlock-v68aoNLH.js +1 -0
  46. python_cad_tools/_viewer_static/assets/flowGraphEasingBlock-CTnGv92q.js +1 -0
  47. python_cad_tools/_viewer_static/assets/flowGraphFlipFlopBlock-DXsO0Chw.js +1 -0
  48. python_cad_tools/_viewer_static/assets/flowGraphForLoopBlock-CPpe9T75.js +1 -0
  49. python_cad_tools/_viewer_static/assets/flowGraphFunctionReferenceBlock-DjDev4Pq.js +1 -0
  50. python_cad_tools/_viewer_static/assets/flowGraphGLTFDataProvider-GIYCz4AQ.js +1 -0
  51. python_cad_tools/_viewer_static/assets/flowGraphGetAngularVelocityBlock-BStkOVeL.js +1 -0
  52. python_cad_tools/_viewer_static/assets/flowGraphGetAssetBlock-Eiqoivbz.js +1 -0
  53. python_cad_tools/_viewer_static/assets/flowGraphGetLinearVelocityBlock-B0cpV5ws.js +1 -0
  54. python_cad_tools/_viewer_static/assets/flowGraphGetPhysicsMassPropertiesBlock-B-H64yaI.js +1 -0
  55. python_cad_tools/_viewer_static/assets/flowGraphGetPropertyBlock-CUyOsPw0.js +1 -0
  56. python_cad_tools/_viewer_static/assets/flowGraphGetSoundVolumeBlock-C0FjrsUz.js +1 -0
  57. python_cad_tools/_viewer_static/assets/flowGraphGetVariableBlock-O4597zBl.js +1 -0
  58. python_cad_tools/_viewer_static/assets/flowGraphIndexOfBlock-E00Z3KXM.js +1 -0
  59. python_cad_tools/_viewer_static/assets/flowGraphInterpolationBlock-DnkA9MNH.js +1 -0
  60. python_cad_tools/_viewer_static/assets/flowGraphIsKeyPressedBlock-DDfeuAyf.js +1 -0
  61. python_cad_tools/_viewer_static/assets/flowGraphIsSoundPlayingBlock-DMXg8jdM.js +1 -0
  62. python_cad_tools/_viewer_static/assets/flowGraphJsonPointerParserBlock-OmCorK0y.js +1 -0
  63. python_cad_tools/_viewer_static/assets/flowGraphKeyDownEventBlock-RuVtj6g2.js +1 -0
  64. python_cad_tools/_viewer_static/assets/flowGraphKeyUpEventBlock-DO4pAfHi.js +1 -0
  65. python_cad_tools/_viewer_static/assets/flowGraphKeyboardEventBlock-Bx3pAzzh.js +1 -0
  66. python_cad_tools/_viewer_static/assets/flowGraphMathBlocks-7W1XYOC8.js +1 -0
  67. python_cad_tools/_viewer_static/assets/flowGraphMathCombineExtractBlocks-a4f0Kv6e.js +1 -0
  68. python_cad_tools/_viewer_static/assets/flowGraphMatrixMathBlocks-C5Z-y1Au.js +1 -0
  69. python_cad_tools/_viewer_static/assets/flowGraphMeshPickEventBlock-D4m-I4CS.js +1 -0
  70. python_cad_tools/_viewer_static/assets/flowGraphMultiGateBlock-BISVSMw6.js +1 -0
  71. python_cad_tools/_viewer_static/assets/flowGraphPauseAnimationBlock-BYP2Z-HG.js +1 -0
  72. python_cad_tools/_viewer_static/assets/flowGraphPauseSoundBlock-Drh1EeW6.js +1 -0
  73. python_cad_tools/_viewer_static/assets/flowGraphPhysicsCollisionEventBlock-BoziAQ75.js +1 -0
  74. python_cad_tools/_viewer_static/assets/flowGraphPlayAnimationBlock-Clry-68M.js +1 -0
  75. python_cad_tools/_viewer_static/assets/flowGraphPlaySoundBlock-LbBVxGBE.js +1 -0
  76. python_cad_tools/_viewer_static/assets/flowGraphPointerDownEventBlock-DIVXCSHh.js +1 -0
  77. python_cad_tools/_viewer_static/assets/flowGraphPointerMoveEventBlock-BNNOzY2W.js +1 -0
  78. python_cad_tools/_viewer_static/assets/flowGraphPointerOutEventBlock-B8f2dOFT.js +1 -0
  79. python_cad_tools/_viewer_static/assets/flowGraphPointerOverEventBlock-CQr8LCee.js +1 -0
  80. python_cad_tools/_viewer_static/assets/flowGraphPointerUpEventBlock-DMg_iEHl.js +1 -0
  81. python_cad_tools/_viewer_static/assets/flowGraphReceiveCustomEventBlock-B8GJm9Ai.js +1 -0
  82. python_cad_tools/_viewer_static/assets/flowGraphSceneReadyEventBlock-Dcdb29K2.js +1 -0
  83. python_cad_tools/_viewer_static/assets/flowGraphSceneTickEventBlock-BLE5p4mi.js +1 -0
  84. python_cad_tools/_viewer_static/assets/flowGraphSendCustomEventBlock-BMzDItQ5.js +1 -0
  85. python_cad_tools/_viewer_static/assets/flowGraphSequenceBlock-DRURovjn.js +1 -0
  86. python_cad_tools/_viewer_static/assets/flowGraphSetAngularVelocityBlock-Ba8dhkLM.js +1 -0
  87. python_cad_tools/_viewer_static/assets/flowGraphSetDelayBlock-CnQR--Gn.js +1 -0
  88. python_cad_tools/_viewer_static/assets/flowGraphSetLinearVelocityBlock-Dm1r3vkh.js +1 -0
  89. python_cad_tools/_viewer_static/assets/flowGraphSetPhysicsMotionTypeBlock-BNtMLimi.js +1 -0
  90. python_cad_tools/_viewer_static/assets/flowGraphSetPropertyBlock-C-uv2jhP.js +1 -0
  91. python_cad_tools/_viewer_static/assets/flowGraphSetSoundVolumeBlock-D9LDx3lg.js +1 -0
  92. python_cad_tools/_viewer_static/assets/flowGraphSetVariableBlock-DszzRB5X.js +1 -0
  93. python_cad_tools/_viewer_static/assets/flowGraphSoundEndedEventBlock-DeTDSudb.js +1 -0
  94. python_cad_tools/_viewer_static/assets/flowGraphStopAnimationBlock-DWuwoFWr.js +1 -0
  95. python_cad_tools/_viewer_static/assets/flowGraphStopSoundBlock-DEnj2cQw.js +1 -0
  96. python_cad_tools/_viewer_static/assets/flowGraphSwitchBlock-zs8Fp9ky.js +1 -0
  97. python_cad_tools/_viewer_static/assets/flowGraphThrottleBlock-BYAKUQXd.js +1 -0
  98. python_cad_tools/_viewer_static/assets/flowGraphTransformCoordinatesSystemBlock-DYP54m5P.js +1 -0
  99. python_cad_tools/_viewer_static/assets/flowGraphTypeToTypeBlocks-vFwn79bS.js +1 -0
  100. python_cad_tools/_viewer_static/assets/flowGraphUnaryOperationBlock-CaRh4Ef0.js +1 -0
  101. python_cad_tools/_viewer_static/assets/flowGraphVectorMathBlocks-BEIhMs-A.js +1 -0
  102. python_cad_tools/_viewer_static/assets/flowGraphWaitAllBlock-DFbELP_j.js +1 -0
  103. python_cad_tools/_viewer_static/assets/flowGraphWhileLoopBlock-C1OKQ-_F.js +1 -0
  104. python_cad_tools/_viewer_static/assets/fogFragment-DtDlQBnz.js +25 -0
  105. python_cad_tools/_viewer_static/assets/gaussianSplatting-Cfigjb15.js +242 -0
  106. python_cad_tools/_viewer_static/assets/gaussianSplatting-DIn8R8oF.js +296 -0
  107. python_cad_tools/_viewer_static/assets/gaussianSplatting.fragment-BxeRJ2k-.js +38 -0
  108. python_cad_tools/_viewer_static/assets/gaussianSplatting.fragment-DNDmvRs-.js +37 -0
  109. python_cad_tools/_viewer_static/assets/gaussianSplatting.vertex-D92z5jYn.js +86 -0
  110. python_cad_tools/_viewer_static/assets/gaussianSplatting.vertex-DSWfFnKQ.js +86 -0
  111. python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.fragment-DBQE2gDk.js +12 -0
  112. python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.fragment-qwx5ntqJ.js +17 -0
  113. python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.vertex-CP2kd3jU.js +30 -0
  114. python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.vertex-Dr-fEg_W.js +19 -0
  115. python_cad_tools/_viewer_static/assets/geometry.fragment-CsJIm2H0.js +242 -0
  116. python_cad_tools/_viewer_static/assets/geometry.fragment-Dph3muZt.js +262 -0
  117. python_cad_tools/_viewer_static/assets/geometry.vertex-BXGMTA_J.js +212 -0
  118. python_cad_tools/_viewer_static/assets/geometry.vertex-Bm9Wg3Gi.js +214 -0
  119. python_cad_tools/_viewer_static/assets/glowBlurPostProcess.fragment-BJSwKIJD.js +7 -0
  120. python_cad_tools/_viewer_static/assets/glowMapGeneration.fragment-DcyS1cTF.js +63 -0
  121. python_cad_tools/_viewer_static/assets/glowMapGeneration.vertex-BGq1Fakj.js +75 -0
  122. python_cad_tools/_viewer_static/assets/glowMapMerge.fragment-DxcneU_F.js +25 -0
  123. python_cad_tools/_viewer_static/assets/glowMapMerge.vertex-DaJJKqMV.js +8 -0
  124. python_cad_tools/_viewer_static/assets/harmonicsFunctions-DzJcvNWG.js +16 -0
  125. python_cad_tools/_viewer_static/assets/hdrTextureLoader-BGQvgh0h.js +2 -0
  126. python_cad_tools/_viewer_static/assets/helperFunctions-Cugfp1Fz.js +87 -0
  127. python_cad_tools/_viewer_static/assets/iesTextureLoader-CO4G0p2M.js +2 -0
  128. python_cad_tools/_viewer_static/assets/index-B2zBEWsq.js +7007 -0
  129. python_cad_tools/_viewer_static/assets/index-DcTTrc-8.css +1 -0
  130. python_cad_tools/_viewer_static/assets/kernelBlur.fragment-B6CTXTxY.js +57 -0
  131. python_cad_tools/_viewer_static/assets/kernelBlur.fragment-BkKbudbW.js +57 -0
  132. python_cad_tools/_viewer_static/assets/kernelBlur.vertex-BYwFU5IS.js +11 -0
  133. python_cad_tools/_viewer_static/assets/kernelBlur.vertex-D371zUfT.js +11 -0
  134. python_cad_tools/_viewer_static/assets/kernelBlurVaryingDeclaration-CgBGaCHg.js +1 -0
  135. python_cad_tools/_viewer_static/assets/kernelBlurVaryingDeclaration-YS8JpqdO.js +1 -0
  136. python_cad_tools/_viewer_static/assets/ktxTextureLoader-ncMSJTjl.js +1 -0
  137. python_cad_tools/_viewer_static/assets/lightFragment-skHiFbKB.js +398 -0
  138. python_cad_tools/_viewer_static/assets/logDepthDeclaration-BR8XRz9F.js +4 -0
  139. python_cad_tools/_viewer_static/assets/logDepthVertex-UKrhEIvg.js +14 -0
  140. python_cad_tools/_viewer_static/assets/mainUVVaryingDeclaration-BxQWGFcG.js +4 -0
  141. python_cad_tools/_viewer_static/assets/mesh.vertexData.functions-ayNlGC5K.js +1 -0
  142. python_cad_tools/_viewer_static/assets/meshUboDeclaration-BnX046aQ.js +4 -0
  143. python_cad_tools/_viewer_static/assets/oitFragment-CTMCOfNP.js +605 -0
  144. python_cad_tools/_viewer_static/assets/openpbr.fragment-DPJPqi6p.js +1530 -0
  145. python_cad_tools/_viewer_static/assets/openpbr.fragment-Dv6qTVVi.js +1384 -0
  146. python_cad_tools/_viewer_static/assets/openpbr.vertex-Bn2wrdGL.js +364 -0
  147. python_cad_tools/_viewer_static/assets/openpbr.vertex-CHESW3gB.js +251 -0
  148. python_cad_tools/_viewer_static/assets/openpbrMaterial.pure-BdK7VgO_.js +3 -0
  149. python_cad_tools/_viewer_static/assets/openpbrMaterialLoadingAdapter-Bm_AHDUN.js +4 -0
  150. python_cad_tools/_viewer_static/assets/openpbrTransmissionLayerData-BDa9qEoN.js +339 -0
  151. python_cad_tools/_viewer_static/assets/openpbrTransmissionLayerData-Ba_ly4LE.js +343 -0
  152. python_cad_tools/_viewer_static/assets/openpbrUboDeclaration-BY2lSH2C.js +5 -0
  153. python_cad_tools/_viewer_static/assets/openpbrUboDeclaration-DajhikDS.js +6 -0
  154. python_cad_tools/_viewer_static/assets/packingFunctions-BHPwcGG2.js +4 -0
  155. python_cad_tools/_viewer_static/assets/packingFunctions-DTwzBRBx.js +4 -0
  156. python_cad_tools/_viewer_static/assets/pass.fragment-9oKU4pI3.js +4 -0
  157. python_cad_tools/_viewer_static/assets/passCube.fragment-CpAeiYx1.js +23 -0
  158. python_cad_tools/_viewer_static/assets/passCube.fragment-DHtSWVRF.js +23 -0
  159. python_cad_tools/_viewer_static/assets/pbr.fragment-cIhMKwLs.js +2560 -0
  160. python_cad_tools/_viewer_static/assets/pbr.vertex-BfdONsf2.js +255 -0
  161. python_cad_tools/_viewer_static/assets/pbrBRDFFunctions-B_ppOzPO.js +173 -0
  162. python_cad_tools/_viewer_static/assets/pbrDebug-DDdwL5_t.js +693 -0
  163. python_cad_tools/_viewer_static/assets/pbrIBLFunctions-b1zdpzOP.js +43 -0
  164. python_cad_tools/_viewer_static/assets/pbrMaterial.pure-BZA7yVhu.js +2 -0
  165. python_cad_tools/_viewer_static/assets/pbrMaterialLoadingAdapter-BRvKRnjl.js +1 -0
  166. python_cad_tools/_viewer_static/assets/pbrUboDeclaration-CMZp25k3.js +5 -0
  167. python_cad_tools/_viewer_static/assets/postprocess.vertex-DzdUpNbW.js +9 -0
  168. python_cad_tools/_viewer_static/assets/procedural.vertex-BnbuQ-1f.js +7 -0
  169. python_cad_tools/_viewer_static/assets/procedural.vertex-Dp-Ng7Pc.js +8 -0
  170. python_cad_tools/_viewer_static/assets/reflectionFunction-DBlr3oDs.js +83 -0
  171. python_cad_tools/_viewer_static/assets/rgbdDecode.fragment-CyvnZFOJ.js +5 -0
  172. python_cad_tools/_viewer_static/assets/rgbdEncode.fragment-Dz4zLnoD.js +5 -0
  173. python_cad_tools/_viewer_static/assets/rgbdEncode.fragment-iscgpA1_.js +5 -0
  174. python_cad_tools/_viewer_static/assets/sceneUboDeclaration-BzFIc4mb.js +11 -0
  175. python_cad_tools/_viewer_static/assets/textureProcessor.fragment-C9D0rd-M.js +151 -0
  176. python_cad_tools/_viewer_static/assets/textureProcessor.fragment-JMKyWZng.js +146 -0
  177. python_cad_tools/_viewer_static/assets/tgaTextureLoader-oxTElIQJ.js +1 -0
  178. python_cad_tools/_viewer_static/assets/vertexColorMixing-mdC9xZe1.js +418 -0
  179. python_cad_tools/_viewer_static/favicon.svg +10 -0
  180. python_cad_tools/_viewer_static/index.html +18 -0
  181. python_cad_tools/_viewer_static/sw.js +61 -0
  182. python_cad_tools/artifacts.py +546 -0
  183. python_cad_tools/build-info.json +1 -0
  184. python_cad_tools/build.py +270 -0
  185. python_cad_tools/cli.py +212 -0
  186. python_cad_tools/context.py +67 -0
  187. python_cad_tools/determinism.py +66 -0
  188. python_cad_tools/drawings/__init__.py +124 -0
  189. python_cad_tools/drawings/_catalog.py +79 -0
  190. python_cad_tools/drawings/_validation.py +238 -0
  191. python_cad_tools/elements.py +121 -0
  192. python_cad_tools/exceptions.py +45 -0
  193. python_cad_tools/exporters/__init__.py +8 -0
  194. python_cad_tools/exporters/base.py +24 -0
  195. python_cad_tools/exporters/drawings/__init__.py +5 -0
  196. python_cad_tools/exporters/drawings/annotations.py +444 -0
  197. python_cad_tools/exporters/drawings/dxf.py +110 -0
  198. python_cad_tools/exporters/drawings/model.py +70 -0
  199. python_cad_tools/exporters/drawings/pdf.py +119 -0
  200. python_cad_tools/exporters/drawings/primitives.py +93 -0
  201. python_cad_tools/exporters/drawings/projection.py +64 -0
  202. python_cad_tools/exporters/drawings/svg.py +135 -0
  203. python_cad_tools/exporters/glb.py +100 -0
  204. python_cad_tools/exporters/ifc.py +229 -0
  205. python_cad_tools/exporters/quantities.py +136 -0
  206. python_cad_tools/exporters/step.py +117 -0
  207. python_cad_tools/geometry.py +187 -0
  208. python_cad_tools/manifests.py +338 -0
  209. python_cad_tools/project_config.py +174 -0
  210. python_cad_tools/py.typed +1 -0
  211. python_cad_tools/runtime_sync.py +126 -0
  212. python_cad_tools/schemas/build-manifest-1.json +1 -0
  213. python_cad_tools/schemas/design-manifest-1.json +1 -0
  214. python_cad_tools/schemas/download-manifest-2.json +46 -0
  215. python_cad_tools/schemas/drawing-annotations-1.json +66 -0
  216. python_cad_tools/schemas/glb-manifest-1.json +1 -0
  217. python_cad_tools/schemas/ifc-validation-1.json +1 -0
  218. python_cad_tools/schemas/quantities-1.json +1 -0
  219. python_cad_tools/schemas/run-metadata-1.json +1 -0
  220. python_cad_tools/schemas/site-metadata-1.json +34 -0
  221. python_cad_tools/schemas/step-validation-1.json +1 -0
  222. python_cad_tools/site.py +676 -0
  223. python_cad_tools/templates/project/.gitignore +9 -0
  224. python_cad_tools/templates/project/README.md +38 -0
  225. python_cad_tools/templates/project/config.py +36 -0
  226. python_cad_tools/templates/project/drawing_annotations.py +117 -0
  227. python_cad_tools/templates/project/model.py +87 -0
  228. python_cad_tools/templates/project/pyproject.toml +27 -0
  229. python_cad_tools/units.py +207 -0
  230. python_cad_tools/validation.py +153 -0
  231. python_cad_tools-0.1.0rc1.dist-info/METADATA +149 -0
  232. python_cad_tools-0.1.0rc1.dist-info/RECORD +236 -0
  233. python_cad_tools-0.1.0rc1.dist-info/WHEEL +5 -0
  234. python_cad_tools-0.1.0rc1.dist-info/entry_points.txt +2 -0
  235. python_cad_tools-0.1.0rc1.dist-info/licenses/LICENSE +679 -0
  236. python_cad_tools-0.1.0rc1.dist-info/top_level.txt +1 -0
@@ -0,0 +1,418 @@
1
+ import{S as e}from"./index-B2zBEWsq.js";const t="uvAttributeDeclaration",l=`#if defined(UV{X}) && !defined(USE_VERTEX_PULLING)
2
+ attribute uv{X}: vec2f;
3
+ #endif
4
+ `;e.IncludesShadersStoreWGSL[t]||(e.IncludesShadersStoreWGSL[t]=l);const O={name:t,shader:l},i="prePassVertexDeclaration",p=`#ifdef PREPASS
5
+ #ifdef PREPASS_LOCAL_POSITION
6
+ varying vPosition : vec3f;
7
+ #endif
8
+ #ifdef PREPASS_DEPTH
9
+ varying vViewPos: vec3f;
10
+ #endif
11
+ #ifdef PREPASS_NORMALIZED_VIEW_DEPTH
12
+ varying vNormViewDepth: f32;
13
+ #endif
14
+ #if defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR)
15
+ uniform previousViewProjection: mat4x4f;varying vCurrentPosition: vec4f;varying vPreviousPosition: vec4f;
16
+ #endif
17
+ #endif
18
+ `;e.IncludesShadersStoreWGSL[i]||(e.IncludesShadersStoreWGSL[i]=p);const h={name:i,shader:p},a="samplerVertexDeclaration",c=`#if defined(_DEFINENAME_) && _DEFINENAME_DIRECTUV==0
19
+ varying v_VARYINGNAME_UV: vec2f;
20
+ #endif
21
+ `;e.IncludesShadersStoreWGSL[a]||(e.IncludesShadersStoreWGSL[a]=c);const U={name:a,shader:c},r="lightVxUboDeclaration",_=`#ifdef LIGHT{X}
22
+ struct Light{X}
23
+ {vLightData: vec4f,
24
+ vLightDiffuse: vec4f,
25
+ vLightSpecular: vec4f,
26
+ #ifdef SPOTLIGHT{X}
27
+ vLightDirection: vec4f,
28
+ vLightFalloff: vec4f,
29
+ #elif defined(POINTLIGHT{X})
30
+ vLightFalloff: vec4f,
31
+ #elif defined(HEMILIGHT{X})
32
+ vLightGround: vec3f,
33
+ #elif defined(CLUSTLIGHT{X})
34
+ vSliceData: vec2f,
35
+ vSliceRanges: array<vec4f,CLUSTLIGHT_SLICES>,
36
+ #endif
37
+ #if defined(AREALIGHT{X}) && defined(AREALIGHTUSED) && defined(AREALIGHTSUPPORTED)
38
+ vLightWidth: vec4f,
39
+ vLightHeight: vec4f,
40
+ #endif
41
+ shadowsInfo: vec4f,
42
+ depthValues: vec2f} ;var<uniform> light{X} : Light{X};
43
+ #ifdef SHADOW{X}
44
+ #ifdef SHADOWCSM{X}
45
+ uniform lightMatrix{X}: array<mat4x4f,SHADOWCSMNUM_CASCADES{X}>;varying vPositionFromLight{X}_0: vec4f;varying vDepthMetric{X}_0: f32;varying vPositionFromLight{X}_1: vec4f;varying vDepthMetric{X}_1: f32;varying vPositionFromLight{X}_2: vec4f;varying vDepthMetric{X}_2: f32;varying vPositionFromLight{X}_3: vec4f;varying vDepthMetric{X}_3: f32;varying vPositionFromCamera{X}: vec4f;
46
+ #elif defined(SHADOWCUBE{X})
47
+ #else
48
+ varying vPositionFromLight{X}: vec4f;varying vDepthMetric{X}: f32;uniform lightMatrix{X}: mat4x4f;
49
+ #endif
50
+ #endif
51
+ #endif
52
+ `;e.IncludesShadersStoreWGSL[r]||(e.IncludesShadersStoreWGSL[r]=_);const g={name:r,shader:_},f="vertexPullingDeclaration",x=`#ifdef USE_VERTEX_PULLING
53
+ #ifdef VERTEX_PULLING_USE_INDEX_BUFFER
54
+ var<storage,read> indices : array<u32>;
55
+ #endif
56
+ var<storage,read> position : array<f32>;uniform vp_position_info : vec4f;
57
+ #ifdef NORMAL
58
+ var<storage,read> normal : array<f32>;uniform vp_normal_info : vec4f;
59
+ #endif
60
+ #ifdef TANGENT
61
+ var<storage,read> tangent : array<f32>;uniform vp_tangent_info : vec4f;
62
+ #endif
63
+ #ifdef UV1
64
+ var<storage,read> uv : array<f32>;uniform vp_uv_info : vec4f;
65
+ #define VP_UV1_SUPPORTED
66
+ #endif
67
+ #ifdef UV2
68
+ var<storage,read> uv2 : array<f32>;uniform vp_uv2_info : vec4f;
69
+ #define VP_UV2_SUPPORTED
70
+ #endif
71
+ #ifdef UV3
72
+ var<storage,read> uv3 : array<f32>;uniform vp_uv3_info : vec4f;
73
+ #define VP_UV3_SUPPORTED
74
+ #endif
75
+ #ifdef UV4
76
+ var<storage,read> uv4 : array<f32>;uniform vp_uv4_info : vec4f;
77
+ #define VP_UV4_SUPPORTED
78
+ #endif
79
+ #ifdef UV5
80
+ var<storage,read> uv5 : array<f32>;uniform vp_uv5_info : vec4f;
81
+ #define VP_UV5_SUPPORTED
82
+ #endif
83
+ #ifdef UV6
84
+ var<storage,read> uv6 : array<f32>;uniform vp_uv6_info : vec4f;
85
+ #define VP_UV6_SUPPORTED
86
+ #endif
87
+ #ifdef VERTEXCOLOR
88
+ var<storage,read> color : array<f32>;uniform vp_color_info : vec4f;
89
+ #endif
90
+ #if NUM_BONE_INFLUENCERS>0
91
+ var<storage,read> matricesIndices : array<u32>;var<storage,read> matricesWeights : array<f32>;uniform vp_matricesIndices_info : vec4f;uniform vp_matricesWeights_info : vec4f;
92
+ #if NUM_BONE_INFLUENCERS>4
93
+ var<storage,read> matricesIndicesExtra : array<u32>;var<storage,read> matricesWeightsExtra : array<f32>;uniform vp_matricesIndicesExtra_info : vec4f;uniform vp_matricesWeightsExtra_info : vec4f;
94
+ #endif
95
+ #endif
96
+ fn vp_convertToFloat(word : u32,byteInWord : u32,dataType : u32,normalized : bool)->f32 {switch (dataType) {case 5120u: {
97
+ let shift=byteInWord*8u;let value=(word>>shift) & 0xFFu;let signedValue=f32(i32(value<<24u)>>24u);if (normalized) { return signedValue/127.0; }
98
+ return signedValue;}
99
+ case 5121u: {
100
+ let shift=byteInWord*8u;let value=(word>>shift) & 0xFFu;if (normalized) { return f32(value)/255.0; }
101
+ return f32(value);}
102
+ case 5122u: {
103
+ let shift=(byteInWord & 0xFFFFFFFEu)*8u;let value=(word>>shift) & 0xFFFFu;let signedValue=f32(i32(value<<16u)>>16u);if (normalized) { return signedValue/32767.0; }
104
+ return signedValue;}
105
+ case 5123u: {
106
+ let shift=(byteInWord & 0xFFFFFFFEu)*8u;let value=(word>>shift) & 0xFFFFu;if (normalized) { return f32(value)/65535.0; }
107
+ return f32(value);}
108
+ case 5126u: {
109
+ return bitcast<f32>(word);}
110
+ default: { return 0.0; }}}
111
+ fn vp_componentSize(dataType : u32)->u32 {return select(select(2u,1u,dataType==5120u || dataType==5121u),4u,dataType==5126u);}
112
+ fn vp_readVertexIndex(index : u32)->u32 {
113
+ #ifndef VERTEX_PULLING_USE_INDEX_BUFFER
114
+ return index;
115
+ #else
116
+ #ifdef VERTEX_PULLING_INDEX_BUFFER_32BITS
117
+ return indices[index];
118
+ #else
119
+ let u32_index=index/2u;let bit_offset=(index & 1u)*16u;return (indices[u32_index]>>bit_offset) & 0xFFFFu;
120
+ #endif
121
+ #endif
122
+ }
123
+ fn vp_readPositionValue(byteOffset : u32,dataType : u32,normalized : bool)->f32 {return vp_convertToFloat(bitcast<u32>(position[byteOffset/4u]),byteOffset % 4u,dataType,normalized);}
124
+ fn vp_readPosition(info : vec4f,vertexIndex : u32)->vec3f {let baseOffset=u32(info.x);let stride=u32(info.y);let dataType=u32(info.z);let normalized=info.w != 0.0;let offset=baseOffset+vertexIndex*stride;let cs=vp_componentSize(dataType);return vec3f(
125
+ vp_readPositionValue(offset,dataType,normalized),
126
+ vp_readPositionValue(offset+cs,dataType,normalized),
127
+ vp_readPositionValue(offset+cs*2u,dataType,normalized)
128
+ );}
129
+ #ifdef NORMAL
130
+ fn vp_readNormalValue(byteOffset : u32,dataType : u32,normalized : bool)->f32 {return vp_convertToFloat(bitcast<u32>(normal[byteOffset/4u]),byteOffset % 4u,dataType,normalized);}
131
+ fn vp_readNormal(info : vec4f,vertexIndex : u32)->vec3f {let baseOffset=u32(info.x);let stride=u32(info.y);let dataType=u32(info.z);let normalized=info.w != 0.0;let offset=baseOffset+vertexIndex*stride;let cs=vp_componentSize(dataType);return vec3f(
132
+ vp_readNormalValue(offset,dataType,normalized),
133
+ vp_readNormalValue(offset+cs,dataType,normalized),
134
+ vp_readNormalValue(offset+cs*2u,dataType,normalized)
135
+ );}
136
+ #endif
137
+ #ifdef TANGENT
138
+ fn vp_readTangentValue(byteOffset : u32,dataType : u32,normalized : bool)->f32 {return vp_convertToFloat(bitcast<u32>(tangent[byteOffset/4u]),byteOffset % 4u,dataType,normalized);}
139
+ fn vp_readTangent(info : vec4f,vertexIndex : u32)->vec4f {let baseOffset=u32(info.x);let stride=u32(info.y);let dataType=u32(info.z);let normalized=info.w != 0.0;let offset=baseOffset+vertexIndex*stride;let cs=vp_componentSize(dataType);return vec4f(
140
+ vp_readTangentValue(offset,dataType,normalized),
141
+ vp_readTangentValue(offset+cs,dataType,normalized),
142
+ vp_readTangentValue(offset+cs*2u,dataType,normalized),
143
+ vp_readTangentValue(offset+cs*3u,dataType,normalized)
144
+ );}
145
+ #endif
146
+ #ifdef UV1
147
+ fn vp_readUVValue(byteOffset : u32,dataType : u32,normalized : bool)->f32 {return vp_convertToFloat(bitcast<u32>(uv[byteOffset/4u]),byteOffset % 4u,dataType,normalized);}
148
+ fn vp_readUV(info : vec4f,vertexIndex : u32)->vec2f {let baseOffset=u32(info.x);let stride=u32(info.y);let dataType=u32(info.z);let normalized=info.w != 0.0;let offset=baseOffset+vertexIndex*stride;let cs=vp_componentSize(dataType);return vec2f(
149
+ vp_readUVValue(offset,dataType,normalized),
150
+ vp_readUVValue(offset+cs,dataType,normalized)
151
+ );}
152
+ #endif
153
+ #ifdef UV2
154
+ fn vp_readUV2Value(byteOffset : u32,dataType : u32,normalized : bool)->f32 {return vp_convertToFloat(bitcast<u32>(uv2[byteOffset/4u]),byteOffset % 4u,dataType,normalized);}
155
+ fn vp_readUV2(info : vec4f,vertexIndex : u32)->vec2f {let baseOffset=u32(info.x);let stride=u32(info.y);let dataType=u32(info.z);let normalized=info.w != 0.0;let offset=baseOffset+vertexIndex*stride;let cs=vp_componentSize(dataType);return vec2f(
156
+ vp_readUV2Value(offset,dataType,normalized),
157
+ vp_readUV2Value(offset+cs,dataType,normalized)
158
+ );}
159
+ #endif
160
+ #ifdef UV3
161
+ fn vp_readUV3Value(byteOffset : u32,dataType : u32,normalized : bool)->f32 {return vp_convertToFloat(bitcast<u32>(uv3[byteOffset/4u]),byteOffset % 4u,dataType,normalized);}
162
+ fn vp_readUV3(info : vec4f,vertexIndex : u32)->vec2f {let baseOffset=u32(info.x);let stride=u32(info.y);let dataType=u32(info.z);let normalized=info.w != 0.0;let offset=baseOffset+vertexIndex*stride;let cs=vp_componentSize(dataType);return vec2f(
163
+ vp_readUV3Value(offset,dataType,normalized),
164
+ vp_readUV3Value(offset+cs,dataType,normalized)
165
+ );}
166
+ #endif
167
+ #ifdef UV4
168
+ fn vp_readUV4Value(byteOffset : u32,dataType : u32,normalized : bool)->f32 {return vp_convertToFloat(bitcast<u32>(uv4[byteOffset/4u]),byteOffset % 4u,dataType,normalized);}
169
+ fn vp_readUV4(info : vec4f,vertexIndex : u32)->vec2f {let baseOffset=u32(info.x);let stride=u32(info.y);let dataType=u32(info.z);let normalized=info.w != 0.0;let offset=baseOffset+vertexIndex*stride;let cs=vp_componentSize(dataType);return vec2f(
170
+ vp_readUV4Value(offset,dataType,normalized),
171
+ vp_readUV4Value(offset+cs,dataType,normalized)
172
+ );}
173
+ #endif
174
+ #ifdef UV5
175
+ fn vp_readUV5Value(byteOffset : u32,dataType : u32,normalized : bool)->f32 {return vp_convertToFloat(bitcast<u32>(uv5[byteOffset/4u]),byteOffset % 4u,dataType,normalized);}
176
+ fn vp_readUV5(info : vec4f,vertexIndex : u32)->vec2f {let baseOffset=u32(info.x);let stride=u32(info.y);let dataType=u32(info.z);let normalized=info.w != 0.0;let offset=baseOffset+vertexIndex*stride;let cs=vp_componentSize(dataType);return vec2f(
177
+ vp_readUV5Value(offset,dataType,normalized),
178
+ vp_readUV5Value(offset+cs,dataType,normalized)
179
+ );}
180
+ #endif
181
+ #ifdef UV6
182
+ fn vp_readUV6Value(byteOffset : u32,dataType : u32,normalized : bool)->f32 {return vp_convertToFloat(bitcast<u32>(uv6[byteOffset/4u]),byteOffset % 4u,dataType,normalized);}
183
+ fn vp_readUV6(info : vec4f,vertexIndex : u32)->vec2f {let baseOffset=u32(info.x);let stride=u32(info.y);let dataType=u32(info.z);let normalized=info.w != 0.0;let offset=baseOffset+vertexIndex*stride;let cs=vp_componentSize(dataType);return vec2f(
184
+ vp_readUV6Value(offset,dataType,normalized),
185
+ vp_readUV6Value(offset+cs,dataType,normalized)
186
+ );}
187
+ #endif
188
+ #ifdef VERTEXCOLOR
189
+ fn vp_readColorValue(byteOffset : u32,dataType : u32,normalized : bool)->f32 {return vp_convertToFloat(bitcast<u32>(color[byteOffset/4u]),byteOffset % 4u,dataType,normalized);}
190
+ fn vp_readColor(info : vec4f,vertexIndex : u32)->vec4f {let baseOffset=u32(info.x);let stride=u32(info.y);let dataType=u32(info.z);let normalized=info.w != 0.0;let offset=baseOffset+vertexIndex*stride;let cs=vp_componentSize(dataType);return vec4f(
191
+ vp_readColorValue(offset,dataType,normalized),
192
+ vp_readColorValue(offset+cs,dataType,normalized),
193
+ vp_readColorValue(offset+cs*2u,dataType,normalized),
194
+ vp_readColorValue(offset+cs*3u,dataType,normalized)
195
+ );}
196
+ #endif
197
+ #if NUM_BONE_INFLUENCERS>0
198
+ fn vp_readMatrixIndexValue(byteOffset : u32,dataType : u32,normalized : bool)->f32 {return vp_convertToFloat(matricesIndices[byteOffset/4u],byteOffset % 4u,dataType,normalized);}
199
+ fn vp_readBoneIndices(info : vec4f,vertexIndex : u32)->vec4f {let baseOffset=u32(info.x);let stride=u32(info.y);let dataType=u32(info.z);let normalized=info.w != 0.0;let offset=baseOffset+vertexIndex*stride;let cs=vp_componentSize(dataType);return vec4f(
200
+ vp_readMatrixIndexValue(offset,dataType,normalized),
201
+ vp_readMatrixIndexValue(offset+cs,dataType,normalized),
202
+ vp_readMatrixIndexValue(offset+cs*2u,dataType,normalized),
203
+ vp_readMatrixIndexValue(offset+cs*3u,dataType,normalized)
204
+ );}
205
+ fn vp_readMatrixWeightValue(byteOffset : u32,dataType : u32,normalized : bool)->f32 {return vp_convertToFloat(bitcast<u32>(matricesWeights[byteOffset/4u]),byteOffset % 4u,dataType,normalized);}
206
+ fn vp_readBoneWeights(info : vec4f,vertexIndex : u32)->vec4f {let baseOffset=u32(info.x);let stride=u32(info.y);let dataType=u32(info.z);let normalized=info.w != 0.0;let offset=baseOffset+vertexIndex*stride;let cs=vp_componentSize(dataType);return vec4f(
207
+ vp_readMatrixWeightValue(offset,dataType,normalized),
208
+ vp_readMatrixWeightValue(offset+cs,dataType,normalized),
209
+ vp_readMatrixWeightValue(offset+cs*2u,dataType,normalized),
210
+ vp_readMatrixWeightValue(offset+cs*3u,dataType,normalized)
211
+ );}
212
+ #if NUM_BONE_INFLUENCERS>4
213
+ fn vp_readMatrixIndexExtraValue(byteOffset : u32,dataType : u32,normalized : bool)->f32 {return vp_convertToFloat(matricesIndicesExtra[byteOffset/4u],byteOffset % 4u,dataType,normalized);}
214
+ fn vp_readBoneIndicesExtra(info : vec4f,vertexIndex : u32)->vec4f {let baseOffset=u32(info.x);let stride=u32(info.y);let dataType=u32(info.z);let normalized=info.w != 0.0;let offset=baseOffset+vertexIndex*stride;let cs=vp_componentSize(dataType);return vec4f(
215
+ vp_readMatrixIndexExtraValue(offset,dataType,normalized),
216
+ vp_readMatrixIndexExtraValue(offset+cs,dataType,normalized),
217
+ vp_readMatrixIndexExtraValue(offset+cs*2u,dataType,normalized),
218
+ vp_readMatrixIndexExtraValue(offset+cs*3u,dataType,normalized)
219
+ );}
220
+ fn vp_readMatrixWeightExtraValue(byteOffset : u32,dataType : u32,normalized : bool)->f32 {return vp_convertToFloat(bitcast<u32>(matricesWeightsExtra[byteOffset/4u]),byteOffset % 4u,dataType,normalized);}
221
+ fn vp_readBoneWeightsExtra(info : vec4f,vertexIndex : u32)->vec4f {let baseOffset=u32(info.x);let stride=u32(info.y);let dataType=u32(info.z);let normalized=info.w != 0.0;let offset=baseOffset+vertexIndex*stride;let cs=vp_componentSize(dataType);return vec4f(
222
+ vp_readMatrixWeightExtraValue(offset,dataType,normalized),
223
+ vp_readMatrixWeightExtraValue(offset+cs,dataType,normalized),
224
+ vp_readMatrixWeightExtraValue(offset+cs*2u,dataType,normalized),
225
+ vp_readMatrixWeightExtraValue(offset+cs*3u,dataType,normalized)
226
+ );}
227
+ #endif
228
+ #endif
229
+ #endif
230
+ `;e.IncludesShadersStoreWGSL[f]||(e.IncludesShadersStoreWGSL[f]=x);const N={name:f,shader:x},n="vertexPullingVertex",m=`#ifdef USE_VERTEX_PULLING
231
+ let vpVertexIndex: u32=vp_readVertexIndex(vertexInputs.vertexIndex);positionUpdated=vp_readPosition(uniforms.vp_position_info,vpVertexIndex);
232
+ #ifdef NORMAL
233
+ normalUpdated=vp_readNormal(uniforms.vp_normal_info,vpVertexIndex);
234
+ #endif
235
+ #ifdef TANGENT
236
+ tangentUpdated=vp_readTangent(uniforms.vp_tangent_info,vpVertexIndex);
237
+ #endif
238
+ #ifdef UV1
239
+ uvUpdated=vp_readUV(uniforms.vp_uv_info,vpVertexIndex);
240
+ #endif
241
+ #ifdef UV2
242
+ uv2Updated=vp_readUV2(uniforms.vp_uv2_info,vpVertexIndex);
243
+ #endif
244
+ #ifdef UV3
245
+ var uv3Updated: vec2f=vp_readUV3(uniforms.vp_uv3_info,vpVertexIndex);
246
+ #endif
247
+ #ifdef UV4
248
+ var uv4Updated: vec2f=vp_readUV4(uniforms.vp_uv4_info,vpVertexIndex);
249
+ #endif
250
+ #ifdef UV5
251
+ var uv5Updated: vec2f=vp_readUV5(uniforms.vp_uv5_info,vpVertexIndex);
252
+ #endif
253
+ #ifdef UV6
254
+ var uv6Updated: vec2f=vp_readUV6(uniforms.vp_uv6_info,vpVertexIndex);
255
+ #endif
256
+ #ifdef VERTEXCOLOR
257
+ colorUpdated=vp_readColor(uniforms.vp_color_info,vpVertexIndex);
258
+ #endif
259
+ #ifdef MORPHTARGETS
260
+ let vp_basePosition: vec3f=positionUpdated;
261
+ #ifdef NORMAL
262
+ let vp_baseNormal: vec3f=normalUpdated;
263
+ #endif
264
+ #ifdef TANGENT
265
+ let vp_baseTangent: vec4f=tangentUpdated;
266
+ #endif
267
+ #ifdef UV1
268
+ let vp_baseUV: vec2f=uvUpdated;
269
+ #endif
270
+ #ifdef UV2
271
+ let vp_baseUV2: vec2f=uv2Updated;
272
+ #endif
273
+ #ifdef VERTEXCOLOR
274
+ let vp_baseColor: vec4f=colorUpdated;
275
+ #endif
276
+ #endif
277
+ #if NUM_BONE_INFLUENCERS>0
278
+ var vp_matricesIndices: vec4f=vp_readBoneIndices(uniforms.vp_matricesIndices_info,vpVertexIndex);var vp_matricesWeights: vec4f=vp_readBoneWeights(uniforms.vp_matricesWeights_info,vpVertexIndex);
279
+ #if NUM_BONE_INFLUENCERS>4
280
+ var vp_matricesIndicesExtra: vec4f=vp_readBoneIndicesExtra(uniforms.vp_matricesIndicesExtra_info,vpVertexIndex);var vp_matricesWeightsExtra: vec4f=vp_readBoneWeightsExtra(uniforms.vp_matricesWeightsExtra_info,vpVertexIndex);
281
+ #endif
282
+ #endif
283
+ #endif
284
+ `;e.IncludesShadersStoreWGSL[n]||(e.IncludesShadersStoreWGSL[n]=m);const P={name:n,shader:m},d="prePassVertex",E=`#ifdef PREPASS_DEPTH
285
+ vertexOutputs.vViewPos=(scene.view*worldPos).rgb;
286
+ #endif
287
+ #ifdef PREPASS_NORMALIZED_VIEW_DEPTH
288
+ vertexOutputs.vNormViewDepth=((scene.view*worldPos).z-uniforms.cameraInfo.x)/(uniforms.cameraInfo.y-uniforms.cameraInfo.x);
289
+ #endif
290
+ #ifdef PREPASS_LOCAL_POSITION
291
+ vertexOutputs.vPosition=positionUpdated.xyz;
292
+ #endif
293
+ #if (defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR)) && defined(BONES_VELOCITY_ENABLED)
294
+ vertexOutputs.vCurrentPosition=scene.viewProjection*worldPos;
295
+ #if NUM_BONE_INFLUENCERS>0
296
+ var previousInfluence: mat4x4f;previousInfluence=uniforms.mPreviousBones[ i32(vertexInputs.matricesIndices[0])]*vertexInputs.matricesWeights[0];
297
+ #if NUM_BONE_INFLUENCERS>1
298
+ previousInfluence+=uniforms.mPreviousBones[ i32(vertexInputs.matricesIndices[1])]*vertexInputs.matricesWeights[1];
299
+ #endif
300
+ #if NUM_BONE_INFLUENCERS>2
301
+ previousInfluence+=uniforms.mPreviousBones[ i32(vertexInputs.matricesIndices[2])]*vertexInputs.matricesWeights[2];
302
+ #endif
303
+ #if NUM_BONE_INFLUENCERS>3
304
+ previousInfluence+=uniforms.mPreviousBones[ i32(vertexInputs.matricesIndices[3])]*vertexInputs.matricesWeights[3];
305
+ #endif
306
+ #if NUM_BONE_INFLUENCERS>4
307
+ previousInfluence+=uniforms.mPreviousBones[ i32(vertexInputs.matricesIndicesExtra[0])]*vertexInputs.matricesWeightsExtra[0];
308
+ #endif
309
+ #if NUM_BONE_INFLUENCERS>5
310
+ previousInfluence+=uniforms.mPreviousBones[ i32(vertexInputs.matricesIndicesExtra[1])]*vertexInputs.matricesWeightsExtra[1];
311
+ #endif
312
+ #if NUM_BONE_INFLUENCERS>6
313
+ previousInfluence+=uniforms.mPreviousBones[ i32(vertexInputs.matricesIndicesExtra[2])]*vertexInputs.matricesWeightsExtra[2];
314
+ #endif
315
+ #if NUM_BONE_INFLUENCERS>7
316
+ previousInfluence+=uniforms.mPreviousBones[ i32(vertexInputs.matricesIndicesExtra[3])]*vertexInputs.matricesWeightsExtra[3];
317
+ #endif
318
+ vertexOutputs.vPreviousPosition=uniforms.previousViewProjection*finalPreviousWorld*previousInfluence* vec4f(positionUpdated,1.0);
319
+ #else
320
+ vertexOutputs.vPreviousPosition=uniforms.previousViewProjection*finalPreviousWorld* vec4f(positionUpdated,1.0);
321
+ #endif
322
+ #endif
323
+ `;e.IncludesShadersStoreWGSL[d]||(e.IncludesShadersStoreWGSL[d]=E);const L={name:d,shader:E},o="uvVariableDeclaration",V=`#ifdef MAINUV{X}
324
+ #if !defined(UV{X})
325
+ var uv{X}: vec2f=vec2f(0.,0.);
326
+ #elif defined(USE_VERTEX_PULLING)
327
+ var uv{X}: vec2f=uv{X}Updated;
328
+ #else
329
+ var uv{X}: vec2f=vertexInputs.uv{X};
330
+ #endif
331
+ vertexOutputs.vMainUV{X}=uv{X};
332
+ #endif
333
+ `;e.IncludesShadersStoreWGSL[o]||(e.IncludesShadersStoreWGSL[o]=V);const z={name:o,shader:V},s="samplerVertexImplementation",I=`#if defined(_DEFINENAME_) && _DEFINENAME_DIRECTUV==0
334
+ if (uniforms.v_INFONAME_==0.)
335
+ {vertexOutputs.v_VARYINGNAME_UV= (uniforms._MATRIXNAME_Matrix* vec4f(uvUpdated,1.0,0.0)).xy;}
336
+ #ifdef UV2
337
+ else if (uniforms.v_INFONAME_==1.)
338
+ {vertexOutputs.v_VARYINGNAME_UV= (uniforms._MATRIXNAME_Matrix* vec4f(uv2Updated,1.0,0.0)).xy;}
339
+ #endif
340
+ #ifdef UV3
341
+ else if (uniforms.v_INFONAME_==2.)
342
+ {vertexOutputs.v_VARYINGNAME_UV= (uniforms._MATRIXNAME_Matrix* vec4f(vertexInputs.uv3,1.0,0.0)).xy;}
343
+ #endif
344
+ #ifdef UV4
345
+ else if (uniforms.v_INFONAME_==3.)
346
+ {vertexOutputs.v_VARYINGNAME_UV= (uniforms._MATRIXNAME_Matrix* vec4f(vertexInputs.uv4,1.0,0.0)).xy;}
347
+ #endif
348
+ #ifdef UV5
349
+ else if (uniforms.v_INFONAME_==4.)
350
+ {vertexOutputs.v_VARYINGNAME_UV= (uniforms._MATRIXNAME_Matrix* vec4f(vertexInputs.uv5,1.0,0.0)).xy;}
351
+ #endif
352
+ #ifdef UV6
353
+ else if (uniforms.v_INFONAME_==5.)
354
+ {vertexOutputs.v_VARYINGNAME_UV= (uniforms._MATRIXNAME_Matrix* vec4f(vertexInputs.uv6,1.0,0.0)).xy;}
355
+ #endif
356
+ #endif
357
+ `;e.IncludesShadersStoreWGSL[s]||(e.IncludesShadersStoreWGSL[s]=I);const b={name:s,shader:I},u="shadowsVertex",y=`#ifdef SHADOWS
358
+ #if defined(SHADOWCSM{X})
359
+ #ifdef SCENE_UBO
360
+ vertexOutputs.vPositionFromCamera{X}=scene.view*worldPos;
361
+ #else
362
+ vertexOutputs.vPositionFromCamera{X}=uniforms.view*worldPos;
363
+ #endif
364
+ #if SHADOWCSMNUM_CASCADES{X}>0
365
+ vertexOutputs.vPositionFromLight{X}_0=uniforms.lightMatrix{X}[0]*worldPos;
366
+ #ifdef USE_REVERSE_DEPTHBUFFER
367
+ vertexOutputs.vDepthMetric{X}_0=(-vertexOutputs.vPositionFromLight{X}_0.z+light{X}.depthValues.x)/light{X}.depthValues.y;
368
+ #else
369
+ vertexOutputs.vDepthMetric{X}_0= (vertexOutputs.vPositionFromLight{X}_0.z+light{X}.depthValues.x)/light{X}.depthValues.y;
370
+ #endif
371
+ #endif
372
+ #if SHADOWCSMNUM_CASCADES{X}>1
373
+ vertexOutputs.vPositionFromLight{X}_1=uniforms.lightMatrix{X}[1]*worldPos;
374
+ #ifdef USE_REVERSE_DEPTHBUFFER
375
+ vertexOutputs.vDepthMetric{X}_1=(-vertexOutputs.vPositionFromLight{X}_1.z+light{X}.depthValues.x)/light{X}.depthValues.y;
376
+ #else
377
+ vertexOutputs.vDepthMetric{X}_1= (vertexOutputs.vPositionFromLight{X}_1.z+light{X}.depthValues.x)/light{X}.depthValues.y;
378
+ #endif
379
+ #endif
380
+ #if SHADOWCSMNUM_CASCADES{X}>2
381
+ vertexOutputs.vPositionFromLight{X}_2=uniforms.lightMatrix{X}[2]*worldPos;
382
+ #ifdef USE_REVERSE_DEPTHBUFFER
383
+ vertexOutputs.vDepthMetric{X}_2=(-vertexOutputs.vPositionFromLight{X}_2.z+light{X}.depthValues.x)/light{X}.depthValues.y;
384
+ #else
385
+ vertexOutputs.vDepthMetric{X}_2= (vertexOutputs.vPositionFromLight{X}_2.z+light{X}.depthValues.x)/light{X}.depthValues.y;
386
+ #endif
387
+ #endif
388
+ #if SHADOWCSMNUM_CASCADES{X}>3
389
+ vertexOutputs.vPositionFromLight{X}_3=uniforms.lightMatrix{X}[3]*worldPos;
390
+ #ifdef USE_REVERSE_DEPTHBUFFER
391
+ vertexOutputs.vDepthMetric{X}_3=(-vertexOutputs.vPositionFromLight{X}_3.z+light{X}.depthValues.x)/light{X}.depthValues.y;
392
+ #else
393
+ vertexOutputs.vDepthMetric{X}_3= (vertexOutputs.vPositionFromLight{X}_3.z+light{X}.depthValues.x)/light{X}.depthValues.y;
394
+ #endif
395
+ #endif
396
+ #elif defined(SHADOW{X}) && !defined(SHADOWCUBE{X})
397
+ vertexOutputs.vPositionFromLight{X}=uniforms.lightMatrix{X}*worldPos;
398
+ #ifdef USE_REVERSE_DEPTHBUFFER
399
+ vertexOutputs.vDepthMetric{X}=(-vertexOutputs.vPositionFromLight{X}.z+light{X}.depthValues.x)/light{X}.depthValues.y;
400
+ #else
401
+ vertexOutputs.vDepthMetric{X}=(vertexOutputs.vPositionFromLight{X}.z+light{X}.depthValues.x)/light{X}.depthValues.y;
402
+ #endif
403
+ #endif
404
+ #endif
405
+ `;e.IncludesShadersStoreWGSL[u]||(e.IncludesShadersStoreWGSL[u]=y);const X={name:u,shader:y},v="vertexColorMixing",S=`#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
406
+ vertexOutputs.vColor=vec4f(1.0);
407
+ #ifdef VERTEXCOLOR
408
+ #ifdef VERTEXALPHA
409
+ vertexOutputs.vColor*=colorUpdated;
410
+ #else
411
+ vertexOutputs.vColor=vec4f(vertexOutputs.vColor.rgb*colorUpdated.rgb,vertexOutputs.vColor.a);
412
+ #endif
413
+ #endif
414
+ #ifdef INSTANCESCOLOR
415
+ vertexOutputs.vColor*=vertexInputs.instanceColor;
416
+ #endif
417
+ #endif
418
+ `;e.IncludesShadersStoreWGSL[v]||(e.IncludesShadersStoreWGSL[v]=S);const M={name:v,shader:S};export{P as a,L as b,z as c,b as d,X as e,M as f,g as l,h as p,U as s,O as u,N as v};
@@ -0,0 +1,10 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-label="Python CAD Tools Viewer">
2
+ <defs>
3
+ <linearGradient id="brand" x1="8" y1="4" x2="56" y2="60" gradientUnits="userSpaceOnUse">
4
+ <stop stop-color="#0b8db6"/>
5
+ <stop offset="1" stop-color="#075e7c"/>
6
+ </linearGradient>
7
+ </defs>
8
+ <rect width="64" height="64" rx="16" fill="url(#brand)"/>
9
+ <path fill="#fff" d="M20 14h14.8c8.6 0 13.4 4 13.4 10.4 0 4.1-2 7.1-5.6 8.7 4.7 1.5 7.4 4.8 7.4 9.6C50 50 44.5 54 35 54H20V14Zm14 16c4.3 0 6.5-1.7 6.5-5s-2.2-4.8-6.5-4.8h-6.2V30H34Zm.9 17.7c4.8 0 7.3-1.9 7.3-5.7s-2.5-5.8-7.3-5.8h-7.1v11.5h7.1Z"/>
10
+ </svg>
@@ -0,0 +1,18 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
6
+ <meta name="theme-color" content="#101820" />
7
+ <meta name="description" content="Python CAD Tools artifact viewer" />
8
+ <link rel="icon" href="./favicon.svg" type="image/svg+xml" />
9
+ <link rel="manifest" href="./app.webmanifest" />
10
+ <title>Python CAD Tools Viewer</title>
11
+ <script type="module" crossorigin src="./assets/index-B2zBEWsq.js"></script>
12
+ <link rel="stylesheet" crossorigin href="./assets/index-DcTTrc-8.css">
13
+ </head>
14
+ <body>
15
+ <a class="skip-link" href="#viewer-canvas">Skip to 3D viewer</a>
16
+ <div id="app"></div>
17
+ </body>
18
+ </html>
@@ -0,0 +1,61 @@
1
+ const CACHE_PREFIX = "python-cad-tools-viewer";
2
+
3
+ function scopeIdentity() {
4
+ return new URL(self.registration.scope).pathname;
5
+ }
6
+
7
+ function cacheName(toolVersion, designBuildHash) {
8
+ return `${CACHE_PREFIX}|${scopeIdentity()}|${toolVersion}|${designBuildHash}`;
9
+ }
10
+
11
+ self.addEventListener("install", (event) => {
12
+ event.waitUntil(caches.open(`${CACHE_PREFIX}|bootstrap|${scopeIdentity()}`).then((cache) => cache.addAll(["./", "./index.html"])));
13
+ self.skipWaiting();
14
+ });
15
+
16
+ self.addEventListener("activate", (event) => {
17
+ event.waitUntil(self.clients.claim());
18
+ });
19
+
20
+ self.addEventListener("message", (event) => {
21
+ if (event.data?.type !== "CACHE_SITE") return;
22
+ event.waitUntil((async () => {
23
+ const port = event.ports[0];
24
+ try {
25
+ const { toolVersion, designBuildHash } = event.data;
26
+ if (typeof toolVersion !== "string" || !/^[0-9a-f]{64}$/.test(designBuildHash)) throw new Error("Invalid cache identity");
27
+ const name = cacheName(toolVersion, designBuildHash);
28
+ const cache = await caches.open(name);
29
+ const urls = [...new Set(event.data.urls || [])].map((url) => new URL(url, self.registration.scope));
30
+ for (const url of urls) {
31
+ if (url.origin !== self.location.origin || !url.href.startsWith(self.registration.scope)) throw new Error(`Unsafe cache URL: ${url}`);
32
+ const response = await fetch(url, { cache: "reload" });
33
+ if (!response.ok) throw new Error(`Unable to cache ${url.pathname}: ${response.status}`);
34
+ await cache.put(url, response);
35
+ }
36
+ const prefix = `${CACHE_PREFIX}|${scopeIdentity()}|`;
37
+ await Promise.all((await caches.keys()).filter((key) => key.startsWith(prefix) && key !== name).map((key) => caches.delete(key)));
38
+ port?.postMessage({ ok: true, cache: name });
39
+ } catch (error) {
40
+ port?.postMessage({ ok: false, error: error instanceof Error ? error.message : String(error) });
41
+ }
42
+ })());
43
+ });
44
+
45
+ self.addEventListener("fetch", (event) => {
46
+ if (event.request.method !== "GET" || new URL(event.request.url).origin !== self.location.origin) return;
47
+ event.respondWith((async () => {
48
+ try {
49
+ const response = await fetch(event.request);
50
+ if (response.ok) {
51
+ const names = (await caches.keys()).filter((key) => key.startsWith(`${CACHE_PREFIX}|${scopeIdentity()}|`));
52
+ await Promise.all(names.map(async (name) => (await caches.open(name)).put(event.request, response.clone())));
53
+ }
54
+ return response;
55
+ } catch (error) {
56
+ const cached = await caches.match(event.request, { ignoreSearch: false });
57
+ if (cached) return cached;
58
+ throw error;
59
+ }
60
+ })());
61
+ });