|
@@ -19,8 +19,8 @@ export function SyncRepresentationToCanvas(ctx: PluginContext) {
|
|
|
let reprCount = 0;
|
|
|
|
|
|
ctx.events.canvas3d.initialized.subscribe(() => {
|
|
|
- ctx.canvas3d.reprCount.subscribe(v => {
|
|
|
- if (reprCount === 0) ctx.canvas3d.resetCamera();
|
|
|
+ ctx.canvas3d?.reprCount.subscribe(v => {
|
|
|
+ if (reprCount === 0) ctx.canvas3d?.resetCamera();
|
|
|
reprCount = v;
|
|
|
});
|
|
|
})
|
|
@@ -30,12 +30,12 @@ export function SyncRepresentationToCanvas(ctx: PluginContext) {
|
|
|
if (!SO.isRepresentation3D(e.obj)) return;
|
|
|
updateVisibility(e.state.cells.get(e.ref)!, e.obj.data.repr);
|
|
|
e.obj.data.repr.setState({ syncManually: true });
|
|
|
- ctx.canvas3d.add(e.obj.data.repr);
|
|
|
+ ctx.canvas3d?.add(e.obj.data.repr);
|
|
|
});
|
|
|
events.object.updated.subscribe(e => {
|
|
|
if (e.oldObj && SO.isRepresentation3D(e.oldObj)) {
|
|
|
- ctx.canvas3d.remove(e.oldObj.data.repr);
|
|
|
- ctx.canvas3d.requestDraw(true);
|
|
|
+ ctx.canvas3d?.remove(e.oldObj.data.repr);
|
|
|
+ ctx.canvas3d?.requestDraw(true);
|
|
|
e.oldObj.data.repr.destroy();
|
|
|
}
|
|
|
|
|
@@ -47,12 +47,12 @@ export function SyncRepresentationToCanvas(ctx: PluginContext) {
|
|
|
if (e.action === 'recreate') {
|
|
|
e.obj.data.repr.setState({ syncManually: true });
|
|
|
}
|
|
|
- ctx.canvas3d.add(e.obj.data.repr);
|
|
|
+ ctx.canvas3d?.add(e.obj.data.repr);
|
|
|
});
|
|
|
events.object.removed.subscribe(e => {
|
|
|
if (!SO.isRepresentation3D(e.obj)) return;
|
|
|
- ctx.canvas3d.remove(e.obj.data.repr);
|
|
|
- ctx.canvas3d.requestDraw(true);
|
|
|
+ ctx.canvas3d?.remove(e.obj.data.repr);
|
|
|
+ ctx.canvas3d?.requestDraw(true);
|
|
|
e.obj.data.repr.destroy();
|
|
|
});
|
|
|
}
|
|
@@ -65,22 +65,22 @@ export function SyncStructureRepresentation3DState(ctx: PluginContext) {
|
|
|
if (!SO.Molecule.Structure.Representation3DState.is(e.obj)) return;
|
|
|
const data = e.obj.data as SO.Molecule.Structure.Representation3DStateData;
|
|
|
data.source.data.repr.setState(data.state);
|
|
|
- ctx.canvas3d.update(data.source.data.repr);
|
|
|
- ctx.canvas3d.requestDraw(true);
|
|
|
+ ctx.canvas3d?.update(data.source.data.repr);
|
|
|
+ ctx.canvas3d?.requestDraw(true);
|
|
|
});
|
|
|
events.object.updated.subscribe(e => {
|
|
|
if (!SO.Molecule.Structure.Representation3DState.is(e.obj)) return;
|
|
|
const data = e.obj.data as SO.Molecule.Structure.Representation3DStateData;
|
|
|
data.source.data.repr.setState(data.state);
|
|
|
- ctx.canvas3d.update(data.source.data.repr);
|
|
|
- ctx.canvas3d.requestDraw(true);
|
|
|
+ ctx.canvas3d?.update(data.source.data.repr);
|
|
|
+ ctx.canvas3d?.requestDraw(true);
|
|
|
});
|
|
|
events.object.removed.subscribe(e => {
|
|
|
if (!SO.Molecule.Structure.Representation3DState.is(e.obj)) return;
|
|
|
const data = e.obj.data as SO.Molecule.Structure.Representation3DStateData;
|
|
|
data.source.data.repr.setState(data.initialState);
|
|
|
- ctx.canvas3d.update(data.source.data.repr);
|
|
|
- ctx.canvas3d.requestDraw(true);
|
|
|
+ ctx.canvas3d?.update(data.source.data.repr);
|
|
|
+ ctx.canvas3d?.requestDraw(true);
|
|
|
});
|
|
|
}
|
|
|
|
|
@@ -90,7 +90,7 @@ export function UpdateRepresentationVisibility(ctx: PluginContext) {
|
|
|
const cell = e.state.cells.get(e.ref)!;
|
|
|
if (!SO.isRepresentation3D(cell.obj)) return;
|
|
|
updateVisibility(cell, cell.obj.data.repr);
|
|
|
- ctx.canvas3d.requestDraw(true);
|
|
|
+ ctx.canvas3d?.requestDraw(true);
|
|
|
})
|
|
|
}
|
|
|
|