chili3d 0.6.1 → 0.6.3

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 (472) hide show
  1. package/README.md +14 -175
  2. package/{packages/chili → chili}/package.json +6 -1
  3. package/{packages/chili-builder → chili-builder}/package.json +6 -1
  4. package/{packages/chili-controls → chili-controls}/package.json +6 -1
  5. package/{packages/chili-core → chili-core}/package.json +6 -1
  6. package/{packages/chili-geo → chili-geo}/package.json +6 -1
  7. package/{packages/chili-i18n → chili-i18n}/package.json +6 -1
  8. package/{packages/chili-storage → chili-storage}/package.json +6 -1
  9. package/{packages/chili-three → chili-three}/package.json +6 -1
  10. package/{packages/chili-ui → chili-ui}/package.json +6 -1
  11. package/{packages/chili-vis → chili-vis}/package.json +6 -1
  12. package/{packages/chili-wasm → chili-wasm}/package.json +6 -1
  13. package/{packages/chili-web → chili-web}/package.json +6 -1
  14. package/package.json +18 -48
  15. package/.github/workflows/main.yml +0 -26
  16. package/.vscode/c_cpp_properties.json +0 -30
  17. package/.vscode/launch.json +0 -21
  18. package/.vscode/settings.json +0 -8
  19. package/Dockerfile +0 -7
  20. package/LICENSE +0 -661
  21. package/biome.json +0 -67
  22. package/compose.yml +0 -7
  23. package/cpp/CMakeLists.txt +0 -96
  24. package/cpp/CMakePresets.json +0 -43
  25. package/cpp/README.md +0 -21
  26. package/cpp/src/converter.cpp +0 -413
  27. package/cpp/src/factory.cpp +0 -612
  28. package/cpp/src/geometry.cpp +0 -204
  29. package/cpp/src/mesher.cpp +0 -330
  30. package/cpp/src/opencascade.cpp +0 -414
  31. package/cpp/src/shape.cpp +0 -447
  32. package/cpp/src/shared.cpp +0 -83
  33. package/cpp/src/shared.hpp +0 -211
  34. package/cpp/src/transient.cpp +0 -29
  35. package/cpp/src/utils.cpp +0 -114
  36. package/cpp/src/utils.hpp +0 -25
  37. package/cpp/test/index.html +0 -146
  38. package/packages/chili/test/command.test.ts +0 -4
  39. package/packages/chili-controls/test/converter.test.ts +0 -70
  40. package/packages/chili-controls/test/styleMock.js +0 -4
  41. package/packages/chili-core/test/binding.test.ts +0 -95
  42. package/packages/chili-core/test/boundingBox.test.ts +0 -60
  43. package/packages/chili-core/test/collection.test.ts +0 -53
  44. package/packages/chili-core/test/history.test.ts +0 -42
  45. package/packages/chili-core/test/line.test.ts +0 -75
  46. package/packages/chili-core/test/linesegment.test.ts +0 -98
  47. package/packages/chili-core/test/linkedList.test.ts +0 -82
  48. package/packages/chili-core/test/math.test.ts +0 -34
  49. package/packages/chili-core/test/matrix.test.ts +0 -129
  50. package/packages/chili-core/test/node.test.ts +0 -122
  51. package/packages/chili-core/test/nodeList.test.ts +0 -247
  52. package/packages/chili-core/test/observer.test.ts +0 -91
  53. package/packages/chili-core/test/plane.test.ts +0 -31
  54. package/packages/chili-core/test/quaternion.test.ts +0 -14
  55. package/packages/chili-core/test/result.test.ts +0 -24
  56. package/packages/chili-core/test/serializer.test.ts +0 -58
  57. package/packages/chili-core/test/snapType.test.ts +0 -10
  58. package/packages/chili-core/test/task.test.ts +0 -41
  59. package/packages/chili-core/test/testDocument.ts +0 -70
  60. package/packages/chili-core/test/transaction.test.ts +0 -42
  61. package/packages/chili-core/test/visual.test.ts +0 -42
  62. package/packages/chili-core/test/xyz.test.ts +0 -260
  63. package/packages/chili-three/test/cameraControls.ts +0 -10
  64. package/packages/chili-three/test/testDocument.ts +0 -68
  65. package/packages/chili-three/test/testEdge.ts +0 -171
  66. package/packages/chili-three/test/testView.ts +0 -78
  67. package/packages/chili-three/test/three.test.ts +0 -44
  68. package/packages/chili-three/test/viewGizmo.ts +0 -12
  69. package/packages/global.d.ts +0 -31
  70. package/public/favicon.svg +0 -10
  71. package/public/fonts/fzhei.json +0 -46120
  72. package/public/iconfont.js +0 -1
  73. package/public/images/wechat.jpg +0 -0
  74. package/public/index.css +0 -13
  75. package/public/index.html +0 -24
  76. package/rspack.config.ts +0 -93
  77. package/rstest.config.ts +0 -27
  78. package/screenshots/screenshot.png +0 -0
  79. package/scripts/add_copyright.mjs +0 -59
  80. package/scripts/build-npm.mjs +0 -105
  81. package/scripts/common.mjs +0 -24
  82. package/scripts/release.mjs +0 -92
  83. package/scripts/restore-package-json.mjs +0 -27
  84. package/scripts/setup_wasm_deps.mjs +0 -97
  85. package/scripts/update-package-json.mjs +0 -27
  86. package/tsconfig.build.json +0 -14
  87. package/tsconfig.build.tsbuildinfo +0 -1
  88. package/tsconfig.json +0 -19
  89. /package/{packages/chili → chili}/src/application.ts +0 -0
  90. /package/{packages/chili → chili}/src/bodys/arc.ts +0 -0
  91. /package/{packages/chili → chili}/src/bodys/boolean.ts +0 -0
  92. /package/{packages/chili → chili}/src/bodys/box.ts +0 -0
  93. /package/{packages/chili → chili}/src/bodys/circle.ts +0 -0
  94. /package/{packages/chili → chili}/src/bodys/cone.ts +0 -0
  95. /package/{packages/chili → chili}/src/bodys/cylinder.ts +0 -0
  96. /package/{packages/chili → chili}/src/bodys/ellipse.ts +0 -0
  97. /package/{packages/chili → chili}/src/bodys/face.ts +0 -0
  98. /package/{packages/chili → chili}/src/bodys/fuse.ts +0 -0
  99. /package/{packages/chili → chili}/src/bodys/index.ts +0 -0
  100. /package/{packages/chili → chili}/src/bodys/line.ts +0 -0
  101. /package/{packages/chili → chili}/src/bodys/polygon.ts +0 -0
  102. /package/{packages/chili → chili}/src/bodys/prism.ts +0 -0
  103. /package/{packages/chili → chili}/src/bodys/pyramid.ts +0 -0
  104. /package/{packages/chili → chili}/src/bodys/rect.ts +0 -0
  105. /package/{packages/chili → chili}/src/bodys/revolve.ts +0 -0
  106. /package/{packages/chili → chili}/src/bodys/sphere.ts +0 -0
  107. /package/{packages/chili → chili}/src/bodys/sweep.ts +0 -0
  108. /package/{packages/chili → chili}/src/bodys/wire.ts +0 -0
  109. /package/{packages/chili → chili}/src/commands/application/index.ts +0 -0
  110. /package/{packages/chili → chili}/src/commands/application/newDocument.ts +0 -0
  111. /package/{packages/chili → chili}/src/commands/application/openDocument.ts +0 -0
  112. /package/{packages/chili → chili}/src/commands/application/performanceTest.ts +0 -0
  113. /package/{packages/chili → chili}/src/commands/application/saveDocument.ts +0 -0
  114. /package/{packages/chili → chili}/src/commands/application/toFile.ts +0 -0
  115. /package/{packages/chili → chili}/src/commands/application/toggleDynamicWorkplane.ts +0 -0
  116. /package/{packages/chili → chili}/src/commands/application/wechatGroup.ts +0 -0
  117. /package/{packages/chili → chili}/src/commands/boolean.ts +0 -0
  118. /package/{packages/chili → chili}/src/commands/create/arc.ts +0 -0
  119. /package/{packages/chili → chili}/src/commands/create/bezier.ts +0 -0
  120. /package/{packages/chili → chili}/src/commands/create/box.ts +0 -0
  121. /package/{packages/chili → chili}/src/commands/create/circle.ts +0 -0
  122. /package/{packages/chili → chili}/src/commands/create/cone.ts +0 -0
  123. /package/{packages/chili → chili}/src/commands/create/converter.ts +0 -0
  124. /package/{packages/chili → chili}/src/commands/create/copySubShape.ts +0 -0
  125. /package/{packages/chili → chili}/src/commands/create/curveProjection.ts +0 -0
  126. /package/{packages/chili → chili}/src/commands/create/cylinder.ts +0 -0
  127. /package/{packages/chili → chili}/src/commands/create/ellipse.ts +0 -0
  128. /package/{packages/chili → chili}/src/commands/create/group.ts +0 -0
  129. /package/{packages/chili → chili}/src/commands/create/index.ts +0 -0
  130. /package/{packages/chili → chili}/src/commands/create/line.ts +0 -0
  131. /package/{packages/chili → chili}/src/commands/create/loft.ts +0 -0
  132. /package/{packages/chili → chili}/src/commands/create/offset.ts +0 -0
  133. /package/{packages/chili → chili}/src/commands/create/polygon.ts +0 -0
  134. /package/{packages/chili → chili}/src/commands/create/prism.ts +0 -0
  135. /package/{packages/chili → chili}/src/commands/create/pyramid.ts +0 -0
  136. /package/{packages/chili → chili}/src/commands/create/rect.ts +0 -0
  137. /package/{packages/chili → chili}/src/commands/create/revolve.ts +0 -0
  138. /package/{packages/chili → chili}/src/commands/create/section.ts +0 -0
  139. /package/{packages/chili → chili}/src/commands/create/sphere.ts +0 -0
  140. /package/{packages/chili → chili}/src/commands/create/sweep.ts +0 -0
  141. /package/{packages/chili → chili}/src/commands/create/thickSolid.ts +0 -0
  142. /package/{packages/chili → chili}/src/commands/createActCommand.ts +0 -0
  143. /package/{packages/chili → chili}/src/commands/createCommand.ts +0 -0
  144. /package/{packages/chili → chili}/src/commands/delete.ts +0 -0
  145. /package/{packages/chili → chili}/src/commands/folder.ts +0 -0
  146. /package/{packages/chili → chili}/src/commands/importExport.ts +0 -0
  147. /package/{packages/chili → chili}/src/commands/index.ts +0 -0
  148. /package/{packages/chili → chili}/src/commands/measure/angle.ts +0 -0
  149. /package/{packages/chili → chili}/src/commands/measure/index.ts +0 -0
  150. /package/{packages/chili → chili}/src/commands/measure/length.ts +0 -0
  151. /package/{packages/chili → chili}/src/commands/measure/select.module.css +0 -0
  152. /package/{packages/chili → chili}/src/commands/measure/select.ts +0 -0
  153. /package/{packages/chili → chili}/src/commands/modify/array.ts +0 -0
  154. /package/{packages/chili → chili}/src/commands/modify/break.ts +0 -0
  155. /package/{packages/chili → chili}/src/commands/modify/brush.ts +0 -0
  156. /package/{packages/chili → chili}/src/commands/modify/chamfer.ts +0 -0
  157. /package/{packages/chili → chili}/src/commands/modify/explode.ts +0 -0
  158. /package/{packages/chili → chili}/src/commands/modify/fillet.ts +0 -0
  159. /package/{packages/chili → chili}/src/commands/modify/index.ts +0 -0
  160. /package/{packages/chili → chili}/src/commands/modify/mirror.ts +0 -0
  161. /package/{packages/chili → chili}/src/commands/modify/move.ts +0 -0
  162. /package/{packages/chili → chili}/src/commands/modify/removeFeature.ts +0 -0
  163. /package/{packages/chili → chili}/src/commands/modify/removeSubShapes.ts +0 -0
  164. /package/{packages/chili → chili}/src/commands/modify/rotate.ts +0 -0
  165. /package/{packages/chili → chili}/src/commands/modify/split.ts +0 -0
  166. /package/{packages/chili → chili}/src/commands/modify/transformedCommand.ts +0 -0
  167. /package/{packages/chili → chili}/src/commands/modify/trim.ts +0 -0
  168. /package/{packages/chili → chili}/src/commands/multistepCommand.ts +0 -0
  169. /package/{packages/chili → chili}/src/commands/redo.ts +0 -0
  170. /package/{packages/chili → chili}/src/commands/undo.ts +0 -0
  171. /package/{packages/chili → chili}/src/commands/workingPlane.ts +0 -0
  172. /package/{packages/chili → chili}/src/comparers/NumberEqualityComparer.ts +0 -0
  173. /package/{packages/chili → chili}/src/comparers/XYZEqualityComparer.ts +0 -0
  174. /package/{packages/chili → chili}/src/comparers/index.ts +0 -0
  175. /package/{packages/chili → chili}/src/document.ts +0 -0
  176. /package/{packages/chili → chili}/src/editEventHandler.ts +0 -0
  177. /package/{packages/chili → chili}/src/index.ts +0 -0
  178. /package/{packages/chili → chili}/src/selection.ts +0 -0
  179. /package/{packages/chili → chili}/src/services/commandService.ts +0 -0
  180. /package/{packages/chili → chili}/src/services/editorService.ts +0 -0
  181. /package/{packages/chili → chili}/src/services/hotkeyService.ts +0 -0
  182. /package/{packages/chili → chili}/src/services/index.ts +0 -0
  183. /package/{packages/chili → chili}/src/snap/dimension.ts +0 -0
  184. /package/{packages/chili → chili}/src/snap/handlers/angleSnapEventHandler.ts +0 -0
  185. /package/{packages/chili → chili}/src/snap/handlers/index.ts +0 -0
  186. /package/{packages/chili → chili}/src/snap/handlers/lengthSnapEventHandler.ts +0 -0
  187. /package/{packages/chili → chili}/src/snap/handlers/pointSnapEventHandler.ts +0 -0
  188. /package/{packages/chili → chili}/src/snap/handlers/snapEventHandler.ts +0 -0
  189. /package/{packages/chili → chili}/src/snap/index.ts +0 -0
  190. /package/{packages/chili → chili}/src/snap/snap.ts +0 -0
  191. /package/{packages/chili → chili}/src/snap/snaps/axisSnap.ts +0 -0
  192. /package/{packages/chili → chili}/src/snap/snaps/baseSnap.ts +0 -0
  193. /package/{packages/chili → chili}/src/snap/snaps/featurePointStrategy.ts +0 -0
  194. /package/{packages/chili → chili}/src/snap/snaps/index.ts +0 -0
  195. /package/{packages/chili → chili}/src/snap/snaps/objectSnap.ts +0 -0
  196. /package/{packages/chili → chili}/src/snap/snaps/planeSnap.ts +0 -0
  197. /package/{packages/chili → chili}/src/snap/snaps/pointOnCurveSnap.ts +0 -0
  198. /package/{packages/chili → chili}/src/snap/tracking/axis.ts +0 -0
  199. /package/{packages/chili → chili}/src/snap/tracking/axisTracking.ts +0 -0
  200. /package/{packages/chili → chili}/src/snap/tracking/index.ts +0 -0
  201. /package/{packages/chili → chili}/src/snap/tracking/objectTracking.ts +0 -0
  202. /package/{packages/chili → chili}/src/snap/tracking/trackingBase.ts +0 -0
  203. /package/{packages/chili → chili}/src/snap/tracking/trackingSnap.ts +0 -0
  204. /package/{packages/chili → chili}/src/step/angleStep.ts +0 -0
  205. /package/{packages/chili → chili}/src/step/index.ts +0 -0
  206. /package/{packages/chili → chili}/src/step/lengthStep.ts +0 -0
  207. /package/{packages/chili → chili}/src/step/pointStep.ts +0 -0
  208. /package/{packages/chili → chili}/src/step/selectStep.ts +0 -0
  209. /package/{packages/chili → chili}/src/step/step.ts +0 -0
  210. /package/{packages/chili → chili}/src/utils.ts +0 -0
  211. /package/{packages/chili-builder → chili-builder}/src/additionalModule.ts +0 -0
  212. /package/{packages/chili-builder → chili-builder}/src/appBuilder.ts +0 -0
  213. /package/{packages/chili-builder → chili-builder}/src/defaultDataExchange.ts +0 -0
  214. /package/{packages/chili-builder → chili-builder}/src/index.ts +0 -0
  215. /package/{packages/chili-builder → chili-builder}/src/ribbon.ts +0 -0
  216. /package/{packages/chili-controls → chili-controls}/src/collection.ts +0 -0
  217. /package/{packages/chili-controls → chili-controls}/src/controls.ts +0 -0
  218. /package/{packages/chili-controls → chili-controls}/src/converters/colorConverter.ts +0 -0
  219. /package/{packages/chili-controls → chili-controls}/src/converters/index.ts +0 -0
  220. /package/{packages/chili-controls → chili-controls}/src/converters/numberConverter.ts +0 -0
  221. /package/{packages/chili-controls → chili-controls}/src/converters/stringConverter.ts +0 -0
  222. /package/{packages/chili-controls → chili-controls}/src/converters/urlConverter.ts +0 -0
  223. /package/{packages/chili-controls → chili-controls}/src/converters/xyzConverter.ts +0 -0
  224. /package/{packages/chili-controls → chili-controls}/src/expander/expander.module.css +0 -0
  225. /package/{packages/chili-controls → chili-controls}/src/expander/expander.ts +0 -0
  226. /package/{packages/chili-controls → chili-controls}/src/expander/index.ts +0 -0
  227. /package/{packages/chili-controls → chili-controls}/src/htmlProps.ts +0 -0
  228. /package/{packages/chili-controls → chili-controls}/src/index.ts +0 -0
  229. /package/{packages/chili-controls → chili-controls}/src/radioGroup.module.css +0 -0
  230. /package/{packages/chili-controls → chili-controls}/src/radioGroup.ts +0 -0
  231. /package/{packages/chili-controls → chili-controls}/src/utils.ts +0 -0
  232. /package/{packages/chili-core → chili-core}/src/application.ts +0 -0
  233. /package/{packages/chili-core → chili-core}/src/command/command.ts +0 -0
  234. /package/{packages/chili-core → chili-core}/src/command/commandKeys.ts +0 -0
  235. /package/{packages/chili-core → chili-core}/src/command/decarator.ts +0 -0
  236. /package/{packages/chili-core → chili-core}/src/command/index.ts +0 -0
  237. /package/{packages/chili-core → chili-core}/src/config.ts +0 -0
  238. /package/{packages/chili-core → chili-core}/src/constants.ts +0 -0
  239. /package/{packages/chili-core → chili-core}/src/dataExchange.ts +0 -0
  240. /package/{packages/chili-core → chili-core}/src/document.ts +0 -0
  241. /package/{packages/chili-core → chili-core}/src/editor.ts +0 -0
  242. /package/{packages/chili-core → chili-core}/src/foundation/asyncController.ts +0 -0
  243. /package/{packages/chili-core → chili-core}/src/foundation/binding.ts +0 -0
  244. /package/{packages/chili-core → chili-core}/src/foundation/collection.ts +0 -0
  245. /package/{packages/chili-core → chili-core}/src/foundation/converter.ts +0 -0
  246. /package/{packages/chili-core → chili-core}/src/foundation/deepObserver.ts +0 -0
  247. /package/{packages/chili-core → chili-core}/src/foundation/disposable.ts +0 -0
  248. /package/{packages/chili-core → chili-core}/src/foundation/dto/index.ts +0 -0
  249. /package/{packages/chili-core → chili-core}/src/foundation/equalityComparer.ts +0 -0
  250. /package/{packages/chili-core → chili-core}/src/foundation/gc.ts +0 -0
  251. /package/{packages/chili-core → chili-core}/src/foundation/history.ts +0 -0
  252. /package/{packages/chili-core → chili-core}/src/foundation/id.ts +0 -0
  253. /package/{packages/chili-core → chili-core}/src/foundation/index.ts +0 -0
  254. /package/{packages/chili-core → chili-core}/src/foundation/lazy.ts +0 -0
  255. /package/{packages/chili-core → chili-core}/src/foundation/linkedList.ts +0 -0
  256. /package/{packages/chili-core → chili-core}/src/foundation/logger.ts +0 -0
  257. /package/{packages/chili-core → chili-core}/src/foundation/messageType.ts +0 -0
  258. /package/{packages/chili-core → chili-core}/src/foundation/objectStorage.ts +0 -0
  259. /package/{packages/chili-core → chili-core}/src/foundation/observer.ts +0 -0
  260. /package/{packages/chili-core → chili-core}/src/foundation/precision.ts +0 -0
  261. /package/{packages/chili-core → chili-core}/src/foundation/pubsub.ts +0 -0
  262. /package/{packages/chili-core → chili-core}/src/foundation/result.ts +0 -0
  263. /package/{packages/chili-core → chili-core}/src/foundation/storage.ts +0 -0
  264. /package/{packages/chili-core → chili-core}/src/foundation/transaction.ts +0 -0
  265. /package/{packages/chili-core → chili-core}/src/foundation/utils/debounce.ts +0 -0
  266. /package/{packages/chili-core → chili-core}/src/foundation/utils/download.ts +0 -0
  267. /package/{packages/chili-core → chili-core}/src/foundation/utils/index.ts +0 -0
  268. /package/{packages/chili-core → chili-core}/src/foundation/utils/readFileAsync.ts +0 -0
  269. /package/{packages/chili-core → chili-core}/src/i18n/i18n.ts +0 -0
  270. /package/{packages/chili-core → chili-core}/src/i18n/index.ts +0 -0
  271. /package/{packages/chili-core → chili-core}/src/i18n/keys.ts +0 -0
  272. /package/{packages/chili-core → chili-core}/src/index.ts +0 -0
  273. /package/{packages/chili-core → chili-core}/src/material.ts +0 -0
  274. /package/{packages/chili-core → chili-core}/src/math/boundingBox.ts +0 -0
  275. /package/{packages/chili-core → chili-core}/src/math/index.ts +0 -0
  276. /package/{packages/chili-core → chili-core}/src/math/line.ts +0 -0
  277. /package/{packages/chili-core → chili-core}/src/math/lineSegment.ts +0 -0
  278. /package/{packages/chili-core → chili-core}/src/math/mathUtils.ts +0 -0
  279. /package/{packages/chili-core → chili-core}/src/math/matrix4.ts +0 -0
  280. /package/{packages/chili-core → chili-core}/src/math/plane.ts +0 -0
  281. /package/{packages/chili-core → chili-core}/src/math/planeAngle.ts +0 -0
  282. /package/{packages/chili-core → chili-core}/src/math/quaternion.ts +0 -0
  283. /package/{packages/chili-core → chili-core}/src/math/ray.ts +0 -0
  284. /package/{packages/chili-core → chili-core}/src/math/xy.ts +0 -0
  285. /package/{packages/chili-core → chili-core}/src/math/xyz.ts +0 -0
  286. /package/{packages/chili-core → chili-core}/src/model/component.ts +0 -0
  287. /package/{packages/chili-core → chili-core}/src/model/facebaseNode.ts +0 -0
  288. /package/{packages/chili-core → chili-core}/src/model/folderNode.ts +0 -0
  289. /package/{packages/chili-core → chili-core}/src/model/geometryNode.ts +0 -0
  290. /package/{packages/chili-core → chili-core}/src/model/groupNode.ts +0 -0
  291. /package/{packages/chili-core → chili-core}/src/model/index.ts +0 -0
  292. /package/{packages/chili-core → chili-core}/src/model/meshNode.ts +0 -0
  293. /package/{packages/chili-core → chili-core}/src/model/node.ts +0 -0
  294. /package/{packages/chili-core → chili-core}/src/model/shapeNode.ts +0 -0
  295. /package/{packages/chili-core → chili-core}/src/model/visualNode.ts +0 -0
  296. /package/{packages/chili-core → chili-core}/src/modelManager.ts +0 -0
  297. /package/{packages/chili-core → chili-core}/src/navigation.ts +0 -0
  298. /package/{packages/chili-core → chili-core}/src/property.ts +0 -0
  299. /package/{packages/chili-core → chili-core}/src/selection.ts +0 -0
  300. /package/{packages/chili-core → chili-core}/src/selectionFilter.ts +0 -0
  301. /package/{packages/chili-core → chili-core}/src/serialize/index.ts +0 -0
  302. /package/{packages/chili-core → chili-core}/src/serialize/serializer.ts +0 -0
  303. /package/{packages/chili-core → chili-core}/src/service.ts +0 -0
  304. /package/{packages/chili-core → chili-core}/src/shape/curve.ts +0 -0
  305. /package/{packages/chili-core → chili-core}/src/shape/geometry.ts +0 -0
  306. /package/{packages/chili-core → chili-core}/src/shape/index.ts +0 -0
  307. /package/{packages/chili-core → chili-core}/src/shape/lineType.ts +0 -0
  308. /package/{packages/chili-core → chili-core}/src/shape/meshData.ts +0 -0
  309. /package/{packages/chili-core → chili-core}/src/shape/shape.ts +0 -0
  310. /package/{packages/chili-core → chili-core}/src/shape/shapeConverter.ts +0 -0
  311. /package/{packages/chili-core → chili-core}/src/shape/shapeFactory.ts +0 -0
  312. /package/{packages/chili-core → chili-core}/src/shape/shapeType.ts +0 -0
  313. /package/{packages/chili-core → chili-core}/src/shape/surface.ts +0 -0
  314. /package/{packages/chili-core → chili-core}/src/snapType.ts +0 -0
  315. /package/{packages/chili-core → chili-core}/src/ui/button.ts +0 -0
  316. /package/{packages/chili-core → chili-core}/src/ui/combobox.ts +0 -0
  317. /package/{packages/chili-core → chili-core}/src/ui/dialog.ts +0 -0
  318. /package/{packages/chili-core → chili-core}/src/ui/index.ts +0 -0
  319. /package/{packages/chili-core → chili-core}/src/ui/ribbon.ts +0 -0
  320. /package/{packages/chili-core → chili-core}/src/ui/window.ts +0 -0
  321. /package/{packages/chili-core → chili-core}/src/visual/act.ts +0 -0
  322. /package/{packages/chili-core → chili-core}/src/visual/cameraController.ts +0 -0
  323. /package/{packages/chili-core → chili-core}/src/visual/cursorType.ts +0 -0
  324. /package/{packages/chili-core → chili-core}/src/visual/detectedData.ts +0 -0
  325. /package/{packages/chili-core → chili-core}/src/visual/eventHandler.ts +0 -0
  326. /package/{packages/chili-core → chili-core}/src/visual/highlighter.ts +0 -0
  327. /package/{packages/chili-core → chili-core}/src/visual/index.ts +0 -0
  328. /package/{packages/chili-core → chili-core}/src/visual/meshExporter.ts +0 -0
  329. /package/{packages/chili-core → chili-core}/src/visual/meshUtils.ts +0 -0
  330. /package/{packages/chili-core → chili-core}/src/visual/textGenerator.ts +0 -0
  331. /package/{packages/chili-core → chili-core}/src/visual/view.ts +0 -0
  332. /package/{packages/chili-core → chili-core}/src/visual/viewGizmo.ts +0 -0
  333. /package/{packages/chili-core → chili-core}/src/visual/viewport.ts +0 -0
  334. /package/{packages/chili-core → chili-core}/src/visual/visual.ts +0 -0
  335. /package/{packages/chili-core → chili-core}/src/visual/visualContext.ts +0 -0
  336. /package/{packages/chili-core → chili-core}/src/visual/visualFactory.ts +0 -0
  337. /package/{packages/chili-core → chili-core}/src/visual/visualObject.ts +0 -0
  338. /package/{packages/chili-core → chili-core}/src/visual/visualShape.ts +0 -0
  339. /package/{packages/chili-geo → chili-geo}/src/index.ts +0 -0
  340. /package/{packages/chili-geo → chili-geo}/src/utils.ts +0 -0
  341. /package/{packages/chili-i18n → chili-i18n}/src/en.ts +0 -0
  342. /package/{packages/chili-i18n → chili-i18n}/src/index.ts +0 -0
  343. /package/{packages/chili-i18n → chili-i18n}/src/pt-br.ts +0 -0
  344. /package/{packages/chili-i18n → chili-i18n}/src/zh-cn.ts +0 -0
  345. /package/{packages/chili-storage → chili-storage}/src/index.ts +0 -0
  346. /package/{packages/chili-storage → chili-storage}/src/indexedDBStorage.ts +0 -0
  347. /package/{packages/chili-three → chili-three}/src/cameraController.ts +0 -0
  348. /package/{packages/chili-three → chili-three}/src/common.ts +0 -0
  349. /package/{packages/chili-three → chili-three}/src/constants.ts +0 -0
  350. /package/{packages/chili-three → chili-three}/src/highlightable.ts +0 -0
  351. /package/{packages/chili-three → chili-three}/src/index.ts +0 -0
  352. /package/{packages/chili-three → chili-three}/src/meshExporter.ts +0 -0
  353. /package/{packages/chili-three → chili-three}/src/outlinePass.js +0 -0
  354. /package/{packages/chili-three → chili-three}/src/texture_points.jpg +0 -0
  355. /package/{packages/chili-three → chili-three}/src/threeGeometry.ts +0 -0
  356. /package/{packages/chili-three → chili-three}/src/threeGeometryFactory.ts +0 -0
  357. /package/{packages/chili-three → chili-three}/src/threeHelper.ts +0 -0
  358. /package/{packages/chili-three → chili-three}/src/threeHighlighter.ts +0 -0
  359. /package/{packages/chili-three → chili-three}/src/threeView.module.css +0 -0
  360. /package/{packages/chili-three → chili-three}/src/threeView.ts +0 -0
  361. /package/{packages/chili-three → chili-three}/src/threeViewEventHandler.ts +0 -0
  362. /package/{packages/chili-three → chili-three}/src/threeVisual.ts +0 -0
  363. /package/{packages/chili-three → chili-three}/src/threeVisualContext.ts +0 -0
  364. /package/{packages/chili-three → chili-three}/src/threeVisualFactory.ts +0 -0
  365. /package/{packages/chili-three → chili-three}/src/threeVisualObject.ts +0 -0
  366. /package/{packages/chili-three → chili-three}/src/viewGizmo.ts +0 -0
  367. /package/{packages/chili-ui → chili-ui}/src/cursor/draw.cur +0 -0
  368. /package/{packages/chili-ui → chili-ui}/src/cursor/index.ts +0 -0
  369. /package/{packages/chili-ui → chili-ui}/src/dialog.module.css +0 -0
  370. /package/{packages/chili-ui → chili-ui}/src/dialog.ts +0 -0
  371. /package/{packages/chili-ui → chili-ui}/src/editor.module.css +0 -0
  372. /package/{packages/chili-ui → chili-ui}/src/editor.ts +0 -0
  373. /package/{packages/chili-ui → chili-ui}/src/home/home.module.css +0 -0
  374. /package/{packages/chili-ui → chili-ui}/src/home/home.ts +0 -0
  375. /package/{packages/chili-ui → chili-ui}/src/home/index.ts +0 -0
  376. /package/{packages/chili-ui → chili-ui}/src/home/languageSelector.ts +0 -0
  377. /package/{packages/chili-ui → chili-ui}/src/home/navigation3DSelector.ts +0 -0
  378. /package/{packages/chili-ui → chili-ui}/src/home/themeSelector.ts +0 -0
  379. /package/{packages/chili-ui → chili-ui}/src/index.ts +0 -0
  380. /package/{packages/chili-ui → chili-ui}/src/mainWindow.module.css +0 -0
  381. /package/{packages/chili-ui → chili-ui}/src/mainWindow.ts +0 -0
  382. /package/{packages/chili-ui → chili-ui}/src/okCancel.module.css +0 -0
  383. /package/{packages/chili-ui → chili-ui}/src/okCancel.ts +0 -0
  384. /package/{packages/chili-ui → chili-ui}/src/permanent.module.css +0 -0
  385. /package/{packages/chili-ui → chili-ui}/src/permanent.ts +0 -0
  386. /package/{packages/chili-ui → chili-ui}/src/project/index.ts +0 -0
  387. /package/{packages/chili-ui → chili-ui}/src/project/projectView.module.css +0 -0
  388. /package/{packages/chili-ui → chili-ui}/src/project/projectView.ts +0 -0
  389. /package/{packages/chili-ui → chili-ui}/src/project/toolBar.module.css +0 -0
  390. /package/{packages/chili-ui → chili-ui}/src/project/toolBar.ts +0 -0
  391. /package/{packages/chili-ui → chili-ui}/src/project/tree/index.ts +0 -0
  392. /package/{packages/chili-ui → chili-ui}/src/project/tree/tree.module.css +0 -0
  393. /package/{packages/chili-ui → chili-ui}/src/project/tree/tree.ts +0 -0
  394. /package/{packages/chili-ui → chili-ui}/src/project/tree/treeItem.module.css +0 -0
  395. /package/{packages/chili-ui → chili-ui}/src/project/tree/treeItem.ts +0 -0
  396. /package/{packages/chili-ui → chili-ui}/src/project/tree/treeItemGroup.module.css +0 -0
  397. /package/{packages/chili-ui → chili-ui}/src/project/tree/treeItemGroup.ts +0 -0
  398. /package/{packages/chili-ui → chili-ui}/src/project/tree/treeModel.module.css +0 -0
  399. /package/{packages/chili-ui → chili-ui}/src/project/tree/treeModel.ts +0 -0
  400. /package/{packages/chili-ui → chili-ui}/src/property/check.ts +0 -0
  401. /package/{packages/chili-ui → chili-ui}/src/property/colorPorperty.module.css +0 -0
  402. /package/{packages/chili-ui → chili-ui}/src/property/colorProperty.ts +0 -0
  403. /package/{packages/chili-ui → chili-ui}/src/property/common.module.css +0 -0
  404. /package/{packages/chili-ui → chili-ui}/src/property/index.ts +0 -0
  405. /package/{packages/chili-ui → chili-ui}/src/property/input.module.css +0 -0
  406. /package/{packages/chili-ui → chili-ui}/src/property/input.ts +0 -0
  407. /package/{packages/chili-ui → chili-ui}/src/property/material/index.ts +0 -0
  408. /package/{packages/chili-ui → chili-ui}/src/property/material/materialDataContent.ts +0 -0
  409. /package/{packages/chili-ui → chili-ui}/src/property/material/materialEditor.module.css +0 -0
  410. /package/{packages/chili-ui → chili-ui}/src/property/material/materialEditor.ts +0 -0
  411. /package/{packages/chili-ui → chili-ui}/src/property/material/textureEditor.module.css +0 -0
  412. /package/{packages/chili-ui → chili-ui}/src/property/material/textureEditor.ts +0 -0
  413. /package/{packages/chili-ui → chili-ui}/src/property/materialProperty.module.css +0 -0
  414. /package/{packages/chili-ui → chili-ui}/src/property/materialProperty.ts +0 -0
  415. /package/{packages/chili-ui → chili-ui}/src/property/matrixProperty.ts +0 -0
  416. /package/{packages/chili-ui → chili-ui}/src/property/propertyBase.module.css +0 -0
  417. /package/{packages/chili-ui → chili-ui}/src/property/propertyBase.ts +0 -0
  418. /package/{packages/chili-ui → chili-ui}/src/property/propertyView.module.css +0 -0
  419. /package/{packages/chili-ui → chili-ui}/src/property/propertyView.ts +0 -0
  420. /package/{packages/chili-ui → chili-ui}/src/property/utils.ts +0 -0
  421. /package/{packages/chili-ui → chili-ui}/src/ribbon/commandContext.module.css +0 -0
  422. /package/{packages/chili-ui → chili-ui}/src/ribbon/commandContext.ts +0 -0
  423. /package/{packages/chili-ui → chili-ui}/src/ribbon/index.ts +0 -0
  424. /package/{packages/chili-ui → chili-ui}/src/ribbon/ribbon.module.css +0 -0
  425. /package/{packages/chili-ui → chili-ui}/src/ribbon/ribbon.ts +0 -0
  426. /package/{packages/chili-ui → chili-ui}/src/ribbon/ribbonButton.module.css +0 -0
  427. /package/{packages/chili-ui → chili-ui}/src/ribbon/ribbonButton.ts +0 -0
  428. /package/{packages/chili-ui → chili-ui}/src/ribbon/ribbonData.ts +0 -0
  429. /package/{packages/chili-ui → chili-ui}/src/ribbon/ribbonStack.module.css +0 -0
  430. /package/{packages/chili-ui → chili-ui}/src/ribbon/ribbonStack.ts +0 -0
  431. /package/{packages/chili-ui → chili-ui}/src/ribbon/ribbonToggleButton.module.css +0 -0
  432. /package/{packages/chili-ui → chili-ui}/src/ribbon/ribbonToggleButton.ts +0 -0
  433. /package/{packages/chili-ui → chili-ui}/src/statusbar/index.ts +0 -0
  434. /package/{packages/chili-ui → chili-ui}/src/statusbar/snapConfig.module.css +0 -0
  435. /package/{packages/chili-ui → chili-ui}/src/statusbar/snapConfig.ts +0 -0
  436. /package/{packages/chili-ui → chili-ui}/src/statusbar/statusbar.module.css +0 -0
  437. /package/{packages/chili-ui → chili-ui}/src/statusbar/statusbar.ts +0 -0
  438. /package/{packages/chili-ui → chili-ui}/src/toast/index.ts +0 -0
  439. /package/{packages/chili-ui → chili-ui}/src/toast/toast.module.css +0 -0
  440. /package/{packages/chili-ui → chili-ui}/src/toast/toast.ts +0 -0
  441. /package/{packages/chili-ui → chili-ui}/src/viewport/flyout/flyout.module.css +0 -0
  442. /package/{packages/chili-ui → chili-ui}/src/viewport/flyout/flyout.ts +0 -0
  443. /package/{packages/chili-ui → chili-ui}/src/viewport/flyout/index.ts +0 -0
  444. /package/{packages/chili-ui → chili-ui}/src/viewport/flyout/input.module.css +0 -0
  445. /package/{packages/chili-ui → chili-ui}/src/viewport/flyout/input.ts +0 -0
  446. /package/{packages/chili-ui → chili-ui}/src/viewport/flyout/tip.module.css +0 -0
  447. /package/{packages/chili-ui → chili-ui}/src/viewport/flyout/tip.ts +0 -0
  448. /package/{packages/chili-ui → chili-ui}/src/viewport/index.ts +0 -0
  449. /package/{packages/chili-ui → chili-ui}/src/viewport/layoutViewport.module.css +0 -0
  450. /package/{packages/chili-ui → chili-ui}/src/viewport/layoutViewport.ts +0 -0
  451. /package/{packages/chili-ui → chili-ui}/src/viewport/viewport.module.css +0 -0
  452. /package/{packages/chili-ui → chili-ui}/src/viewport/viewport.ts +0 -0
  453. /package/{packages/chili-vis → chili-vis}/src/index.ts +0 -0
  454. /package/{packages/chili-vis → chili-vis}/src/nodeSelectionEventHandler.ts +0 -0
  455. /package/{packages/chili-vis → chili-vis}/src/selectionEventHandler.ts +0 -0
  456. /package/{packages/chili-vis → chili-vis}/src/shapeSelectionEventHandler.ts +0 -0
  457. /package/{packages/chili-vis → chili-vis}/src/viewUtils.ts +0 -0
  458. /package/{packages/chili-wasm → chili-wasm}/lib/chili-wasm.d.ts +0 -0
  459. /package/{packages/chili-wasm → chili-wasm}/lib/chili-wasm.js +0 -0
  460. /package/{packages/chili-wasm → chili-wasm}/lib/chili-wasm.wasm +0 -0
  461. /package/{packages/chili-wasm → chili-wasm}/src/converter.ts +0 -0
  462. /package/{packages/chili-wasm → chili-wasm}/src/curve.ts +0 -0
  463. /package/{packages/chili-wasm → chili-wasm}/src/factory.ts +0 -0
  464. /package/{packages/chili-wasm → chili-wasm}/src/geometry.ts +0 -0
  465. /package/{packages/chili-wasm → chili-wasm}/src/helper.ts +0 -0
  466. /package/{packages/chili-wasm → chili-wasm}/src/index.ts +0 -0
  467. /package/{packages/chili-wasm → chili-wasm}/src/mesher.ts +0 -0
  468. /package/{packages/chili-wasm → chili-wasm}/src/shape.ts +0 -0
  469. /package/{packages/chili-wasm → chili-wasm}/src/surface.ts +0 -0
  470. /package/{packages/chili-wasm → chili-wasm}/src/wasm.ts +0 -0
  471. /package/{packages/chili-web → chili-web}/src/index.ts +0 -0
  472. /package/{packages/chili-web → chili-web}/src/loading.ts +0 -0
@@ -1,204 +0,0 @@
1
- // Part of the Chili3d Project, under the AGPL-3.0 License.
2
- // See LICENSE file in the project root for full license information.
3
-
4
- #include <GCPnts_AbscissaPoint.hxx>
5
- #include <GCPnts_UniformAbscissa.hxx>
6
- #include <GeomAPI_ExtremaCurveCurve.hxx>
7
- #include <GeomAPI_ProjectPointOnCurve.hxx>
8
- #include <GeomAPI_ProjectPointOnSurf.hxx>
9
- #include <GeomLib_IsPlanarSurface.hxx>
10
- #include <GeomLib_Tool.hxx>
11
- #include <GeomProjLib.hxx>
12
- #include <Geom_Curve.hxx>
13
- #include <Geom_Line.hxx>
14
- #include <Geom_Surface.hxx>
15
- #include <Geom_TrimmedCurve.hxx>
16
- #include <Standard_Handle.hxx>
17
- #include <gp_Dir.hxx>
18
- #include <gp_Pnt.hxx>
19
- #include <optional>
20
-
21
- #include "shared.hpp"
22
- #include "utils.hpp"
23
-
24
- using namespace emscripten;
25
-
26
- class Curve {
27
- private:
28
- static Vector3Array getPoints(const GCPnts_UniformAbscissa& uniformAbscissa, const Geom_Curve* curve)
29
- {
30
- std::vector<Vector3> points;
31
- for (int i = 1; i <= uniformAbscissa.NbPoints(); i++) {
32
- points.push_back(Vector3::fromPnt(curve->Value(uniformAbscissa.Parameter(i))));
33
- }
34
- return Vector3Array(val::array(points));
35
- }
36
-
37
- public:
38
- static Handle_Geom_Line makeLine(const Vector3& start, const Vector3& dir)
39
- {
40
- Handle_Geom_Line line = new Geom_Line(Vector3::toPnt(start), Vector3::toDir(dir));
41
- return line;
42
- }
43
-
44
- static Handle_Geom_TrimmedCurve trim(const Geom_Curve* curve, double start, double end)
45
- {
46
- Handle_Geom_TrimmedCurve trimmedCurve = new Geom_TrimmedCurve(curve, start, end);
47
- return trimmedCurve;
48
- }
49
-
50
- static Vector3Array projects(const Geom_Curve* curve, const Vector3& point)
51
- {
52
- GeomAPI_ProjectPointOnCurve projector(Vector3::toPnt(point), curve);
53
- std::vector<Vector3> points;
54
- for (int i = 1; i <= projector.NbPoints(); i++) {
55
- points.push_back(Vector3::fromPnt(projector.Point(i)));
56
- }
57
-
58
- return Vector3Array(val::array(points));
59
- }
60
-
61
- static std::optional<ExtremaCCResult> nearestExtremaCC(const Geom_Curve* curve1, const Geom_Curve* curve2)
62
- {
63
- GeomAPI_ExtremaCurveCurve extrema(curve1, curve2);
64
- if (extrema.NbExtrema() == 0) {
65
- return std::nullopt;
66
- }
67
-
68
- gp_Pnt p1, p2;
69
- extrema.NearestPoints(p1, p2);
70
- double u1, u2;
71
- extrema.LowerDistanceParameters(u1, u2);
72
- return ExtremaCCResult { .isParallel = extrema.IsParallel(),
73
- .distance = extrema.LowerDistance(),
74
- .p1 = Vector3::fromPnt(p1),
75
- .p2 = Vector3::fromPnt(p2),
76
- .u1 = u1,
77
- .u2 = u2 };
78
- }
79
-
80
- static Vector3Array uniformAbscissaWithLength(const Geom_Curve* curve, double length)
81
- {
82
- GeomAdaptor_Curve adaptorCurve(curve);
83
- GCPnts_UniformAbscissa uniformAbscissa(adaptorCurve, length);
84
- return getPoints(uniformAbscissa, curve);
85
- }
86
-
87
- static Vector3Array uniformAbscissaWithCount(const Geom_Curve* curve, int nbPoints)
88
- {
89
- GeomAdaptor_Curve adaptorCurve(curve);
90
- GCPnts_UniformAbscissa uniformAbscissa(adaptorCurve, nbPoints);
91
- return getPoints(uniformAbscissa, curve);
92
- }
93
-
94
- static ProjectPointResult projectOrNearest(const Geom_Curve* curve, const Vector3& point)
95
- {
96
- gp_Pnt pnt = Vector3::toPnt(point);
97
- return projectOrNearestCP(curve, pnt);
98
- }
99
-
100
- static std::optional<double> parameter(const Geom_Curve* curve, const Vector3& point, double maxDistance)
101
- {
102
- double parameter = 0;
103
- gp_Pnt pnt = Vector3::toPnt(point);
104
- if (GeomLib_Tool::Parameter(curve, pnt, maxDistance, parameter)) {
105
- return parameter;
106
- }
107
- return std::nullopt;
108
- }
109
-
110
- static double curveLength(const Geom_Curve* curve)
111
- {
112
- GeomAdaptor_Curve adaptorCurve(curve);
113
- return GCPnts_AbscissaPoint::Length(adaptorCurve);
114
- }
115
- };
116
-
117
- struct SurfaceBounds {
118
- double u1;
119
- double u2;
120
- double v1;
121
- double v2;
122
- };
123
-
124
- class Surface {
125
- public:
126
- static Handle_Geom_Curve projectCurve(const Geom_Surface* surface, const Geom_Curve* curve)
127
- {
128
- return GeomProjLib::Project(curve, surface);
129
- }
130
-
131
- static Vector3Array projectPoint(const Geom_Surface* surface, const Vector3& point)
132
- {
133
- gp_Pnt pnt = Vector3::toPnt(point);
134
- GeomAPI_ProjectPointOnSurf projector(pnt, surface);
135
- std::vector<gp_Pnt> points;
136
- for (size_t i = 0; i < projector.NbPoints(); i++) {
137
- points.push_back(projector.Point(i + 1));
138
- }
139
-
140
- return Vector3Array(val::array(points.begin(), points.end()));
141
- }
142
-
143
- static bool isPlanar(const Geom_Surface* surface)
144
- {
145
- GeomLib_IsPlanarSurface isPlanarSurface(surface);
146
- return isPlanarSurface.IsPlanar();
147
- }
148
-
149
- static std::optional<UV> parameters(const Geom_Surface* surface, const Vector3& point, double maxDistance)
150
- {
151
- double u(0), v(0);
152
- gp_Pnt pnt = Vector3::toPnt(point);
153
- if (GeomLib_Tool::Parameters(surface, pnt, maxDistance, u, v)) {
154
- return UV { .u = u, .v = v };
155
- }
156
- return std::nullopt;
157
- }
158
-
159
- static std::optional<PointAndParameter> nearestPoint(const Geom_Surface* surface, const Vector3& point)
160
- {
161
- gp_Pnt pnt = Vector3::toPnt(point);
162
- GeomAPI_ProjectPointOnSurf projector(pnt, surface);
163
- if (projector.IsDone()) {
164
- return PointAndParameter { .point = Vector3::fromPnt(projector.NearestPoint()),
165
- .parameter = projector.LowerDistance() };
166
- }
167
- return std::nullopt;
168
- }
169
-
170
- static SurfaceBounds bounds(const Geom_Surface* surface)
171
- {
172
- double u1, u2, v1, v2;
173
- surface->Bounds(u1, u2, v1, v2);
174
- return SurfaceBounds { .u1 = u1, .u2 = u2, .v1 = v1, .v2 = v2 };
175
- }
176
- };
177
-
178
- EMSCRIPTEN_BINDINGS(Geometry)
179
- {
180
- class_<Curve>("Curve")
181
- .class_function("makeLine", &Curve::makeLine)
182
- .class_function("trim", &Curve::trim, allow_raw_pointers())
183
- .class_function("projectOrNearest", &Curve::projectOrNearest, allow_raw_pointers())
184
- .class_function("uniformAbscissaWithCount", &Curve::uniformAbscissaWithCount, allow_raw_pointers())
185
- .class_function("uniformAbscissaWithLength", &Curve::uniformAbscissaWithLength, allow_raw_pointers())
186
- .class_function("nearestExtremaCC", &Curve::nearestExtremaCC, allow_raw_pointers())
187
- .class_function("parameter", &Curve::parameter, allow_raw_pointers())
188
- .class_function("curveLength", &Curve::curveLength, allow_raw_pointers())
189
- .class_function("projects", &Curve::projects, allow_raw_pointers());
190
-
191
- value_object<SurfaceBounds>("SurfaceBounds")
192
- .field("u1", &SurfaceBounds::u1)
193
- .field("u2", &SurfaceBounds::u2)
194
- .field("v1", &SurfaceBounds::v1)
195
- .field("v2", &SurfaceBounds::v2);
196
-
197
- class_<Surface>("Surface")
198
- .class_function("projectCurve", &Surface::projectCurve, allow_raw_pointers())
199
- .class_function("projectPoint", &Surface::projectPoint, allow_raw_pointers())
200
- .class_function("isPlanar", &Surface::isPlanar, allow_raw_pointers())
201
- .class_function("parameters", &Surface::parameters, allow_raw_pointers())
202
- .class_function("nearestPoint", &Surface::nearestPoint, allow_raw_pointers())
203
- .class_function("bounds", &Surface::bounds, allow_raw_pointers());
204
- }
@@ -1,330 +0,0 @@
1
- // Part of the Chili3d Project, under the AGPL-3.0 License.
2
- // See LICENSE file in the project root for full license information.
3
-
4
- #include <emscripten/bind.h>
5
- #include <emscripten/val.h>
6
-
7
- #include <BRepAdaptor_Curve.hxx>
8
- #include <BRepBndLib.hxx>
9
- #include <BRepLib_ToolTriangulatedShape.hxx>
10
- #include <BRepMesh_IncrementalMesh.hxx>
11
- #include <BRepTools.hxx>
12
- #include <BRep_Tool.hxx>
13
- #include <GCPnts_TangentialDeflection.hxx>
14
- #include <Poly_Triangulation.hxx>
15
- #include <Standard_Handle.hxx>
16
- #include <TopExp.hxx>
17
- #include <TopExp_Explorer.hxx>
18
- #include <TopLoc_Location.hxx>
19
- #include <TopoDS.hxx>
20
- #include <TopoDS_Edge.hxx>
21
- #include <TopoDS_Face.hxx>
22
- #include <TopoDS_Shape.hxx>
23
- #include <UnitsMethods.hxx>
24
- #include <gp_Dir.hxx>
25
- #include <gp_Pnt.hxx>
26
- #include <gp_Vec.hxx>
27
-
28
- #include "shared.hpp"
29
- #include "utils.hpp"
30
-
31
- using namespace emscripten;
32
- using namespace std;
33
-
34
- const double ANGLE_DEFLECTION = 0.2;
35
-
36
- void addPointToPosition(const gp_Pnt& pnt, std::optional<gp_Pnt>& prePnt, std::vector<float>& position)
37
- {
38
- if (prePnt.has_value()) {
39
- auto pre = prePnt.value();
40
- position.push_back(pre.X());
41
- position.push_back(pre.Y());
42
- position.push_back(pre.Z());
43
-
44
- position.push_back(pnt.X());
45
- position.push_back(pnt.Y());
46
- position.push_back(pnt.Z());
47
- }
48
- prePnt = pnt;
49
- }
50
-
51
- void pointByGCTangential(const TopoDS_Edge& edge, double lineDeflection, std::vector<float>& position)
52
- {
53
- BRepAdaptor_Curve curve(edge);
54
- GCPnts_TangentialDeflection pnts(curve, ANGLE_DEFLECTION, lineDeflection);
55
-
56
- std::optional<gp_Pnt> prePnt = std::nullopt;
57
- for (int i = 0; i < pnts.NbPoints(); i++) {
58
- addPointToPosition(pnts.Value(i + 1), prePnt, position);
59
- }
60
- }
61
-
62
- struct EdgeMeshData {
63
- NumberArray position;
64
- /// @brief start1,count1,start2,count2...
65
- NumberArray group;
66
- EdgeArray edges;
67
- };
68
-
69
- struct FaceMeshData {
70
- NumberArray position;
71
- NumberArray normal;
72
- NumberArray uv;
73
- NumberArray index;
74
- /// @brief start1,count1,start2,count2...
75
- NumberArray group;
76
- FaceArray faces;
77
- };
78
-
79
- struct MeshData {
80
- EdgeMeshData edgeMeshData;
81
- FaceMeshData faceMeshData;
82
- };
83
-
84
- class EdgeMesher {
85
- public:
86
- double lineDeflection;
87
- std::vector<float> position;
88
- /// @brief start1,count1,start2,count2...
89
- std::vector<size_t> group;
90
- std::vector<TopoDS_Edge> edges;
91
-
92
- EdgeMesher(double lineDeflection)
93
- : lineDeflection(lineDeflection)
94
- {
95
- }
96
-
97
- void generateEdgeMesh(const TopoDS_Edge& edge, const Handle(Poly_Triangulation) & triangulation)
98
- {
99
- auto start = this->position.size() / 3;
100
-
101
- if (triangulation.IsNull()) {
102
- pointByGCTangential(edge, this->lineDeflection, this->position);
103
- } else {
104
- TopLoc_Location location;
105
- Handle(Poly_PolygonOnTriangulation) polygon = BRep_Tool::PolygonOnTriangulation(edge, triangulation, location);
106
- if (polygon.IsNull()) {
107
- pointByGCTangential(edge, this->lineDeflection, this->position);
108
- } else {
109
- auto trsf = location.Transformation();
110
- pointByFaceTriangulation(polygon, triangulation, trsf);
111
- }
112
- }
113
-
114
- this->group.push_back(start);
115
- this->group.push_back(this->position.size() / 3 - start);
116
- }
117
-
118
- void pointByFaceTriangulation(const Handle_Poly_PolygonOnTriangulation& polygon,
119
- const Handle_Poly_Triangulation& triangulation, const gp_Trsf& transform)
120
- {
121
- std::optional<gp_Pnt> prePnt = std::nullopt;
122
- auto nodeIndex = polygon->Nodes();
123
- for (auto i = nodeIndex.Lower(); i <= nodeIndex.Upper(); i++) {
124
- auto pnt = triangulation->Node(nodeIndex[i]).Transformed(transform);
125
- addPointToPosition(pnt, prePnt, this->position);
126
- }
127
- }
128
- };
129
-
130
- class FaceMesher {
131
- public:
132
- std::vector<float> position;
133
- std::vector<float> normal;
134
- std::vector<float> uv;
135
- std::vector<size_t> index;
136
- /// @brief start1,count1,start2,count2...
137
- std::vector<size_t> group;
138
- std::vector<TopoDS_Face> faces;
139
-
140
- void generateFaceMesh(const TopoDS_Face& face, const Handle(Poly_Triangulation) & handlePoly, const gp_Trsf& trsf)
141
- {
142
- if (handlePoly.IsNull()) {
143
- return;
144
- }
145
-
146
- bool isMirrod = trsf.VectorialPart().Determinant() < 0;
147
- auto orientation = face.Orientation();
148
- auto groupStart = this->index.size();
149
- auto indexStart = this->position.size() / 3;
150
-
151
- this->fillIndex(indexStart, handlePoly, orientation);
152
- this->fillPosition(trsf, handlePoly);
153
- this->fillNormal(trsf, face, handlePoly, (orientation == TopAbs_REVERSED) ^ isMirrod);
154
- this->fillUv(face, handlePoly);
155
-
156
- this->group.push_back(groupStart);
157
- this->group.push_back(this->index.size() - groupStart);
158
- }
159
-
160
- void fillPosition(const gp_Trsf& transform, const Handle(Poly_Triangulation) & handlePoly)
161
- {
162
- for (int index = 0; index < handlePoly->NbNodes(); index++) {
163
- auto pnt = handlePoly->Node(index + 1).Transformed(transform);
164
- this->position.push_back(pnt.X());
165
- this->position.push_back(pnt.Y());
166
- this->position.push_back(pnt.Z());
167
- }
168
- }
169
-
170
- void fillNormal(const gp_Trsf& transform, const TopoDS_Face& face, const Handle(Poly_Triangulation) & handlePoly,
171
- bool shouldReverse)
172
- {
173
- BRepLib_ToolTriangulatedShape::ComputeNormals(face, handlePoly);
174
- for (int index = 0; index < handlePoly->NbNodes(); index++) {
175
- auto normal = handlePoly->Normal(index + 1);
176
- if (shouldReverse) {
177
- normal.Reverse();
178
- }
179
- normal = normal.Transformed(transform);
180
- this->normal.push_back(normal.X());
181
- this->normal.push_back(normal.Y());
182
- this->normal.push_back(normal.Z());
183
- }
184
- }
185
-
186
- void fillIndex(size_t indexStart, const Handle(Poly_Triangulation) & handlePoly,
187
- const TopAbs_Orientation& orientation)
188
- {
189
- for (int index = 0; index < handlePoly->NbTriangles(); index++) {
190
- auto v1(1), v2(2), v3(3);
191
- if (orientation == TopAbs_REVERSED) {
192
- v2 = 3;
193
- v3 = 2;
194
- }
195
-
196
- auto triangle = handlePoly->Triangle(index + 1);
197
- this->index.push_back(triangle.Value(v1) - 1 + indexStart);
198
- this->index.push_back(triangle.Value(v2) - 1 + indexStart);
199
- this->index.push_back(triangle.Value(v3) - 1 + indexStart);
200
- }
201
- }
202
-
203
- void fillUv(const TopoDS_Face& face, const Handle(Poly_Triangulation) & handlePoly)
204
- {
205
- double aUmin, aUmax, aVmin, aVmax, dUmax, dVmax;
206
- BRepTools::UVBounds(face, aUmin, aUmax, aVmin, aVmax);
207
- dUmax = (aUmax - aUmin);
208
- dVmax = (aVmax - aVmin);
209
- for (int index = 0; index < handlePoly->NbNodes(); index++) {
210
- auto uv = handlePoly->UVNode(index + 1);
211
- this->uv.push_back((uv.X() - aUmin) / dUmax);
212
- this->uv.push_back((uv.Y() - aVmin) / dVmax);
213
- }
214
- }
215
- };
216
-
217
- class Mesher {
218
- TopoDS_Shape shape;
219
- double lineDeflection;
220
-
221
- public:
222
- Mesher(const TopoDS_Shape& shape, double lineDeflection)
223
- : shape(shape)
224
- {
225
- this->lineDeflection = boundingBoxRatio(shape, lineDeflection);
226
- }
227
-
228
- NumberArray edgesMeshPosition()
229
- {
230
- std::vector<float> position;
231
- TopTools_IndexedMapOfShape edgeMap;
232
- TopExp::MapShapes(shape, TopAbs_EDGE, edgeMap);
233
- for (TopTools_IndexedMapOfShape::Iterator anIt(edgeMap); anIt.More(); anIt.Next()) {
234
- TopoDS_Edge edge = TopoDS::Edge(anIt.Value());
235
- pointByGCTangential(edge, this->lineDeflection, position);
236
- }
237
-
238
- return NumberArray(val::array(position));
239
- }
240
-
241
- MeshData mesh()
242
- {
243
- BRepMesh_IncrementalMesh mesh(shape, lineDeflection, true, ANGLE_DEFLECTION, true);
244
-
245
- std::unordered_map<TopoDS_Face, Handle(Poly_Triangulation)> facePolyMap;
246
- auto faceMeshData = meshFaces(facePolyMap);
247
- auto edgeMeshData = meshEdges(facePolyMap);
248
-
249
- return MeshData { edgeMeshData, faceMeshData };
250
- }
251
-
252
- EdgeMeshData meshEdges(std::unordered_map<TopoDS_Face, Handle_Poly_Triangulation>& facePolyMap)
253
- {
254
- EdgeMesher mesher(lineDeflection);
255
- TopTools_IndexedDataMapOfShapeListOfShape mapEF;
256
- TopExp::MapShapesAndAncestors(shape, TopAbs_EDGE, TopAbs_FACE, mapEF);
257
- for (int ie = 1; ie <= mapEF.Extent(); ie++) {
258
- const TopoDS_Edge& aEdge = TopoDS::Edge(mapEF.FindKey(ie));
259
- mesher.edges.push_back(aEdge);
260
-
261
- const TopTools_ListOfShape& aFaces = mapEF(ie);
262
- if (aFaces.Extent() < 1) {
263
- mesher.generateEdgeMesh(aEdge, nullptr);
264
- } else {
265
- const TopoDS_Face& face = TopoDS::Face(aFaces.First());
266
- auto it = facePolyMap.find(face);
267
- if (it != facePolyMap.end()) {
268
- mesher.generateEdgeMesh(aEdge, it->second);
269
- } else {
270
- mesher.generateEdgeMesh(aEdge, nullptr);
271
- }
272
- }
273
- }
274
-
275
- return EdgeMeshData { NumberArray(val::array(mesher.position)), NumberArray(val::array(mesher.group)),
276
- EdgeArray(val::array(mesher.edges)) };
277
- }
278
-
279
- FaceMeshData meshFaces(std::unordered_map<TopoDS_Face, Handle_Poly_Triangulation>& facePolyMap)
280
- {
281
- FaceMesher mesher;
282
- TopTools_IndexedMapOfShape faceMap;
283
- TopExp::MapShapes(shape, TopAbs_FACE, faceMap);
284
- for (TopTools_IndexedMapOfShape::Iterator anIt(faceMap); anIt.More(); anIt.Next()) {
285
- auto face = TopoDS::Face(anIt.Value());
286
- mesher.faces.push_back(face);
287
- TopLoc_Location location;
288
- auto handlePoly = BRep_Tool::Triangulation(face, location);
289
- if (!handlePoly.IsNull()) {
290
- auto trsf = location.Transformation();
291
- mesher.generateFaceMesh(face, handlePoly, trsf);
292
- facePolyMap[face] = handlePoly;
293
- }
294
- }
295
-
296
- return FaceMeshData { NumberArray(val::array(mesher.position)), NumberArray(val::array(mesher.normal)),
297
- NumberArray(val::array(mesher.uv)), NumberArray(val::array(mesher.index)),
298
- NumberArray(val::array(mesher.group)), FaceArray(val::array(mesher.faces)) };
299
- }
300
-
301
- ~Mesher()
302
- {
303
- BRepTools::Clean(shape, true);
304
- }
305
- };
306
-
307
- EMSCRIPTEN_BINDINGS(Mesher)
308
- {
309
- class_<Mesher>("Mesher")
310
- .constructor<TopoDS_Shape, double>()
311
- .function("mesh", &Mesher::mesh)
312
- .function("edgesMeshPosition", &Mesher::edgesMeshPosition);
313
-
314
- class_<EdgeMeshData>("EdgeMeshData")
315
- .property("position", &EdgeMeshData::position)
316
- .property("group", &EdgeMeshData::group)
317
- .property("edges", &EdgeMeshData::edges);
318
-
319
- class_<FaceMeshData>("FaceMeshData")
320
- .property("position", &FaceMeshData::position)
321
- .property("normal", &FaceMeshData::normal)
322
- .property("uv", &FaceMeshData::uv)
323
- .property("index", &FaceMeshData::index)
324
- .property("group", &FaceMeshData::group)
325
- .property("faces", &FaceMeshData::faces);
326
-
327
- class_<MeshData>("MeshData")
328
- .property("edgeMeshData", &MeshData::edgeMeshData)
329
- .property("faceMeshData", &MeshData::faceMeshData);
330
- }