Skip to content

Merge upstream google fork #1

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 732 commits into
base: master
Choose a base branch
from
Open

Conversation

austinhoag
Copy link

No description provided.

jbms and others added 30 commits October 6, 2023 10:31
Previously, the client and server could become desynchronized due to a 412
response.
This reduces code duplication and eliminates some asyncio-related warnings.
…dit (#465)

* auto reloading the graphene mesh manifest requests for ~10 minutes after an edit with exponential backoff

* trying to reduce flicker

* improved getMeshSource function to always return the correct source for layers with more than one datasource

* Revert "trying to reduce flicker"

This reverts commit 0302038.

* removed debugging lines
…trollable UI parameter (#495)

feat: add samples per ray to UI
…#500)

* fix(state_share): new method to include credentials for state sharing due to chrome introducing restrictions on setting protocols using the URL API

* cleaned up state url credential fix code
Previously, panel movement was detected only indirectly, based on
resize and scroll events, leading to the possibility that a panel
would not be redrawn when necessary if a panel moves without a resize
or scroll event occurring.

With this change, panel movement is detected directly using
IntersectionObserver.
Previously, if an input element happens to become focused while a tool
is active, the key combination (e.g. shift+key) being held was
incorrectly interpreted as input.

With this change, such input is prevented by ignoring key events while
the tool is active.
prettier is now used for formatting, and biome is now used for linting.
jbms and others added 30 commits February 26, 2025 09:54
Previously, coordinate bounds approximately, but not exactly, equal to
an integer or half-integer were handled poorly.

In particular, the lower/upper bounds could end up off by 1 from the
expected value, and voxelCenterAtIntegerCoordinates could end up false
when it was expected to be true, leading to coordinates snapping to the
boundary between two voxels, rather than the center, as expected.

With this change, coordinate bounds within 1e-3 of an integer or
half-integer are handled properly.

Fixes #719.
Now that there is support in the major browsers for bigint and
optimization of the uint64 as bigint case, the custom Uint64 class can
be removed.
This fixes the following error reported at
#743

frontend.ts:328 Uncaught TypeError: Cannot read properties of undefined (reading 'chunkManager')
    at updateChunk (frontend.ts:328:31) # webpack://neuroglancer/src/chunk_manager/frontend.ts
    at RPC.<anonymous> (frontend.ts:348:3)
    at RPC.target.onmessage (worker_rpc.ts:174:40)
…splay

Previously, optional modifiers in a binding like
"alt?+control?+shift+keya" would result in 4 separate help entries for
each of the 4 combinations.

With this change, the optional modifiers are excluded altogether, as
they already were from the binding tooltips, resulting in a single help
entry for "shift+keya".

Additionally, patterns like "shift+key[a-z]" -> "tool-[A-Z]" and
"[1-9]" -> "toggle-layer-[1-9]" resulted in each binding being displayed
separately.  With this change, the pattern is recognized and displayed
as a single entry.

These changes together make the help display much, much more concise.
Previously, if a given cross-section view selected a cross section
slightly below the lower bound, or (almost) exactly at the upper bound
of a volume, all chunks could be considered out of bounds. Instead, the
positions should be set such that the cross-section is at the center of
a voxel, rather than right at the boundary, and the "position snapping"
logic in Neuroglancer tries to ensure that.

However, there are various cases under which such cross-sections may be
accidentally requested:

- User specifies an explicit position in the state at integer
coordinates for a dimension where voxel centers are at
half-integers.

- Due to floating point imprecision, a position exactly at the lower
bound ends up slightly below the lower bound.

- Due to the OME-Zarr voxel center confusion bug in Neuroglancer when
OME-Zarr support was first added, old Neuroglancer states may have
positions right on the volume boundary, especially for singleton
dimensions.

This commit ensures that in these boundary cases, a chunk is still
rendered to avoid user confusion.
Previously, panels for Python prefetch states inadvertently did not have
their bounds correctly calculated, leading to a width and height of
zero, which meant that data was not correctly prefetched.
…rom JSON state (#774)

A given panel "flex group" (column/row) may contain both visible and non-visible
panels.

Previously, the presence of a non-visible panel could result in the size not
being correctly restored from the JSON state.

With this change:

- The size of the flex group is taken from the first visible panel, rather than
the first visible or non-visible panel.

- When the first visible panel is added to a flex group that was previously
hidden (due to not containing any visible panels), its size is set to the size
of the newly visible panel.  This means that two panels in the same flex group
can maintain different sizes (e.g. the "settings" and "layer list" panels), as
long as both are not visible at the same time.  If both become visible at the
same time, the second one to become visible will have its size reset to the size
of the other panel.

Fixes #773.
* Refactor parameter parsing to make it more easily extensible

* Use catch-all arguments for render parameters

In order to keep up to date with api additions, parameters that are
piped through to render as optional ?-style parameters are captured
by a generic dictionary instead of dedicated single fields.

* Enable autocompletion for (dummy) query parameters

* Dynamically generate list of optional parameters

* Enable PNG rendering

For some reason, the 8-bit version requires a "channel" argument of 4,
while the 16-bit version requires 1.

* Apply automatic formatter fixes

* Return built-in parameters' hints even if api cannot be fetched

* Run format checker

* Include review comments from @neomorphic
This addreses two bugs in the calculation of clip bounds for rendered panels:

- Previously, rendered panels were clipped to the bounding rects of all
  ancestors without taking into account `overflow-x` and `overflow-y`.  With
  this change, `overflow-x` and `overflow-y` are correctly taken into account.

- IntersectionObserver can fail to register changes in bounds due to scrolling.
  With this commit, scroll events directly trigger recalculation of bounds.

Fixes #777
… bytes received (#802)

If the buffer is exactly 8 bytes — which is the case for an empty spatial index chunk — then the code would throw an "Expected at least 8 bytes" error, due to the use of a `<=` comparison rather than `<`.

This commit fixes that bug.
To support special nodes like "<UUID>:master" (which  means "the most
distant unlocked descendant of <UUID>"), use only "<UUID>" for the validity
lookup. If it is valid, then DVID itself will resolve the part after the
':'.

DVID Data source urls can now be formatted like this:

dvid://https://dvid.janelia.org/f3969:master/segmentation
* fix(ui): correct tool palette checkbox title
Also clarify intended behaviour of message. Current was probably mixed up because enableTitle could be the title when enabled or the message shown to indicate how to enable

* style: format
* fix:(python): allow defaults to inform properties and allow color strings

* docs(python): extend num properties in writer

* lint: fix mypy type error
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.