From c2b4fd72f390e46903281b7979b12d1d824767fa Mon Sep 17 00:00:00 2001
From: David Sehnal <david.sehnal@gmail.com>
Date: Wed, 7 Nov 2018 19:12:19 +0100
Subject: [PATCH] mol-plugin: tweak resp state obj

---
 src/mol-plugin/behavior/representation.ts  | 14 +++++++-------
 src/mol-plugin/state/objects.ts            |  6 +-----
 src/mol-plugin/state/transforms/visuals.ts |  4 ++--
 3 files changed, 10 insertions(+), 14 deletions(-)

diff --git a/src/mol-plugin/behavior/representation.ts b/src/mol-plugin/behavior/representation.ts
index f2b1ddf54..f2eac5aa9 100644
--- a/src/mol-plugin/behavior/representation.ts
+++ b/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);
             }
         });
diff --git a/src/mol-plugin/state/objects.ts b/src/mol-plugin/state/objects.ts
index e043e4d2f..cb2cf337c 100644
--- a/src/mol-plugin/state/objects.ts
+++ b/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 }
\ No newline at end of file
diff --git a/src/mol-plugin/state/transforms/visuals.ts b/src/mol-plugin/state/transforms/visuals.ts
index cf00496b7..3dbb0a621 100644
--- a/src/mol-plugin/state/transforms/visuals.ts
+++ b/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;
         });
     }
-- 
GitLab