abstract-3d 2.6.19 → 2.7.0

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 (142) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/lib/abstract-3d.d.ts +13 -1
  3. package/lib/abstract-3d.d.ts.map +1 -1
  4. package/lib/abstract-3d.js +77 -0
  5. package/lib/abstract-3d.js.map +1 -1
  6. package/lib/renderers/dxf/dxf-encoding/dxf-color.d.ts +5 -0
  7. package/lib/renderers/dxf/dxf-encoding/dxf-color.d.ts.map +1 -0
  8. package/lib/renderers/dxf/{color.js → dxf-encoding/dxf-color.js} +24 -19
  9. package/lib/renderers/dxf/dxf-encoding/dxf-color.js.map +1 -0
  10. package/lib/renderers/dxf/dxf-encoding/dxf-common.d.ts +13 -0
  11. package/lib/renderers/dxf/dxf-encoding/dxf-common.d.ts.map +1 -0
  12. package/lib/renderers/dxf/dxf-encoding/dxf-common.js +23 -0
  13. package/lib/renderers/dxf/dxf-encoding/dxf-common.js.map +1 -0
  14. package/lib/renderers/dxf/dxf-encoding/dxf-dimension.d.ts +6 -0
  15. package/lib/renderers/dxf/dxf-encoding/dxf-dimension.d.ts.map +1 -0
  16. package/lib/renderers/dxf/dxf-encoding/dxf-dimension.js +50 -0
  17. package/lib/renderers/dxf/dxf-encoding/dxf-dimension.js.map +1 -0
  18. package/lib/renderers/dxf/dxf-encoding/dxf-footer.d.ts +2 -0
  19. package/lib/renderers/dxf/dxf-encoding/dxf-footer.d.ts.map +1 -0
  20. package/lib/renderers/dxf/{dxf-encoding.js → dxf-encoding/dxf-footer.js} +3 -1819
  21. package/lib/renderers/dxf/{dxf-encoding.js.map → dxf-encoding/dxf-footer.js.map} +1 -1
  22. package/lib/renderers/dxf/dxf-encoding/dxf-header.d.ts +3 -0
  23. package/lib/renderers/dxf/dxf-encoding/dxf-header.d.ts.map +1 -0
  24. package/lib/renderers/dxf/dxf-encoding/dxf-header.js +1653 -0
  25. package/lib/renderers/dxf/dxf-encoding/dxf-header.js.map +1 -0
  26. package/lib/renderers/dxf/dxf-encoding/dxf-line.d.ts +5 -0
  27. package/lib/renderers/dxf/dxf-encoding/dxf-line.d.ts.map +1 -0
  28. package/lib/renderers/dxf/dxf-encoding/dxf-line.js +29 -0
  29. package/lib/renderers/dxf/dxf-encoding/dxf-line.js.map +1 -0
  30. package/lib/renderers/dxf/dxf-encoding/dxf-polyline.d.ts +5 -0
  31. package/lib/renderers/dxf/dxf-encoding/dxf-polyline.d.ts.map +1 -0
  32. package/lib/renderers/dxf/dxf-encoding/dxf-polyline.js +73 -0
  33. package/lib/renderers/dxf/dxf-encoding/dxf-polyline.js.map +1 -0
  34. package/lib/renderers/dxf/dxf-encoding/dxf-quad.d.ts +5 -0
  35. package/lib/renderers/dxf/dxf-encoding/dxf-quad.d.ts.map +1 -0
  36. package/lib/renderers/dxf/dxf-encoding/dxf-quad.js +39 -0
  37. package/lib/renderers/dxf/dxf-encoding/dxf-quad.js.map +1 -0
  38. package/lib/renderers/dxf/dxf-encoding/dxf-text.d.ts +19 -0
  39. package/lib/renderers/dxf/dxf-encoding/dxf-text.d.ts.map +1 -0
  40. package/lib/renderers/dxf/dxf-encoding/dxf-text.js +70 -0
  41. package/lib/renderers/dxf/dxf-encoding/dxf-text.js.map +1 -0
  42. package/lib/renderers/dxf/dxf-encoding/dxf-triangle.d.ts +5 -0
  43. package/lib/renderers/dxf/dxf-encoding/dxf-triangle.d.ts.map +1 -0
  44. package/lib/renderers/dxf/dxf-encoding/dxf-triangle.js +3 -0
  45. package/lib/renderers/dxf/dxf-encoding/dxf-triangle.js.map +1 -0
  46. package/lib/renderers/dxf/dxf-geometries/dxf-box.d.ts +2 -2
  47. package/lib/renderers/dxf/dxf-geometries/dxf-box.d.ts.map +1 -1
  48. package/lib/renderers/dxf/dxf-geometries/dxf-box.js +8 -8
  49. package/lib/renderers/dxf/dxf-geometries/dxf-box.js.map +1 -1
  50. package/lib/renderers/dxf/dxf-geometries/dxf-cone.d.ts +2 -2
  51. package/lib/renderers/dxf/dxf-geometries/dxf-cone.d.ts.map +1 -1
  52. package/lib/renderers/dxf/dxf-geometries/dxf-cone.js +4 -4
  53. package/lib/renderers/dxf/dxf-geometries/dxf-cone.js.map +1 -1
  54. package/lib/renderers/dxf/dxf-geometries/dxf-cylinder.d.ts +2 -2
  55. package/lib/renderers/dxf/dxf-geometries/dxf-cylinder.d.ts.map +1 -1
  56. package/lib/renderers/dxf/dxf-geometries/dxf-cylinder.js +6 -5
  57. package/lib/renderers/dxf/dxf-geometries/dxf-cylinder.js.map +1 -1
  58. package/lib/renderers/dxf/dxf-geometries/dxf-dimension.d.ts +4 -0
  59. package/lib/renderers/dxf/dxf-geometries/dxf-dimension.d.ts.map +1 -0
  60. package/lib/renderers/dxf/dxf-geometries/dxf-dimension.js +13 -0
  61. package/lib/renderers/dxf/dxf-geometries/dxf-dimension.js.map +1 -0
  62. package/lib/renderers/dxf/dxf-geometries/dxf-image.d.ts +2 -2
  63. package/lib/renderers/dxf/dxf-geometries/dxf-image.d.ts.map +1 -1
  64. package/lib/renderers/dxf/dxf-geometries/dxf-image.js +8 -7
  65. package/lib/renderers/dxf/dxf-geometries/dxf-image.js.map +1 -1
  66. package/lib/renderers/dxf/dxf-geometries/dxf-plane.d.ts +2 -2
  67. package/lib/renderers/dxf/dxf-geometries/dxf-plane.d.ts.map +1 -1
  68. package/lib/renderers/dxf/dxf-geometries/dxf-plane.js +3 -3
  69. package/lib/renderers/dxf/dxf-geometries/dxf-plane.js.map +1 -1
  70. package/lib/renderers/dxf/dxf-geometries/dxf-polygon.d.ts +2 -2
  71. package/lib/renderers/dxf/dxf-geometries/dxf-polygon.d.ts.map +1 -1
  72. package/lib/renderers/dxf/dxf-geometries/dxf-polygon.js +7 -6
  73. package/lib/renderers/dxf/dxf-geometries/dxf-polygon.js.map +1 -1
  74. package/lib/renderers/dxf/dxf-geometries/dxf-shape.d.ts +2 -2
  75. package/lib/renderers/dxf/dxf-geometries/dxf-shape.d.ts.map +1 -1
  76. package/lib/renderers/dxf/dxf-geometries/dxf-shape.js +6 -5
  77. package/lib/renderers/dxf/dxf-geometries/dxf-shape.js.map +1 -1
  78. package/lib/renderers/dxf/dxf-geometries/dxf-text.d.ts +4 -0
  79. package/lib/renderers/dxf/dxf-geometries/dxf-text.d.ts.map +1 -0
  80. package/lib/renderers/dxf/dxf-geometries/dxf-text.js +8 -0
  81. package/lib/renderers/dxf/dxf-geometries/dxf-text.js.map +1 -0
  82. package/lib/renderers/dxf/dxf.d.ts +4 -3
  83. package/lib/renderers/dxf/dxf.d.ts.map +1 -1
  84. package/lib/renderers/dxf/dxf.js +36 -22
  85. package/lib/renderers/dxf/dxf.js.map +1 -1
  86. package/lib/renderers/dxf/index.d.ts +1 -1
  87. package/lib/renderers/dxf/index.d.ts.map +1 -1
  88. package/lib/renderers/react/react-dimension.d.ts +4 -3
  89. package/lib/renderers/react/react-dimension.d.ts.map +1 -1
  90. package/lib/renderers/react/react-dimension.js +4 -3
  91. package/lib/renderers/react/react-dimension.js.map +1 -1
  92. package/lib/renderers/step/step-encoding.d.ts +2 -0
  93. package/lib/renderers/step/step-encoding.d.ts.map +1 -1
  94. package/lib/renderers/step/step-encoding.js +16 -3
  95. package/lib/renderers/step/step-encoding.js.map +1 -1
  96. package/lib/renderers/step/step-geometries/step-box.d.ts.map +1 -1
  97. package/lib/renderers/step/step-geometries/step-box.js +3 -0
  98. package/lib/renderers/step/step-geometries/step-box.js.map +1 -1
  99. package/lib/renderers/step/step-geometries/step-cylinder.d.ts.map +1 -1
  100. package/lib/renderers/step/step-geometries/step-cylinder.js +67 -21
  101. package/lib/renderers/step/step-geometries/step-cylinder.js.map +1 -1
  102. package/lib/renderers/svg/svg.d.ts.map +1 -1
  103. package/lib/renderers/svg/svg.js +6 -27
  104. package/lib/renderers/svg/svg.js.map +1 -1
  105. package/lib/utils.d.ts +3 -0
  106. package/lib/utils.d.ts.map +1 -1
  107. package/lib/utils.js +30 -0
  108. package/lib/utils.js.map +1 -1
  109. package/package.json +2 -2
  110. package/src/abstract-3d.ts +127 -7
  111. package/src/renderers/dxf/{color.ts → dxf-encoding/dxf-color.ts} +27 -20
  112. package/src/renderers/dxf/dxf-encoding/dxf-common.ts +31 -0
  113. package/src/renderers/dxf/dxf-encoding/dxf-dimension.ts +60 -0
  114. package/src/renderers/dxf/{dxf-encoding.ts → dxf-encoding/dxf-footer.ts} +4 -1870
  115. package/src/renderers/dxf/dxf-encoding/dxf-header.ts +1657 -0
  116. package/src/renderers/dxf/dxf-encoding/dxf-line.ts +35 -0
  117. package/src/renderers/dxf/dxf-encoding/dxf-polyline.ts +83 -0
  118. package/src/renderers/dxf/dxf-encoding/dxf-quad.ts +47 -0
  119. package/src/renderers/dxf/dxf-encoding/dxf-text.ts +71 -0
  120. package/src/renderers/dxf/dxf-encoding/dxf-triangle.ts +12 -0
  121. package/src/renderers/dxf/dxf-geometries/dxf-box.ts +18 -8
  122. package/src/renderers/dxf/dxf-geometries/dxf-cone.ts +13 -4
  123. package/src/renderers/dxf/dxf-geometries/dxf-cylinder.ts +13 -11
  124. package/src/renderers/dxf/dxf-geometries/dxf-dimension.ts +14 -0
  125. package/src/renderers/dxf/dxf-geometries/dxf-image.ts +11 -9
  126. package/src/renderers/dxf/dxf-geometries/dxf-plane.ts +7 -6
  127. package/src/renderers/dxf/dxf-geometries/dxf-polygon.ts +8 -6
  128. package/src/renderers/dxf/dxf-geometries/dxf-shape.ts +8 -6
  129. package/src/renderers/dxf/dxf-geometries/dxf-text.ts +9 -0
  130. package/src/renderers/dxf/dxf.ts +57 -39
  131. package/src/renderers/dxf/index.ts +1 -1
  132. package/src/renderers/react/react-dimension.tsx +8 -4
  133. package/src/renderers/step/step-encoding.ts +24 -5
  134. package/src/renderers/step/step-geometries/step-box.ts +6 -0
  135. package/src/renderers/step/step-geometries/step-cylinder.ts +303 -101
  136. package/src/renderers/svg/svg.ts +6 -34
  137. package/src/utils.ts +39 -0
  138. package/lib/renderers/dxf/color.d.ts +0 -7
  139. package/lib/renderers/dxf/color.d.ts.map +0 -1
  140. package/lib/renderers/dxf/color.js.map +0 -1
  141. package/lib/renderers/dxf/dxf-encoding.d.ts +0 -17
  142. package/lib/renderers/dxf/dxf-encoding.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"step-box.js","sourceRoot":"","sources":["../../../../src/renderers/step/step-geometries/step-box.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,SAAS,EACT,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,IAAI,EACJ,aAAa,EACb,OAAO,EACP,OAAO,EACP,OAAO,GACR,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EACL,kCAAkC,EAClC,aAAa,EACb,mBAAmB,EAEnB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,UAAU,EACV,WAAW,EACX,SAAS,EACT,iCAAiC,EACjC,UAAU,EACV,SAAS,EACT,UAAU,EACV,eAAe,EACf,sBAAsB,EACtB,IAAI,EACJ,mBAAmB,EACnB,uDAAuD,EAEvD,aAAa,EACb,KAAK,EACL,6BAA6B,EAC7B,OAAO,EACP,eAAe,EACf,kBAAkB,EAClB,0BAA0B,EAC1B,4BAA4B,EAC5B,wBAAwB,EACxB,+BAA+B,EAC/B,WAAW,EACX,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,EACnB,MAAM,EACN,YAAY,GACb,MAAM,qBAAqB,CAAC;AAE7B,MAAM,UAAU,OAAO,CAAC,CAAM,EAAE,GAAa,EAAE,SAAe,EAAE,SAAe,EAAE,CAAc;IAC7F,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;IACpB,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAClC,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,CAAC,CAAO,EAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAEjE,MAAM,OAAO,GAAG;QACd,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACb,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;QAClB,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAClB,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;KAC7B,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAErD,MAAM,eAAe,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACtC,MAAM,eAAe,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAEtC,MAAM,SAAS,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAExC,MAAM,SAAS,GAAG,CAAC,MAAY,EAAE,IAAU,EAAE,GAAS,EAAU,EAAE,CAChE,KAAK,CAAC,kBAAkB,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAErG,MAAM,QAAQ,GAAG,CAAC,CAAO,EAAE,CAAO,EAAU,EAAE;QAC5C,MAAM,EAAE,GAAG,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACjC,MAAM,EAAE,GAAG,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACjC,MAAM,EAAE,GAAG,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC/B,MAAM,EAAE,GAAG,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC/B,MAAM,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QAC9B,MAAM,IAAI,GAAG,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,CAAC,IAAsC,EAAE,IAAU,EAAE,QAAc,EAAE,IAAa,EAAU,EAAE;QAC7G,MAAM,KAAK,GAAG;YACZ,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,CAAC;YAC9C,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,CAAC;YAC9C,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,CAAC;YAC9C,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,CAAC;SAC/C,CAAC;QAEF,MAAM,QAAQ,GAAG;YACf,aAAa,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,CAAC,EAAE,GAAG,CAAC;YAChC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,CAAC,EAAE,GAAG,CAAC;YAChC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,CAAC,EAAE,GAAG,CAAC;YAChC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,CAAC,EAAE,GAAG,CAAC;SACjC,CAAC;QAEF,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACpC,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC3D,OAAO,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC9D,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG;QACZ,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,aAAa;QAC/D,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY;QAC5D,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,aAAa;QAC/D,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY;QAC5D,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,WAAW;QAC7D,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,cAAc;KAClE,CAAC;IAEF,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC3C,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAE9D,MAAM,aAAa,GAAG,kBAAkB,CACtC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC,EAC5B,SAAS,CAAC,eAAe,EAAE,CAAC,CAAC,EAC7B,SAAS,CAAC,eAAe,EAAE,CAAC,CAAC,EAC7B,CAAC,CACF,CAAC;IAEF,MAAM,gBAAgB,GAAG,kCAAkC,CAAC,aAAa,EAAE,iBAAiB,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;IAEjH,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;IAClD,MAAM,iBAAiB,GAAG,0BAA0B,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;IAC5E,MAAM,cAAc,GAAG,eAAe,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACnD,MAAM,cAAc,GAAG,4BAA4B,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAChE,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,cAAc,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC;IACnF,MAAM,eAAe,GAAG,wBAAwB,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;IACvE,+BAA+B,CAAC,eAAe,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC;IAEtE,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACtC,MAAM,cAAc,GAAG,sBAAsB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC3D,MAAM,aAAa,GAAG,eAAe,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IACzD,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IACnE,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;IACjE,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,iCAAiC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;IACvE,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IACzD,MAAM,iBAAiB,GAAG,6BAA6B,CAAC,iBAAiB,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;IAC1F,MAAM,UAAU,GAAG,WAAW,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC;IACxE,uDAAuD,CAAC,UAAU,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;AACzF,CAAC"}
1
+ {"version":3,"file":"step-box.js","sourceRoot":"","sources":["../../../../src/renderers/step/step-geometries/step-box.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"step-cylinder.d.ts","sourceRoot":"","sources":["../../../../src/renderers/step/step-geometries/step-cylinder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,IAAI,EAKJ,QAAQ,EAGT,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAqBL,WAAW,EAiBZ,MAAM,qBAAqB,CAAC;AAI7B,wBAAgB,YAAY,CAC1B,CAAC,EAAE,QAAQ,EACX,GAAG,EAAE,QAAQ,EACb,SAAS,EAAE,IAAI,EACf,SAAS,EAAE,IAAI,EACf,CAAC,EAAE,WAAW,EACd,MAAM,CAAC,EAAE,MAAM,GACd,IAAI,CA6JN"}
1
+ {"version":3,"file":"step-cylinder.d.ts","sourceRoot":"","sources":["../../../../src/renderers/step/step-geometries/step-cylinder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,IAAI,EAKJ,QAAQ,EAGT,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAsBL,WAAW,EAiBZ,MAAM,qBAAqB,CAAC;AAK7B,wBAAgB,YAAY,CAC1B,CAAC,EAAE,QAAQ,EACX,GAAG,EAAE,QAAQ,EACb,SAAS,EAAE,IAAI,EACf,SAAS,EAAE,IAAI,EACf,CAAC,EAAE,WAAW,EACd,MAAM,CAAC,EAAE,MAAM,GACd,IAAI,CAqWN"}
@@ -1,37 +1,83 @@
1
1
  import { vec3TransRot, vec3RotCombine, vec3Zero, vec3, vec3Add, vec3Rot, } from "../../../abstract-3d.js";
2
2
  import { parseRgb } from "../../../utils.js";
3
- import { ADVANCED_BREP_SHAPE_REPRESENTATION, ADVANCED_FACE, APPLICATION_CONTEXT, APPLICATION_PROTOCOL_DEFINITION, AXIS2_PLACEMENT_3D, CARTESIAN_POINT, CIRCLE, CLOSED_SHELL, COLOUR_RGB, CURVE_STYLE, CYLINDRICAL_SURFACE, DIRECTION, DRAUGHTING_PRE_DEFINED_CURVE_FONT, EDGE_CURVE, EDGE_LOOP, FACE_BOUND, FILL_AREA_STYLE_COLOUR, LINE, MANIFOLD_SOLID_BREP, MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION, ORIENTED_EDGE, PLANE, PRESENTATION_STYLE_ASSIGNMENT, PRODUCT, PRODUCT_CONTEXT, PRODUCT_DEFINITION, PRODUCT_DEFINITION_CONTEXT, PRODUCT_DEFINITION_FORMATION, PRODUCT_DEFINITION_SHAPE, SHAPE_DEFINITION_REPRESENTATION, STYLED_ITEM, SURFACE_SIDE_STYLE, SURFACE_STYLE_FILL_AREA, SURFACE_STYLE_USAGE, VECTOR, VERTEX_POINT, } from "../step-encoding.js";
3
+ import { ADVANCED_BREP_SHAPE_REPRESENTATION, ADVANCED_FACE, APPLICATION_CONTEXT, APPLICATION_PROTOCOL_DEFINITION, AXIS2_PLACEMENT_3D, CARTESIAN_POINT, CIRCLE, CLOSED_SHELL, COLOUR_RGB, CONICAL_SURFACE, CURVE_STYLE, CYLINDRICAL_SURFACE, DIRECTION, DRAUGHTING_PRE_DEFINED_CURVE_FONT, EDGE_CURVE, EDGE_LOOP, FACE_BOUND, FILL_AREA_STYLE_COLOUR, LINE, MANIFOLD_SOLID_BREP, MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION, ORIENTED_EDGE, PLANE, PRESENTATION_STYLE_ASSIGNMENT, PRODUCT, PRODUCT_CONTEXT, PRODUCT_DEFINITION, PRODUCT_DEFINITION_CONTEXT, PRODUCT_DEFINITION_FORMATION, PRODUCT_DEFINITION_SHAPE, SHAPE_DEFINITION_REPRESENTATION, STYLED_ITEM, SURFACE_SIDE_STYLE, SURFACE_STYLE_FILL_AREA, SURFACE_STYLE_USAGE, VECTOR, VERTEX_POINT, } from "../step-encoding.js";
4
4
  const SMALLEST_RADIUS = 1e-4;
5
+ const GEOMETRY_EPSILON = 1e-12;
5
6
  export function stepCylinder(c, mat, parentPos, parentRot, m, rSmall) {
6
- const r = c.radius;
7
- const r2 = Math.max(rSmall ?? c.radius, SMALLEST_RADIUS);
8
7
  const h = c.length;
8
+ if (h <= GEOMETRY_EPSILON) {
9
+ return;
10
+ }
11
+ const bottomRadius = Math.max(c.radius, SMALLEST_RADIUS);
12
+ const requestedTopRadius = Math.max(rSmall ?? c.radius, SMALLEST_RADIUS);
13
+ const radiusTolerance = GEOMETRY_EPSILON *
14
+ Math.max(1, bottomRadius, requestedTopRadius);
15
+ const isCylinder = Math.abs(requestedTopRadius - bottomRadius) <= radiusTolerance;
16
+ const topRadius = isCylinder
17
+ ? bottomRadius
18
+ : requestedTopRadius;
9
19
  const pos = vec3TransRot(c.pos, parentPos, parentRot);
10
20
  const rotation = vec3RotCombine(parentRot, c.rot ?? vec3Zero);
11
21
  const rot = (v) => vec3Rot(v, vec3Zero, rotation);
12
- const upNormal = rot(vec3(0, 1, 0));
13
- const downNormal = rot(vec3(0, -1, 0));
14
- const circleTop = rot(vec3(0, h / 2, 0));
15
- const circleBot = rot(vec3(0, -h / 2, 0));
16
- const v1 = rot(vec3(r2, h / 2, 0));
17
- const v2 = rot(vec3(r, -h / 2, 0));
22
+ const axis = rot(vec3(0, 1, 0));
23
+ const radial = rot(vec3(1, 0, 0));
24
+ const bottomCenter = vec3Add(pos, rot(vec3(0, -h / 2, 0)));
25
+ const topCenter = vec3Add(pos, rot(vec3(0, h / 2, 0)));
26
+ const bottomSeamPoint = vec3Add(pos, rot(vec3(bottomRadius, -h / 2, 0)));
27
+ const topSeamPoint = vec3Add(pos, rot(vec3(topRadius, h / 2, 0)));
28
+ const seamDelta = vec3(topSeamPoint.x - bottomSeamPoint.x, topSeamPoint.y - bottomSeamPoint.y, topSeamPoint.z - bottomSeamPoint.z);
29
+ const seamLength = Math.hypot(seamDelta.x, seamDelta.y, seamDelta.z);
30
+ if (seamLength <= GEOMETRY_EPSILON) {
31
+ return;
32
+ }
33
+ const seamDirection = vec3(seamDelta.x / seamLength, seamDelta.y / seamLength, seamDelta.z / seamLength);
18
34
  const applicationContext = APPLICATION_CONTEXT(m);
19
35
  APPLICATION_PROTOCOL_DEFINITION(applicationContext, m);
20
- const ecurve0 = EDGE_CURVE(VERTEX_POINT(CARTESIAN_POINT(vec3Add(pos, v2), m), m), VERTEX_POINT(CARTESIAN_POINT(vec3Add(pos, v1), m), m), LINE(CARTESIAN_POINT(vec3Add(pos, v2), m), VECTOR(DIRECTION(upNormal, m), m), m), m, "T");
21
- const ecurve1 = EDGE_CURVE(VERTEX_POINT(CARTESIAN_POINT(vec3Add(pos, v2), m), m), VERTEX_POINT(CARTESIAN_POINT(vec3Add(pos, v2), m), m), CIRCLE(AXIS2_PLACEMENT_3D(CARTESIAN_POINT(vec3Add(pos, circleBot), m), DIRECTION(upNormal, m), DIRECTION(vec3(0, 1, 0), m), m), r, m), m, "T");
22
- const ecurve2 = EDGE_CURVE(VERTEX_POINT(CARTESIAN_POINT(vec3Add(pos, v1), m), m), VERTEX_POINT(CARTESIAN_POINT(vec3Add(pos, v1), m), m), CIRCLE(AXIS2_PLACEMENT_3D(CARTESIAN_POINT(vec3Add(pos, circleTop), m), DIRECTION(upNormal, m), DIRECTION(vec3(0, 1, 0), m), m), r2, m), m);
36
+ const axisDirection = DIRECTION(axis, m);
37
+ const radialDirection = DIRECTION(radial, m);
38
+ const bottomCenterPoint = CARTESIAN_POINT(bottomCenter, m);
39
+ const topCenterPoint = CARTESIAN_POINT(topCenter, m);
40
+ const bottomSeamCartesianPoint = CARTESIAN_POINT(bottomSeamPoint, m);
41
+ const topSeamCartesianPoint = CARTESIAN_POINT(topSeamPoint, m);
42
+ const bottomVertex = VERTEX_POINT(bottomSeamCartesianPoint, m);
43
+ const topVertex = VERTEX_POINT(topSeamCartesianPoint, m);
44
+ const bottomPlacement = AXIS2_PLACEMENT_3D(bottomCenterPoint, axisDirection, radialDirection, m);
45
+ const topPlacement = AXIS2_PLACEMENT_3D(topCenterPoint, axisDirection, radialDirection, m);
46
+ const seamEdge = EDGE_CURVE(bottomVertex, topVertex, LINE(bottomSeamCartesianPoint, VECTOR(DIRECTION(seamDirection, m), m), m), m, "T");
47
+ const bottomCircleEdge = EDGE_CURVE(bottomVertex, bottomVertex, CIRCLE(bottomPlacement, bottomRadius, m), m, "T");
48
+ const topCircleEdge = EDGE_CURVE(topVertex, topVertex, CIRCLE(topPlacement, topRadius, m), m, "T");
49
+ const growsTowardTop = topRadius >= bottomRadius;
50
+ const coneAxis = growsTowardTop
51
+ ? axis
52
+ : vec3(-axis.x, -axis.y, -axis.z);
53
+ const coneLocation = growsTowardTop
54
+ ? bottomCenterPoint
55
+ : topCenterPoint;
56
+ const coneStartRadius = Math.min(bottomRadius, topRadius);
57
+ const semiAngle = Math.atan2(Math.abs(topRadius - bottomRadius), h);
58
+ const conePlacement = AXIS2_PLACEMENT_3D(coneLocation, DIRECTION(coneAxis, m), radialDirection, m);
59
+ const sideSurface = isCylinder
60
+ ? CYLINDRICAL_SURFACE(bottomPlacement, bottomRadius, m)
61
+ : CONICAL_SURFACE(conePlacement, coneStartRadius, semiAngle, m);
62
+ const sideFace = ADVANCED_FACE(FACE_BOUND(EDGE_LOOP([
63
+ ORIENTED_EDGE(seamEdge, m, "T"),
64
+ ORIENTED_EDGE(topCircleEdge, m, "T"),
65
+ ORIENTED_EDGE(seamEdge, m, "F"),
66
+ ORIENTED_EDGE(bottomCircleEdge, m, "F"),
67
+ ], m), "F", m), sideSurface, m, "T");
68
+ const bottomFace = ADVANCED_FACE(FACE_BOUND(EDGE_LOOP([
69
+ ORIENTED_EDGE(bottomCircleEdge, m, "F"),
70
+ ], m), "T", m), PLANE(bottomPlacement, m), m, "F");
71
+ const topFace = ADVANCED_FACE(FACE_BOUND(EDGE_LOOP([
72
+ ORIENTED_EDGE(topCircleEdge, m, "F"),
73
+ ], m), "F", m), PLANE(topPlacement, m), m, "T");
23
74
  const msb = MANIFOLD_SOLID_BREP(CLOSED_SHELL([
24
- ADVANCED_FACE(FACE_BOUND(EDGE_LOOP([
25
- ORIENTED_EDGE(ecurve0, m, "T"),
26
- ORIENTED_EDGE(ecurve2, m),
27
- ORIENTED_EDGE(ecurve0, m, "F"),
28
- ORIENTED_EDGE(ecurve1, m, "F"),
29
- ], m), "F", m), CYLINDRICAL_SURFACE(AXIS2_PLACEMENT_3D(CARTESIAN_POINT(vec3(pos.x + circleTop.x, pos.y + circleTop.y, pos.z + circleTop.z), m), DIRECTION(downNormal, m), DIRECTION(vec3(0, -1, 0), m), m), r, m), m, "T"),
30
- ADVANCED_FACE(FACE_BOUND(EDGE_LOOP([ORIENTED_EDGE(ecurve1, m, "F")], m), "T", m), PLANE(AXIS2_PLACEMENT_3D(CARTESIAN_POINT(vec3Add(pos, circleBot), m), DIRECTION(upNormal, m), DIRECTION(vec3(0, 1, 0), m), m), m), m, "F"),
31
- ADVANCED_FACE(FACE_BOUND(EDGE_LOOP([ORIENTED_EDGE(ecurve2, m, "F")], m), "F", m), PLANE(AXIS2_PLACEMENT_3D(CARTESIAN_POINT(vec3Add(pos, circleTop), m), DIRECTION(upNormal, m), DIRECTION(vec3(0, 1, 0), m), m), m), m, "T"),
75
+ sideFace,
76
+ bottomFace,
77
+ topFace,
32
78
  ], m), m);
33
79
  const absp = ADVANCED_BREP_SHAPE_REPRESENTATION(AXIS2_PLACEMENT_3D(CARTESIAN_POINT(vec3Zero, m), DIRECTION(vec3(0, 0, 1), m), DIRECTION(vec3(1, 0, 0), m), m), msb, m.geoContext3d, m);
34
- const prod = PRODUCT(PRODUCT_CONTEXT(applicationContext, m), "Cylinder", m);
80
+ const prod = PRODUCT(PRODUCT_CONTEXT(applicationContext, m), isCylinder ? "Cylinder" : "Cone", m);
35
81
  SHAPE_DEFINITION_REPRESENTATION(PRODUCT_DEFINITION_SHAPE(PRODUCT_DEFINITION(PRODUCT_DEFINITION_FORMATION(prod, m), PRODUCT_DEFINITION_CONTEXT(applicationContext, m), m), m), absp, m);
36
82
  const color = COLOUR_RGB(parseRgb(mat.normal), m);
37
83
  MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION(STYLED_ITEM(PRESENTATION_STYLE_ASSIGNMENT(SURFACE_STYLE_USAGE(SURFACE_SIDE_STYLE(SURFACE_STYLE_FILL_AREA(FILL_AREA_STYLE_COLOUR(color, m), m), m), m), CURVE_STYLE(DRAUGHTING_PRE_DEFINED_CURVE_FONT("continuous", m), color, m), m), msb, m), m.geoContext3d, m);
@@ -1 +1 @@
1
- {"version":3,"file":"step-cylinder.js","sourceRoot":"","sources":["../../../../src/renderers/step/step-geometries/step-cylinder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"step-cylinder.js","sourceRoot":"","sources":["../../../../src/renderers/step/step-geometries/step-cylinder.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"svg.d.ts","sourceRoot":"","sources":["../../../src/renderers/svg/svg.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,EAOL,IAAI,EAeL,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAiB,MAAM,4BAA4B,CAAC;AASvE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI1C,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IACxC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtG,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,WAAW,CAkB7G;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,WAAW,CAShF"}
1
+ {"version":3,"file":"svg.d.ts","sourceRoot":"","sources":["../../../src/renderers/svg/svg.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,EAOL,IAAI,EAgBL,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAiB,MAAM,4BAA4B,CAAC;AASvE,OAAO,EAAwC,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAIhF,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IACxC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtG,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,WAAW,CAkB7G;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,WAAW,CAShF"}
@@ -1,5 +1,5 @@
1
1
  import { exhaustiveCheck } from "ts-exhaustive-check";
2
- import { vec2, vec3Rot, vec3Zero, vec3RotCombine, vec3, vec3TransRot, rotationForCameraPos, sizeBoundsForCameraPos, bounds2FromPosAndSize, bounds2ToSize, bounds2Merge, vec2Zero, vec3Flip, } from "../../abstract-3d.js";
2
+ import { vec2, vec3Rot, vec3Zero, vec3RotCombine, vec3, vec3TransRot, rotationForCameraPos, sizeBoundsForCameraPos, bounds2FromPosAndSize, bounds2ToSize, bounds2Merge, vec2Zero, vec3Flip, dimensionConvertToTypeMesh, } from "../../abstract-3d.js";
3
3
  import { box } from "./svg-geometries/svg-box.js";
4
4
  import { cylinder } from "./svg-geometries/svg-cylinder.js";
5
5
  import { line } from "./svg-geometries/svg-line.js";
@@ -8,6 +8,7 @@ import { shape } from "./svg-geometries/svg-shape.js";
8
8
  import { polygon } from "./svg-geometries/svg-polygon.js";
9
9
  import { text } from "./svg-geometries/svg-text.js";
10
10
  import { cone } from "./svg-geometries/svg-cone.js";
11
+ import { calculateVisibleViews, isViewVisible } from "../../utils.js";
11
12
  import { svg } from "./svg-encoding.js";
12
13
  import { image } from "./svg-geometries/svg-image.js";
13
14
  export function renderScenes(scenes, baseOptions) {
@@ -56,32 +57,10 @@ function renderInternal(scene, options, offset) {
56
57
  }
57
58
  const dimOpts = { ...opts, only_stroke: false, gray_scale: false };
58
59
  elements.sort((a, b) => a.zOrder - b.zOrder);
59
- const cameraPositionForView = (view) => {
60
- switch (view) {
61
- case "front":
62
- return vec3(0, 0, 1);
63
- case "back":
64
- return vec3(0, 0, -1);
65
- case "top":
66
- return vec3(0, 1, 0);
67
- case "bottom":
68
- return vec3(0, -1, 0);
69
- case "right":
70
- return vec3(1, 0, 0);
71
- case "left":
72
- return vec3(-1, 0, 0);
73
- default:
74
- return vec3(0, 0, 1);
75
- }
76
- };
77
- const cam = vec3Rot(cameraPositionForView(opts.view), vec3Zero, scene.rotation_deprecated ?? vec3Zero);
78
- const visibleViews = {
79
- [cam.x >= 0 ? "right" : "left"]: opts.view === "right" || opts.view === "left",
80
- [cam.y >= 0 ? "top" : "bottom"]: opts.view === "top" || opts.view === "bottom",
81
- [cam.z >= 0 ? "front" : "back"]: opts.view === "front" || opts.view === "back",
82
- };
83
- for (const d of scene.dimensions_deprecated?.dimensions ?? []) {
84
- if (d.views[0] && visibleViews[d.views[0]] === true) {
60
+ const visibleViews = calculateVisibleViews(opts.view, scene.rotation_deprecated);
61
+ for (const dim of scene.dimensions_deprecated?.dimensions ?? []) {
62
+ const d = dimensionConvertToTypeMesh(dim, scene.rotation_deprecated ?? vec3Zero, scene.dimensions_deprecated?.material);
63
+ if (isViewVisible(d.views[0], visibleViews)) {
85
64
  const pos = vec3TransRot(d.pos, unitCenterFlipped, unitRot);
86
65
  const rot = vec3RotCombine(unitRot, d.rot);
87
66
  for (const m of d.meshes) {
@@ -1 +1 @@
1
- {"version":3,"file":"svg.js","sourceRoot":"","sources":["../../../src/renderers/svg/svg.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EACL,IAAI,EAIJ,OAAO,EACP,QAAQ,EACR,cAAc,EACd,IAAI,EAGJ,YAAY,EAEZ,oBAAoB,EACpB,sBAAsB,EAEtB,qBAAqB,EACrB,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,QAAQ,GAIT,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AAEpD,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAUtD,MAAM,UAAU,YAAY,CAAC,MAA+B,EAAE,WAAkC;IAC9F,MAAM,WAAW,GAAG,KAAK,EAAiB,CAAC;IAC3C,MAAM,MAAM,GAAG,KAAK,EAAW,CAAC;IAEhC,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC1B,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,GAAG,WAAW,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7G,WAAW,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;QAC9B,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACtD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzB,CAAC;IACD,MAAM,YAAY,GAAG,YAAY,CAAC,GAAG,MAAM,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,GAAG,CACf,YAAY,CAAC,GAAG,EAChB,IAAI,EACJ,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,OAAO,EAAE,EAAE,EAAE,CAAC,CAC9D,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,KAAY,EAAE,OAA8B;IACjE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAE5E,MAAM,KAAK,GAAG,GAAG,CACf,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAClD,IAAI,EACJ,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,OAAO,EAAE,EAAE,EAAE,CAAC,CAC3D,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;AAClD,CAAC;AAED,SAAS,cAAc,CACrB,KAAY,EACZ,OAAyC,EACzC,MAAY;IAMZ,MAAM,IAAI,GAAe;QACvB,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,OAAO;QAC9B,gBAAgB,EAAE,OAAO,EAAE,gBAAgB,IAAI,CAAC;QAChD,WAAW,EAAE,OAAO,EAAE,WAAW,IAAI,KAAK;QAC1C,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,KAAK;QACxC,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,qBAAqB;QACxD,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE;QACzB,cAAc,EAAE,OAAO,EAAE,cAAc,IAAI,EAAE;QAC7C,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,CAAC;QAChC,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,KAAK;KACnC,CAAC;IACF,MAAM,SAAS,GAAG,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnH,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,mBAAmB,IAAI,QAAQ,CAAC,CAAC;IAE/E,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,iBAAiB,IAAI,QAAQ,EAAE,QAAQ,EAAE,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3G,MAAM,CAAC,QAAQ,CAAC,GAAG,sBAAsB,CAAC,KAAK,CAAC,eAAe,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IACtF,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACzG,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IACzG,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,CAAS,EAAQ,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACrF,MAAM,iBAAiB,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IAE/C,MAAM,QAAQ,GAAG,KAAK,EAAiB,CAAC;IACxC,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QAC7B,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,iBAAiB,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IACzE,CAAC;IACD,MAAM,OAAO,GAAe,EAAE,GAAG,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IAC/E,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;IAE7C,MAAM,qBAAqB,GAAG,CAAC,IAAU,EAAQ,EAAE;QACnD,QAAQ,IAAI,EAAE,CAAC;YACd,KAAK,OAAO;gBACX,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACtB,KAAK,MAAM;gBACV,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACvB,KAAK,KAAK;gBACT,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACtB,KAAK,QAAQ;gBACZ,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACvB,KAAK,OAAO;gBACX,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACtB,KAAK,MAAM;gBACV,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACpB;gBACE,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3B,CAAC;IACF,CAAC,CAAC;IAEF,MAAM,GAAG,GAAG,OAAO,CAClB,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAChC,QAAQ,EACR,KAAK,CAAC,mBAAmB,IAAI,QAAQ,CACrC,CAAC;IAEF,MAAM,YAAY,GAAG;QACnB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;QAC/E,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;QAC9E,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;KAC9E,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,qBAAqB,EAAE,UAAU,IAAI,EAAE,EAAE,CAAC;QAC9D,IAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACnD,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC;YAC/D,MAAM,GAAG,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YACxC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;gBACzB,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,qBAAqB,EAAE,QAAQ,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;YAClH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AACxD,CAAC;AAED,SAAS,QAAQ,CACf,CAAQ,EACR,SAAe,EACf,SAAe,EACf,KAAqC,EACrC,IAAgB;IAEhB,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACtD,MAAM,GAAG,GAAG,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,KAAK,EAAiB,CAAC;IACxC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QAC/B,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;IAClE,CAAC;IACD,KAAK,MAAM,EAAE,IAAI,CAAC,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QAChC,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,OAAO,CACd,IAAU,EACV,SAAe,EACf,SAAe,EACf,KAAqC,EACrC,QAAkB,EAClB,IAAgB;IAEhB,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC3B,KAAK,KAAK;YACR,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACzE,KAAK,OAAO;YACV,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAC3E,KAAK,UAAU;YACb,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAC9E,KAAK,MAAM;YACT,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAC1E,KAAK,MAAM;YACT,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACjF,KAAK,SAAS;YACZ,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAC7E,KAAK,OAAO;YACV,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAC3E,KAAK,MAAM;YACT,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACjF,KAAK,OAAO;YACV,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACjE,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ;YACX,OAAO,EAAE,CAAC;QACZ;YACE,OAAO,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"svg.js","sourceRoot":"","sources":["../../../src/renderers/svg/svg.ts"],"names":[],"mappings":"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"}
package/lib/utils.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { Vec3, View } from "./abstract-3d.js";
1
2
  export declare function parseRgb(color: string): {
2
3
  readonly r: number;
3
4
  readonly g: number;
@@ -21,6 +22,8 @@ export declare function rgbGrayScale(color: string): string;
21
22
  * @returns {string|null} Either Hex or RGB color. Null if invalid color or percentage number.
22
23
  */
23
24
  export declare function shade(p: number, from: string, to?: string): string | undefined;
25
+ export declare function calculateVisibleViews(originalView: View, sceneRotation: Vec3 | undefined): Record<string, boolean>;
26
+ export declare function isViewVisible(view: View | undefined, visibleViews: Record<string, boolean>): boolean;
24
27
  export type Optional<T> = {
25
28
  readonly [K in keyof T]?: T[K];
26
29
  };
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAGA,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAItG;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG;IAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAuB1G;AAKD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIlD;AAED;;;;;;;;;;GAUG;AAEH,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CA8F9E;AAED,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;IAAE,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAQ,IAAI,EAAqB,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAGvE,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAItG;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG;IAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAuB1G;AAKD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIlD;AAED;;;;;;;;;;GAUG;AAEH,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CA8F9E;AAED,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA+BlH;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAEpG;AAED,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;IAAE,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC"}
package/lib/utils.js CHANGED
@@ -1,4 +1,5 @@
1
1
  /* eslint-disable @typescript-eslint/no-unused-expressions */
2
+ import { vec3, vec3Rot, vec3Zero } from "./abstract-3d.js";
2
3
  // dummy
3
4
  export function parseRgb(color) {
4
5
  const parts = color.split("(")[1]?.slice(0, -1).split(",");
@@ -129,4 +130,33 @@ export function shade(p, from, to) {
129
130
  .toString(16)
130
131
  .slice(1, f[3] > -1 || t[3] > -1 ? undefined : -2));
131
132
  }
133
+ export function calculateVisibleViews(originalView, sceneRotation) {
134
+ const cameraPositionForView = (view) => {
135
+ switch (view) {
136
+ case "front":
137
+ return vec3(0, 0, 1);
138
+ case "back":
139
+ return vec3(0, 0, -1);
140
+ case "top":
141
+ return vec3(0, 1, 0);
142
+ case "bottom":
143
+ return vec3(0, -1, 0);
144
+ case "right":
145
+ return vec3(1, 0, 0);
146
+ case "left":
147
+ return vec3(-1, 0, 0);
148
+ default:
149
+ return vec3(0, 0, 1);
150
+ }
151
+ };
152
+ const cam = vec3Rot(cameraPositionForView(originalView), vec3Zero, sceneRotation ?? vec3Zero);
153
+ return {
154
+ [cam.x >= 0 ? "right" : "left"]: originalView === "right" || originalView === "left",
155
+ [cam.y >= 0 ? "top" : "bottom"]: originalView === "top" || originalView === "bottom",
156
+ [cam.z >= 0 ? "front" : "back"]: originalView === "front" || originalView === "back",
157
+ };
158
+ }
159
+ export function isViewVisible(view, visibleViews) {
160
+ return view !== undefined && visibleViews[view] === true;
161
+ }
132
162
  //# sourceMappingURL=utils.js.map
package/lib/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "abstract-3d",
3
- "version": "2.6.19",
3
+ "version": "2.7.0",
4
4
  "description": "Abstract 3D",
5
5
  "author": "Divid AB <info@divid.se>",
6
6
  "repository": "https://github.com/dividab/abstract-visuals/tree/master/packages/abstract-3d",
@@ -65,5 +65,5 @@
65
65
  "@types/three": "^0.180.0",
66
66
  "react": "^19.2.6"
67
67
  },
68
- "gitHead": "8dfcbe45cf1670fe4d6389cdf262470ab9878ab9"
68
+ "gitHead": "a03e14a524ad0f3d99101cfbbeeda58524ddbb9b"
69
69
  }
@@ -19,13 +19,31 @@ export type Dimensions = {
19
19
  readonly material: Material;
20
20
  };
21
21
 
22
- export type Dimension = {
22
+ export type Dimension = DimensionMesh | DimensionAligned;
23
+
24
+ export type DimensionMesh = {
23
25
  readonly views: ReadonlyArray<View>;
24
26
  readonly pos: Vec3;
25
27
  readonly rot: Vec3;
26
28
  readonly meshes: ReadonlyArray<Mesh>;
27
29
  };
28
30
 
31
+ export type DimensionAligned = {
32
+ readonly measurementStart: Vec3;
33
+ readonly measurementEnd: Vec3;
34
+
35
+ /*
36
+ any position that lies on the line that contains the number
37
+ */
38
+ readonly linePosition: Vec3;
39
+
40
+ /*
41
+ the distance between the measurementStart and measurementEnd will be used if this isn't set
42
+ */
43
+ readonly text?: string;
44
+ readonly views?: ReadonlyArray<View>;
45
+ };
46
+
29
47
  export type DimensionBounds = {
30
48
  readonly front: Bounds2;
31
49
  readonly back: Bounds2;
@@ -72,13 +90,13 @@ export type ImageMesh = {
72
90
 
73
91
  export type Image =
74
92
  | {
75
- readonly type: "AbstractImage";
76
- readonly image: AbstractImage;
77
- }
93
+ readonly type: "AbstractImage";
94
+ readonly image: AbstractImage;
95
+ }
78
96
  | {
79
- readonly type: "Url";
80
- readonly url: string;
81
- };
97
+ readonly type: "Url";
98
+ readonly url: string;
99
+ };
82
100
 
83
101
  export type Cylinder = {
84
102
  readonly type: "Cylinder";
@@ -938,6 +956,108 @@ export const circleCurve = (radius: number, angleStart: number, angleLength: num
938
956
  });
939
957
  export const splineCurve = (points: ReadonlyArray<Vec3>): SplineCurve => ({ type: "SplineCurve", points });
940
958
 
959
+ export const alignedDimension = (
960
+ measurementStart: Vec3,
961
+ measurementEnd: Vec3,
962
+ linePosition: Vec3,
963
+ text: string,
964
+ views?: ReadonlyArray<View>
965
+ ): DimensionAligned => ({
966
+ measurementStart,
967
+ measurementEnd,
968
+ linePosition,
969
+ text,
970
+ views
971
+ });
972
+
973
+ export function dimensionIsOfTypeAligned(dimension: Dimension): dimension is DimensionAligned {
974
+ return "measurementStart" in dimension;
975
+ }
976
+
977
+ export function dimensionIsOfTypeMesh(dimension: Dimension): dimension is DimensionMesh {
978
+ return "meshes" in dimension;
979
+ }
980
+
981
+ export function dimensionConvertToTypeMesh(dimension: Dimension, _sceneRotation: Vec3, material: Material = { normal: "rgb(0, 0, 0)", opacity: 1.0, roughness: 1.0, metalness: 0.0 }): DimensionMesh {
982
+ if(dimensionIsOfTypeMesh(dimension)) {
983
+ return dimension;
984
+ }
985
+ const meshes: Array<Mesh> = [];
986
+ const fontGlyphWidthRatio = 0.4815;
987
+ const textSize = 44;
988
+ const textOffset = 8;
989
+ const textThreshold = textOffset + textSize * fontGlyphWidthRatio * 10;
990
+ const lineThickness = 0.5;
991
+ const arrowLength = 40;
992
+ const arrowHalfBase = 10;
993
+
994
+ //const view = (dimension.views !== undefined ? dimension.views[0] : "front") ?? "front";
995
+
996
+ const lp = dimension.linePosition;
997
+ const ms = dimension.measurementStart;
998
+ const me = dimension.measurementEnd;
999
+ const measurementLength = vec3Length(vec3Sub(me, ms));
1000
+ const measurement = dimension.text ?? measurementLength.toFixed(1).replace(/[.,]0$/, "");
1001
+ const measurementRows = measurement.split("\n");
1002
+ const textHeight = measurementRows.length * textSize;
1003
+
1004
+ //calculate the line positions
1005
+ const direction = vec3Normalize(vec3Sub(me, ms));
1006
+ const msToLp = vec3Sub(lp, ms);
1007
+ const along = vec3Scale(direction, vec3Dot(msToLp, direction));
1008
+ const projected = vec3Add(ms, along);
1009
+ const offset = vec3Sub(lp, projected);
1010
+ const ls = vec3Add(ms, offset);
1011
+ const le = vec3Add(me, offset);
1012
+ const linesDiff = vec3Sub(ls, ms);
1013
+ const dirBetweenLines = vec3Normalize(linesDiff);
1014
+ const measurementWidth = vec3Length(linesDiff);
1015
+ const displacedDistance = measurementWidth - (textHeight / 2);
1016
+ const offsetDisplaced = vec3Scale(offset, displacedDistance / measurementWidth);
1017
+ const lsDisplaced = vec3Add(ms, offsetDisplaced);
1018
+ const leDisplaced = vec3Add(me, offsetDisplaced);
1019
+ const lcDisplaced = vec3Scale(vec3Add(lsDisplaced, leDisplaced), 0.5);
1020
+
1021
+ meshes.push(line(ms, ls, lineThickness, material));
1022
+ meshes.push(line(me, le, lineThickness, material));
1023
+ meshes.push(text(lcDisplaced, measurement, textSize, material, vec3(0, 0, Math.atan2(direction.y, direction.x))));
1024
+
1025
+ if(measurementLength > textThreshold) {
1026
+ const textWidth = Math.max(...measurementRows.map((t) => t.length)) * (textSize * fontGlyphWidthRatio);
1027
+ const lineDir = vec3Normalize(vec3Sub(leDisplaced, lsDisplaced));
1028
+ const halfTextWidth = textOffset + textWidth * 0.5;
1029
+ const leftEnd = vec3Sub(
1030
+ lcDisplaced,
1031
+ vec3Scale(lineDir, halfTextWidth)
1032
+ );
1033
+ const rightStart = vec3Add(
1034
+ lcDisplaced,
1035
+ vec3Scale(lineDir, halfTextWidth)
1036
+ );
1037
+
1038
+ meshes.push(line(lsDisplaced, leftEnd, lineThickness, material));
1039
+ meshes.push(line(rightStart, leDisplaced, lineThickness, material));
1040
+
1041
+ //arrows
1042
+ const arrowBaseStart = vec3Add(lsDisplaced, vec3Scale(lineDir, arrowLength));
1043
+ const arrowBaseEnd = vec3Add(leDisplaced, vec3Scale(lineDir, -arrowLength));
1044
+ const arrowBaseStart1 = vec3Add(arrowBaseStart, vec3Scale(dirBetweenLines, arrowHalfBase));
1045
+ const arrowBaseStart2 = vec3Add(arrowBaseStart, vec3Scale(dirBetweenLines, -arrowHalfBase));
1046
+ const arrowBaseEnd1 = vec3Add(arrowBaseEnd, vec3Scale(dirBetweenLines, arrowHalfBase));
1047
+ const arrowBaseEnd2 = vec3Add(arrowBaseEnd, vec3Scale(dirBetweenLines, -arrowHalfBase));
1048
+
1049
+ meshes.push(polygon([lsDisplaced, arrowBaseStart2, arrowBaseStart1], material));
1050
+ meshes.push(polygon([leDisplaced, arrowBaseEnd1, arrowBaseEnd2], material));
1051
+ }
1052
+
1053
+ return {
1054
+ meshes,
1055
+ pos: vec3Zero,
1056
+ rot: vec3Zero,
1057
+ views: dimension.views ?? ["front"],
1058
+ };
1059
+ }
1060
+
941
1061
  // -- Camera
942
1062
 
943
1063
  export function sizeBoundsForCameraPos(size: Vec3, center: Vec3, rotation: Vec3): readonly [Vec3, Bounds3] {