Is it possible to have parts which don't scale in the viewport?


We have a use case where we are going to have multiple users working on a diagram (across multiple machines/browser instances) and we would like to show a marker/cursor on the diagram of where the other users are. We have already made the cursors (as a node template and on their own layer) and the syncing of data between diagrams but have run into the problem where the user cursors scale with the viewport. Is it possible to mark a part as non scale-able so that they will always appear the same size in the users viewport?

If there is not a built in method we can fallback to using a binding that calculates the parts size based on the scaling so that it appears to not change size but we would rather use a built in functionality if there is one for this.

You need to scale them. For example:

We should replace:

        myDiagram.skipsUndoManager = true;
        myDiagram.startTransaction("scale Nodes");
        myDiagram.nodes.each(function(node) {
          node.scale = origscale / newscale;
        myDiagram.commitTransaction("scale Nodes");
        myDiagram.skipsUndoManager = false;

With the equivalent:

    myDiagram.commit(function(d) {
        d.nodes.each(function(node) {
          node.scale = origscale / newscale;
    }, null);  // skipsUndoManager

It would be even more concise to use arrow functions.