Added the methods inside the extend function, so that they appear
as properties. Since we cannot reference properties of an object inside
said object, we extract them as properties when needed.
This change ensures that the added items are updated first in the
navigator's world. If the viewer's world is updated first, it fires
an add-item event, which in turn it may encounter a setItemIndex call;
since the navigator's world does not have the item yet, an error
occurs.
Other changes:
- ESLint comment about undeclared variable Map removed, since Map
is now registered as a global in .eslintrc.*
// eslint-disable-next-line no-undef
- Mark as private the property _viewers of OpenSeadragon
From limited testing, this method allows retrieval even when the viewer
was instantiated in a different file.
OpenSeadragon keeps internal private state in _viewers, following the
convention of the underscore prefix for private members.
Makes setFlip() raise a bounds change, and makes the navigator copy
the image flip in addition to the other properties, when receiving
the bounds signal.
Flipping an image changes the bounds of each tile. The existing
code assumes that cannot happen. getTile() calculates the tile
bounds the first time it is asked for a particular tile. It then
caches and returns the same time on every subsequent call.
getTile() has a check to test if a tile exists in the cache. If
it does not, the tile is created and inserted. In order to make
tiles be rebuilt after a flip, we only need to check if the tile's
flip matches the image's flip. If not, we can recreate the tile
as if it did not exist.
To make this a bit clearer, the tile's flipped flag is now set
in getTile() rather than positionTile().
This makes setFlip() work.
This completes the per-image flip implementation. Tile bounds are
re-positioned within the image. When rendering, the x ordinals are
remapped to the flipped ones.
To use, set "flipped" on the image instead of the viewer. The code
is compatible with rotations and wrapping.
Implements #1553
This will flip each individual tile on a per image bases. However
the tiles are now drawn in the wrong locations. Clipping etc works.
this is implemented for Canvas and HTML renderers.
This wraps the implementation in tileSource but provides support for
wrapping. It does not support getting the source bounds.
Using this function instead of the tileSource version allows the
viewport clipping optimization to work with wrapping.