Browse Source

mol-plugin: tweak resp state obj

David Sehnal 6 years ago
parent
commit
c2b4fd72f3

+ 7 - 7
src/mol-plugin/behavior/representation.ts

@@ -11,32 +11,32 @@ class _AddRepresentationToCanvas extends PluginBehavior.Handler {
     register(): void {
         this.subscribeObservable(this.ctx.events.state.data.object.created, o => {
             if (!SO.StructureRepresentation3D.is(o.obj)) return;
-            this.ctx.canvas3d.add(o.obj.data.repr);
+            this.ctx.canvas3d.add(o.obj.data);
             this.ctx.canvas3d.requestDraw(true);
         });
         this.subscribeObservable(this.ctx.events.state.data.object.updated, o => {
             const oo = o.obj;
             if (!SO.StructureRepresentation3D.is(oo)) return;
-            this.ctx.canvas3d.add(oo.data.repr);
+            this.ctx.canvas3d.add(oo.data);
             this.ctx.canvas3d.requestDraw(true);
         });
         this.subscribeObservable(this.ctx.events.state.data.object.removed, o => {
             const oo = o.obj;
             console.log('removed', o.ref, oo && oo.type);
             if (!SO.StructureRepresentation3D.is(oo)) return;
-            this.ctx.canvas3d.remove(oo.data.repr);
+            this.ctx.canvas3d.remove(oo.data);
             console.log('removed from canvas', o.ref);
             this.ctx.canvas3d.requestDraw(true);
-            oo.data.repr.destroy();
+            oo.data.destroy();
         });
         this.subscribeObservable(this.ctx.events.state.data.object.replaced, o => {
             if (o.oldObj && SO.StructureRepresentation3D.is(o.oldObj)) {
-                this.ctx.canvas3d.remove(o.oldObj.data.repr);
+                this.ctx.canvas3d.remove(o.oldObj.data);
                 this.ctx.canvas3d.requestDraw(true);
-                o.oldObj.data.repr.destroy();
+                o.oldObj.data.destroy();
             }
             if (o.newObj && SO.StructureRepresentation3D.is(o.newObj)) {
-                this.ctx.canvas3d.add(o.newObj.data.repr);
+                this.ctx.canvas3d.add(o.newObj.data);
                 this.ctx.canvas3d.requestDraw(true);
             }
         });

+ 1 - 5
src/mol-plugin/state/objects.ts

@@ -35,11 +35,7 @@ namespace PluginStateObjects {
     export class Structure extends _create<_Structure>({ name: 'Molecule Structure', typeClass: 'Object', shortName: 'M_S', description: 'A structure of a molecule.' }) { }
 
 
-    export class StructureRepresentation3D extends _create<{
-        repr: StructureRepresentation<any>,
-        // TODO
-        // props
-    }>({ name: 'Molecule Structure Representation', typeClass: 'Representation', shortName: 'S_R', description: 'A representation of a molecular structure.' }) { }
+    export class StructureRepresentation3D extends _create<StructureRepresentation<any>>({ name: 'Molecule Structure Representation', typeClass: 'Representation', shortName: 'S_R', description: 'A representation of a molecular structure.' }) { }
 }
 
 export { PluginStateObjects }

+ 2 - 2
src/mol-plugin/state/transforms/visuals.ts

@@ -23,12 +23,12 @@ const CreateStructureRepresentation = PluginStateTransform.Create<SO.Structure,
         return Task.create('Structure Representation', async ctx => {
             const repr = BallAndStickRepresentation(); // CartoonRepresentation();
             await repr.createOrUpdate({ webgl: plugin.canvas3d.webgl }, DefaultBallAndStickProps, a.data).runInContext(ctx);
-            return new SO.StructureRepresentation3D({ label: 'Visual Repr.' }, { repr });
+            return new SO.StructureRepresentation3D({ label: 'Visual Repr.' }, repr);
         });
     },
     update({ a, b }, plugin: PluginContext) {
         return Task.create('Structure Representation', async ctx => {
-            await b.data.repr.createOrUpdate({ webgl: plugin.canvas3d.webgl }, b.data.repr.props, a.data).runInContext(ctx);
+            await b.data.createOrUpdate({ webgl: plugin.canvas3d.webgl }, b.data.props, a.data).runInContext(ctx);
             return Transformer.UpdateResult.Updated;
         });
     }