void STLModule::open(const js::Value &args, js::Sink &sink) { // Read STL STL::Reader reader(ctx.relativePath(args.getString("path"))); // Header string name; string hash; reader.readHeader(name, hash); sink.beginDict(); sink.insert("name", name); sink.insert("hash", hash); // Facets sink.insertList("facets"); while (reader.hasMore()) { Vector3F v[3]; Vector3F normal; reader.readFacet(v[0], v[1], v[2], normal); sink.appendList(); for (int i = 0; i < 3; i++) append(sink, v[i]); append(sink, normal); sink.endList(); } sink.endList(); sink.endDict(); }