Skip to content

Commit 5e96d10

Browse files
committed
Simplify worker code.
1 parent e235a86 commit 5e96d10

File tree

6 files changed

+63
-29
lines changed

6 files changed

+63
-29
lines changed

dist/occt-import-js-worker.js

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,12 @@ importScripts ('occt-import-js.js');
22

33
onmessage = async function (ev)
44
{
5-
let occt = await occtimportjs ();
6-
let result = null;
7-
if (ev.data.format === 'step') {
8-
result = occt.ReadStepFile (ev.data.buffer, ev.data.params);
9-
} else if (ev.data.format === 'iges') {
10-
result = occt.ReadIgesFile (ev.data.buffer, ev.data.params);
11-
} else if (ev.data.format === 'brep') {
12-
result = occt.ReadBrepFile (ev.data.buffer, ev.data.params);
13-
}
5+
let modulOverrides = {
6+
locateFile: function (path) {
7+
return path;
8+
}
9+
};
10+
let occt = await occtimportjs (modulOverrides);
11+
let result = occt.ReadFile (ev.data.format, ev.data.buffer, ev.data.params);
1412
postMessage (result);
1513
};

dist/occt-import-js.js

Lines changed: 7 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/occt-import-js.wasm

-15.2 KB
Binary file not shown.

occt-import-js/src/js-interface.cpp

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -145,12 +145,12 @@ static void EnumerateNodeMeshes (const NodePtr& node, const std::function<void (
145145
}
146146
}
147147

148-
static emscripten::val ReadFile (ImporterPtr importer, const emscripten::val& content, const ImportParams& params)
148+
static emscripten::val ImportFile (ImporterPtr importer, const emscripten::val& buffer, const ImportParams& params)
149149
{
150150
emscripten::val resultObj (emscripten::val::object ());
151151

152-
const std::vector<uint8_t>& contentArr = emscripten::vecFromJSArray<std::uint8_t> (content);
153-
Importer::Result importResult = importer->LoadFile (contentArr, params);
152+
const std::vector<uint8_t>& bufferArr = emscripten::vecFromJSArray<std::uint8_t> (buffer);
153+
Importer::Result importResult = importer->LoadFile (bufferArr, params);
154154
resultObj.set ("success", importResult == Importer::Result::Success);
155155
if (importResult != Importer::Result::Success) {
156156
return resultObj;
@@ -215,29 +215,46 @@ static ImportParams GetImportParams (const emscripten::val& paramsVal)
215215
return params;
216216
}
217217

218-
emscripten::val ReadStepFile (const emscripten::val& content, const emscripten::val& params)
218+
emscripten::val ReadStepFile (const emscripten::val& buffer, const emscripten::val& params)
219219
{
220220
ImporterPtr importer = std::make_shared<ImporterStep> ();
221221
ImportParams importParams = GetImportParams (params);
222-
return ReadFile (importer, content, importParams);
222+
return ImportFile (importer, buffer, importParams);
223223
}
224224

225-
emscripten::val ReadIgesFile (const emscripten::val& content, const emscripten::val& params)
225+
emscripten::val ReadIgesFile (const emscripten::val& buffer, const emscripten::val& params)
226226
{
227227
ImporterPtr importer = std::make_shared<ImporterIges> ();
228228
ImportParams importParams = GetImportParams (params);
229-
return ReadFile (importer, content, importParams);
229+
return ImportFile (importer, buffer, importParams);
230230
}
231231

232-
emscripten::val ReadBrepFile (const emscripten::val& content, const emscripten::val& params)
232+
emscripten::val ReadBrepFile (const emscripten::val& buffer, const emscripten::val& params)
233233
{
234234
ImporterPtr importer = std::make_shared<ImporterBrep> ();
235235
ImportParams importParams = GetImportParams (params);
236-
return ReadFile (importer, content, importParams);
236+
return ImportFile (importer, buffer, importParams);
237+
}
238+
239+
emscripten::val ReadFile (const std::string& format, const emscripten::val& buffer, const emscripten::val& params)
240+
{
241+
if (format == "step") {
242+
return ReadStepFile (buffer, params);
243+
} else if (format == "iges") {
244+
return ReadIgesFile (buffer, params);
245+
} else if (format == "brep") {
246+
return ReadBrepFile (buffer, params);
247+
} else {
248+
emscripten::val resultObj (emscripten::val::object ());
249+
resultObj.set ("success", false);
250+
return resultObj;
251+
}
237252
}
238253

239254
EMSCRIPTEN_BINDINGS (occtimportjs)
240255
{
256+
emscripten::function<emscripten::val, const std::string&, const emscripten::val&, const emscripten::val&> ("ReadFile", &ReadFile);
257+
241258
emscripten::function<emscripten::val, const emscripten::val&, const emscripten::val&> ("ReadStepFile", &ReadStepFile);
242259
emscripten::function<emscripten::val, const emscripten::val&, const emscripten::val&> ("ReadIgesFile", &ReadIgesFile);
243260
emscripten::function<emscripten::val, const emscripten::val&, const emscripten::val&> ("ReadBrepFile", &ReadBrepFile);

test/test.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,12 @@ before (async function () {
1212
occt = await occtimportjs;
1313
});
1414

15+
function LoadFile (format, fileUrl)
16+
{
17+
let fileContent = fs.readFileSync (fileUrl);
18+
return occt.ReadFile (format, fileContent, null);
19+
}
20+
1521
function LoadStepFile (fileUrl)
1622
{
1723
let fileContent = fs.readFileSync (fileUrl);
@@ -336,3 +342,18 @@ it ('Convert to other units', function () {
336342
});
337343

338344
});
345+
346+
describe ('General Import', function () {
347+
348+
it ('Format string test', function () {
349+
let stepResult = LoadFile ('step', './test/testfiles/simple-basic-cube/cube.stp');
350+
assert (stepResult.success);
351+
let igesResult = LoadFile ('iges', './test/testfiles/cube-10x10mm/Cube 10x10.igs');
352+
assert (igesResult.success);
353+
let brepResult = LoadFile ('brep', './test/testfiles/cax-if-brep/as1_pe_203.brep');
354+
assert (brepResult.success);
355+
let otherResult = LoadFile ('other', './test/testfiles/simple-basic-cube/cube.stp');
356+
assert (!otherResult.success);
357+
});
358+
359+
});

tools/setup_emscripten_win.bat

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ pushd %~dp0\..
22

33
call git clone https://github.com/emscripten-core/emsdk.git
44
call cd emsdk
5-
call emsdk install 3.1.35
6-
call emsdk activate 3.1.35
5+
call emsdk install 3.1.58
6+
call emsdk activate 3.1.58
77
call emsdk install mingw-7.1.0-64bit
88
call emsdk activate mingw-7.1.0-64bit
99
call cd ..

0 commit comments

Comments
 (0)