sldkit 0.2.0__tar.gz → 0.3.0__tar.gz

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 (365) hide show
  1. {sldkit-0.2.0 → sldkit-0.3.0}/CONTRIBUTING.md +1 -1
  2. {sldkit-0.2.0 → sldkit-0.3.0}/Cargo.lock +7 -7
  3. {sldkit-0.2.0 → sldkit-0.3.0}/Cargo.toml +2 -2
  4. {sldkit-0.2.0 → sldkit-0.3.0}/LICENSES/README.md +4 -1
  5. {sldkit-0.2.0 → sldkit-0.3.0}/LICENSES/parasolid-core-PARTIAL_READERS.md +7 -1
  6. {sldkit-0.2.0 → sldkit-0.3.0}/LICENSES/rust-dependencies.json +3 -3
  7. {sldkit-0.2.0 → sldkit-0.3.0}/LICENSES/rust-dependencies.txt +2 -2
  8. {sldkit-0.2.0 → sldkit-0.3.0}/PKG-INFO +39 -4
  9. {sldkit-0.2.0/crates/sldkit-core → sldkit-0.3.0}/README.md +38 -3
  10. {sldkit-0.2.0 → sldkit-0.3.0}/THIRD_PARTY_NOTICES.md +5 -2
  11. {sldkit-0.2.0/crates/sldkit-parser → sldkit-0.3.0/crates/sldkit-container}/LICENSE +21 -9
  12. {sldkit-0.2.0 → sldkit-0.3.0/crates/sldkit-container}/README.md +38 -3
  13. {sldkit-0.2.0/crates/sldkit-python → sldkit-0.3.0/crates/sldkit-core}/LICENSE +21 -9
  14. {sldkit-0.2.0/crates/sldkit-container → sldkit-0.3.0/crates/sldkit-core}/README.md +38 -3
  15. sldkit-0.3.0/crates/sldkit-core/src/bom.rs +142 -0
  16. sldkit-0.3.0/crates/sldkit-core/src/display.rs +128 -0
  17. {sldkit-0.2.0 → sldkit-0.3.0}/crates/sldkit-core/src/geometry.rs +47 -0
  18. sldkit-0.3.0/crates/sldkit-core/src/geometry_evaluation.rs +234 -0
  19. {sldkit-0.2.0 → sldkit-0.3.0}/crates/sldkit-core/src/lib.rs +30 -9
  20. sldkit-0.3.0/crates/sldkit-core/src/model.rs +427 -0
  21. {sldkit-0.2.0 → sldkit-0.3.0}/crates/sldkit-core/src/project.rs +20 -0
  22. {sldkit-0.2.0/crates/sldkit-container → sldkit-0.3.0/crates/sldkit-parser}/LICENSE +21 -9
  23. sldkit-0.3.0/crates/sldkit-parser/README.md +223 -0
  24. sldkit-0.3.0/crates/sldkit-parser/src/bom.rs +818 -0
  25. sldkit-0.3.0/crates/sldkit-parser/src/display/appearance.rs +194 -0
  26. sldkit-0.3.0/crates/sldkit-parser/src/display/tables.rs +558 -0
  27. sldkit-0.3.0/crates/sldkit-parser/src/display/tests.rs +202 -0
  28. sldkit-0.3.0/crates/sldkit-parser/src/display.rs +566 -0
  29. sldkit-0.3.0/crates/sldkit-parser/src/geometry/cylindrical_loops/tests.rs +382 -0
  30. sldkit-0.3.0/crates/sldkit-parser/src/geometry/cylindrical_loops.rs +481 -0
  31. sldkit-0.3.0/crates/sldkit-parser/src/geometry/evaluation/carriers.rs +532 -0
  32. sldkit-0.3.0/crates/sldkit-parser/src/geometry/evaluation/mesh.rs +254 -0
  33. sldkit-0.3.0/crates/sldkit-parser/src/geometry/evaluation/mod.rs +850 -0
  34. sldkit-0.3.0/crates/sldkit-parser/src/geometry/evaluation/tests.rs +468 -0
  35. sldkit-0.3.0/crates/sldkit-parser/src/geometry/intervals.rs +388 -0
  36. sldkit-0.3.0/crates/sldkit-parser/src/geometry/nurbs_intervals.rs +193 -0
  37. sldkit-0.3.0/crates/sldkit-parser/src/geometry/planar_loops.rs +603 -0
  38. {sldkit-0.2.0 → sldkit-0.3.0}/crates/sldkit-parser/src/geometry.rs +111 -1
  39. {sldkit-0.2.0 → sldkit-0.3.0}/crates/sldkit-parser/src/legacy_semantics.rs +2 -0
  40. {sldkit-0.2.0 → sldkit-0.3.0}/crates/sldkit-parser/src/lib.rs +361 -5
  41. {sldkit-0.2.0 → sldkit-0.3.0}/crates/sldkit-parser/src/modern_semantics.rs +572 -66
  42. {sldkit-0.2.0 → sldkit-0.3.0}/crates/sldkit-parser/src/project.rs +463 -59
  43. sldkit-0.3.0/crates/sldkit-parser/src/units.rs +295 -0
  44. {sldkit-0.2.0/crates/sldkit-core → sldkit-0.3.0/crates/sldkit-python}/LICENSE +21 -9
  45. sldkit-0.3.0/crates/sldkit-python/README.md +223 -0
  46. {sldkit-0.2.0 → sldkit-0.3.0}/crates/sldkit-python/src/lib.rs +146 -1
  47. {sldkit-0.2.0 → sldkit-0.3.0}/docs/README.md +6 -2
  48. {sldkit-0.2.0 → sldkit-0.3.0}/docs/architecture.md +12 -3
  49. {sldkit-0.2.0 → sldkit-0.3.0}/docs/compatibility.md +30 -6
  50. sldkit-0.3.0/docs/development/README.md +23 -0
  51. sldkit-0.3.0/docs/development/assembly-validation.md +89 -0
  52. {sldkit-0.2.0/docs → sldkit-0.3.0/docs/development}/drawing-validation.md +12 -12
  53. sldkit-0.3.0/docs/development/geometry-validation.md +141 -0
  54. sldkit-0.3.0/docs/development/part-validation.md +69 -0
  55. {sldkit-0.2.0/docs → sldkit-0.3.0/docs/development}/releasing.md +56 -4
  56. sldkit-0.3.0/docs/display-mesh.md +92 -0
  57. sldkit-0.3.0/docs/document-facts.md +96 -0
  58. {sldkit-0.2.0 → sldkit-0.3.0}/docs/drawing-structure.md +10 -11
  59. sldkit-0.3.0/docs/geometry-evaluation.md +80 -0
  60. {sldkit-0.2.0 → sldkit-0.3.0}/docs/geometry.md +108 -112
  61. {sldkit-0.2.0 → sldkit-0.3.0}/docs/parser-provenance.md +1 -1
  62. sldkit-0.3.0/docs/project-scanning.md +104 -0
  63. {sldkit-0.2.0 → sldkit-0.3.0}/docs/schemas/drawing-ground-truth.schema.json +1 -1
  64. {sldkit-0.2.0 → sldkit-0.3.0}/pyproject.toml +34 -2
  65. {sldkit-0.2.0 → sldkit-0.3.0}/python/sldkit/__init__.py +117 -6
  66. {sldkit-0.2.0 → sldkit-0.3.0}/python/sldkit/_core.pyi +19 -0
  67. {sldkit-0.2.0 → sldkit-0.3.0}/python/sldkit/api.py +223 -1
  68. {sldkit-0.2.0 → sldkit-0.3.0}/python/sldkit/cli.py +111 -1
  69. {sldkit-0.2.0 → sldkit-0.3.0}/python/sldkit/errors.py +32 -1
  70. {sldkit-0.2.0 → sldkit-0.3.0}/python/sldkit/model.py +1501 -54
  71. sldkit-0.3.0/scripts/README.md +32 -0
  72. sldkit-0.3.0/scripts/capture_assembly_transforms.ps1 +213 -0
  73. sldkit-0.3.0/scripts/capture_part_orientation.swb +82 -0
  74. {sldkit-0.2.0 → sldkit-0.3.0}/scripts/check_license.py +16 -9
  75. {sldkit-0.2.0 → sldkit-0.3.0}/scripts/compare_drawing_structures.py +2 -2
  76. sldkit-0.3.0/scripts/smoke_installed_package.py +209 -0
  77. sldkit-0.3.0/scripts/smoke_wheel_artifact.py +83 -0
  78. sldkit-0.3.0/scripts/test_assembly_capture.ps1 +53 -0
  79. sldkit-0.3.0/scripts/validate_geometry_oracle.py +356 -0
  80. {sldkit-0.2.0 → sldkit-0.3.0}/scripts/validate_nurbs_trim.py +34 -0
  81. sldkit-0.3.0/scripts/validate_part_boundaries.py +579 -0
  82. sldkit-0.3.0/scripts/validate_part_orientation.py +337 -0
  83. sldkit-0.3.0/scripts/validate_partial_nurbs.py +261 -0
  84. {sldkit-0.2.0 → sldkit-0.3.0}/scripts/verify_release_artifacts.py +74 -37
  85. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/Cargo.lock +2 -2
  86. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/Cargo.toml +1 -1
  87. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/PATCHES.md +61 -3
  88. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/brep/graph.rs +192 -31
  89. sldkit-0.3.0/vendor/cadmpeg-codec-sldprt/src/brep/native_fin/tests.rs +167 -0
  90. sldkit-0.3.0/vendor/cadmpeg-codec-sldprt/src/brep/native_fin.rs +110 -0
  91. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/brep/native_hierarchy/tests.rs +50 -9
  92. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/brep.rs +107 -4
  93. {sldkit-0.2.0 → sldkit-0.3.0}/viewer/package-lock.json +2 -2
  94. {sldkit-0.2.0 → sldkit-0.3.0}/viewer/package.json +1 -1
  95. sldkit-0.2.0/crates/sldkit-core/src/model.rs +0 -255
  96. sldkit-0.2.0/crates/sldkit-parser/README.md +0 -188
  97. sldkit-0.2.0/crates/sldkit-python/README.md +0 -188
  98. sldkit-0.2.0/docs/project-scanning.md +0 -47
  99. sldkit-0.2.0/vendor/cadmpeg-codec-sldprt/src/brep/native_fin.rs +0 -2
  100. {sldkit-0.2.0 → sldkit-0.3.0}/CLA.md +0 -0
  101. {sldkit-0.2.0 → sldkit-0.3.0}/COMMERCIAL-LICENSE.md +0 -0
  102. {sldkit-0.2.0 → sldkit-0.3.0}/LICENSE +0 -0
  103. {sldkit-0.2.0 → sldkit-0.3.0}/LICENSES/Apache-2.0.txt +0 -0
  104. {sldkit-0.2.0 → sldkit-0.3.0}/LICENSES/PolyForm-Noncommercial-1.0.0.md +0 -0
  105. {sldkit-0.2.0 → sldkit-0.3.0}/LICENSES/parasolid-core-MIT.txt +0 -0
  106. {sldkit-0.2.0 → sldkit-0.3.0}/LICENSES/sldkit-legacy-MIT.txt +0 -0
  107. {sldkit-0.2.0 → sldkit-0.3.0}/LICENSES/three-MIT.txt +0 -0
  108. {sldkit-0.2.0 → sldkit-0.3.0}/crates/sldkit-container/Cargo.toml +0 -0
  109. {sldkit-0.2.0 → sldkit-0.3.0}/crates/sldkit-container/src/common.rs +0 -0
  110. {sldkit-0.2.0 → sldkit-0.3.0}/crates/sldkit-container/src/lib.rs +0 -0
  111. {sldkit-0.2.0 → sldkit-0.3.0}/crates/sldkit-container/src/modern.rs +0 -0
  112. {sldkit-0.2.0 → sldkit-0.3.0}/crates/sldkit-container/src/ole2.rs +0 -0
  113. {sldkit-0.2.0 → sldkit-0.3.0}/crates/sldkit-container/src/zip.rs +0 -0
  114. {sldkit-0.2.0 → sldkit-0.3.0}/crates/sldkit-core/Cargo.toml +0 -0
  115. {sldkit-0.2.0 → sldkit-0.3.0}/crates/sldkit-core/src/diagnostic.rs +0 -0
  116. {sldkit-0.2.0 → sldkit-0.3.0}/crates/sldkit-core/src/drawing.rs +0 -0
  117. {sldkit-0.2.0 → sldkit-0.3.0}/crates/sldkit-core/src/inventory.rs +0 -0
  118. {sldkit-0.2.0 → sldkit-0.3.0}/crates/sldkit-core/src/limits.rs +0 -0
  119. {sldkit-0.2.0 → sldkit-0.3.0}/crates/sldkit-core/src/result.rs +0 -0
  120. {sldkit-0.2.0 → sldkit-0.3.0}/crates/sldkit-parser/Cargo.toml +0 -0
  121. {sldkit-0.2.0 → sldkit-0.3.0}/crates/sldkit-parser/src/drawing.rs +0 -0
  122. {sldkit-0.2.0 → sldkit-0.3.0}/crates/sldkit-parser/src/geometry/byte_partition.rs +0 -0
  123. {sldkit-0.2.0 → sldkit-0.3.0}/crates/sldkit-parser/src/geometry/parasolid.rs +0 -0
  124. {sldkit-0.2.0 → sldkit-0.3.0}/crates/sldkit-python/Cargo.toml +0 -0
  125. {sldkit-0.2.0 → sldkit-0.3.0}/docs/license.ja.md +0 -0
  126. {sldkit-0.2.0 → sldkit-0.3.0}/docs/license.md +0 -0
  127. {sldkit-0.2.0 → sldkit-0.3.0}/docs/schemas/geometry-oracle.schema.json +0 -0
  128. {sldkit-0.2.0 → sldkit-0.3.0}/docs/schemas/nurbs-geometry-oracle.schema.json +0 -0
  129. {sldkit-0.2.0 → sldkit-0.3.0}/docs/schemas/nurbs-trim-oracle.schema.json +0 -0
  130. {sldkit-0.2.0 → sldkit-0.3.0}/docs/viewer.md +0 -0
  131. {sldkit-0.2.0 → sldkit-0.3.0}/python/sldkit/__main__.py +0 -0
  132. {sldkit-0.2.0 → sldkit-0.3.0}/python/sldkit/py.typed +0 -0
  133. {sldkit-0.2.0 → sldkit-0.3.0}/python/sldkit/viewer/__init__.py +0 -0
  134. {sldkit-0.2.0 → sldkit-0.3.0}/python/sldkit/viewer/_assets/LICENSE.txt +0 -0
  135. {sldkit-0.2.0 → sldkit-0.3.0}/python/sldkit/viewer/_assets/three-LICENSE.txt +0 -0
  136. {sldkit-0.2.0 → sldkit-0.3.0}/python/sldkit/viewer/_assets/viewer.css +0 -0
  137. {sldkit-0.2.0 → sldkit-0.3.0}/python/sldkit/viewer/_assets/viewer.html +0 -0
  138. {sldkit-0.2.0 → sldkit-0.3.0}/python/sldkit/viewer/_assets/viewer.js +0 -0
  139. {sldkit-0.2.0 → sldkit-0.3.0}/python/sldkit/viewer/_html.py +0 -0
  140. {sldkit-0.2.0 → sldkit-0.3.0}/scripts/capture_drawing_ground_truth.ps1 +0 -0
  141. {sldkit-0.2.0 → sldkit-0.3.0}/scripts/capture_step_geometry.py +0 -0
  142. {sldkit-0.2.0 → sldkit-0.3.0}/scripts/nurbs_geometry.py +0 -0
  143. {sldkit-0.2.0 → sldkit-0.3.0}/scripts/sync_license_notices.py +0 -0
  144. {sldkit-0.2.0 → sldkit-0.3.0}/scripts/validate_nurbs_geometry.py +0 -0
  145. {sldkit-0.2.0 → sldkit-0.3.0}/scripts/verify_release_version.py +0 -0
  146. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/LICENSE +0 -0
  147. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/README.md +0 -0
  148. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/annotations.rs +0 -0
  149. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/appearance/tests.rs +0 -0
  150. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/appearance.rs +0 -0
  151. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/brep/attrib.rs +0 -0
  152. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/brep/blend.rs +0 -0
  153. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/brep/entity.rs +0 -0
  154. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/brep/intersection.rs +0 -0
  155. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/brep/native_hierarchy.rs +0 -0
  156. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/brep/offset.rs +0 -0
  157. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/brep/spline.rs +0 -0
  158. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/brep/subset.rs +0 -0
  159. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/brep/sweep.rs +0 -0
  160. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/brep/topology.rs +0 -0
  161. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/byte_ledger.rs +0 -0
  162. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/classification.rs +0 -0
  163. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/container/tests.rs +0 -0
  164. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/container.rs +0 -0
  165. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/decode/tests/admission.rs +0 -0
  166. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/decode/tests/body_membership.rs +0 -0
  167. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/decode/tests/configuration.rs +0 -0
  168. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/decode/tests/configuration_completeness.rs +0 -0
  169. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/decode/tests/configuration_sites.rs +0 -0
  170. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/decode/tests/curves_and_loops.rs +0 -0
  171. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/decode/tests/design_completeness.rs +0 -0
  172. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/decode/tests/display_fallback.rs +0 -0
  173. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/decode/tests/feature_degradation.rs +0 -0
  174. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/decode/tests/geometry_report.rs +0 -0
  175. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/decode/tests/metadata_fallback.rs +0 -0
  176. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/decode/tests/mod.rs +0 -0
  177. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/decode/tests/nurbs_surfaces.rs +0 -0
  178. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/decode/tests/partition_merge.rs +0 -0
  179. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/decode/tests/pcurves.rs +0 -0
  180. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/decode/tests/round_trip.rs +0 -0
  181. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/decode/tests/schema_shells.rs +0 -0
  182. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/decode/tests/site_keys.rs +0 -0
  183. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/decode/tests/sketch_losses.rs +0 -0
  184. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/decode.rs +0 -0
  185. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/feature_schema.rs +0 -0
  186. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/fuzz.rs +0 -0
  187. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/golden_tests.rs +0 -0
  188. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/bind.rs +0 -0
  189. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/classify.rs +0 -0
  190. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/configuration.rs +0 -0
  191. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/encode/datum.rs +0 -0
  192. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/encode/format.rs +0 -0
  193. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/encode/misc.rs +0 -0
  194. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/encode/mod.rs +0 -0
  195. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/encode/modify.rs +0 -0
  196. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/encode/pattern.rs +0 -0
  197. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/encode/sketch.rs +0 -0
  198. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/encode/solid.rs +0 -0
  199. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/encode/spin.rs +0 -0
  200. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/encode/support.rs +0 -0
  201. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/encode/surface.rs +0 -0
  202. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/hash.rs +0 -0
  203. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/literals.rs +0 -0
  204. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/mod.rs +0 -0
  205. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/parameters/eval.rs +0 -0
  206. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/parameters/mod.rs +0 -0
  207. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/project/datum.rs +0 -0
  208. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/project/mod.rs +0 -0
  209. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/project/modify.rs +0 -0
  210. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/project/pattern.rs +0 -0
  211. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/project/sketch.rs +0 -0
  212. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/project/solid.rs +0 -0
  213. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/project/spin.rs +0 -0
  214. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/project/surface.rs +0 -0
  215. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/selections.rs +0 -0
  216. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/tests/configuration.rs +0 -0
  217. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/tests/equations.rs +0 -0
  218. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/tests/extrusion_profile.rs +0 -0
  219. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/tests/feature_operations.rs +0 -0
  220. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/tests/feature_projection.rs +0 -0
  221. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/tests/mod.rs +0 -0
  222. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/tests/offset_planes.rs +0 -0
  223. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/tests/parameters.rs +0 -0
  224. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/tests/sketch_bind.rs +0 -0
  225. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/tests/sketch_relations.rs +0 -0
  226. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/tests/split_and_identity.rs +0 -0
  227. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/tests/tree_binding.rs +0 -0
  228. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/write/configurations.rs +0 -0
  229. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/write/features.rs +0 -0
  230. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/write/mod.rs +0 -0
  231. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/write/parameters.rs +0 -0
  232. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/history/write/xml.rs +0 -0
  233. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/integration_tests.rs +0 -0
  234. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/layout.rs +0 -0
  235. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/lib.rs +0 -0
  236. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/loss.rs +0 -0
  237. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/metadata/tests.rs +0 -0
  238. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/metadata.rs +0 -0
  239. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/native/tests.rs +0 -0
  240. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/native.rs +0 -0
  241. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/parasolid/tests.rs +0 -0
  242. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/parasolid.rs +0 -0
  243. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/pmi/tests.rs +0 -0
  244. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/pmi.rs +0 -0
  245. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/records.rs +0 -0
  246. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/assembly/assembly_tests.rs +0 -0
  247. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/assembly.rs +0 -0
  248. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/axes/axes_tests.rs +0 -0
  249. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/axes.rs +0 -0
  250. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/bindings/bindings_tests.rs +0 -0
  251. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/bindings.rs +0 -0
  252. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/classes.rs +0 -0
  253. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/compact_reference_planes/compact_reference_planes_tests.rs +0 -0
  254. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/compact_reference_planes.rs +0 -0
  255. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/component_paths/component_paths_tests.rs +0 -0
  256. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/component_paths.rs +0 -0
  257. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/curves/curves_tests.rs +0 -0
  258. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/curves.rs +0 -0
  259. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/dimensions/dimensions_tests.rs +0 -0
  260. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/dimensions.rs +0 -0
  261. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/direct_edits.rs +0 -0
  262. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/drafts.rs +0 -0
  263. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/endpoints/tests/arcs.rs +0 -0
  264. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/endpoints/tests/circles.rs +0 -0
  265. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/endpoints/tests/compact.rs +0 -0
  266. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/endpoints/tests/extended.rs +0 -0
  267. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/endpoints/tests/mod.rs +0 -0
  268. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/endpoints/tests/profile_lines.rs +0 -0
  269. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/endpoints.rs +0 -0
  270. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/hashes.rs +0 -0
  271. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/helix.rs +0 -0
  272. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/holes/tests/axial_profile.rs +0 -0
  273. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/holes/tests/hole_axis.rs +0 -0
  274. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/holes/tests/mod.rs +0 -0
  275. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/holes/tests/position.rs +0 -0
  276. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/holes/tests/writer.rs +0 -0
  277. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/holes.rs +0 -0
  278. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/markers/tests/lanes.rs +0 -0
  279. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/markers/tests/mod.rs +0 -0
  280. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/markers/tests/profile_points.rs +0 -0
  281. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/markers/tests/spatial.rs +0 -0
  282. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/markers.rs +0 -0
  283. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/mod.rs +0 -0
  284. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/names/names_tests.rs +0 -0
  285. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/names.rs +0 -0
  286. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/operands/operands_tests.rs +0 -0
  287. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/operands.rs +0 -0
  288. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/operations/operations_tests.rs +0 -0
  289. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/operations.rs +0 -0
  290. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/parameters/parameters_tests.rs +0 -0
  291. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/parameters.rs +0 -0
  292. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/profiles.rs +0 -0
  293. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/projections/projections_tests.rs +0 -0
  294. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/projections.rs +0 -0
  295. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/reference_geometry/reference_geometry_tests.rs +0 -0
  296. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/reference_geometry/tests.rs +0 -0
  297. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/reference_geometry.rs +0 -0
  298. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/relation_geometry.rs +0 -0
  299. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/relation_loci/relation_loci_tests.rs +0 -0
  300. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/relation_loci.rs +0 -0
  301. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/relation_records.rs +0 -0
  302. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/scalars/scalars_tests.rs +0 -0
  303. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/scalars.rs +0 -0
  304. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/selections/tests/compact_edge.rs +0 -0
  305. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/selections/tests/delete_body.rs +0 -0
  306. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/selections/tests/mod.rs +0 -0
  307. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/selections/tests/surfaces.rs +0 -0
  308. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/selections/tests/writer.rs +0 -0
  309. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/selections.rs +0 -0
  310. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/sketch_edges/sketch_edges_tests.rs +0 -0
  311. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/sketch_edges.rs +0 -0
  312. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/sketch_projection/sketch_projection_tests.rs +0 -0
  313. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/sketch_projection.rs +0 -0
  314. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/sketch_write/sketch_write_tests.rs +0 -0
  315. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/sketch_write.rs +0 -0
  316. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/terminations/terminations_tests.rs +0 -0
  317. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/terminations.rs +0 -0
  318. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/transforms/tests/frames.rs +0 -0
  319. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/transforms/tests/join.rs +0 -0
  320. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/transforms/tests/mod.rs +0 -0
  321. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/transforms/tests/patterns.rs +0 -0
  322. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/transforms/tests/profile.rs +0 -0
  323. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/transforms/tests/relation_geometry.rs +0 -0
  324. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/transforms/tests/relation_links.rs +0 -0
  325. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/transforms/tests/relation_operands.rs +0 -0
  326. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/transforms/tests/selection.rs +0 -0
  327. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/transforms.rs +0 -0
  328. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/typed_relations/typed_relations_tests.rs +0 -0
  329. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/typed_relations.rs +0 -0
  330. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/validate/tests.rs +0 -0
  331. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/validate.rs +0 -0
  332. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/write_generate.rs +0 -0
  333. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/write_prepare/write_prepare_tests.rs +0 -0
  334. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/resolved_features/write_prepare.rs +0 -0
  335. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/swift.rs +0 -0
  336. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/tessellation/ownership/tests.rs +0 -0
  337. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/tessellation/ownership.rs +0 -0
  338. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/tessellation/tests.rs +0 -0
  339. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/tessellation.rs +0 -0
  340. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/test_support/appearance.rs +0 -0
  341. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/test_support/container.rs +0 -0
  342. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/test_support/history.rs +0 -0
  343. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/test_support/ir.rs +0 -0
  344. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/test_support/mod.rs +0 -0
  345. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/test_support/native.rs +0 -0
  346. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/test_support/parasolid.rs +0 -0
  347. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/test_support/pmi.rs +0 -0
  348. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/test_support/tessellation.rs +0 -0
  349. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/writer/tests/configuration_carriers.rs +0 -0
  350. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/writer/tests/flex_history.rs +0 -0
  351. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/writer/tests/helix_surfaces.rs +0 -0
  352. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/writer/tests/mod.rs +0 -0
  353. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/writer/tests/parameters_extrude.rs +0 -0
  354. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/writer/tests/patterns_history.rs +0 -0
  355. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/writer/tests/round_trip.rs +0 -0
  356. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/writer/tests/sketch_tessellation.rs +0 -0
  357. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/writer/tests/swobjects.rs +0 -0
  358. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/writer/tests/thicken_reference.rs +0 -0
  359. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/writer.rs +0 -0
  360. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/writer_patch/tests.rs +0 -0
  361. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/writer_patch.rs +0 -0
  362. {sldkit-0.2.0 → sldkit-0.3.0}/vendor/cadmpeg-codec-sldprt/src/writer_transform.rs +0 -0
  363. {sldkit-0.2.0 → sldkit-0.3.0}/viewer/LICENSE.txt +0 -0
  364. {sldkit-0.2.0 → sldkit-0.3.0}/viewer/build.mjs +0 -0
  365. {sldkit-0.2.0 → sldkit-0.3.0}/viewer/src/viewer.js +0 -0
@@ -44,5 +44,5 @@ material proposed for incorporation that requires a license grant.
44
44
  Preserve earlier MIT and third-party notices. After changing legal files, run
45
45
  `python scripts/sync_license_notices.py`, then rebuild the viewer with
46
46
  `npm run build --prefix viewer`. Check `python scripts/check_license.py` and
47
- the [distribution gates](docs/releasing.md). Generated Rust and viewer notices
47
+ the [distribution gates](docs/development/releasing.md). Generated Rust and viewer notices
48
48
  must match the canonical files; do not edit those copies by hand.
@@ -461,9 +461,9 @@ checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe"
461
461
 
462
462
  [[package]]
463
463
  name = "parasolid-core"
464
- version = "0.2.0"
464
+ version = "0.3.2"
465
465
  source = "registry+https://github.com/rust-lang/crates.io-index"
466
- checksum = "24abe504c1f489a216355c371a3e51d6aa62fbb4f55fa797ceddfe89b8debfb8"
466
+ checksum = "902bbbf1dbd37e932688972ba13f821e6ae369b6dbf6c3646c3b11b0bf1038fd"
467
467
 
468
468
  [[package]]
469
469
  name = "pin-project-lite"
@@ -675,7 +675,7 @@ checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5"
675
675
 
676
676
  [[package]]
677
677
  name = "sldkit-cli"
678
- version = "0.2.0"
678
+ version = "0.3.0"
679
679
  dependencies = [
680
680
  "clap",
681
681
  "serde",
@@ -686,7 +686,7 @@ dependencies = [
686
686
 
687
687
  [[package]]
688
688
  name = "sldkit-container"
689
- version = "0.2.0"
689
+ version = "0.3.0"
690
690
  dependencies = [
691
691
  "cfb",
692
692
  "crc32fast",
@@ -697,7 +697,7 @@ dependencies = [
697
697
 
698
698
  [[package]]
699
699
  name = "sldkit-core"
700
- version = "0.2.0"
700
+ version = "0.3.0"
701
701
  dependencies = [
702
702
  "serde",
703
703
  "serde_json",
@@ -705,7 +705,7 @@ dependencies = [
705
705
 
706
706
  [[package]]
707
707
  name = "sldkit-parser"
708
- version = "0.2.0"
708
+ version = "0.3.0"
709
709
  dependencies = [
710
710
  "cadmpeg-codec-sldprt",
711
711
  "cadmpeg-core",
@@ -725,7 +725,7 @@ dependencies = [
725
725
 
726
726
  [[package]]
727
727
  name = "sldkit-python"
728
- version = "0.2.0"
728
+ version = "0.3.0"
729
729
  dependencies = [
730
730
  "pyo3",
731
731
  "serde",
@@ -4,7 +4,7 @@ exclude = ["vendor/cadmpeg-codec-sldprt"]
4
4
  resolver = "3"
5
5
 
6
6
  [workspace.package]
7
- version = "0.2.0"
7
+ version = "0.3.0"
8
8
  edition = "2024"
9
9
  rust-version = "1.88"
10
10
  description = "Source-faithful parsing foundations for SolidWorks files"
@@ -21,7 +21,7 @@ cfb = "0.14.0"
21
21
  clap = { version = "4.6.6", features = ["derive"] }
22
22
  crc32fast = "1.5.0"
23
23
  flate2 = "1.1.9"
24
- parasolid-core = "=0.2.0"
24
+ parasolid-core = "=0.3.2"
25
25
  pyo3 = { version = "0.29.2", features = ["extension-module", "abi3-py310"] }
26
26
  roxmltree = "0.21.1"
27
27
  serde = { version = "1.0.229", features = ["derive"] }
@@ -2,7 +2,7 @@
2
2
 
3
3
  The following Rust crates are compiled into the modern Part geometry decoder:
4
4
 
5
- - `parasolid-core` 0.2.0 — MIT AND Apache-2.0 (headers and shared partial readers)
5
+ - `parasolid-core` 0.3.2 — MIT AND Apache-2.0 (published registry crate)
6
6
  - `cadmpeg-codec-sldprt` 0.5.3+sldkit.4 — Apache-2.0 (patched source)
7
7
  - `cadmpeg-container` 0.5.3 — Apache-2.0
8
8
  - `cadmpeg-core` 0.5.3 — Apache-2.0
@@ -23,6 +23,9 @@ generated inventory and full notices are in `rust-dependencies.json` and
23
23
  `parasolid-core` is published from
24
24
  <https://github.com/monozukuri-ai/parasolid-kit>. Its copyright and MIT license
25
25
  are included in [`parasolid-core-MIT.txt`](parasolid-core-MIT.txt).
26
+ The registry archive checksum is pinned in all three Cargo lockfiles and
27
+ included in the generated dependency catalog. Shared-reader changes are
28
+ maintained in parasolid-kit and consumed through the published crate.
26
29
 
27
30
  The adopted partial-reader files in parasolid-core remain Apache-2.0 licensed;
28
31
  its `PARTIAL_READERS.md` records their origin and modifications. The Apache text
@@ -21,9 +21,15 @@ configuration selection and unit conversion around these shared readers.
21
21
  referenced records, and apply recognized point updates. It does not implement
22
22
  arbitrary deletes, replacement topology, or undocumented delta opcodes.
23
23
  - Native BODY/REGION/SHELL ownership and FIN normalization retain the exact
24
- `SCH_3701229_37102_13006` admission and link consistency checks. Incomplete
24
+ `SCH_3701229_37102_13006` and `SCH_3601228_36001_13006` admission and link
25
+ consistency checks. After hierarchy recovery, `native_fin::retain_face_fins`
26
+ selects the current face loops and their opposite boundary dummies before
27
+ normalization, excluding unreachable saved-journal FINs. Missing records,
28
+ shared loops, cyclic ownership, or broken opposite links fail without changing
29
+ the table. This selection does not replay journal topology updates. Incomplete
25
30
  opposite/radial/vertex evidence withholds normalized FIN topology.
26
31
  - Analytic and NURBS readers return source-unit parameters and Euclidean poles.
32
+ Analytic records also retain the unmodified `+`/`-` orientation byte.
27
33
  Length conversion belongs to the caller; knots, angles, directions, weights,
28
34
  and surface UV coordinates are not length-scaled. The neutral partial types
29
35
  describe standalone carriers, not the complete native B-Rep graph.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schema_version": 1,
3
- "notices_sha256": "75c24eeecbbf736f330dcd3df8c170d704e936b91fd96cce409aa6bb6a01f9c2",
3
+ "notices_sha256": "08c26f9e6a5b3c01fa127e73c179f3ca69ca3f71f70fe6c3b639f842cf90f254",
4
4
  "packages": [
5
5
  {
6
6
  "name": "adler2",
@@ -1050,9 +1050,9 @@
1050
1050
  },
1051
1051
  {
1052
1052
  "name": "parasolid-core",
1053
- "version": "0.2.0",
1053
+ "version": "0.3.2",
1054
1054
  "source": "registry+https://github.com/rust-lang/crates.io-index",
1055
- "checksum": "24abe504c1f489a216355c371a3e51d6aa62fbb4f55fa797ceddfe89b8debfb8",
1055
+ "checksum": "902bbbf1dbd37e932688972ba13f821e6ae369b6dbf6c3646c3b11b0bf1038fd",
1056
1056
  "lockfiles": [
1057
1057
  "Cargo.lock",
1058
1058
  "vendor/cadmpeg-codec-sldprt/Cargo.lock",
@@ -2071,7 +2071,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2071
2071
  SOFTWARE.
2072
2072
 
2073
2073
 
2074
- ===== parasolid-core 0.2.0: LICENSE =====
2074
+ ===== parasolid-core 0.3.2: LICENSE =====
2075
2075
 
2076
2076
  MIT License
2077
2077
 
@@ -2096,7 +2096,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2096
2096
  SOFTWARE.
2097
2097
 
2098
2098
 
2099
- ===== parasolid-core 0.2.0: LICENSE-APACHE-2.0 =====
2099
+ ===== parasolid-core 0.3.2: LICENSE-APACHE-2.0 =====
2100
2100
 
2101
2101
  Apache License
2102
2102
  Version 2.0, January 2004
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sldkit
3
- Version: 0.2.0
3
+ Version: 0.3.0
4
4
  Classifier: Development Status :: 2 - Pre-Alpha
5
5
  Classifier: Intended Audience :: Developers
6
6
  Classifier: Programming Language :: Python :: 3
@@ -52,12 +52,16 @@ as a typed Python package through PyO3.
52
52
  | Stored and decoded stream extraction | Supported where the container decoder recognizes the encoding |
53
53
  | Exact binary-resource extraction | Revalidates parser-produced path, decoded range, and SHA-256 before returning preview bytes |
54
54
  | Modern metadata, properties, configurations, and references | Partial, source-faithful profile |
55
+ | Typed component flags, unit settings, material labels, feature records, sheet facts, embedded virtual components | Source tokens plus labelled inferences |
55
56
  | Modern `.SLDPRT` B-Rep and tessellation | Explicit partial profile with provenance and loss records |
57
+ | Saved display meshes | Packed `DisplayLists` meshes, colors, and face outlines for Parts, Assemblies, and `__ZLB` OLE2 Parts without B-Rep decoding |
56
58
  | Modern `.SLDDRW` source structure | Exact XML record inventory plus unframed Drawing carrier candidates; no render semantics |
57
- | Directory project graph | Bounded and deterministic for decoded references |
59
+ | Kernel-free geometry evaluation | Sampled edge polylines, bounds, edge smoothness, and mesh quantities with explicit withheld states |
60
+ | Directory project graph | Bounded and deterministic for decoded references, including embedded virtual components |
61
+ | Project index and bill of materials | Reverse references across a project and occurrence expansion with quantities |
58
62
  | Legacy OLE2/CFB metadata, properties, configurations, and previews | Partial, bounded profile for observed layouts |
59
63
  | ZIP/OPC document semantics | Unsupported |
60
- | Feature history, mates, and occurrence transforms | Unsupported |
64
+ | Feature history, mates, and occurrence transforms | Unsupported; raw transform tokens are retained as evidence |
61
65
  | Drawing entities, dimensions, and view transforms | Unsupported |
62
66
  | Offline HTML viewer | Recovered Part meshes, saved previews, and parse diagnostics |
63
67
 
@@ -120,8 +124,32 @@ graph = sldkit.scan_project(
120
124
  )
121
125
  for edge in graph.edges:
122
126
  print(edge.stored_path, edge.resolution_status, edge.resolved_path)
127
+
128
+ bom = sldkit.build_bom(graph)
129
+ for item in bom.part_items():
130
+ print(item.display_name, item.key.configuration, item.quantity)
131
+
132
+ index = sldkit.index_project("project")
133
+ part = index.node_by_path("parts/bracket.SLDPRT")
134
+ if part is not None:
135
+ for drawing in index.referencing_nodes(part.id, kind=sldkit.ReferenceKind.DRAWING_VIEW):
136
+ print(drawing.path)
137
+
138
+ display = sldkit.decode_display_mesh_file("part.SLDPRT", profile="service")
139
+ if display.mesh is not None:
140
+ print(display.mesh.triangle_count, len(display.positions), len(display.edges))
141
+
142
+ evaluation = sldkit.evaluate_geometry_file("part.SLDPRT", chord_tolerance_mm=0.05)
143
+ if evaluation.evaluation is not None:
144
+ print(evaluation.evaluation.bounding_box, evaluation.evaluation.summary)
123
145
  ```
124
146
 
147
+ Typed component flags, document units, material labels, feature records, and
148
+ sheet facts are described in [document facts](docs/document-facts.md);
149
+ [geometry evaluation](docs/geometry-evaluation.md),
150
+ [saved display meshes](docs/display-mesh.md), and
151
+ [project scanning](docs/project-scanning.md) cover the derived APIs.
152
+
125
153
  Use `strict=True` with `parse_file` or `parse_bytes` when an unsupported or
126
154
  partial result must raise `sldkit.ParseError`. Geometry decoding has the same
127
155
  option and raises `sldkit.GeometryError` unless its status is `decoded`.
@@ -140,7 +168,11 @@ when sharing compatibility results:
140
168
  sldkit scan project/top.SLDASM --project-root project --summary
141
169
  sldkit-rs scan project/top.SLDASM --project-root project --summary
142
170
  sldkit drawing drawing.SLDDRW --limits service
171
+ sldkit display part.SLDPRT --limits service
143
172
  sldkit-rs drawing drawing.SLDDRW --limits service
173
+ sldkit evaluate part.SLDPRT --chord-tolerance 0.05
174
+ sldkit index project --summary
175
+ sldkit bom project/top.SLDASM --project-root project --configuration Default --items-only
144
176
  uv run python scripts/compare_drawing_structures.py baseline.SLDDRW variant.SLDDRW
145
177
  ```
146
178
 
@@ -157,7 +189,7 @@ see [geometry fidelity](docs/geometry.md).
157
189
 
158
190
  `sldkit-parser` uses the published Rust `parasolid-core` crate for embedded
159
191
  Parasolid headers and shared partial topology/geometry readers. No Python `parasolid-kit` installation or adjacent
160
- checkout is required. See the [migration boundary](docs/geometry.md#parasolid-dependency).
192
+ checkout is required. See the [dependency boundary](docs/geometry.md#parasolid-dependency).
161
193
 
162
194
  `sldkit` owns SolidWorks-specific parsing and source models. It does not depend
163
195
  on `cad3d-ir`, CadQuery, Open CASCADE, a vendor SDK, or COM. The opt-in Python
@@ -191,6 +223,9 @@ Drawing entity rendering remain unsupported. See [viewer behavior](docs/viewer.m
191
223
 
192
224
  ## Development
193
225
 
226
+ See the [developer documentation](docs/development/README.md) for independent
227
+ validation, release checks, and the development script catalog.
228
+
194
229
  ```bash
195
230
  cargo test --workspace
196
231
  CARGO_TARGET_DIR=target cargo test --locked --manifest-path vendor/cadmpeg-codec-sldprt/Cargo.toml --lib
@@ -12,12 +12,16 @@ as a typed Python package through PyO3.
12
12
  | Stored and decoded stream extraction | Supported where the container decoder recognizes the encoding |
13
13
  | Exact binary-resource extraction | Revalidates parser-produced path, decoded range, and SHA-256 before returning preview bytes |
14
14
  | Modern metadata, properties, configurations, and references | Partial, source-faithful profile |
15
+ | Typed component flags, unit settings, material labels, feature records, sheet facts, embedded virtual components | Source tokens plus labelled inferences |
15
16
  | Modern `.SLDPRT` B-Rep and tessellation | Explicit partial profile with provenance and loss records |
17
+ | Saved display meshes | Packed `DisplayLists` meshes, colors, and face outlines for Parts, Assemblies, and `__ZLB` OLE2 Parts without B-Rep decoding |
16
18
  | Modern `.SLDDRW` source structure | Exact XML record inventory plus unframed Drawing carrier candidates; no render semantics |
17
- | Directory project graph | Bounded and deterministic for decoded references |
19
+ | Kernel-free geometry evaluation | Sampled edge polylines, bounds, edge smoothness, and mesh quantities with explicit withheld states |
20
+ | Directory project graph | Bounded and deterministic for decoded references, including embedded virtual components |
21
+ | Project index and bill of materials | Reverse references across a project and occurrence expansion with quantities |
18
22
  | Legacy OLE2/CFB metadata, properties, configurations, and previews | Partial, bounded profile for observed layouts |
19
23
  | ZIP/OPC document semantics | Unsupported |
20
- | Feature history, mates, and occurrence transforms | Unsupported |
24
+ | Feature history, mates, and occurrence transforms | Unsupported; raw transform tokens are retained as evidence |
21
25
  | Drawing entities, dimensions, and view transforms | Unsupported |
22
26
  | Offline HTML viewer | Recovered Part meshes, saved previews, and parse diagnostics |
23
27
 
@@ -80,8 +84,32 @@ graph = sldkit.scan_project(
80
84
  )
81
85
  for edge in graph.edges:
82
86
  print(edge.stored_path, edge.resolution_status, edge.resolved_path)
87
+
88
+ bom = sldkit.build_bom(graph)
89
+ for item in bom.part_items():
90
+ print(item.display_name, item.key.configuration, item.quantity)
91
+
92
+ index = sldkit.index_project("project")
93
+ part = index.node_by_path("parts/bracket.SLDPRT")
94
+ if part is not None:
95
+ for drawing in index.referencing_nodes(part.id, kind=sldkit.ReferenceKind.DRAWING_VIEW):
96
+ print(drawing.path)
97
+
98
+ display = sldkit.decode_display_mesh_file("part.SLDPRT", profile="service")
99
+ if display.mesh is not None:
100
+ print(display.mesh.triangle_count, len(display.positions), len(display.edges))
101
+
102
+ evaluation = sldkit.evaluate_geometry_file("part.SLDPRT", chord_tolerance_mm=0.05)
103
+ if evaluation.evaluation is not None:
104
+ print(evaluation.evaluation.bounding_box, evaluation.evaluation.summary)
83
105
  ```
84
106
 
107
+ Typed component flags, document units, material labels, feature records, and
108
+ sheet facts are described in [document facts](docs/document-facts.md);
109
+ [geometry evaluation](docs/geometry-evaluation.md),
110
+ [saved display meshes](docs/display-mesh.md), and
111
+ [project scanning](docs/project-scanning.md) cover the derived APIs.
112
+
85
113
  Use `strict=True` with `parse_file` or `parse_bytes` when an unsupported or
86
114
  partial result must raise `sldkit.ParseError`. Geometry decoding has the same
87
115
  option and raises `sldkit.GeometryError` unless its status is `decoded`.
@@ -100,7 +128,11 @@ when sharing compatibility results:
100
128
  sldkit scan project/top.SLDASM --project-root project --summary
101
129
  sldkit-rs scan project/top.SLDASM --project-root project --summary
102
130
  sldkit drawing drawing.SLDDRW --limits service
131
+ sldkit display part.SLDPRT --limits service
103
132
  sldkit-rs drawing drawing.SLDDRW --limits service
133
+ sldkit evaluate part.SLDPRT --chord-tolerance 0.05
134
+ sldkit index project --summary
135
+ sldkit bom project/top.SLDASM --project-root project --configuration Default --items-only
104
136
  uv run python scripts/compare_drawing_structures.py baseline.SLDDRW variant.SLDDRW
105
137
  ```
106
138
 
@@ -117,7 +149,7 @@ see [geometry fidelity](docs/geometry.md).
117
149
 
118
150
  `sldkit-parser` uses the published Rust `parasolid-core` crate for embedded
119
151
  Parasolid headers and shared partial topology/geometry readers. No Python `parasolid-kit` installation or adjacent
120
- checkout is required. See the [migration boundary](docs/geometry.md#parasolid-dependency).
152
+ checkout is required. See the [dependency boundary](docs/geometry.md#parasolid-dependency).
121
153
 
122
154
  `sldkit` owns SolidWorks-specific parsing and source models. It does not depend
123
155
  on `cad3d-ir`, CadQuery, Open CASCADE, a vendor SDK, or COM. The opt-in Python
@@ -151,6 +183,9 @@ Drawing entity rendering remain unsupported. See [viewer behavior](docs/viewer.m
151
183
 
152
184
  ## Development
153
185
 
186
+ See the [developer documentation](docs/development/README.md) for independent
187
+ validation, release checks, and the development script catalog.
188
+
154
189
  ```bash
155
190
  cargo test --workspace
156
191
  CARGO_TARGET_DIR=target cargo test --locked --manifest-path vendor/cadmpeg-codec-sldprt/Cargo.toml --lib
@@ -12,7 +12,7 @@ commercial agreements, subject to the exceptions below.
12
12
 
13
13
  ## Shared readers and bundled code
14
14
 
15
- - `parasolid-core` 0.2.0, MIT AND Apache-2.0, from
15
+ - `parasolid-core` 0.3.2, MIT AND Apache-2.0, from
16
16
  [parasolid-kit](https://github.com/monozukuri-ai/parasolid-kit).
17
17
  `LICENSES/parasolid-core-MIT.txt` preserves its MIT text. Adopted partial
18
18
  readers retain Apache-2.0; their provenance is reproduced in
@@ -24,7 +24,10 @@ commercial agreements, subject to the exceptions below.
24
24
  revision `dbb308e52ab05c911b26963a02fbb294eefab3ce`.
25
25
  Source headers, vendor LICENSE and `vendor/cadmpeg-codec-sldprt/PATCHES.md`
26
26
  preserve attribution and modifications. The vendor subtree stays Apache-2.0,
27
- including this migration's dependency update. The upstream root text is
27
+ including this migration's dependency update. The display-mesh reader in
28
+ `crates/sldkit-parser/src/display/tables.rs` and `appearance.rs` adopts the
29
+ 0.5.3 `tessellation.rs` and `appearance.rs` grammar and retains Apache-2.0;
30
+ its file headers identify the origin. The upstream root text is
28
31
  `LICENSES/Apache-2.0.txt`; registry container/core/ir packages omit a separate
29
32
  license-text file. Source headers remain in the supplied vendor sources.
30
33
  - Three.js 0.180.0, including OrbitControls, MIT, from
@@ -145,7 +145,7 @@ commercial agreements, subject to the exceptions below.
145
145
 
146
146
  ## Shared readers and bundled code
147
147
 
148
- - `parasolid-core` 0.2.0, MIT AND Apache-2.0, from
148
+ - `parasolid-core` 0.3.2, MIT AND Apache-2.0, from
149
149
  [parasolid-kit](https://github.com/monozukuri-ai/parasolid-kit).
150
150
  `LICENSES/parasolid-core-MIT.txt` preserves its MIT text. Adopted partial
151
151
  readers retain Apache-2.0; their provenance is reproduced in
@@ -157,7 +157,10 @@ commercial agreements, subject to the exceptions below.
157
157
  revision `dbb308e52ab05c911b26963a02fbb294eefab3ce`.
158
158
  Source headers, vendor LICENSE and `vendor/cadmpeg-codec-sldprt/PATCHES.md`
159
159
  preserve attribution and modifications. The vendor subtree stays Apache-2.0,
160
- including this migration's dependency update. The upstream root text is
160
+ including this migration's dependency update. The display-mesh reader in
161
+ `crates/sldkit-parser/src/display/tables.rs` and `appearance.rs` adopts the
162
+ 0.5.3 `tessellation.rs` and `appearance.rs` grammar and retains Apache-2.0;
163
+ its file headers identify the origin. The upstream root text is
161
164
  `LICENSES/Apache-2.0.txt`; registry container/core/ir packages omit a separate
162
165
  license-text file. Source headers remain in the supplied vendor sources.
163
166
  - Three.js 0.180.0, including OrbitControls, MIT, from
@@ -488,7 +491,7 @@ The **licensor** is the individual or entity offering these terms, and the **sof
488
491
 
489
492
  The following Rust crates are compiled into the modern Part geometry decoder:
490
493
 
491
- - `parasolid-core` 0.2.0 — MIT AND Apache-2.0 (headers and shared partial readers)
494
+ - `parasolid-core` 0.3.2 — MIT AND Apache-2.0 (published registry crate)
492
495
  - `cadmpeg-codec-sldprt` 0.5.3+sldkit.4 — Apache-2.0 (patched source)
493
496
  - `cadmpeg-container` 0.5.3 — Apache-2.0
494
497
  - `cadmpeg-core` 0.5.3 — Apache-2.0
@@ -509,6 +512,9 @@ generated inventory and full notices are in `rust-dependencies.json` and
509
512
  `parasolid-core` is published from
510
513
  <https://github.com/monozukuri-ai/parasolid-kit>. Its copyright and MIT license
511
514
  are included in [`parasolid-core-MIT.txt`](parasolid-core-MIT.txt).
515
+ The registry archive checksum is pinned in all three Cargo lockfiles and
516
+ included in the generated dependency catalog. Shared-reader changes are
517
+ maintained in parasolid-kit and consumed through the published crate.
512
518
 
513
519
  The adopted partial-reader files in parasolid-core remain Apache-2.0 licensed;
514
520
  its `PARTIAL_READERS.md` records their origin and modifications. The Apache text
@@ -571,9 +577,15 @@ configuration selection and unit conversion around these shared readers.
571
577
  referenced records, and apply recognized point updates. It does not implement
572
578
  arbitrary deletes, replacement topology, or undocumented delta opcodes.
573
579
  - Native BODY/REGION/SHELL ownership and FIN normalization retain the exact
574
- `SCH_3701229_37102_13006` admission and link consistency checks. Incomplete
580
+ `SCH_3701229_37102_13006` and `SCH_3601228_36001_13006` admission and link
581
+ consistency checks. After hierarchy recovery, `native_fin::retain_face_fins`
582
+ selects the current face loops and their opposite boundary dummies before
583
+ normalization, excluding unreachable saved-journal FINs. Missing records,
584
+ shared loops, cyclic ownership, or broken opposite links fail without changing
585
+ the table. This selection does not replay journal topology updates. Incomplete
575
586
  opposite/radial/vertex evidence withholds normalized FIN topology.
576
587
  - Analytic and NURBS readers return source-unit parameters and Euclidean poles.
588
+ Analytic records also retain the unmodified `+`/`-` orientation byte.
577
589
  Length conversion belongs to the caller; knots, angles, directions, weights,
578
590
  and surface UV coordinates are not length-scaled. The neutral partial types
579
591
  describe standalone carriers, not the complete native B-Rep graph.
@@ -643,7 +655,7 @@ checks and are not claimed as a public golden corpus.
643
655
 
644
656
  {
645
657
  "schema_version": 1,
646
- "notices_sha256": "75c24eeecbbf736f330dcd3df8c170d704e936b91fd96cce409aa6bb6a01f9c2",
658
+ "notices_sha256": "08c26f9e6a5b3c01fa127e73c179f3ca69ca3f71f70fe6c3b639f842cf90f254",
647
659
  "packages": [
648
660
  {
649
661
  "name": "adler2",
@@ -1693,9 +1705,9 @@ checks and are not claimed as a public golden corpus.
1693
1705
  },
1694
1706
  {
1695
1707
  "name": "parasolid-core",
1696
- "version": "0.2.0",
1708
+ "version": "0.3.2",
1697
1709
  "source": "registry+https://github.com/rust-lang/crates.io-index",
1698
- "checksum": "24abe504c1f489a216355c371a3e51d6aa62fbb4f55fa797ceddfe89b8debfb8",
1710
+ "checksum": "902bbbf1dbd37e932688972ba13f821e6ae369b6dbf6c3646c3b11b0bf1038fd",
1699
1711
  "lockfiles": [
1700
1712
  "Cargo.lock",
1701
1713
  "vendor/cadmpeg-codec-sldprt/Cargo.lock",
@@ -4817,7 +4829,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
4817
4829
  SOFTWARE.
4818
4830
 
4819
4831
 
4820
- ===== parasolid-core 0.2.0: LICENSE =====
4832
+ ===== parasolid-core 0.3.2: LICENSE =====
4821
4833
 
4822
4834
  MIT License
4823
4835
 
@@ -4842,7 +4854,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
4842
4854
  SOFTWARE.
4843
4855
 
4844
4856
 
4845
- ===== parasolid-core 0.2.0: LICENSE-APACHE-2.0 =====
4857
+ ===== parasolid-core 0.3.2: LICENSE-APACHE-2.0 =====
4846
4858
 
4847
4859
  Apache License
4848
4860
  Version 2.0, January 2004
@@ -12,12 +12,16 @@ as a typed Python package through PyO3.
12
12
  | Stored and decoded stream extraction | Supported where the container decoder recognizes the encoding |
13
13
  | Exact binary-resource extraction | Revalidates parser-produced path, decoded range, and SHA-256 before returning preview bytes |
14
14
  | Modern metadata, properties, configurations, and references | Partial, source-faithful profile |
15
+ | Typed component flags, unit settings, material labels, feature records, sheet facts, embedded virtual components | Source tokens plus labelled inferences |
15
16
  | Modern `.SLDPRT` B-Rep and tessellation | Explicit partial profile with provenance and loss records |
17
+ | Saved display meshes | Packed `DisplayLists` meshes, colors, and face outlines for Parts, Assemblies, and `__ZLB` OLE2 Parts without B-Rep decoding |
16
18
  | Modern `.SLDDRW` source structure | Exact XML record inventory plus unframed Drawing carrier candidates; no render semantics |
17
- | Directory project graph | Bounded and deterministic for decoded references |
19
+ | Kernel-free geometry evaluation | Sampled edge polylines, bounds, edge smoothness, and mesh quantities with explicit withheld states |
20
+ | Directory project graph | Bounded and deterministic for decoded references, including embedded virtual components |
21
+ | Project index and bill of materials | Reverse references across a project and occurrence expansion with quantities |
18
22
  | Legacy OLE2/CFB metadata, properties, configurations, and previews | Partial, bounded profile for observed layouts |
19
23
  | ZIP/OPC document semantics | Unsupported |
20
- | Feature history, mates, and occurrence transforms | Unsupported |
24
+ | Feature history, mates, and occurrence transforms | Unsupported; raw transform tokens are retained as evidence |
21
25
  | Drawing entities, dimensions, and view transforms | Unsupported |
22
26
  | Offline HTML viewer | Recovered Part meshes, saved previews, and parse diagnostics |
23
27
 
@@ -80,8 +84,32 @@ graph = sldkit.scan_project(
80
84
  )
81
85
  for edge in graph.edges:
82
86
  print(edge.stored_path, edge.resolution_status, edge.resolved_path)
87
+
88
+ bom = sldkit.build_bom(graph)
89
+ for item in bom.part_items():
90
+ print(item.display_name, item.key.configuration, item.quantity)
91
+
92
+ index = sldkit.index_project("project")
93
+ part = index.node_by_path("parts/bracket.SLDPRT")
94
+ if part is not None:
95
+ for drawing in index.referencing_nodes(part.id, kind=sldkit.ReferenceKind.DRAWING_VIEW):
96
+ print(drawing.path)
97
+
98
+ display = sldkit.decode_display_mesh_file("part.SLDPRT", profile="service")
99
+ if display.mesh is not None:
100
+ print(display.mesh.triangle_count, len(display.positions), len(display.edges))
101
+
102
+ evaluation = sldkit.evaluate_geometry_file("part.SLDPRT", chord_tolerance_mm=0.05)
103
+ if evaluation.evaluation is not None:
104
+ print(evaluation.evaluation.bounding_box, evaluation.evaluation.summary)
83
105
  ```
84
106
 
107
+ Typed component flags, document units, material labels, feature records, and
108
+ sheet facts are described in [document facts](docs/document-facts.md);
109
+ [geometry evaluation](docs/geometry-evaluation.md),
110
+ [saved display meshes](docs/display-mesh.md), and
111
+ [project scanning](docs/project-scanning.md) cover the derived APIs.
112
+
85
113
  Use `strict=True` with `parse_file` or `parse_bytes` when an unsupported or
86
114
  partial result must raise `sldkit.ParseError`. Geometry decoding has the same
87
115
  option and raises `sldkit.GeometryError` unless its status is `decoded`.
@@ -100,7 +128,11 @@ when sharing compatibility results:
100
128
  sldkit scan project/top.SLDASM --project-root project --summary
101
129
  sldkit-rs scan project/top.SLDASM --project-root project --summary
102
130
  sldkit drawing drawing.SLDDRW --limits service
131
+ sldkit display part.SLDPRT --limits service
103
132
  sldkit-rs drawing drawing.SLDDRW --limits service
133
+ sldkit evaluate part.SLDPRT --chord-tolerance 0.05
134
+ sldkit index project --summary
135
+ sldkit bom project/top.SLDASM --project-root project --configuration Default --items-only
104
136
  uv run python scripts/compare_drawing_structures.py baseline.SLDDRW variant.SLDDRW
105
137
  ```
106
138
 
@@ -117,7 +149,7 @@ see [geometry fidelity](docs/geometry.md).
117
149
 
118
150
  `sldkit-parser` uses the published Rust `parasolid-core` crate for embedded
119
151
  Parasolid headers and shared partial topology/geometry readers. No Python `parasolid-kit` installation or adjacent
120
- checkout is required. See the [migration boundary](docs/geometry.md#parasolid-dependency).
152
+ checkout is required. See the [dependency boundary](docs/geometry.md#parasolid-dependency).
121
153
 
122
154
  `sldkit` owns SolidWorks-specific parsing and source models. It does not depend
123
155
  on `cad3d-ir`, CadQuery, Open CASCADE, a vendor SDK, or COM. The opt-in Python
@@ -151,6 +183,9 @@ Drawing entity rendering remain unsupported. See [viewer behavior](docs/viewer.m
151
183
 
152
184
  ## Development
153
185
 
186
+ See the [developer documentation](docs/development/README.md) for independent
187
+ validation, release checks, and the development script catalog.
188
+
154
189
  ```bash
155
190
  cargo test --workspace
156
191
  CARGO_TARGET_DIR=target cargo test --locked --manifest-path vendor/cadmpeg-codec-sldprt/Cargo.toml --lib
@@ -145,7 +145,7 @@ commercial agreements, subject to the exceptions below.
145
145
 
146
146
  ## Shared readers and bundled code
147
147
 
148
- - `parasolid-core` 0.2.0, MIT AND Apache-2.0, from
148
+ - `parasolid-core` 0.3.2, MIT AND Apache-2.0, from
149
149
  [parasolid-kit](https://github.com/monozukuri-ai/parasolid-kit).
150
150
  `LICENSES/parasolid-core-MIT.txt` preserves its MIT text. Adopted partial
151
151
  readers retain Apache-2.0; their provenance is reproduced in
@@ -157,7 +157,10 @@ commercial agreements, subject to the exceptions below.
157
157
  revision `dbb308e52ab05c911b26963a02fbb294eefab3ce`.
158
158
  Source headers, vendor LICENSE and `vendor/cadmpeg-codec-sldprt/PATCHES.md`
159
159
  preserve attribution and modifications. The vendor subtree stays Apache-2.0,
160
- including this migration's dependency update. The upstream root text is
160
+ including this migration's dependency update. The display-mesh reader in
161
+ `crates/sldkit-parser/src/display/tables.rs` and `appearance.rs` adopts the
162
+ 0.5.3 `tessellation.rs` and `appearance.rs` grammar and retains Apache-2.0;
163
+ its file headers identify the origin. The upstream root text is
161
164
  `LICENSES/Apache-2.0.txt`; registry container/core/ir packages omit a separate
162
165
  license-text file. Source headers remain in the supplied vendor sources.
163
166
  - Three.js 0.180.0, including OrbitControls, MIT, from
@@ -488,7 +491,7 @@ The **licensor** is the individual or entity offering these terms, and the **sof
488
491
 
489
492
  The following Rust crates are compiled into the modern Part geometry decoder:
490
493
 
491
- - `parasolid-core` 0.2.0 — MIT AND Apache-2.0 (headers and shared partial readers)
494
+ - `parasolid-core` 0.3.2 — MIT AND Apache-2.0 (published registry crate)
492
495
  - `cadmpeg-codec-sldprt` 0.5.3+sldkit.4 — Apache-2.0 (patched source)
493
496
  - `cadmpeg-container` 0.5.3 — Apache-2.0
494
497
  - `cadmpeg-core` 0.5.3 — Apache-2.0
@@ -509,6 +512,9 @@ generated inventory and full notices are in `rust-dependencies.json` and
509
512
  `parasolid-core` is published from
510
513
  <https://github.com/monozukuri-ai/parasolid-kit>. Its copyright and MIT license
511
514
  are included in [`parasolid-core-MIT.txt`](parasolid-core-MIT.txt).
515
+ The registry archive checksum is pinned in all three Cargo lockfiles and
516
+ included in the generated dependency catalog. Shared-reader changes are
517
+ maintained in parasolid-kit and consumed through the published crate.
512
518
 
513
519
  The adopted partial-reader files in parasolid-core remain Apache-2.0 licensed;
514
520
  its `PARTIAL_READERS.md` records their origin and modifications. The Apache text
@@ -571,9 +577,15 @@ configuration selection and unit conversion around these shared readers.
571
577
  referenced records, and apply recognized point updates. It does not implement
572
578
  arbitrary deletes, replacement topology, or undocumented delta opcodes.
573
579
  - Native BODY/REGION/SHELL ownership and FIN normalization retain the exact
574
- `SCH_3701229_37102_13006` admission and link consistency checks. Incomplete
580
+ `SCH_3701229_37102_13006` and `SCH_3601228_36001_13006` admission and link
581
+ consistency checks. After hierarchy recovery, `native_fin::retain_face_fins`
582
+ selects the current face loops and their opposite boundary dummies before
583
+ normalization, excluding unreachable saved-journal FINs. Missing records,
584
+ shared loops, cyclic ownership, or broken opposite links fail without changing
585
+ the table. This selection does not replay journal topology updates. Incomplete
575
586
  opposite/radial/vertex evidence withholds normalized FIN topology.
576
587
  - Analytic and NURBS readers return source-unit parameters and Euclidean poles.
588
+ Analytic records also retain the unmodified `+`/`-` orientation byte.
577
589
  Length conversion belongs to the caller; knots, angles, directions, weights,
578
590
  and surface UV coordinates are not length-scaled. The neutral partial types
579
591
  describe standalone carriers, not the complete native B-Rep graph.
@@ -643,7 +655,7 @@ checks and are not claimed as a public golden corpus.
643
655
 
644
656
  {
645
657
  "schema_version": 1,
646
- "notices_sha256": "75c24eeecbbf736f330dcd3df8c170d704e936b91fd96cce409aa6bb6a01f9c2",
658
+ "notices_sha256": "08c26f9e6a5b3c01fa127e73c179f3ca69ca3f71f70fe6c3b639f842cf90f254",
647
659
  "packages": [
648
660
  {
649
661
  "name": "adler2",
@@ -1693,9 +1705,9 @@ checks and are not claimed as a public golden corpus.
1693
1705
  },
1694
1706
  {
1695
1707
  "name": "parasolid-core",
1696
- "version": "0.2.0",
1708
+ "version": "0.3.2",
1697
1709
  "source": "registry+https://github.com/rust-lang/crates.io-index",
1698
- "checksum": "24abe504c1f489a216355c371a3e51d6aa62fbb4f55fa797ceddfe89b8debfb8",
1710
+ "checksum": "902bbbf1dbd37e932688972ba13f821e6ae369b6dbf6c3646c3b11b0bf1038fd",
1699
1711
  "lockfiles": [
1700
1712
  "Cargo.lock",
1701
1713
  "vendor/cadmpeg-codec-sldprt/Cargo.lock",
@@ -4817,7 +4829,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
4817
4829
  SOFTWARE.
4818
4830
 
4819
4831
 
4820
- ===== parasolid-core 0.2.0: LICENSE =====
4832
+ ===== parasolid-core 0.3.2: LICENSE =====
4821
4833
 
4822
4834
  MIT License
4823
4835
 
@@ -4842,7 +4854,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
4842
4854
  SOFTWARE.
4843
4855
 
4844
4856
 
4845
- ===== parasolid-core 0.2.0: LICENSE-APACHE-2.0 =====
4857
+ ===== parasolid-core 0.3.2: LICENSE-APACHE-2.0 =====
4846
4858
 
4847
4859
  Apache License
4848
4860
  Version 2.0, January 2004