feat: advance FreeCAD parity and native OCCT history

This commit is contained in:
2026-08-03 08:04:10 -04:00
parent 2ce261b982
commit e5a5d74dbc
32 changed files with 1883 additions and 30 deletions

View File

@@ -0,0 +1,22 @@
import assert from 'node:assert/strict'
import createOcctHistory from './dist/bitbybit-occt-history.js'
const occt = await createOcctHistory()
assert.match(occt.occtVersion(), /^8\./)
const object = occt.makeBox(10, 10, 10)
const tool = occt.makeBox(5, 5, 5)
const response = occt.booleanHistory(object, tool, 'cut')
const objectStep = occt.shapeToStep(object)
const toolStep = occt.shapeToStep(tool)
assert.match(objectStep, /^ISO-10303-21;/)
assert.match(toolStep, /^ISO-10303-21;/)
const serializedResponse = occt.booleanHistoryFromStep(objectStep, toolStep, 'cut')
assert.equal(response.provider, 'occt-native')
assert.equal(response.records.every((record) => ['generated', 'modified', 'deleted'].includes(record.relation)), true)
assert.equal(typeof response.hasModified, 'boolean')
assert.equal(typeof response.hasGenerated, 'boolean')
assert.equal(typeof response.hasDeleted, 'boolean')
assert.equal(serializedResponse.provider, 'occt-native')
assert.equal(serializedResponse.records.length > 0, true)
assert.match(serializedResponse.resultStep, /^ISO-10303-21;/)
console.log(JSON.stringify({ occtVersion: response.occtVersion, recordCount: response.records.length, hasModified: response.hasModified, hasGenerated: response.hasGenerated, hasDeleted: response.hasDeleted }, null, 2))