@@ -145,12 +145,12 @@ static void EnumerateNodeMeshes (const NodePtr& node, const std::function<void (
145
145
}
146
146
}
147
147
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)
149
149
{
150
150
emscripten::val resultObj (emscripten::val::object ());
151
151
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);
154
154
resultObj.set (" success" , importResult == Importer::Result::Success);
155
155
if (importResult != Importer::Result::Success) {
156
156
return resultObj;
@@ -215,29 +215,46 @@ static ImportParams GetImportParams (const emscripten::val& paramsVal)
215
215
return params;
216
216
}
217
217
218
- emscripten::val ReadStepFile (const emscripten::val& content , const emscripten::val& params)
218
+ emscripten::val ReadStepFile (const emscripten::val& buffer , const emscripten::val& params)
219
219
{
220
220
ImporterPtr importer = std::make_shared<ImporterStep> ();
221
221
ImportParams importParams = GetImportParams (params);
222
- return ReadFile (importer, content , importParams);
222
+ return ImportFile (importer, buffer , importParams);
223
223
}
224
224
225
- emscripten::val ReadIgesFile (const emscripten::val& content , const emscripten::val& params)
225
+ emscripten::val ReadIgesFile (const emscripten::val& buffer , const emscripten::val& params)
226
226
{
227
227
ImporterPtr importer = std::make_shared<ImporterIges> ();
228
228
ImportParams importParams = GetImportParams (params);
229
- return ReadFile (importer, content , importParams);
229
+ return ImportFile (importer, buffer , importParams);
230
230
}
231
231
232
- emscripten::val ReadBrepFile (const emscripten::val& content , const emscripten::val& params)
232
+ emscripten::val ReadBrepFile (const emscripten::val& buffer , const emscripten::val& params)
233
233
{
234
234
ImporterPtr importer = std::make_shared<ImporterBrep> ();
235
235
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
+ }
237
252
}
238
253
239
254
EMSCRIPTEN_BINDINGS (occtimportjs)
240
255
{
256
+ emscripten::function<emscripten::val, const std::string&, const emscripten::val&, const emscripten::val&> (" ReadFile" , &ReadFile);
257
+
241
258
emscripten::function<emscripten::val, const emscripten::val&, const emscripten::val&> (" ReadStepFile" , &ReadStepFile);
242
259
emscripten::function<emscripten::val, const emscripten::val&, const emscripten::val&> (" ReadIgesFile" , &ReadIgesFile);
243
260
emscripten::function<emscripten::val, const emscripten::val&, const emscripten::val&> (" ReadBrepFile" , &ReadBrepFile);
0 commit comments