Browse Source

obj parser placeholder

Alexander Rose 6 years ago
parent
commit
29de100661
2 changed files with 35 additions and 0 deletions
  1. 12 0
      src/apps/canvas/index.ts
  2. 23 0
      src/mol-io/reader/obj/parser.ts

+ 12 - 0
src/apps/canvas/index.ts

@@ -8,6 +8,7 @@ import './index.html'
 
 import Viewer from 'mol-view/viewer';
 import CIF, { CifBlock } from 'mol-io/reader/cif'
+import { parse as parseObj } from 'mol-io/reader/obj/parser'
 import { readUrlAs } from 'mol-util/read'
 import { Model, Format, Structure, StructureSymmetry } from 'mol-model/structure';
 import { CartoonRepresentation } from 'mol-geo/representation/structure/representation/cartoon';
@@ -48,6 +49,15 @@ viewer.input.move.subscribe(({x, y, inside, buttons}) => {
     info.innerText = `${label}`
 })
 
+
+async function getObjFromUrl(url: string) {
+    const data = await readUrlAs(url, false) as string
+    const comp = parseObj(data)
+    const parsed = await comp.run()
+    if (parsed.isError) throw parsed
+    return parsed.result
+}
+
 async function getCifFromUrl(url: string) {
     const data = await readUrlAs(url, false)
     const comp = CIF.parse(data)
@@ -108,6 +118,8 @@ async function init() {
     const mesh = meshBuilder.getMesh()
     // Mesh.computeNormalsImmediate(mesh)
 
+    // mesh = getObjFromUrl('mesh.obj')
+
     // add representation from custom mesh
     const customRepr = CustomRepresentation()
     await customRepr.create(mesh, {

+ 23 - 0
src/mol-io/reader/obj/parser.ts

@@ -0,0 +1,23 @@
+/**
+ * Copyright (c) 2018 mol* contributors, licensed under MIT, See LICENSE file for more info.
+ *
+ * @author Alexander Rose <alexander.rose@weirdbyte.de>
+ */
+
+import Result from '../result'
+import { Task, RuntimeContext } from 'mol-task'
+import { Mesh } from 'mol-geo/shape/mesh';
+
+async function parseInternal(data: string, ctx: RuntimeContext): Promise<Result<Mesh>> {
+    // TODO
+    const result: Mesh = Mesh.createEmpty();
+    return Result.success(result);
+}
+
+export function parse(data: string) {
+    return Task.create<Result<Mesh>>('Parse OBJ', async ctx => {
+        return await parseInternal(data, ctx);
+    });
+}
+
+export default parse;